flybrain/services/flysim
acamilo 079842f818 media: no best-effort defaults in the audio path
Review round two.

A restored timeline refuses a declared stream with no recorded sample
position instead of resuming it at zero, which would have restarted the
episode's audio clock silently.

A declared stream that produces no chunk for a transition now fails the
step. The contract does not say a chunk must exist; this slice requires
one, because a silently missing chunk cannot be told from a lost one.
Boundary 0 is exempt: no interval precedes it.

The fresh-epoch discontinuity refusal is dropped rather than written into
the amendment. Only the restore direction is stated, and sections 6 and 7
both have a fresh timeline publishing a discontinuity after a recovery or
a reset, so refusing the flag at an origin contradicted them. The dated
amendment now says the requirement is one-directional.

A snapshot with an unreadable chunk, or one whose handle is not attached,
is now unreadable as a whole rather than quietly carrying less audio than
was published. ViewPipeline::is_bootstrap_repeat is removed.

New tests: a missing chunk fails the step, restored timelines need every
declared stream's position, and a 7 Hz world's seven chunks sum to exactly
one second of 48 kHz samples. The bus-conformance reconnect row also cites
the test that actually replaces an incarnation.
2026-09-22 15:15:06 +00:00
..
.cargo flybrain v0.4.0: public tree (history retained privately) 2026-09-21 15:09:46 +00:00
crates media: no best-effort defaults in the audio path 2026-09-22 15:15:06 +00:00
golden flybrain v0.4.0: public tree (history retained privately) 2026-09-21 15:09:46 +00:00
tools symbols: the four WRAM names the whole-map grid reads 2026-09-22 03:17:20 +00:00
vendor/binjgb flybrain v0.4.0: public tree (history retained privately) 2026-09-21 15:09:46 +00:00
Cargo.lock Merge feat/sf-contract-01: the fly-session-types crate, so the session slice builds on the shared contract types 2026-09-22 12:30:03 +00:00
Cargo.toml Merge feat/sf-contract-01: the fly-session-types crate, so the session slice builds on the shared contract types 2026-09-22 12:30:03 +00:00
flysim.toml.example flybrain v0.4.0: public tree (history retained privately) 2026-09-21 15:09:46 +00:00
rust-toolchain.toml flybrain v0.4.0: public tree (history retained privately) 2026-09-21 15:09:46 +00:00