From d3d461be93fce5bf73bec97a82d243dc11c329f0 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Thu, 16 Jul 2026 21:26:00 +0100 Subject: [PATCH] Record receiver-driven IDR proof --- docs/implementation-plan.md | 11 +++++++---- state/evidence.jsonl | 1 + state/map.yaml | 15 +++++++++++++++ 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/docs/implementation-plan.md b/docs/implementation-plan.md index b0c37f7..caba341 100644 --- a/docs/implementation-plan.md +++ b/docs/implementation-plan.md @@ -471,10 +471,13 @@ repair requests), and the OBS audio decoder now consumes Muninn's actual float PCM contract rather than treating it as AAC. Audio reorder is bounded to 40 ms with short silence concealment. The next audio cut is Opus with explicit FEC/PLC for variable-rate compressed audio; PCM now has bounded 4+2 erasure -recovery plus concealment. The next video cut is a controllable encoder owner -that can force IDR without restarting the video session. Receiver keyframe -pressure is deliberately not allowed to restart the whole A/V stream and hide -the missing authority. +recovery plus concealment. The controllable video encoder owner now exists and +forces the next NVENC frame to IDR without restarting the video session. A live +D3D11 desktop proof verified the command-generated IDR. The remaining field +cut is to install its bundle on Raven, route the existing activation task +through `--video-encoder`, and run the named impairment profiles. Raven's +WireGuard SSH route timed out during the first deployment attempt, so no +interactive workstation task was disturbed. 1. Replace the frame-event diagnostic bridge with concrete direct capture drivers for Leap stereo IR first, then the diff --git a/state/evidence.jsonl b/state/evidence.jsonl index 5289f5f..df4f7c9 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -191,3 +191,4 @@ {"ts": "2026-07-16T20:29:03+01:00", "type": "verification", "status": "ok", "note": "Moonlight-derived reliability cut implemented in Odin against experimental CultLib snapshot 8965f3c0: HID epoch/latest-state/ordered-edge/application-ack semantics; wall clock demoted from ordering; Muninn A/V uses CultNet realtime lane with 100ms default LAN deadline; bounded producer/pending queues; expiring and receiver-late-aware repair cache; decode-chain-only keyframe pressure. Verification passed 168 Muninn, 25 Sleipnir, and 35 vendored experimental CultNet tests."} {"ts": "2026-07-16T20:48:32+01:00", "type": "verification", "status": "ok", "note": "Production Muninn receiver audit fixed two live contract failures: early video repair feedback no longer places live frames in late_frame_ids (which made Odin refuse every repair), with a C++-emitted fixture decoded by Rust; OBS local audio decoder now consumes Muninn's actual f32le stereo 48kHz packets rather than AAC, default reorder is 40ms instead of 2000ms, and short gaps receive bounded silence concealment. Native plugin build and two CTests passed; Odin cross-fixture tests passed."} {"ts": "2026-07-16T21:03:13+01:00", "type": "verification", "status": "ok", "note": "Muninn production audio recovery now uses typed 4+2 GF(256) PCM parity from Odin and a bounded Mimir receiver cache feeding the existing 40 ms reorder owner; native OBS DLL builds and 3/3 CTests pass. Odin cultnet-impair adds deterministic real-socket loss/burst/reorder/duplicate/jitter/stall profiles. Experimental CultLib snapshot lineage remains pinned at 8965f3c0."} +{"ts": "2026-07-16T21:26:00+01:00", "type": "verification", "status": "ok", "note": "Receiver decode-chain invalidation now actuates a verified next-frame NVENC IDR through Odin's long-lived libav encoder without restarting A/V or CultNet. Live 2560x1440 D3D11 proof emitted a command-driven IDR at frame 22 under a 600-frame GOP; synthetic proof emitted IDRs at frames 0 and 10 and decoded cleanly. Muninn/Sleipnir edge admission is bounded at 256 via epoch rebase; 174/26 tests pass. Raven field deployment remains pending because 10.77.0.4 SSH and TCP probing timed out."} diff --git a/state/map.yaml b/state/map.yaml index 6e7de6b..226332a 100644 --- a/state/map.yaml +++ b/state/map.yaml @@ -87,6 +87,21 @@ invariants: are temporary smoke/bootstrap edges only. accepted_design: + - Receiver-driven video recovery now reaches the actual NVENC frame owner. + Odin's `native/muninn-video-encoder` is a long-lived libavdevice desktop + capture and `h264_nvenc` process; a new decode-chain invalidation edge makes + Muninn write `IDR` to its stdin without restarting video, audio, or CultNet. + A live 2560x1440 D3D11 proof with a deliberately 600-frame GOP produced the + requested second IDR at frame 22, and its Annex-B stream decoded cleanly. + The normal quarter-second scheduled IDR remains independent fallback. + The repeatable bundle includes the OBS experimental FFmpeg dependency + snapshot. Raven installation and real impairment acceptance remain pending + because Raven's documented WireGuard SSH route timed out on 2026-07-16. + - Muninn input now bounds disconnected unacknowledged button history at 256 + edges. Overflow rotates the controller epoch and rebases Sleipnir from the + next complete latest-state frame, rather than dropping an arbitrary press + or retaining history forever. Sleipnir rejects sparse future edge gaps over + 256. Full Muninn (174) and Sleipnir (26) suites pass. - The 2026-07-16 loss-recovery cut is now live on both sides of the Muninn audio boundary. Odin emits typed `muninn.media_audio_parity_shard.v1` records using fixed 4+2 GF(256) parity for constant-size 10 ms PCM packets.