docs: record audio exclusion status checkpoint

This commit is contained in:
2026-08-21 16:31:29 -04:00
parent 3d1f114fd8
commit 61960eb76f
2 changed files with 24 additions and 11 deletions
+17 -7
View File
@@ -11,9 +11,10 @@ committed locally** (`5d3da8b`). **S4, S5, 0d, round 11's bridge changes, and Ph
pure channel-planning prerequisite are built, validated, and committed locally in pixelpass
(`781defc`).** The first bounded Phase 6 mutation slice is now built, validated and committed
locally in PixelPass (`98cde2c`): the hidden production path creates, retains, revokes and
crash-cleans exact-channel non-lingering fan-out links. Phase 6's status events and
sink-replacement recovery, plus phases 79, are not built — nothing released to date changes
the feature's user-visible behaviour. **Phase 6 remains the current front.**
crash-cleans exact-channel non-lingering fan-out links. The four versioned Phase 6 status events
are built, validated and committed locally in PixelPass (`5a65f50`). Sink-replacement recovery,
plus phases 79, are not built — nothing released to date changes the feature's user-visible
behaviour. **Phase 6 remains the current front.**
**Date:** 2026-07-21 (v4); status line refreshed 2026-08-21
**Design of record:** [`screenshare-audio-exclusion-plan.md`](screenshare-audio-exclusion-plan.md) v3.8, round 11.
**Scope:** *ordering, gates and acceptance criteria only.*
@@ -688,10 +689,19 @@ ancestry becoming unsafe.
> without Rust destructors. The three serialized live observer tests and `pixelpass --doctor`
> pass.
>
> This does **not** complete Phase 6. Versioned causal status events and actual capture-sink
> replacement/relink recovery remain, along with the unclosed failure-matrix rows. The public
> mode selector remains Phase 7 and PeerSpeak integration remains Phase 8. The last committed
> PixelPass base is `781defc`; this mutation slice is local commit `98cde2c` and remains unpushed.
> **Status-event slice, committed locally as `5a65f50`.** PixelPass now emits
> exact version-1 `stream_unsupported`, `aec_failed`, `aec_revoked` and `foreign_aec_warning`
> records. The PipeWire callback only enqueues owned records; a Tokio-side forwarder performs
> JSON serialization and stdout I/O. Each cause has a direct emission test plus an exact JSON
> golden. Repeated graph ticks do not repeat a sticky failure, every leg of one foreign AEC
> collapses to one warning, an unindexed native AEC still counts as foreign, and `aec_revoked`
> is queued only after owned links are dropped. Full PixelPass: 330 passed, 0 failed, 10 ignored;
> strict all-target Clippy, both serialized Phase 6 live gates and `pixelpass --doctor` pass.
>
> This does **not** complete Phase 6. Actual capture-sink replacement/relink recovery and the
> remaining failure-matrix rows are still open. The public mode selector remains Phase 7 and
> PeerSpeak parsing/UI integration remains Phase 8. The last committed PixelPass checkpoint is
> `5a65f50`.
Failure ⇒ report the stream unsupported. **Never** fall back to the default monitor — and after
0d that fallback is unconstructible in this mode, by either path.