diff --git a/docs/screenshare-audio-exclusion-impl-plan.md b/docs/screenshare-audio-exclusion-impl-plan.md index 745b5c9..d7d7016 100644 --- a/docs/screenshare-audio-exclusion-impl-plan.md +++ b/docs/screenshare-audio-exclusion-impl-plan.md @@ -17,8 +17,10 @@ and successful exact-channel relinking are built, validated and committed locall (`d09ee9b`). **The Row 1 mutation-edge identity gate and the Row 8d/8e fail-closed construction gates are built, validated and committed locally in PixelPass (`6be07ef`).** **The independent Row 6a/6b/6c refusal gates are built, validated and committed locally in -PixelPass (`956534f`).** The remaining Phase 6 matrix/qualification work, plus phases 7–9, -is not built — nothing +PixelPass (`956534f`).** **The revised Row 9 positive/negative late-arrival partition is built, +validated and committed locally in PixelPass (`7b11827`).** The deterministic Phase 6 +link-manager matrix is complete; its production-path three-arm leak qualification, plus phases +7–9, is 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 @@ -767,6 +769,24 @@ ancestry becoming unsafe. > 966 MiB disposable release cache was removed and disk space returned. Next is the revised Row > 9 positive/negative partition; Phase 6 is not complete. +> **Revised Row 9 slice — built, validated and committed locally as PixelPass `7b11827` on +> 2026-08-21.** +> The former single music-only late-arrival fixture is now four independent controller gates +> carrying Phase 5's exact Firefox partition across the Phase 6 mutation boundary. Music-only +> and a Firefox output whose microphone is on a different Device each create exactly two stereo +> links and reach `Captured`. A Firefox output whose input reads the same Device receiving +> tainted playback, and one reading that sink's tainted monitor, each retain +> `tainted-owner-bridge`, make zero link-creation calls and hold no proxies. Every case is +> re-driven unchanged to prove idempotence. +> +> Full PixelPass validation is 345 passed, 0 failed and 12 ignored; all four focused Row 9 gates, +> strict all-target Clippy, formatting and `git diff --check` pass. The three serialized live +> Phase 6 mutation gates — late eligible fan-out/cleanup, sink replacement/relink and SIGKILL +> cleanup — pass, `pixelpass --doctor` passes, and the final Pulse/PipeWire/process residue scan +> is empty. Nix is unavailable, so this slice used system Rust 1.96.1. The deterministic +> link-manager matrix is now complete. Phase 6 remains open on its production-path three-arm AEC +> leak measurement re-run, whose naive positive control must exist only behind a test seam. + 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. diff --git a/docs/screenshare-audio-exclusion-plan.md b/docs/screenshare-audio-exclusion-plan.md index f326df7..7dad197 100644 --- a/docs/screenshare-audio-exclusion-plan.md +++ b/docs/screenshare-audio-exclusion-plan.md @@ -1420,9 +1420,16 @@ three Row 6 cases also pass optimized release, strict Clippy and `pixelpass --do The `port.exclusive` case remains an injected-graph gate under v1's accepted no-Port-binding limitation; a live exclusive port still degrades through the separately tested link-failure path. -1. **Continue Phase 6:** carry the revised Row 9 partition forward: music-only and a - different-device microphone - stay eligible; same-device capture and a tainted-monitor capture are excluded. +PixelPass commit `7b11827` carries the revised Row 9 partition through the real fan-out +controller. Four independent late-arrival gates prove music-only and a different-device +microphone each create both stereo links and reach `Captured`, while same-device capture and a +tainted-monitor capture retain `tainted-owner-bridge` and make zero link calls. Full validation +is 345 passed and 12 ignored; strict Clippy, all three serialized live Phase 6 mutation gates, +diagnostics and residue checks pass. This completes the deterministic link-manager matrix, not +Phase 6's separate live signal qualification. + +1. **Continue Phase 6:** build and run the production-path three-arm AEC leak measurement re-run, + keeping its deliberately naive positive control behind a test-only seam. 2. Preserve the new live mutation slice's ownership, serial-revalidation, fail-closed, exact-channel, all-links-active and crash-cleanup gates while finishing the phase.