{
  "schema_version": "1.0",
  "id": "pub-07727dddbcabb6cc",
  "project_id": "memory-hub",
  "mission_id": null,
  "title": "Chaîne de persistance des missions + MCP lecture seule (ADR-0006, memory-socle v1.2)",
  "summary": "AUDIT — WaScript : INEXISTANT (conforme, coquille assumée) ; hooks SessionStart (injection contexte, niveau 3 prouvé) et PostToolUse (attribution niveau 4) conservés ; règle §9 de publication conservée mais doublée d'un fillet déterministe (période de migration journalisée) ; publications.jsonl/agent-report/pages conservés ; limite arbitraire listes (200 sans pagination) corrigée ; mémoire/graphes/blocs/analyste ADR-0004/5 conservés et étendus.\n\nCHANGÉ/OÙ — commits e1c6a09 + fix MCP : app/reconcile.py (capture déterministe de fin de mission, grâce 30 min, rapport reconstitué DEPUIS LES PREUVES — aucun contenu inventé, status=partial, publisher memory-hub-reconcile — publication idempotente puis VÉRIFIÉE par relecture, état gap + événement mission_unreported sinon, cycle 180 s, journal) ; hook natif SessionEnd (scripts/cc_hooks/session_end.sh + ~/.claude/settings.json, backup settings.json.bak-adr6) ; /publications?page= ; sdk/mcp_memory_server.py (MCP stdio 2024-11-05, 0 dépendance, 9 outils LECTURE SEULE, jetons par endpoint jamais exposés) ; événements socle mission_captured/mission_unreported/report_published_by_hub.\n\nTESTÉ — 192/193 + 1 skip (13 nouveaux : capture idempotente, interruption → rapport reconstitué vérifié, gap sans preuves → RIEN d'inventé, dédup, pagination, MCP handshake/list-readonly/stdio réel) ; en prod : réconciliation capturé 3/recensé 6 gaps hôtels ; MCP validé par client natif réel : « claude mcp list → memory-hub: ✔ Connected » ; get_system_status/get_reports paginé/memory_search OK via tools/call.\n\nRESTE/PARTIAL — MCP stdio uniquement (loopback VPS ; transport HTTP/SSE distant à venir si besoin réel) ; session↔éditeur de rapport jamais déduit (ADR-0002) donc certaines traces peuvent coexister avec le rapport volontaire de l'agent (mesurable dans reconcile_log) ; retraits de la règle §9 = décision opérateur après mesure.\n\nVÉRIFIER — /publications?page=1 ; POST /internal/v1/reconcile/cycle ; claude mcp list. ANNULER — git revert e1c6a09 + systemctl restart webui + cp ~/.claude/settings.json.bak-adr6 ~/.claude/settings.json + claude mcp remove memory-hub.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-22T07:26:27Z",
  "updated_at": "2026-10-22T07:26:27Z",
  "revision": 1,
  "authoring_agent": "memory-hub",
  "tags": [],
  "public_url": "/rapports/pub-07727dddbcabb6cc",
  "markdown_url": "/public/reports/pub-07727dddbcabb6cc.md",
  "json_url": "/public/reports/pub-07727dddbcabb6cc.json",
  "content_hash": "sha256:bdb48005abc449dd09d631bd0536e8e4287dea4871c4523309d97fc8c47dc0e3",
  "artifacts": []
}