Operator made the Odin muninn-bounded-realtime-send donor a campaign. FEC moves
to a CultLib cultnet-rs media_fec codec (reed-solomon-erasure) used by both
Muninn and Ratatoskr; bounded whole-frame sender; one latency owner. Q1-Q8 open.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
restart-muninn.ps1, its cmd alias, deploy-raven-muninn-binary.ps1 and
repair-raven-muninn-task-actions.ps1 started and replaced serve on Raven by
hand through a scheduled task and a VBS launcher. Idunn's host actuator is
the only thing that starts serve there now, so they leave rather than stay
as a second launch path. Docs say what replaced them and what remains.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The "kept existing capture stream" branch wrote the running command back
with the current time on every tick, which made a running command the
newest forever: no request sent tonight could outrank the July start until
this was cut. The spawn transition keeps the command's stamp too. The
teardown map records the audio result: 860 frames and 2,756 audio packets
in 29 s, nothing expired, on a producer host at 93% CPU.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The activation child binds one CultNet RUDP hub on --media-rudp-bind and
serve advertises it as the stream's media_endpoint; receivers dial it and
are known by their connect payload. Video rides the media channel lossy
under parity, audio the new audio channel reliably with the assembly
deadline as expiry, both on one session per receiver. Repairs go back to
the receiver that asked; a receiver silent for 6 s is dropped.
Gone: --obs-target-host/--obs-port (refused with the reason), the second
audio connection, the Odin provider-catalog lookup of an OBS receiver, the
receiver advertisement request-stream used to publish, and the cultmesh://
target requirement on activate. The consumer's host no longer needs a
firewall rule; Raven opens one UDP port, and restart-muninn.ps1 adds it
beside the HID controller rule.
CultLib pin c84cb2e.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Frame assembly, the assembly set, reassembly, expired-frame feedback and
their tests were kept here after the September dead-code cut as the seed
for Ratatoskr's reassembly. That seed has been planted (Ratatoskr
2618184, crates/ratatoskr-core/src/video.rs), so the producer stops
carrying code only a consumer runs. 705 lines. What stays is the producer
half: packetize, XOR stripe parity, and build_receiver_feedback, which the
sender's repair-cache tests use to construct what a receiver would say.
Also removes adts_frame, a test helper orphaned by the AAC cut.
cargo test -p muninn-daemon -> 151 passed, no warnings
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Three repos, one contract none of them owns, and one pin standing between Muninn
and a clean build. Names what is blocked, who owns unblocking it, what is next
and which two breaks are deliberate.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The receiving end now has a repo. The wire envelope does not: MuninnMediaWireRecord
and encode_media_wire_record are still here, both ends need them, and until they
reach CultLib beside the gamecult.media_* records Ratatoskr cannot decode a real
stream.
Also corrects this session's claim that no audio decoder existed. There is one --
an ffmpeg child with a hardcoded -f aac. Opus is that becoming codec-driven, and
it measures 16.8x against PCM.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The map argued congestion collapse: a reliable channel retransmitting under
loss until it starved itself. The measurement refutes the mechanism and keeps
the conclusion. Reliable loses 31% of a clean 12 Mbps offer with no loss and no
congestion present, and barely moves as loss rises.
Also corrects the claim that June tuning was fitted against the VPS path. The
July acceptance ledger records those runs as direct LAN with no WireGuard route;
the hairpin arrived with the relocation, afterwards.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Muninn's three crates carried 268 commits inside Odin, from "Add lazy Muninn
telemetry organ" on 2026-06-08 to the Idunn extraction merge on 2026-09-05.
That history is the evidence trail for everything the rebuild has to answer,
so it moves intact rather than being flattened into an initial commit.
Adds only what a standalone repository needs: a workspace manifest, a README
stating the authority Muninn actually holds, and the working teardown map.
Nothing is cut here and nothing builds yet. muninn-daemon still depends on
odin-core by path for twenty record types, which is one of the inversions
being removed. Deleting the old-generation deployment scripts is a separate
intent and waits on the Idunn recipe that replaces them, because three of
them are still the Restart actuators for live Idunn target records.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>