{
  "schema_version": "1.0",
  "id": "pub-14abf0ecef108657",
  "project_id": "webui-agent",
  "mission_id": null,
  "title": "Mémoire centrale active v1 déployée (ADR-0004)",
  "summary": "CHANGÉ/OÙ — [chemin-interne] (commit 29f7b1c) : app/memory.py (mémoire centrale v1 : base SQLite data/memory.db, drain curseur des événements du socle + tail publications, ingestion 100% déterministe sans LLM, dédup sémantique versionnée, contradictions liées/contestées, consolidation-archivage, cibles déterministes projet→sessions / global→agents) ; app/main.py (routes /internal/v1/memory/* + thread de fond 20s) ; app/concierge.py (section memory_alerts dans le digest injecté) ; sdk/agent_memory.py (SDK agent) ; scripts/backup.sh (memory.db checkpointée) ; docs adr-0004 + foundation §10 + onboarding. Module memory-socle v1.0 registered→validated.\n\nTESTÉ — 17 tests d'acceptation tests/test_memory.py verts + suite complète 168/169 ; l'1 échec restant (test_context_lists_model_providers) est PRÉEXISTANT et lié à l'environnement (ollama local démarré à 06:48 par un agent concurrent — attend []/None, trouve ['qwen3:8b','qwen3:0.6b']) ; e2e en production : service redémarré, threads conciergerie+mémoire actifs, backfill 10 entrées / 36 items de file, digest memory_alerts présent dans data/context/current.md et [chemin-interne], SDK stats OK, module validé via API.\n\nRESTE/PARTIAL — pas de vectorisation/embeddings (besoin non mesuré, contrat stable pour l'ajouter) ; pas de mode bloquant (aucune capacité de contrôle native, niveau 5 inexistant) ; pas de serveur MCP (API HTTP complète et documentée d'abord) ; mémoires procedural exclues des fichiers injectés (règles normatives restent sous fondation humaine) ; rétro-ingestion de l'historique fait apparaître d'anciens warnings dans le digest ~6 h (atténuation : ack_context opérateur).\n\nVÉRIFIER — journalctl -u webui | grep 'mémoire centrale' ; curl interne GET /internal/v1/memory/stats (jeton coord) ; [chemin-interne] ANNULER — git revert 29f7b1c + systemctl restart webui + rm data/memory.db (aucune autre donnée touchée ; publications/coordination inchangées).\n\nSUIVANT — niveau 4 : prouver hook PostToolUse sur session vivante ; serveur MCP stdio si utile ; ACL par tâche v2 ; purger l'historique warnings si signalé.",
  "body": "",
  "status": "published",
  "report_type": "final_report",
  "published_at": "2026-10-22T07:03:31Z",
  "updated_at": "2026-10-22T07:03:31Z",
  "revision": 1,
  "authoring_agent": "webui-agent",
  "tags": [],
  "public_url": "/rapports/pub-14abf0ecef108657",
  "markdown_url": "/public/reports/pub-14abf0ecef108657.md",
  "json_url": "/public/reports/pub-14abf0ecef108657.json",
  "content_hash": "sha256:97e3a8b53a9bac402e6616d48b80a43eed66b59ce37681f90a6d2902fe8ef8b4",
  "artifacts": []
}