diff --git a/src/Mimir.Runtime/Synchronization/MimirOdinMoveProofEvidenceRingProvider.cs b/src/Mimir.Runtime/Synchronization/MimirOdinMoveProofEvidenceRingProvider.cs index 26faafb..5dd2c86 100644 --- a/src/Mimir.Runtime/Synchronization/MimirOdinMoveProofEvidenceRingProvider.cs +++ b/src/Mimir.Runtime/Synchronization/MimirOdinMoveProofEvidenceRingProvider.cs @@ -203,6 +203,11 @@ internal sealed class MimirMoveEvidenceRudpPump : IDisposable startupError = error; started.Set(); } + else if (!stopping.IsCancellationRequested) + { + Console.Error.WriteLine( + $"Mimir Move evidence receiver stopped stream={stream.StreamId} address={stream.Address}: {error}"); + } } } diff --git a/state/evidence.jsonl b/state/evidence.jsonl index b9db4d0..2c21431 100644 --- a/state/evidence.jsonl +++ b/state/evidence.jsonl @@ -178,3 +178,4 @@ {"ts": "2026-07-13T00:10:04+01:00", "type": "scar", "status": "open", "note": "Move tracking false-blocker: both Nightwing PS3 Eyes were already physically positioned. The missing authority was software process isolation and persistent dual-provider ingestion. Do not ask the operator to rearrange hardware without first probing all live devices/providers. Repeated one-shot Mimir probes also misuse Muninn's single-client RUDP evidence server; visibility sweeps must keep one persistent subscription per provider."} {"ts": "2026-07-13T00:16:58+01:00", "type": "verification", "status": "partial", "note": "Persistent dual-provider visibility window separated transport from optics: nightwing-eye0 delivered 2 frames and all 4 controller IDs but 0 labelled markers; primary nightwing delivered 0 frames, consistent with its single-client evidence server remaining occupied after prior one-shot probes. Restart observers before the next window; do not infer camera visibility from discovery or controller presence."} {"ts": "2026-07-13T00:22:08+01:00", "type": "decision", "status": "ok", "note": "Nightwing Move observation is one Muninn provider with two camera sources. Muninn already accepts repeated --move-marker-camera arguments and aggregates camera-tagged candidates into one evidence frame; the prior nightwing-eye0 provider leaked a process workaround into public authority. If PSMoveAPI needs isolation, use internal workers without separate provider identity."} +{"ts": "2026-07-13T00:29:23+01:00", "type": "scar", "status": "partial", "note": "Unified Nightwing Muninn proves one provider can own both /dev/video2 and /dev/video3 and publish all four controller IDs. Stable 30s visibility window saw 2 controller frames and 0 labelled markers. Hue state is animated/descending/1000ms and light HID paths are dynamically resolved; the next missing evidence is typed per-camera PSMoveAPI readiness/calibrated-controller/update health. Do not infer tracker health from camera fd ownership, payload size, or visible lights."}