C4-05 livrée (RM-081/RC-081) — mémoires opérationnelles : provenance et continuité, canari :8792 14/14
Broker branché sur la base prod (canari :8792, ordre d'autorisation e2e), contrat de provenance v1 par les outils (100 % mission/outil/commit/source vs 7,1 % archivés), épistémique P3-06 adoptée additivement, APIs de graphe autorisées et paginées, leçons PULL ; critère final (deux agents, reprise, invalidations) TRUE in vivo ; bascule :8790 = GO opérateur.
C4-05 — Mémoires opérationnelles : provenance et continuité du Knowledge Fabric
Statut : done — critère final validé IN VIVO (canari :8792 branché sur la base prod, 14/14 PASS).
Ce qui a changé et où
- A. Broker↔noyau : Context Hub P3-04 déployé et validé — service canari
kf-hub.service:8792 (loopback, user kfcore, durcissement identique au noyau), branché sur la MÊME base prod kf_prod_v1 ; tick 2 min (pompe outbox → distribution sélective) + backfill (reprise idempotente). Ordre IDENTITÉ→AUTORISATION→SOURCES→PERTINENCE→BUDGET→LIVRAISON vérifié e2e (401/403 en direct). Port 8791 évité (occupé par une mission parallèle C4-01 — jamais touché). - B. Provenance : contrat v1 capturé PAR LES OUTILS (
operational_memory.provenance, CLI HTTP pur, Idempotency-Key, Used jamais inventée) ; noyau : Used inconnue → 400 lisible (avant : 500 SQL) ; les remplacements de version portent désormais source+activité+Used (ReplaceIn). - C. Épistémique : pose additive au registre sur kf_prod_v1 de
kf_q_*(020, P3-06) ETkf_promotion(004, P3-08 — absent de prod, 500 latent sur /promote) ; les 7 états dérivés exposés (validation-state), une proposition d'agent ne devient jamais une décision. - D. Impact :
GET /graph/objects/{id}/impact(moteur P3-06, fermeture bornée d=5, cache par empreinte), jamais de révocation automatique (neverénoncé dans la réponse). - E. Mémoire des erreurs :
/context/lessons(PULL uniquement — jamais d'avertissement non sollicité), autorisation AVANT sélection, budget de caractères, dégradable ; ingestion des échecs rendue dégradable. - F. APIs graphe : 9 routes
/graph/*(dépendances, origines, contradictions, décisions, missions, impact, validation, used-by) — autorisation avant réponse (filtered_outhonnête), pagination, budgets, aucun LLM. - Corrections opportunistes : FTS du hub muet en français (« simple » vs index « french ») — toute recherche française multi-terme échouait ; relations vivantes dans le flux (
kf.relation.proposed/decided+ pompe, double filtre par destinataire). - Git : branche
mission/c4-05-operational-memory(base P3-10, commits 17edc30, 0b740e7, 8bd81da), NON fusionnée. Production : DDL additif uniquement + pilotesops-memoire. Le noyau :8790 INTACT.
Ce qui a été testé (résultats observés)
- tests dédiés 19/19 ; non-régression : noyau 38, hub 13, qualité 24 (verts).
- Canari in vivo avec 4 acteurs/jetons réels : B enregistre une information SOURCÉE via le contrat v1 (empreinte sha256) ; A la récupère (budget+score), la RÉUTILISE après interruption (même version v1 re-servie) ; révocation → invalidation priorité 3 reçue par le lecteur ET l'abonné, RIEN pour l'acteur sans périmètre. CRITÈRE FINAL : TRUE.
- Mesures G : archives = 7,1 % sources avec empreinte, 0,1 % Used, 6,3 % mission, 0/8 relations sourcées → fenêtre contrat v1 = 100 % mission/outil/commit/source, zéro donnée fictive (l'inconnu reste inconnu).
Rapports
- RM-081 (publié, coffre + site) et RC-081 (coffre — frontière P3-02/P3-08 : publication publique d'un RC exige une version expurgée validée par l'opérateur).
- Livrables : docs/architecture/knowledge-fabric/phase-4/operational-memory/ (README + 00–08) — branche mission.
Partiel / reste (assumé)
- Bascule prod :8790 = GO opérateur (runbook 08, une commande) ; le canari :8792 reste en service des pilotes.
- useless_context_ratio sans signification (le canari ne fait pas d'ack) ; knowledge_reused_across_missions prod = 0 (primitives prêtes).
- launcher_adapter en dry-run par défaut : brancher
--postsur une mission réelle.
Déployer / vérifier / annuler
- Vérifier :
curl 127.0.0.1:8792/internal/v1/kf/context/health→ up ;systemctl is-active kf-hub kf-hub-tick.timer. - Bascule : runbook 08 (unité éditée 8792→8790 + restart kf-core).
- Rollback :
systemctl disable --now kf-hub kf-hub-tick.timer(1) ; réinstaller l'unité antérieure du :8790 (2) ;DROP TABLE kf_q_impact_cache, kf_q_failure, kf_promotion(3, DDL additif réversible). Aucune donnée append-only détruite.
Formats : Markdown · JSON · lien permanent : /rapports/pub-f08fc34dbb659481