No description
New package mothership/internal/recording implements a disk-backed circular buffer for continuous CSI frame recording. Frames are persisted in the same binary format used over WebSocket (raw frame bytes + 8-byte recv timestamp). Key features: - Time-based retention (default 48h) prunes expired records automatically on each Append and via an explicit Prune() method - Configurable retention via SPAXEL_RECORDING_RETENTION env var (e.g. "24h") - ScanRange(from, to time.Time, fn) for time-windowed read-back - Space-bounded: fixed-size file with circular eviction prevents disk exhaustion - Crash-safe: 32-byte header (magic + write/oldest/wrap positions) survives restarts - 18 tests covering write, read-back, time-based pruning, wrap-around, crash recovery, ScanRange, env var configuration, and storage bounds Foundation for Phase 8 time-travel replay. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .marathon | ||
| dashboard | ||
| docs | ||
| firmware | ||
| mothership | ||
| .dockerignore | ||
| .gitignore | ||
| docker-compose.yml | ||
| Dockerfile | ||
| PROGRESS.md | ||
| VERSION | ||