Ce billet est un mode d'emploi pour reprendre le dashboard en local, tel que le code du dépôt le fait le 3 octobre 2026. Il ne décrit pas la production.
Ce qui n'est pas fait : pas de rotation de token, pas de déploiement prod. La PR 39 n'est pas à tenir pour mergée. Si l'écran que tu as sous les yeux n'a pas ces adresses, tu n'es pas sur ce code-là.
1. Ouvrir la fiche
Le dashboard web est sur le port 3000. L'API est sur le port 3001. Les deux doivent tourner : sans l'API, les pages owner restent fermées (la garde refuse si elle ne peut pas vérifier la session).
- Ouvre
http://localhost:3000. - Tu arrives sur la fiche publique, en lecture seule. Le bandeau a un bouton Connexion. Les liens Journal et Admin sont masqués tant que tu n'es pas owner.
La fiche publique ne demande pas de mot de passe. Les pages owner, si.
2. Ouvrir la session owner
La passphrase est la valeur de la variable d'environnement VFG_SESSION_SECRET. Ce billet ne la contient pas. Ce n'est pas le token API, et ce token n'est pas écrit dans /env.js par défaut (il n'y apparaît que si VFG_EXPOSE_API_TOKEN_TO_BROWSER est explicitement vrai).
Deux façons d'arriver au même formulaire :
- Sur l'accueil, clique Connexion.
- Ou tape une page owner, par exemple
http://localhost:3000/journal. Sans cookie de session, le serveur répond 302 vers/?login=1. L'accueil se recharge et la modale « Connexion propriétaire » s'ouvre seule.
Dans la modale, saisis la passphrase et valide. Le navigateur reçoit le cookie vfg_session avec Path=/ (HttpOnly, SameSite=Strict). La page se recharge sur place : si tu venais d'une redirection, tu restes sur l'accueil. La garde ne mémorise pas l'adresse d'origine. Une fois le bandeau en owner, les liens Journal et Admin apparaissent : c'est le moment d'y aller.
Une passphrase fausse répond « Passphrase incorrecte ». Trop de tentatives : attends quelques minutes (plafond côté API).
Pour refermer la session, le bouton de déconnexion poste vers /api/auth/logout et recharge la fiche publique.
3. Deux zones, six pages
Une fois owner, la navigation tient en deux barres.
Journal
| Onglet | Adresse | Rôle |
|---|---|---|
| Tableau | /journal | vue du journal |
| Gestion | /journal/gestion | quêtes à gérer |
| À venir | /journal/a-venir | quêtes à venir |
Admin
| Onglet | Adresse | Rôle |
|---|---|---|
| Stats & règles | /admin | stats et règles |
| Statuts | /admin/statuts | effets de statut |
| Réglages | /admin/reglages | réglages, dont les ports |
Les anciennes adresses répondent 301 vers les nouvelles :
/quest-journal→/journal/quests→/journal/gestion/quests-upcoming→/journal/a-venir/didoumanoufg→/admin/status-effects→/admin/statuts/settings→/admin/reglages
Les variantes .html suivent les mêmes cibles. Un signet ancien reste donc utilisable, à condition d'être déjà owner : sans session, la garde répond 302 vers /?login=1 avant la redirection de confort.
4. TV, bureau, mobile
Le layout est en version 3 : un jeu de panneaux par mode (tv, desktop, mobile). L'ordre, la visibilité, les titres et les couleurs d'un mode sont le document partagé (serveur, une seule ligne). Changer le layout TV ne réécrit pas le layout bureau.
Pour forcer un mode, ajoute le paramètre sur l'adresse de la page déjà ouverte, par exemple :
http://localhost:3000/?mode=tvhttp://localhost:3000/?mode=desktophttp://localhost:3000/?mode=mobile
Le choix est mémorisé sur cet appareil. Le badge d'en-tête affiche TV, DESKTOP ou MOBILE. Sans paramètre, l'appareil reprend le mode mémorisé. ?mode=auto efface cette mémoire : en dessous de 600 px de large, mobile ; au-dessus, bureau. Le mode TV n'est jamais choisi tout seul.
Ce qui ne voyage pas d'un écran à l'autre : les panneaux repliés, le zoom, la caméra du hub (preset, île active, vitesse, lissage), le zoom d'affichage, l'onglet courant. Ces réglages restent dans le navigateur de la machine. Replier un panneau sur le téléviseur ne le replie pas sur le portable, et n'envoie pas d'écriture de layout.
La scène TV est calée sur 800×600, puis mise à l'échelle dans la fenêtre.
5. Lire la doc, et où est le gate
Pour lire la doc VFG, le skill d'arbre de connaissance demande le MCP vfg-docs avant de fouiller les fichiers. Le service qu'il nomme est mcp-docs.vfg.lol. Les lectures sont vfg_boot_context, vfg_search_docs, vfg_ssot_get, vfg_graph_neighbors. Un résultat vide n'est pas une preuve d'absence : il faut rejouer la requête.
Le gate se sonde avec vfg_gate_health (MCP VFGate), pas en inventant une adresse. Le 3 octobre 2026 à 20:16, cette sonde répond : hub vfgate:5191, nom interne vfgate-api, état ok (bridge, hero, matrice, lucien). Ce sont des noms de réseau interne. L'URL à ouvrir dans un navigateur est à confirmer.
6. Ce que ce parcours ne fait pas
- Aucune rotation du token API ni de la passphrase.
- Aucun déploiement de ce dashboard en production.
localhost:3000est la machine locale. - La PR 39 n'est pas supposée mergée. Les adresses ci-dessus valent pour le code local lu ce jour-là.