From ec86a482a05bad28ace562ca35afbdefaeabcd49 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sun, 12 Jul 2026 11:17:21 +0100 Subject: [PATCH] Record Muninn Move proof snapshot producer --- docs/implementation-plan.md | 9 +++++++++ notes/current-system-map.md | 8 ++++++++ state/evidence.jsonl | 1 + state/map.yaml | 8 ++++++++ 4 files changed, 26 insertions(+) diff --git a/docs/implementation-plan.md b/docs/implementation-plan.md index 7be773f..3fdfb31 100644 --- a/docs/implementation-plan.md +++ b/docs/implementation-plan.md @@ -138,6 +138,15 @@ a named invariant that the native runtime cannot protect yet. --move-proof-runtime-snapshot-smoke` proves the named proof spine through that file boundary. It is field capture/replay support, not the final live shared-memory proof. +- Odin/Muninn now has the matching producer-side latest snapshot writer: + `--move-evidence-snapshot ` writes the Mimir-compatible + `mimir.move_proof_evidence_frame_snapshot.v1` artifact from the same Muninn + Move evidence publisher after the frame payload is accepted into the stream + ring. The Odin unit + `move_evidence_snapshot_writes_mimir_compatible_frame_artifact` decodes the + snapshot tuple and embedded Muninn frame payload. This lets Nightwing produce + a field artifact for Mimir replay while the final live ring/page transport is + still pending. - `MimirMoveProofDevSurface` is a dev-only bootstrap gated by `MIMIR_MOVE_PROOF_DEV_SURFACE`. It uses the same runtime proof attachment so `Mimir.BufferSmoke --move-proof-presented-frame-smoke` can run `Mimir.App` diff --git a/notes/current-system-map.md b/notes/current-system-map.md index 93301bc..3ec535d 100644 --- a/notes/current-system-map.md +++ b/notes/current-system-map.md @@ -257,6 +257,14 @@ and pipeline. `Mimir.BufferSmoke --move-proof-runtime-snapshot-smoke` proves the same named proof spine through that file boundary. This can support field capture/replay, but live proof still requires the real Nightwing/Starfire ring or CultMesh page producer. +Odin/Muninn can now write that artifact from the producer side with +`--move-evidence-snapshot `. The snapshot is written by the same Muninn +Move evidence publisher that owns controller/marker frames, after the frame +payload is accepted by the stream ring. Its unit coverage decodes the +`mimir.move_proof_evidence_frame_snapshot.v1` tuple and re-decodes the embedded +Muninn payload, proving the artifact is shaped for Mimir's snapshot provider. +This is still one-copy field capture/replay; it does not replace the live ring +or a CultCache page body producer. `MimirMoveProofDevSurface` is a dev-only bootstrap gated by `MIMIR_MOVE_PROOF_DEV_SURFACE`. It publishes a synthetic calibrated proof surface through the same `MimirRuntime.PublishMoveProofSurface` attachment so diff --git a/state/evidence.jsonl b/state/evidence.jsonl index 00e17ab..d6b7075 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -168,3 +168,4 @@ {"ts": "2026-07-12T10:51:37+01:00", "type": "verification", "status": "ok", "note": "MimirRuntime now owns configured Move proof activation instead of leaving MoveProof config as a passive readout. On scene-ready it asks IMimirMoveProofEvidenceRingProvider for the configured Muninn evidence ring, opens the configured native reservoir, creates/registers MimirMoveProofRuntimeDriver, retains resources, and records activation status. The default provider fails explicitly because the current C# CultMesh ring is in-process only. Verified dotnet build Mimir.Runtime, dotnet build Mimir.BufferSmoke, BufferSmoke --move-proof-runtime-driver-smoke, and BufferSmoke --move-proof-runtime-activation-smoke. The activation smoke injected an in-process provider and printed activationActive=True while preserving the explicit chain muninn:nightwing:move-evidence:79 -> mimir:starfire:move-evidence:79 -> mimir:starfire:move-pose:79 -> fensalir:starfire:presented-frame:79 with verdict=FullPose. This proves runtime config activation and status, not live Nightwing/Starfire hardware or cross-process ring opening."} {"ts": "2026-07-12T11:01:09+01:00", "type": "implementation", "status": "ok", "note": "Added mimir.move_proof_runtime_activation.v1 as the typed readiness/proof-spine surface for configured Move proof sources. It reports stream id, provider kind, active/driver state, reservoir path, calibrated camera ids, latest same-stream proof ids/verdict, and unavailable-provider diagnostics. MimirRuntime now exposes CreateMoveProofRuntimeActivationDocuments and disposes a native reservoir if activation fails before driver retention. Verified dotnet build Mimir.Runtime, dotnet build Mimir.BufferSmoke, BufferSmoke --move-proof-runtime-driver-smoke, --move-proof-runtime-activation-smoke, and --move-proof-runtime-activation-surface-smoke against the native reservoir debug DLL. The new smoke proves active injected-ring and inactive default-provider documents; real Nightwing/Starfire hardware and cross-process CultMesh ring opening remain pending."} {"ts": "2026-07-12T11:09:32+01:00", "type": "implementation", "status": "ok", "note": "Added mimir.move_proof_evidence_frame_snapshot.v1 and MimirConfiguredMoveProofEvidenceRingProvider as an explicit one-copy fallback for captured Muninn Move evidence frames while C# CultMesh lacks a cross-process shared-memory opener. EvidenceSnapshotPath snapshots are metadata-checked against the encoded Muninn frame payload, copied into an owned in-process ring, and consumed by the same runtime proof driver/pipeline. Verified dotnet build Mimir.Runtime, dotnet build Mimir.BufferSmoke, BufferSmoke --move-proof-runtime-driver-smoke, --move-proof-runtime-activation-surface-smoke, and --move-proof-runtime-snapshot-smoke against the native reservoir debug DLL. This supports field capture/replay and does not complete the live Nightwing/Starfire ring proof."} +{"ts": "2026-07-12T11:16:48+01:00", "type": "implementation", "status": "ok", "note": "Odin/Muninn now has a producer-side --move-evidence-snapshot writer for Mimir Move proof capture/replay. The same Muninn Move evidence publisher that writes controller/marker frames to the CultMesh stream ring can write a mimir.move_proof_evidence_frame_snapshot.v1 MessagePack tuple containing snapshot id, evidence stream id, frame id, producer peer id, published ns, captured ns, and the encoded Muninn frame payload. Verified cargo test -p muninn-daemon, focused move_evidence_snapshot_writes_mimir_compatible_frame_artifact, and cargo check -p muninn-daemon --target x86_64-unknown-linux-gnu (existing dead-code warnings only). This gives Nightwing a concrete field artifact path for Mimir's EvidenceSnapshotPath provider; it is still one-copy replay support, not the final live cross-process ring/page proof."} diff --git a/state/map.yaml b/state/map.yaml index 0123841..075e051 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -186,6 +186,14 @@ accepted_design: --move-proof-runtime-snapshot-smoke` proves the named proof spine through that file boundary. It is field capture/replay support, not the final live shared-memory proof. + - Odin/Muninn can write the matching producer-side latest snapshot with + `--move-evidence-snapshot `. The snapshot is emitted by the same + Muninn Move evidence publisher after the frame payload is accepted into the + stream ring, and Odin's + `move_evidence_snapshot_writes_mimir_compatible_frame_artifact` unit decodes + both the `mimir.move_proof_evidence_frame_snapshot.v1` tuple and embedded + Muninn payload. This supports Nightwing field capture/replay through Mimir's + snapshot provider while the final live ring/page transport remains pending. - `MimirMoveProofDevSurface` is a dev-only bootstrap gated by `MIMIR_MOVE_PROOF_DEV_SURFACE`. It publishes a synthetic calibrated proof surface through the same MimirRuntime attachment so headless Mimir.App can