blog.vfg.lol

STATUS — VFJah_Messenger — 2026-10-10

STATUS — VFJah_Messenger

_Article généré automatiquement depuis le STATUS.md de VFJah_Messenger — 2026-10-10. Les chemins locaux, les hôtes internes et les noms de variables ont été neutralisés._

STATUS

Session

10/10 07:29 — dispatch parallèle clos : 7 PR fusionnées (#533→#539), main = 523e5e9c vert (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-dispatch ordonne 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, fiches MM-*). 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), file file-couloirs.json. Handoff : couloirs-vague-0.

09/10 21:28 — v4.1.0 EN PROD (deploy manuel hors CI, /readyz = 4.1.0, commit 3dc79c7d, image locale : GHCR en dette, repli armé 4.0.36). Handoff : deploy-410-live. CAPTURES-PROD et PARCOURS-1 lancés.

09/10 16:55 — v4.1.0 TAGUÉE (jalon de fin de la campagne CLEAN). FG : « reprends et finis pour release 4.1.0 jalon », puis « fais toutes les fusions en autonomie, jusqu'à release prête à deploy ». Numéro 4.1.0 tranché par FG. Périmètre « design + serveur ». 10 PR fusionnées par l'orchestrateur (merge commits, fichiers vérifiés, T1 vert chacune) : #512 DA-NUIT-4, #513 FIX-AUDIT-ACTEUR, #514 FIX-INVITE-BLOQUE (clos par la mesure), #515 CI-outillage, #516 ECRANS-MONDE écran 1, #517 RF-TEMPS (repris d'un worktree mort), #518 RF-CONTACTS, #519 RF-WORLD-SRV, #520 RF-COUCHES, #521 RF-MONDE-VUE (reste « walk »). MCP-VFG-FEED en revue (VFVFGPT#45, touche le VPS : FG fusionne). T2 : 0 régression (rouge de charge, 59 px préexistants en 4.0.36) ; tag v4.1.0 = 3dc79c7d. Reste : deploy (FG), puis CAPTURES-PROD, PARCOURS-1, HUD5-RELECTURE, JALON-FIN. Handoff : release-410-prete.

09/10 14:14 — WIP : comparateur des designs livré, DA-NUIT-4 codé, T1 coupé (handoff). 09/10 09:03 — D4 tranchée (peaux ADOPTÉES, accents → ACCENTS-VISIBLES livré 2b82e488) ; faute de plume réparée : lots:verify confronte les états, pas l'inventaire (handoff).

09/10 08:47 — 4.0.36 EN PROD (V3 fermée, dette GHCR soldée, T2 rouge nommé) ; le 08/10, JALON J0 (début de la campagne CLEAN → majeure). Sessions et bandeaux antérieurs : archive 09/10 · handoff 08:47 · archive 08/10.

Campagne en cours

CampagneCLEAN → 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 lotsdocs/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)
AgentsClaude (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
TestsT0 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
ProdPas 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 GitHub9 workflows disabled_manually (quota). Ne pas réactiver sans phrase FG
Humain dormantRotator 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.0 (09/10 21:28, sonde de l'extérieur ; deploy manuel, image locale, repli 4.0.36). Précédent : 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–6Humain, après usage réel (compteurs Admin → Portes R2)
Soirée test / cutoverHumain (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écaniqueBesoinReprésentationContrainteActionPreuveRécompense
Wizz / duel (§10.2)Signe à distanceFenêtre, ⚡, comboSecousse ; silence heures calmesRendre en 2 minServeur marque renduDUEL ; styles/badges
Accueil Wizz (Ann. B)Se sentir attendudidou + WizzUn geste montréRendre à didouUne fois / compteSouvenir + toast
Fou rire (§10.3)Rire ensemblePuces + badge3 rieurs / 10 minRéagir 😂Compte distinctPluie + souvenir
GIFothèque (§10.3)Blagues du cercleOnglet ♥Village seulementPartager / garderAccès voisinFans
Amitié (§10.1)Lien sans compterPousse / jardinRéciprocité, plafondSe répondreServeur, plafondsPalier + Lulu
Styles Wizz (§10.2)Jouer, pas harcelerMenu ▾ / badgesDéblocage renduRendreStyles refusés sinonEmotes
Clins d'œil / Lulu (§10.4)Geste sans écrireAnim 2–3 sPaliersEnvoyerServeurLulu à deux
Monde (§10.7)Se retrouverPlace, maisonsVillage honnêteMarcher, bulleAutorité serveurCroiser les siens
Ondes / fils / jardinVie sans spyOnde, fil, planteDouble accordÉcrire / montrer filTrames inspectéesFil / jardin
Gestes syncTope-làInvite + étincelles2 cases, 2 sTope-là, câlin, danseDistance + fenêtreAmitié
Bonne nuit / papillonPartir sans frein🌙, chenilleRésumé, pas reprocheBonne nuitSession closePapillon
Quêtes IRL (§10.11)S'entraider IRLTableauPas de pushConfirmer croiséMembres seulsObjet + étincelles
Rituels (§10.6)RDV sans pressionKiosque, carteCaché jusqu'à l'heureRépondre / signerHorloge simuléeRévélation
RassemblementTrace collectiveCercle 📸≥3, 60 sEntrer le cercleServeur comptePhoto + cadre
Le LundiSourire lundiNuageDissipe au 10ᵉ momentVivre ; rangerHorlogeÉteint (admin)
Boîte à idéesEnrichir banques#quete…10/j ; FG rangeÉcrire à didouÉtiquette + auteurMerci privé
Robot CrieurNouvelles voisinesTricorne / #gazetteSource + 280 car.Lire / taireSources FGÉteint (admin)
Talents (§10.12)Reconnu sans score🌟 / ailesRéciprocitéVivre momentstalent_logTitre + S12
Étincelles / chantiersBut communTerrainsPas de solde persoMoments + voteTrace momentLieu ouvert
Objets-souvenirsGarder momentsChambreVisiteur = membrePoser / offrirServeurCadeau = moment
Activités (§10.5)Rire à deuxMenu / ArcadeBornes griséesInviter / jouerTours vérifiésCarte-souvenir
Perles / capsules / fantômesHistoireMusée, coffresAccord / date / seulProposer / scellerMuet avantCérémonie
Bal masqué (ph. 8)DevinettesMasques 30 min≥3 ; 1/jOuvrir / devinerGarde hubÉteint (admin)
Jam ScèneMusique à plusieursMicro + notesSilence 20 s → reposJouerDébit / blocagePartition
Boum vendrediSoirée récurrenteDisco 21–23 hAllumée 0021Danser / rangerHeure + villageAllumée
LacMoment d'il y a 1 anPontonÀ deuxPêcherTiers exclusCarte
CinémaAlbum ensembleÉcranProjectionnistecinema.slideSchéma + fuzzingRire
SerreAmitiés anciennesFleursÀ soi ; ≥1 anVisiterTiers exclusFleurs

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é)MachineFG
1Deux téléphones + PC : invitation → appels, push, PWAE2E phases 1–7 ; live alpha.13Soirée réelle
2Monde honnête (bulles, ondes, fils, village endormi)monde*.test, E2E ph. 4Feeling village vide
3Village : étincelles, chantier, objetsvillage.test, E2E ph. 5Premier chantier R2
4Quête IRL confirmée croiséequetes.test, E2E ph. 65 quêtes R2
5Import legacy + « Il y a un an »import / bascule (tests)Cutover données réelles
6Bonne nuit ; pas de push jeuintégration + E2ECompteur R2 Bonne nuit
7Redémarrage sans perte / vague toastsops / backup / E2EConstat live
8Checklist §8 + npm audit sans hauteCI FULL—
9Charte §2 couvertetable §2 ci-dessous + tests—
10Tags v4.x.0 GHCR réversiblesrelease → GHCRTags stables S15-04
11Look MSN + monde (captures)artefacts PRŒil produit

Charte de jeu (§2)

RègleOù c'est tenu
1 RéciprocitéWizz rendus ; amitié = réponses ; styles au rendu
2 Rien ne se perdScores / paliers / déblocages ne baissent pas ; plante s'endort
3 Pas de classementAucun score affiché ; palier privé au fil
4 Pas de pression lecturechat.read → ses appareils seulement
5 Consentement à deuxGIF / fil : double accord
6 Calme par défautHeures calmes ; Occupé coupe le son Wizz
7 Tous les âgesGrand confort partout (monde compris)
8 Toujours une sortieJeux rangeables ; messagerie reste
9 Pull par défautPush seulement DM / Wizz / @ / appel adressés
10 Session terminableBonne nuit ; assoupissement 30 min
11 Jamais de faux vivantHors ligne = hors ligne ; démo assumée
12 Loot plutôt que karmaPas de monnaie ; étincelles collectives
PréambuleToast MDP hérité non bloquant ; Nouveautés à la demande

Couverture checklist §8

PointÉtat
1–7Livré (XSS/CSP/sessions/CSRF/mdp/invitations/autorisations) — tests + E2E
2 CSPÉcart validé : trusted-types jah-sw (pas 'none')
8 EntréesPlafonds ph. 1–6 ; rituel 280 (pas 500 du SPEC)
9–12Fichiers, GIF sans SSRF, fuzzing, fermé par défaut
13 Vie privéeLogs 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–20Backups, 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/.

  1. Secrets serveur / DEPLOY_* : posé (27/09). Ponts : README › Brancher les ponts.
  2. DNS jah : fait. jah-pre reporté.
  3. Coturn / STUN : prêt éteint — README › Allumer le TURN (S10).
  4. Relire banques (quêtes, questions, Lundi, Crieur, bal) et allumer ou non.
  5. Dessin Lulu (5 PNG) ; recalibrage après un mois (S15-03).
  6. Tags stables v4.x.0 (S15-04) ; S16 sur ordre.
  7. Copie backups hors serveur (hebdo) ; restore-check mensuel.
  8. Veille prod : configurée (#64), workflow désactivé avec les autres sur consigne FG du 05/10.
  9. Boum : allumée (0021) ; éteindre via Admin si besoin.
  10. 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 modifier ci-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) ; F3 docs/runbooks/ vs README long ; F5 typescript en dev (Q9-05) ; F6 qui fusionne ; F7 six maillons hors STATUS ; F8–F11 (Q10) : villages client, retirer message, démo prod, rôle visiteur.
    • Contenus : FG relit au fur et à mesure ; un mode interne de validation des textes proposés est à prévoir (à cadrer — nouvelle fonctionnalité, donc Q10).
  11. 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.

source markdown

Concepts de cet article

handoffgardeworktreeLes OndesVPSVFVFGPTVFGateCaddy

Partage le plus de concepts avec