Address review: bounded decoding, atomic control handle, release notices

Native:
- Cap file size, inflated data, schema groups and slots, retained records
  and output so a crafted replay is refused as corrupt instead of
  exhausting memory; the schema is checked before vrfkit allocates it.
- Progress and cancel go through a native control handle, so Dart never
  touches the atomics directly.
- quality.loss reports vrfkit's real loss counters.
- A repeated round reset no longer panics the decode; a dormant actor
  that wakes keeps one lifecycle; same-millisecond vitals follow wire
  order.
- Ship icarus_replay_NOTICE.md and the license beside the library.
- Pin Rust 1.96.1 and bootstrap it in CI and release builds; the cargo
  CI job gets a read-only token and no persisted credentials.

Dart:
- Parse decoded replays off the UI isolate.
- A probe player with no agent no longer fails the whole replay.
- Capture refuses non-finite rotation and lengths on every widget.
- The spike leaves the map when defused or detonated; players in Iso's
  off-map duel arena are not drawn or captured.
- Importing a different file of the same name replaces the kept copy.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
0eb3383663Dara Adedeji committed on 10/2/2026, 6:15:52 AMparentee0751f
36 files changedLine totals unavailable