STATUS — VFJah_Messenger
_Article généré automatiquement depuis le STATUS.md de VFJah_Messenger — 2026-10-11. Les chemins locaux, les hôtes internes et les noms de variables ont été neutralisés._
STATUS
Session
11/10 06:00 — chantier MONDE-PIXEL ouvert (FG : « gros lot pixel art selon refs ») : pixel peint par code, avatars chibi réf 3+4 (vote étape 3 fermé), Lulu autocollant peint, ambiance à l'horloge. Plan de dispatch, file : 13 lots sonnet/haiku. Préalable FG :
git branch -D lot/ecrans-monde-2-4(libère MONDE). 11/10 05:10 — dépôt resynchronisé, vue « état du jour » livrée : une fusiongit merge origin/mainrestait en suspens (conflitSTATUS.md, jamais poussé) ; résolue en gardant les deux bandeaux, puis la portepre-pusha refusé la poussée pour deux vraies raisons (STATUS 207 > 200 lignes ; chemins de lecteur Windows dans deux pages et un handoff) — corrigées (bandeaux 09/10 archivés, chemins rendus relatifs).main=origin/main=21e023ef, lint vert (2058 fichiers). Pageetat-du-jourservie sur le tailnet (/etat). Live 4.1.4, 0 PR ouverte,lots:verifyexit 0. Ménage des worktrees (17 retirables, 1 conservé) et retrait de la branche fantômelot/ecrans-monde-2-4: à la main de FG.
11/10 01:10 — 4.1.4 EN PROD (hotfix), chantier NEON-SOLARPUNK clos : 4.1.3 (écran unique néon, #549→#553) puis hotfix 4.1.4 (#555 :
auto= fenêtres libres, l'écran unique cachait le monde ; #556, #557). Reste à FG :reaper.mjs --livres --apply(ménage refusé à l'agent), retirerlot/ecrans-monde-2-4(bloque MONDE), puisMM-COULOIRS. Handoff :cloture-dispatch-413-414.
10/10 22:45 — chantier NEON-SOLARPUNK clos :
NEON-DISPOSITION(#550, écran unique sur ordinateur en néon, réglage Disposition auto/libre/unique) etNEON-CLOTURE(SPEC §9 amendée) livrés ; files réalignées sur la mesure (#549,lots:verifysans contradiction).v4.1.3EN PROD (23:35,/readyzde l'extérieur, repli 4.1.2). Ménage : les 11 worktrees restants sont livrés (squash #504–#508, #473, #494, #517, #521, #541) —reaper.mjs --livres(sauvegarde + tag d'archive) prêt,--applyen attente de FG. Page :ou-en-sommes-nous10/10.
10/10 — chantier NEON-SOLARPUNK ouvert : FG « Applique cette interface et ce style au jeu » sur la maquette JahStyle
jah-v5/etape-04-ui/fenetre-neon-solarpunk.png(= choix étape 4 et G0a). Quiz FG : refondre le thèmeneon(pas de nouveau thème, pas de serveur) ; style + disposition écran unique. Planplan-2026-10-10-neon-solarpunk, étatfile-neon-solarpunk.json:NEON-JETONS(wip) →NEON-HABILLAGE(SOCLE) →NEON-DISPOSITION(MESSAGERIE, attendMM-PDF-390) →NEON-CLOTURE.
10/10 07:29 — dispatch parallèle clos : 7 PR fusionnées (#533→#539),
main=523e5e9cvert (lint, 1341/1341). Livrés :ROUTES-AUTO(#537),DIALOGS-REGISTRE(#534),MM-PLAN(#535), écran 2 du monde en démo (#539, captures validées FG), audits dispatch (#536) et worktrees (#538 : 32 retirables, 10 à sauver). Relais DeepSeek :relais-deepseek-local. Lançables :MM-COULOIRS,COULEURS-FIGE,REALTIME-DOMAINES,MM-DIDOU-PRESENCE,MM-SPEC4(FG). Handoff :cloture-dispatch.
10/10 02:05 — méga-plan :
plan-2026-10-10-mega-dispatchordonne fin de CLEAN, COULOIRS (vague 1 à 2/6 : #530, #531) et la campagne MONDE-MODELE (un modèle, deux rendus : Canvas 2D puis WebGL écrit main ; mobile d'abord ; 23 lots, file, fichesMM-*). Portes FG : G-SPEC4, G-HUD5, G-REL, G-FUSION.
10/10 00:35 — chantier COULOIRS, vague 0 livrée (« paralléliser sans me disperser, modulariser ») : carte
.agents/couloirs.json(#527), garde de commit +npm run ou(#528),npm run quai+npm run lot(QUAI-LOT). Suite : vague 1 (chauds) puis 2 (modulariser), filefile-couloirs.json. Handoff :couloirs-vague-0.
09/10 —
v4.1.0taguée et déployée, puis 4.0.36 en PROD la veille (V3 fermée, dette GHCR soldée, T2 rouge nommé). Bandes antérieures : archive 11/10 · archive 10/10 · archive 09/10 · archive 08/10.
Campagne en cours
| Campagne | CLEAN → nouvelle majeure (numéro décidé par FG au jalon de fin). Focus : design et rendu, navigation mobile et desktop, fonctions présentes mais incomplètes |
| État des lots | docs/plans/lots/file-campagne-clean.json — seule source. V0 fermée (9 lots livre). V1 fermée : 9 lots livre (#429→#444). V2 livrée en 4.0.35 (6 lots, NAV-CARTE en 4 PR). V3 fermée (12 lots livre, #445→#500) : DEMO-PROTEGE, JETONS (0 couleur brute + accents en opt-in), PEAUX-COHERENCE, TERRAINS-LISIBLES, PANNEAU-QUETES, NEON-REGLAGES, SW-VERSION, LETS-UI, RELEASE-FLUIDE, T2-STABLE. V4 : T2-VAGUE (pret, débloqué) → RELEASE-V3 → captures et parcours. Restent surtout du design à montrer (DA-NUIT-4, ECRANS-MONDE écran 1) et MCP-VFG-FEED. Train 4.1.0 préparé (file-4.1.0 : tout livre, CI-outillage #515) |
| Agents | Claude (cloud) : le maximum des lots, plume de STATUS / CHANGELOG* / files pendant les vagues. Codex (PC fixe) : plan parallèle (CX-SPLIT, L09, démo, SW). DeepSeek et Cursor : déploiement une fois tous les lots livrés. Un worktree par agent |
| Tests | T0 check:quick par commit · T1 check:lot avant fusion (E2E affectés) · T2 check:vague (FULL en shards) à la release de vague, en fin de session. L'agent fusionne après T1 vert |
| Prod | Pas de deploy pendant les vagues. Release et deploy hors CI à la fin, selon G-REL (question au §0 du plan) |
| Bug-prod ouverts | #400 Perles, #401 Question du dimanche — corrigés et fusionnés (PR #417 et #418, main = 13be3ef) |
| CI GitHub | 9 workflows disabled_manually (quota). Ne pas réactiver sans phrase FG |
| Humain dormant | Rotator du bot ; vote DA V5 ; R2 / soirée / cutover ; allumages Lundi, Bal, Crieur (off jusqu'à « allume X ») ; push allumé (06/10) ; Boum allumée |
Live
https://jah.vfg.lol/readyz = 4.1.4 (11/10 00:47, hotfix : écran unique néon plus imposé, le monde redevient jouable ; repli 4.1.3 ; handoff). Avant : 4.1.3 (10/10 23:35, sonde de l'extérieur ; deploy hors CI, image locale, repli 4.1.2 ; écran unique néon ; handoff). Avant : 4.1.2 (10/10 12:40, sonde de l'extérieur ; deploy manuel, image locale, repli 4.1.1 ; néon solarpunk, Didou « Répond », PDF 390 ; handoff). Avant : 4.1.1 (10/10 08:20), 4.1.0 (09/10 21:28). Plus ancien : 4.0.36 (09/10 08:47) — vague V3 complète :
jetons à zéro couleur brute, néon réglable, démo protégée, quêtes Modifier/Suivre. Commit 239e6a72,
tag v4.0.36, image VPS sondée et poussée sur GHCR (sha256:431f3f36…). Repli armé 4.0.35.
Handoff : deploy-4036-live. Release précédente (4.0.35, V2) :
handoff. Tags v4.0.24→v4.0.36 posés ;
Releases GitHub absentes (FULL impossible, runners off) ; images GHCR 4.0.29, 4.0.31, 4.0.32 et 4.0.35
restent non poussées (dette résiduelle, la 4.0.36 est la première reprise). T2 de la vague : rouge
(2 flakes de charge, 0 régression, R3-07 9× plus lent en FULL) → FULL à solder au retour des runners.
Portes ouvertes
| Porte | État |
|---|---|
| Machine (produit) | Néant : S0–S19 machine en prod (S11 inclus). Restent S15-03/04 et S16 sur ordre FG |
| R2 phases 4–6 | Humain, après usage réel (compteurs Admin → Portes R2) |
| Soirée test / cutover | Humain (README) |
| Qualité | Q0–Q9 machine fusionnés ; Q9-05 / Q10 / F1–F11 hors scope |
Mécaniques du §10 (six maillons)
Tous les maillons ci-dessous sont Livré sauf mention. Aucun « Concept ». F7 (déplacer hors STATUS) : décision FG.
| Mécanique | Besoin | Représentation | Contrainte | Action | Preuve | Récompense |
|---|---|---|---|---|---|---|
| Wizz / duel (§10.2) | Signe à distance | Fenêtre, ⚡, combo | Secousse ; silence heures calmes | Rendre en 2 min | Serveur marque rendu | DUEL ; styles/badges |
| Accueil Wizz (Ann. B) | Se sentir attendu | didou + Wizz | Un geste montré | Rendre à didou | Une fois / compte | Souvenir + toast |
| Fou rire (§10.3) | Rire ensemble | Puces + badge | 3 rieurs / 10 min | Réagir 😂 | Compte distinct | Pluie + souvenir |
| GIFothèque (§10.3) | Blagues du cercle | Onglet ♥ | Village seulement | Partager / garder | Accès voisin | Fans |
| Amitié (§10.1) | Lien sans compter | Pousse / jardin | Réciprocité, plafond | Se répondre | Serveur, plafonds | Palier + Lulu |
| Styles Wizz (§10.2) | Jouer, pas harceler | Menu ▾ / badges | Déblocage rendu | Rendre | Styles refusés sinon | Emotes |
| Clins d'œil / Lulu (§10.4) | Geste sans écrire | Anim 2–3 s | Paliers | Envoyer | Serveur | Lulu à deux |
| Monde (§10.7) | Se retrouver | Place, maisons | Village honnête | Marcher, bulle | Autorité serveur | Croiser les siens |
| Ondes / fils / jardin | Vie sans spy | Onde, fil, plante | Double accord | Écrire / montrer fil | Trames inspectées | Fil / jardin |
| Gestes sync | Tope-là | Invite + étincelles | 2 cases, 2 s | Tope-là, câlin, danse | Distance + fenêtre | Amitié |
| Bonne nuit / papillon | Partir sans frein | 🌙, chenille | Résumé, pas reproche | Bonne nuit | Session close | Papillon |
| Quêtes IRL (§10.11) | S'entraider IRL | Tableau | Pas de push | Confirmer croisé | Membres seuls | Objet + étincelles |
| Rituels (§10.6) | RDV sans pression | Kiosque, carte | Caché jusqu'à l'heure | Répondre / signer | Horloge simulée | Révélation |
| Rassemblement | Trace collective | Cercle 📸 | ≥3, 60 s | Entrer le cercle | Serveur compte | Photo + cadre |
| Le Lundi | Sourire lundi | Nuage | Dissipe au 10ᵉ moment | Vivre ; ranger | Horloge | Éteint (admin) |
| Boîte à idées | Enrichir banques | #quete… | 10/j ; FG range | Écrire à didou | Étiquette + auteur | Merci privé |
| Robot Crieur | Nouvelles voisines | Tricorne / #gazette | Source + 280 car. | Lire / taire | Sources FG | Éteint (admin) |
| Talents (§10.12) | Reconnu sans score | 🌟 / ailes | Réciprocité | Vivre moments | talent_log | Titre + S12 |
| Étincelles / chantiers | But commun | Terrains | Pas de solde perso | Moments + vote | Trace moment | Lieu ouvert |
| Objets-souvenirs | Garder moments | Chambre | Visiteur = membre | Poser / offrir | Serveur | Cadeau = moment |
| Activités (§10.5) | Rire à deux | Menu / Arcade | Bornes grisées | Inviter / jouer | Tours vérifiés | Carte-souvenir |
| Perles / capsules / fantômes | Histoire | Musée, coffres | Accord / date / seul | Proposer / sceller | Muet avant | Cérémonie |
| Bal masqué (ph. 8) | Devinettes | Masques 30 min | ≥3 ; 1/j | Ouvrir / deviner | Garde hub | Éteint (admin) |
| Jam Scène | Musique à plusieurs | Micro + notes | Silence 20 s → repos | Jouer | Débit / blocage | Partition |
| Boum vendredi | Soirée récurrente | Disco 21–23 h | Allumée 0021 | Danser / ranger | Heure + village | Allumée |
| Lac | Moment d'il y a 1 an | Ponton | À deux | Pêcher | Tiers exclus | Carte |
| Cinéma | Album ensemble | Écran | Projectionniste | cinema.slide | Schéma + fuzzing | Rire |
| Serre | Amitiés anciennes | Fleurs | À soi ; ≥1 an | Visiter | Tiers exclus | Fleurs |
Appels (§11 ph. 7) : six maillons Livré (besoin → récompense) — voir CHANGELOG ph. 7.
Critères d'acceptation finaux (SPEC §15)
| # | Critère (résumé) | Machine | FG |
|---|---|---|---|
| 1 | Deux téléphones + PC : invitation → appels, push, PWA | E2E phases 1–7 ; live alpha.13 | Soirée réelle |
| 2 | Monde honnête (bulles, ondes, fils, village endormi) | monde*.test, E2E ph. 4 | Feeling village vide |
| 3 | Village : étincelles, chantier, objets | village.test, E2E ph. 5 | Premier chantier R2 |
| 4 | Quête IRL confirmée croisée | quetes.test, E2E ph. 6 | 5 quêtes R2 |
| 5 | Import legacy + « Il y a un an » | import / bascule (tests) | Cutover données réelles |
| 6 | Bonne nuit ; pas de push jeu | intégration + E2E | Compteur R2 Bonne nuit |
| 7 | Redémarrage sans perte / vague toasts | ops / backup / E2E | Constat live |
| 8 | Checklist §8 + npm audit sans haute | CI FULL | — |
| 9 | Charte §2 couverte | table §2 ci-dessous + tests | — |
| 10 | Tags v4.x.0 GHCR réversibles | release → GHCR | Tags stables S15-04 |
| 11 | Look MSN + monde (captures) | artefacts PR | Œil produit |
Charte de jeu (§2)
| Règle | Où c'est tenu |
|---|---|
| 1 Réciprocité | Wizz rendus ; amitié = réponses ; styles au rendu |
| 2 Rien ne se perd | Scores / paliers / déblocages ne baissent pas ; plante s'endort |
| 3 Pas de classement | Aucun score affiché ; palier privé au fil |
| 4 Pas de pression lecture | chat.read → ses appareils seulement |
| 5 Consentement à deux | GIF / fil : double accord |
| 6 Calme par défaut | Heures calmes ; Occupé coupe le son Wizz |
| 7 Tous les âges | Grand confort partout (monde compris) |
| 8 Toujours une sortie | Jeux rangeables ; messagerie reste |
| 9 Pull par défaut | Push seulement DM / Wizz / @ / appel adressés |
| 10 Session terminable | Bonne nuit ; assoupissement 30 min |
| 11 Jamais de faux vivant | Hors ligne = hors ligne ; démo assumée |
| 12 Loot plutôt que karma | Pas de monnaie ; étincelles collectives |
| Préambule | Toast MDP hérité non bloquant ; Nouveautés à la demande |
Couverture checklist §8
| Point | État |
|---|---|
| 1–7 | Livré (XSS/CSP/sessions/CSRF/mdp/invitations/autorisations) — tests + E2E |
| 2 CSP | Écart validé : trusted-types jah-sw (pas 'none') |
| 8 Entrées | Plafonds ph. 1–6 ; rituel 280 (pas 500 du SPEC) |
| 9–12 | Fichiers, GIF sans SSRF, fuzzing, fermé par défaut |
| 13 Vie privée | Logs sans contenu ; export/suppression ; Q1 #72 : file ponts, rétention, pouls/capsules vs bloqués ; GC fichiers réel depuis 4.0.6 (DQ11 levé, #183) |
| 14–20 | Backups, CI/préprod, autorité monde, frontières, blocage monde, preuves quête, bulles |
Actions humaines requises (FG)
Détail des préparations machine : docs/plans/suite.md §5 et fiches S15/S16 (actives) ; closes en archive/2026-09/.
- Secrets serveur /
DEPLOY_*: posé (27/09). Ponts : README › Brancher les ponts. - DNS
jah: fait.jah-prereporté. - Coturn / STUN : prêt éteint — README › Allumer le TURN (S10).
- Relire banques (quêtes, questions, Lundi, Crieur, bal) et allumer ou non.
- Dessin Lulu (5 PNG) ; recalibrage après un mois (S15-03).
- Tags stables v4.x.0 (S15-04) ; S16 sur ordre.
- Copie backups hors serveur (hebdo) ;
restore-checkmensuel. - Veille prod : configurée (#64), workflow désactivé avec les autres sur consigne FG du 05/10.
- Boum : allumée (0021) ; éteindre via Admin si besoin.
- Qualité (§5
qualite.md) — décisions FG du 29/09 :- CN-04B : on accepte — un diff de docs reste en mode
lint; le job « Lint seul » couvre déjà les liens et les chemins cités. Ne pas modifierci-plan.mjs. - Exports morts (W3) : les 148 avertissements du 29/09 sont une mesure historique. Lint du 05/10 : 1351 fichiers vérifiés, aucun constat ; ne pas reprendre ce compteur comme dette active.
- Node 24 : poste vérifié en 24.19.0 le 05/10 ; cloud C1/C2 en 24.21.0.
- Teaser : on le garde (
docs/teaser/, hors image Docker). - R4 (branches/worktrees morts) : fait le 29/09.
- F1
[variable d'environnement]; F2 erratum SPEC (docs/plans/qualite-spec-erratum.md) ; F3docs/runbooks/vs README long ; F5typescripten dev (Q9-05) ; F6 qui fusionne ; F7 six maillons hors STATUS ; F8–F11 (Q10) : villages client, retirer message, démo prod, rôlevisiteur. - Contenus : FG relit au fur et à mesure ; un mode interne de validation des textes proposés est à prévoir (à cadrer — nouvelle fonctionnalité, donc Q10).
- CN-04B : on accepte — un diff de docs reste en mode
- Q9-05 / Q10 / §7 : listés dans
qualite.md— pas démarrés ici. Ce qui reste côté machine (R2 sur décision « on nettoie », R3 et R4 faits, R5 sur accord Node 24, R6, doubles) :docs/plans/archive/2026-09-30/suite-2026-09-29.md(R1–R6, archivé) ; version sans jargon :archive/2026-09-30/reprendre-en-simple.md.
Liste de mise en service (jah.vfg.lol)
Un seul hôte (décision FG 26/09). Caddy → loopback :5240. Live = v4.0.33 (07/10, deploy manuel hors CI). Cutover : README › Cutover. Soirée test : README › Soirée test.
Plans
Actif (08/10) : campagne CLEAN · état file-campagne-clean.json · dettes et portes INDEX-ouvert. Ce qui suit est l'historique des plans.
Relais produit 04/10 (STAB live 4.0.18) : handoffs/2026-10-04-2315-cloture-session-jah-stab.md. Relais outillage visu : handoffs/2026-10-04-2316-cloture-outil-visu-avancement.md. Pack agentique : handoffs/2026-10-04-2108-pack-agentique-local.md.
Relais du 03/10 : handoffs/2026-10-03-1805-cloture-v4.0.16-tipis.md (tipis en 4.0.16 ; article Place en tipis). File 4.1.0 : docs/plans/plan-2026-10-03-suite.md ; état : docs/plans/lots/file-4.1.0.json (vague 5 : OPS-09). File STAB : docs/plans/lots/file-stabilisation-4.0.x.json (alignée live 4.0.18 à la reprise 05/10).
V5 / JahStyle : clôture integrate handoff-2026-10-01-2326-cloture-kimi-v5.md (relais 0706) — JahStyle ; porte humaine : vote DA V5 étape 3 (ouverte).
File prioritaire : STAB reprise 05/10 ; train 4.1.0 reporté pendant stabilisation : docs/plans/plan-2026-10-03-suite.md (état : docs/plans/lots/file-4.1.0.json) ; fond-2026-10-01.md ne garde que la vague C (VFGate). Périmés le 01/10 : docs/plans/archive/2026-10-01/fond-2026-09-30.md, docs/plans/hotfix-2026-09-30.md.
Méthode : docs/plans/discipline-livraison.md. Relais ponts : docs/plans/handoff-2026-10-01-ponts-identifiants.md (H1).
Actifs : docs/plans/lots/, docs/plans/README.md, suite.md, suite-S15.md, suite-S16.md, qualite.md, ci-tests.md. Closes : docs/plans/archive/2026-09/, archive/2026-09-30/, archive/2026-10-01/.
Méga-dossier des audits, revues et rapports : [chemin local] (index (réservé version locale)). Campagne audit v2 (docs, SHA 408d8e8) : [chemin local] — PR #85 fusionnée ; re-vérification livrée : contre-revue/RAPPORT-REVERIFY.md. Cadres #84 (analyse) et #82 (revue croisée V) fusionnés ; teaser vidéo PR #79 fusionnée (scripts/teaser/, hors image). Restent ouverts côté FG : N-01 CN-04B (ci:full vs diff docs) et runtime Node ≥24. Note CI : deux flakes E2E sous charge (S12-02, R7-07) — R7-07 corrigé (#87), S12-02 non reproduit.
05/10 — Clôture V2 : handoff. SHA edf06586c622dc10fedfb388c7f8134ecb7e3c0c ; digest sha256:6a625e5fb4e3d47de82b4e54320f377b6650e1bc7bf1c57459874db179feebf2. Compose résolu et Docker effectif : json-file / 10m / 3. Publication de preuve en prerelease ; production non déployée, aucune action FG requise pour la V2.
05/10 — Récupération et ménage autorisés, en cours. Plan, inventaire sauvegardé (réservé version locale). Production retenue ; aucun nouveau tag.