STATUS — JahMessenger-admin-v2-a
Article généré automatiquement depuis le STATUS.md de JahMessenger-admin-v2-a — 2026-10-06. Les chemins locaux, les hôtes internes et les noms de variables ont été neutralisés.
STATUS
Session
06/10 ~02:30 — 4.0.24 EN LIVE : hotfix papillon déployée à la main, vu de ses yeux. Handoff. Chaîne hors CI (runners off) : release 4.0.24 (#348 fusionnée) + #347 (trace) → image
ghcr.io/fgdidou/jahmessenger:4.0.24@sha256:445cb5ab…, construite sur le VPS (le poste n'a pas Docker), poussée GHCR (PAT FGwrite:packages), sondée à l'écart (/readyz4.0.24) puisbash deploy.sh jah 4.0.24 --backup: backupjah-20261006-001959, voile posé avant l'arrêt, hub Healthy,/readyz4.0.24, repli armé vers 4.0.23. Sonde externe :/readyz4.0.24,/ws401,RestartCount=0,LogConfigjson-file/10m/3 (OPS-09). Maintenance posée/levée en live pour la mue (chenille → cocon → papillon). Issue #343 fermée. Notif didou + Telegram envoyée (ingress,notify_telegram:true, relais VFGate confirmé). Article 4.0.24 : déployer à la main, et voir le papillon (catalogue 736). ⚠️ PAT FG à révoquer (passé par le chat).
06/10 ~01:50 — Suite du dispatch : preuve BUG-PAPILLON sur le clone, AUDIT-QG clos, worktrees qualifiés, BLOG-01/02 publiés. Handoff. BUG-PAPILLON (#344 déjà sur
main) : preuve visuelle sur le clone prod — chenille → cocon → papillon pendant un arrêt de maintenance, et bandeau « Reconnexion… » sans overlay hors maintenance ; chemin réelserver.close()→realtime.shutdown()exercé (les signaux n'aboutissent pas par TerminateProcess sous Windows → harnais local). Captures 1280×800 + 390×844 →handoffs/captures/2026-10-06/+preuve-papillon.json; issue #343 prête à fermer. AUDIT-QG : P-04 clos (0dead-export, cliquet à zéro) ; P-06 confirmé (11 lectures / 0 écriture) ; batterie unité+intégration rejouée Node 24.19 — 1068 tests, 1066 ✓, 0 ✗, 2 skip ; addendum daté dans REGISTRE + SYNTHESE. Worktrees : inventaire corrigé (lemergeddu 05/10 testait le HEAD du dépôt, toujours « oui ») → 10 worktrees à commits uniques, décision proposée (retirer 13, conservert1b+L08+racine) ; 2 worktrees non protégés sauvés par refs. Retrait = action FG (§14). BLOG-01/02 publiés : ciblé ≠ FULL + Retours — catalogue 735, flux 476, pages HTTP 200 ; RAPPORT 0/0 (divergence levée).
06/10 ~01:27 — Ordonnanceur : sync propre, BUG-PAPILLON livré (PR #344), HYGIENE fait. Handoff. V0 sync : local divergé
19/1et 17 fichiers sales →0/0propre surorigin/main(6339f4d) ; hybride (restesjah-tools+ skills) mis de côté en stash, rien d'unique perdu. BUG-PAPILLON : cause =shutdown()fermait toujoursreason:'restart'; rouge d'abord (actual 'restart' / expected 'maintenance') puis correctifsrc/realtime/realtime.mjs; porte PR verte (1068 tests, 0 échec, 2 skip env) ; PR #344 (issue #343), CI non exécutée (workflows off). HYGIENE : worktrees 48 → 17, branches 89 → 27 (63 purgées) ; L08 préservé ; pièges ignorés (.metrics,.claude, logs) sauvés dans../_hygiene-preserved-1006/;.tools(133 Mo Node portable) non copié (re-téléchargeable). Reste : fusionner #344, qualifier les 15 worktrees non fusionnés. Clôture (06/10 ~01:29) : #344 fusionnée par FG pendant la session (mergefd3111a, correctif surmain, pas encore déployé) ; #345CLEAN, en attente de fusion FG ; issue #343 à fermer après vérification ; article possible inscrit au handoff (pas de mandat).
06/10 ~01:00 — Clôture session (outillage visuel + blog + dispatch). Handoff. Résumé : plan dispatchable (#333, file 4.1.0 remise vraie) ; hub + matrices de priorités + nav partagée + instantané régénérable (#334–#338) ; D1 tranché = GitHub privé → dépôt dédié
jah-tools(#339, pointeur #340) ; article publié Le worktree était un détour. 0 PR ouverte. Prochaine action : dispatcher les P0BUG-PAPILLON∥HYGIENE.
06/10 — Outillage visuel sorti vers un dépôt dédié (
jah-tools). Décision FG D1 = GitHub privé. L'outillage d'organisation (hub, matrices de priorités, kanban des lots, « où on bute », état des vues STAB) vit désormais dans jah-tools (https://github.com/FGDidou/jah-tools, privé ; dépôt voisin) — retiré de JahMessenger par #339. Ici : pointeurdocs/plans/outillage-deplace.md+npm run tools. Écrire dansjah-toolsdésormais :npm run boards(instantané),npm run metrics,npm run stab-vues. JahStyle (design) rejoint le même espace de travail VS Code (JahMessenger.code-workspace) pour homogénéiser l'aspect.
06/10 — Outillage agents : deux séances « hors voie normale » outillées (hors produit). Ajout de deux paires skill + agent découvrables (skill
.agents/skills/<nom>/SKILL.md, agent.github/agents/<nom>.agent.md), sans aucun code produit ni dépendance (§12).clone-prod-local(+ agentJah Cloneur Prod) : monte un Jah local sur une copie jetable des données de prod (village PTR « à la main ») — mesure, copie lecture seule du backup +filesdejah-hub-1, mot de passe local, piège CRLF des migrations, démarrage surdata/clone-prod/, sonde/readyz, connexion, destruction. Prouvé en réel le 06/10 : Jah 4.0.23 local sur backupjah-20261005-215910-142.db, connexionfg@jahOK, vrais contacts/salons visibles.local-player(+ agentJah Joueur Local) : joue dans l'interface locale à la place de FG via les outils navigateur (cliquer, écrire, naviguer, capturer), local seulement, sans secret, un geste vérifié à la fois, bug = reproduction (pas correctif). Indexés dans.agents/README.md,CLAUDE.md,AGENTS.md,.cursor/rules/jah-core.mdc. PR #337 (brouillon, basemain, mode CIaffected). Lint vert (1363 fichiers). Handoff.
Plan dispatchable (05/10) :
docs/plans/plan-2026-10-05-dispatch-parallele.md— lots priorisés pour agents parallèles. Constat : 48 worktrees pour ~4 chantiers utiles ; 21 branches déjà fusionnées ; la file 4.1.0 marquaitpret7 lots déjà live (corrigés enlivrece jour). P0 =BUG-PAPILLON(overlay de maintenance, test rouge d'abord) ∥HYGIENE(recycler worktrees/branches). Gelé : train 4.1.0 (L07/L08/L09/L10) et portes humaines. PR #332 = superseded (à fermer). Un agent = un lot = un worktree réutilisé.
Consigne FG du 05/10 — ménage : quota Actions de 2000 minutes épuisé ; les dix workflows sont désactivés manuellement (état GitHub vérifié). FG effectue toutes les fusions de cette passe. L’agent prépare les lots et preuves locales, sans réactiver les workflows, lancer un run, créer un tag ou déployer. Aucun vert local ne vaut préprod runner. Nouvelle instruction FG : issues CI/CD et métriques de runs mises de côté pendant cet arrêt.
Avancement : PR #326 documentaire fusionnée par FG (06ff944) ; sauvegardes vérifiées. Reprises de releases immutables intégrées par #327 (df64a81). Archives intégrées par #329 (7c263b7). Concurrence et garde d’état reprises dans une PR locale regroupée, avec bilan du ménage. Porte locale sur la reprise finale : 602 unitaires réussis, zéro échec, deux contrôles Docker non exécutés ; lint/audit verts en 38,8 s. Restitution des 16 worktrees modifiés et 35 fichiers vérifiée. #317 fermé sur preuve existante. 33 worktrees et 31 branches retirés après preuve ; 48 worktrees conservés. Root sale et L08 inchangés ; junctions et fichiers ignorés non qualifiés conservés. Handoff de reprise. Répartition local/cloud proposée : local récupération/M3/ménage, cloud C1/C2 intégré par #330, scopes exclusifs ; compression des PR cohérentes autorisée par FG, une PR à la fois. #230/#312/#313 réconciliées et fermées ; #316 clôturée ; #318 ouverte jusqu’à fusion M3 ; #319 ouverte pour Q-I différé, Q-G cloud intégré par #330.
05/10 — Issues CI-flux / préprod en pause (#312–#315) : label
pause:ci-minutes, ferméesnot_planned(runners off). PAT cloud documenté dansdocs/plans/cloud-pat-droits.md(Issues R/W prouvé ; Actions pas encore). Attente plan agent « Bilan » pour travail parallèle hors CI.
05/10 — Outillage : skill
hotfix-hors-cidéposé (hors produit). Séance d'hotfix prod sans CI/CD documentée en skill complet (.agents/skills/hotfix-hors-ci/SKILL.md) : autorisation FG (porte §14 serveur), mesure d'état, gate locale, image sondée à la main,deploy.sh jah <v> --backup,/readyz, retour arrière. Aucun déploiement effectué à ce stade (4.0.23 déployée juste après, cf. entrée ci-dessous). Handoff. Lint vert (1352 fichiers).
05/10 ~23:43 —
hotfix-hors-ciTrack A exécutée : 4.0.23 en live (deploy manuel, runners off). Autorisation FG (« déploie à la main »). Mesures : live 4.0.22, hubjah-hub-1healthy,jah.deployed=4.0.22 (repli), image 4.0.23 absente du serveur, GHCR privé (unauthorized).compose.ymlserveur sans OPS-09 →scpdes 5 fichiersops/*(5 empreintes SHA256 serveur = locales).docker login ghcr.io(jetonghread:packages, piped) →bash deploy.sh jah 4.0.23 --backup: pull digestsha256:6a625e5f…(= manifeste), backupjah-20261005-214254-588.db, voile, hub Healthy,/readyz4.0.23, re-up→docker logout. Sonde externe :/readyz4.0.23,/ws+Origin 401, CSP conforme ;RestartCount=0, pas de boucle. OPS-09 désormais appliqué en prod (json-file/10m/3). Repli =bash deploy.sh jah 4.0.22. Handoff.
05/10 — À VÉRIFIER (mandat du relais, non tranché) : l'overlay « papillon » de maintenance ne s'affiche pas pendant une mise à jour. Constat par lecture du source (pas une mesure) : un
deploy.shpose le voile par la CLI (processus séparé, hub non notifié) puis redémarre (reason: 'restart') ; côté client,events.mjs:197ne montre l'overlay que sireason === 'maintenance', etrealtime.mjs:130metreconnecting(bandeau) pour unrestart— comportement voulu pour un arrêt propre (testé). Donc l'habitant voit « Reconnexion… », jamais chenille → cocon → papillon. Chemin complet + pistes A/B/C dans le handoff. Prochaine action : test rouge d'abord (scénario pose CLI + restart), ticketbug-prod. Ne pas livrer de correctif sans rouge reproduit.
05/10 ~23:59 — Agent
Jah Déployeur Hors-CItesté en réel ; 4.0.24 bloquée (jeton GHCR read-only). Agent créé (.github/agents/jah-deployeur-hors-ci.agent.md). Test : aller-retour 4.0.23 → 4.0.22 → 4.0.23 vert surjah.vfg.lol(retour arrière prouvé, EXIT=0 chaque étape) ; garde fail-closed prouvée (deploy.sh jah 4.0.24→unauthorized, EXIT=1, prod intacte). 4.0.24 non déployée : elle n'existe pas — pas de bump, pas de tag, pas d'image. Et publier une nouvelle image est impossible : le jetonghn'a queread:packages(sondedocker push→permission_denied). Un vrai test 4.0.24 exigewrite:packages(décision FG, §14) + un contenu de version. Live inchangé 4.0.23. Article publié (blog vfjah, catalogue 730, dérive 0/0). Ping Telegram : non envoyé — aucun jeton dans la session (TELEGRAM_NOTIFY_*absent, VFGate 401, FG_Pulse 4330 éteint) → repli fichier_ssot/monitoring-events.jsonl(rattrapable). Handoff.
| Porte machine | Live 4.0.24 (06/10, deploy manuel hors CI) : correctif BUG-PAPILLON promu à la main. /readyz 4.0.24 ; image ghcr.io/fgdidou/jahmessenger:4.0.24 @ sha256:445cb5ab…. Backup jah-20261006-001959 ; repli deploy.sh jah 4.0.23. OPS-09 appliqué (json-file / 10m / 3). Campagne STAB 13/13 en 4.0.22. TodoStatut : BLOG-01/02 publiés ; issue #343 fermée. #246 reste ouverte pour OPS-02 (sauvegardes hors serveur). |
| Porte V2 | Post-STAB autonome terminé : quatre PR #322–#325 fusionnées ; tag v4.0.23 sur main, FULL 1332/1332, zéro skip, image préprod publiée sous hold. Preuve, run. Aucun deploy CI ; promue en live par deploy manuel (05/10) ; live 4.0.23. OPS-09 vérifié runner puis appliqué en prod. |
| Live | v4.0.24 (06/10 : correctif BUG-PAPILLON, deploy manuel) — /readyz 4.0.24. Précédents : 4.0.23, 4.0.22, 4.0.21, 4.0.20. |
| File machine (agents) | STAB prod 13/13 tous livre en live (00–10). Vague 5 file 4.1.0 : OPS-09 livre (deploy manuel 05/10) ; L08 wip-local (ne pas toucher). |
| Hors live | L08 (JahMessenger-L08) ; stash AUDIT. PRs dormantes fermées : #262, #264, #278. Canal Telegram agent→FG à réparer (jetons locaux 401 ; §14). |
| Pont ops | Gate appliqué ; #172 en main ; preuve DM Telegram→Jah = Lot 2 (auto) ; rotator token reporté (rappel ci-dessous, non bloquant) — docs/plans/fond-2026-10-01.md |
| Humain dormant (pas de ping ; agent gère rappels) | Rappel rotator bot (ordre FG 01/10 : FG un jour) ; rappel vote DA V5 avatars A/B/C (gelé) ; œil 4.0.8 ; R2 / soirée / cutover ; allumages Lundi/Bal/Crieur/push restent off jusqu’à phrase « allume X » (pas de sollicitation) ; Boum allumée (0021) ; F1–F11 / Q9-05 / Q10 |
05/10 — Campagne STAB 13/13 en live 4.0.22. STAB-10 métriques (#305) : modes CI, coût des relances, lots campagne ; viewer docs/metrics/etat.html ; fix main rouge tags (fetch-tags). FULL eb6592e vert → release v4.0.22 (preuve parent FULL) → deploy 37266429140. /readyz 4.0.22. REGISTRE anomalies STAB → ferme. Relais : handoffs/2026-10-05-0510-cloture-stab10-live-4022.md.
05/10 — Audit + captures clôture (Cursor Cloud). Instantané stab-vues 4.0.22 / 13/13, métriques strict, kanban, PNG sous handoffs/captures/2026-10-05/. Audit global qualité / exécution / agentique : [chemin local] (réservé version locale). Handoff : handoffs/2026-10-05-0720-audit-cloture-campagne-stab.md. Blog public /jah-stab-vues encore à republier (hors porte).
05/10 — STAB-09 en live 4.0.21. Mesure d'abord (HUD 250 ms travaillant onglet caché) → correctif (#298) → FULL e7456e8 vert → release --ci-verified. Deux rouges préexistants qualifiés au passage (stab-vues environnement-dépendant, .catch d'un test d'appels). Live 4.0.21. Suite : STAB-10 (cloud) — fait en 4.0.22.
05/10 — PR-B en live 4.0.20 (handoff interrompu). #287 fusionnée ; FULL vert 74be1aa ; release --ci-verified ; deploy Release 37254532148 success ; /readyz 4.0.20. Leçon agents #291. Relais : handoffs/2026-10-05-0215-prb-release-interrompu.md.
05/10 — Chantier CI flux (hors porte STAB). Plan SSOT docs/plans/ci-flux-preprod-light.md (lots 1–8) — lot 0 livré : #301 fusionnée (fbf85ae). Clôture session handoffs/2026-10-05-0652-cloture-session-ci-flux-preprod-light.md. Relais remplacé par V2 : aucune collecte de stabilité ni skip dans FULL ; voir le plan de récupération et ménage du 05/10.
05/10 — TodoStatut blog a-publier. Articles prêts dans Jah (branche cursor/article-cible-ne-vaut-pas-full-da50) : méthode ciblé ≠ FULL + produit Retours ; brouillon CI flux 2026-10-05-jah-ci-flux-preprod-light.md. Prochaine passe : node scripts/post.mjs … --live depuis RAPPORT (sans push auto).
05/10 ~03:40 — clôture session (outillage visu + lecture). Hors porte machine, aucun code produit. Page publique blog.vfg.lol/jah-stab-vues scindée en état live (régénérable, npm run stab-vues) + instantané 04/10 conservé (vues 1–8). scripts/stab-vues.mjs + 6 tests verts. Dépôt local resynchronisé : main était divergé (ahead 1 périmé / behind 34) → réaligné sur origin/main 19a7287, sauvegarde sur backup/main-99d3b6a-2026-10-05 ; remote fantôme cloud-agent-notes purgé. Inventaire du travail laissé en worktree : 74 worktrees, 24 avec du travail, 14 avec commits non fusionnés, 10 branches au remote supprimé — audit rejouable [chemin local]. Aucun nettoyage fait (§14). Relais : handoffs/2026-10-05-0340-cloture-stab-vues-inventaire.md.
05/10 ~20:30 — PÉRIMÈTRE OUTILLAGE VISUEL (hors produit), clôture WIP. À lire comme une zone à part du dev produit Jah : ce lot ne touche que les vues d'avancement. Générateurs : npm run stab-vues (état live + compteurs CI + instantané daté 05/10 : tags réels × lots par version) et npm run chantier-lots (kanban depuis les files). Blog à jour : /jah-stab-vues (instant 05/10, 04/10 archivé), /jah-lots, hub + carte de l'outillage /prototypes/apercus/2026-10-05-cartographie-outillage-visuel.html. Constat : 3 « chantier des lots » dont 2 manuels jamais mis à jour → un dépôt parallèle dédié est la réponse. PR #304 (instantané + carte, diff additif). Prochain handoff : créer le repo parallèle dédié à ces outils et y déplacer scripts/{stab-vues,chantier-lots,metrics*} + pages + tests ; JahMessenger ne garde qu'un pointeur. Relais : handoffs/2026-10-05-2030-cloture-wip-outillage-visuel.md.
Qualité : Q0 #69, Q1 #72, Q2 #73, Q3 #70, Q4 #71, Q5 #74, Q6 via #78 (#77 fermée), Q7 #78, Q8 #75, Q9 #76, J6-05 #80, lint Q5 #81.
Qualité : Q0 #69, Q1 #72, Q2 #73, Q3 #70, Q4 #71, Q5 #74, Q6 via #78 (#77 fermée), Q7 #78, Q8 #75, Q9 #76, J6-05 #80, lint Q5 #81.
Session post-STAB V2 — autonome, production retenue
Instruction FG : plan V2. V2 clôturée : #322–#325 fusionnées, tag v4.0.23, FULL et image verts au premier essai ; prod retenue en 4.0.22 à la clôture V2, promue ensuite en live par deploy manuel (4.0.23 le 05/10, 4.0.24 le 06/10 — bandeau Session, handoff 0230). Live actuel = 4.0.24. V1 archivée ; aucune porte humaine ajoutée.
| Lot | Besoin | Représentation | Contrainte | Action | Preuve | Récompense |
|---|---|---|---|---|---|---|
| A (Vérifié préprod) | PR moins coûteuses | Plan CI/jobs | FULL tag main ; hold | Adapter outils/règles | Contrats rouges puis verts + runner | Fusion courte fiable |
| B (Vérifié préprod) | Logs bornés | Compose hub | Aucun serveur modifié | Rotation 10m × 3 | Résolu + inspect runtime | Stockage borné après promotion |
| C (Prouvé) | Parcours démontré | Tag/SHA/digest/runs | Même artefact ; live 4.0.22 à la clôture V2 | Préparer, fusionner, taguer | FULL + image préprod + manifeste | Preuve récupérable sans FG |
Périmètre A : scripts check/ci-plan/release/tag-proof, workflows CI/release/image/promotion/deploy, tests de contrat et règles associées. Aucun code produit ni nouvelle dépendance. A : #323 fusionnée, run 37284420072 court + préprod verts, FULL skipped. Périmètre B : ops/compose.yml, preuve avant/après, notes et relais ; aucun serveur modifié. Critère B : logging résolu et effectivement appliqué à json-file / 10m / 3 sur runner. #246 reste ouverte jusqu’à production.
Live
https://jah.vfg.lol/readyz = 4.0.24 (06/10 : correctif BUG-PAPILLON, deploy manuel hors CI — handoff). Image ghcr.io/fgdidou/jahmessenger:4.0.24 @ sha256:445cb5ab…. Backup jah-20261006-001959 ; repli deploy.sh jah 4.0.23. OPS-09 (json-file / 10m / 3). Précédents : 4.0.23, 4.0.22, 4.0.21, 4.0.20. Histoire : CHANGELOG.md, CHANGELOG-USER.md, docs/plans/archive/2026-09/.
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.24 (06/10 ; correctif BUG-PAPILLON, deploy manuel hors CI — handoff). Cutover : README › Cutover. Soirée test : README › Soirée test.
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.