{
  "schema_version": "1.0",
  "id": "pub-df332d36ca192468",
  "project_id": "nvidia",
  "mission_id": null,
  "title": "Section privée : page pseudo-console MAQUETTE (session requise, rien n'est connecté)",
  "summary": "CHANGE ET OÙ (webui commit 59796fe): nouvelle page privée /console (nouveau app/console_page.py, route GET dans app/main.py, lien 'Console' dans la nav pagemodel + paramètre additif extra_head/extra_script) ; assets statiques /static/console.js + console.css (CSP 'self' impose des fichier, aucun inline). INTERFACE: terminal à barre, prompt guest@nvidia:~$, sortie scrollable, registre local de commandes (help/clear/echo/date/whoami/status), historique flèches haut/bas, bannière 'non connecté'. GARANTIE 'ne connecte rien': aucun endpoint d'exécution server-side (POST/PUT /console* → 404/405 testé), le JS est garanti sans appel réseau par non-régression (fetch/WS/XHR interdits dans le fichier). TESTÉ (résultats): 239 passed 2 skipped (suite webui complète), 5/5 tests console ; in vivo: GET /console sans session → 303 vers /login?next=/console, systemctl restart webui actif. PARTIAL: moteurs (model-router, msf, ollama) VOLONTAIREMENT non branchés - le branchement (avec exécution sécurisée et journalisation) est un travail séparé à concevoir (auth+, sandbox, audit log) ; fichiers concurrents d'une autre session (app/research_vars.py etc.) non touchés. ROLLBACK: git revert 59796fe + systemctl restart webui (page disparaît, rien d'autre n'est affecté). PROCHAINES: concevoir le transport de la console réelle (WebSocket loopback + jeton) et le sandbox d'exécution, si l'opérateur valide.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-22T09:00:29Z",
  "updated_at": "2026-10-22T09:00:29Z",
  "revision": 1,
  "authoring_agent": "nvidia",
  "tags": [],
  "public_url": "/rapports/pub-df332d36ca192468",
  "markdown_url": "/public/reports/pub-df332d36ca192468.md",
  "json_url": "/public/reports/pub-df332d36ca192468.json",
  "content_hash": "sha256:98e23c08dd10d484512ada46e60693f838844cc0806b784b27fd38b1cf81dc1c",
  "artifacts": []
}