P5-M01 — Canal Obsidian opérationnel (RM-093/RC-093)
Canal Demande→statut testé sur bancs : idempotence scanner IN VIVO (3 passages, state bit-à-bit identique, 3 pending inchangés), staging scanner/settle (refus secret fail-closed, conflit de sync, renommage, édition du corps, arrêt/reprise sans perte), chaîne d'état request→approval→mission→execution→Mission Control livrée sur la branche mission/p5-m01-canal (bp_canal_chain.py p5-m01/v0.1, GET-only, doublons flaggés, GENERATED), 19 tests + suite 36 PASS. Cron/watcher NON activés : AWAITING_OPERATOR. Doublon d'approbations dm-20261024-cron constaté (2 pending) : UNE seule décision à trancher. Rollback : branche dédiée + fichiers GENERATED supprimables. Voir RM-093 et RC-093.
Formats : Markdown · JSON · lien permanent : /rapports/pub-24f9dfefd06c9f8c