diff --git a/docs/screenshare-audio-exclusion-impl-plan.md b/docs/screenshare-audio-exclusion-impl-plan.md index c923602..9b49add 100644 --- a/docs/screenshare-audio-exclusion-impl-plan.md +++ b/docs/screenshare-audio-exclusion-impl-plan.md @@ -24,10 +24,10 @@ built, validated and committed locally in PixelPass (`e027bc6`), completing Phas **Phase 7's public selector, AEC wiring and versioned capability response are built, validated and committed locally in PixelPass (`792f2bd`).** **Phase 8's PeerSpeak capability negotiation, picker/argv integration and causal status surface are built, validated and committed locally -(`2c2b861`).** **Phase 9's PN correlation/xrun rig is implemented and non-live validated locally -in PixelPass (`98bb78f`); its controlled live run and the field matrix remain open, and nothing -has been released. Phase 9 is still the current front and ship gate.** -**Date:** 2026-07-21 (v4); status line refreshed 2026-08-21 +(`2c2b861`).** **Phase 9's PN correlation/xrun rig is implemented and live-qualified locally in +PixelPass (`98bb78f`, hardened by `360d711`); the field matrix remains open, and nothing has +been released. Phase 9 is still the current front and ship gate.** +**Date:** 2026-07-21 (v4); status line refreshed 2026-08-22 **Design of record:** [`screenshare-audio-exclusion-plan.md`](screenshare-audio-exclusion-plan.md) v3.8, round 11. **Scope:** *ordering, gates and acceptance criteria only.* @@ -1019,14 +1019,25 @@ gross-leak distinction, in v3.4 §9.2's exact wording. > teardown/residue and audio-health gates. > > Thresholds are fixed in the ignored live test before any arm runs: present correlation ≥ 0.25, -> excluded correlation ≤ 0.20, and zero new xruns. The pure probe-orthogonality/phase test, all -> 355 non-live tests (14 live-only ignored), formatting, diff checks, and strict all-target Clippy -> pass. The live three-arm test has **not** fired: an already-running PeerSpeak instance owned an -> echo-cancel module, and the test correctly refused to mutate the shared audio graph. After -> PeerSpeak is closed, run it alone from PixelPass with -> `cargo test -j 1 host::audio_plan::tests::live_phase9_three_arm_pn_correlation_measurement -- --ignored --exact --nocapture --test-threads=1`; -> until that passes, the rig upgrade is not qualified and Phase 9 remains open. The -> two-machine/real-path matrix below remains open regardless of that result. +> excluded correlation ≤ 0.20, and zero new xruns. +> +> **Controlled live qualification PASSED on 2026-08-22; harness hardening committed as PixelPass +> `360d711`.** The first two safe attempts exposed assumptions in the new rig before they could +> hide field variance: PipeWire returned five matching IDs for four requested node names, proving +> again that `node.name` is not unique, and cold `parec` startup yielded too little audio for three +> windows. The resolver now requires every requested name while monitoring all matching IDs, with +> a duplicate/missing-name regression test. Phase 9 alone records for six seconds from twelve-second +> probes; the proven Phase 6 recorder remains at three seconds and its behavior is unchanged. +> +> The final serialized run produced seven complete windows per channel in every arm. The absent +> remote-probe maximum was 0.1356 in control and 0.1340 when guarded, both below 0.20. The naive +> positive-control remote minimum was 0.5741, and the eligible desktop minimum across all arms was +> 0.6429, both above 0.25. Every arm added zero xruns. Original playback and exact capture routes +> remained intact, and the final module/sink/link/process/temp-file residue scan was empty. Full +> validation passes 356 non-live tests with 14 live-only ignored, strict all-target Clippy, +> formatting, diff checks, and `pixelpass --doctor`. Nix was unavailable, so the run used system +> Rust 1.96.1 with one build job. **The rig upgrade is qualified; the two-machine/real-path matrix +> below remains open and keeps the Phase 9 ship gate closed.** **Every row gets a declared pass/fail threshold before the run, not after.** Baseline for all rows: excluded probe ≤ the declared rig criterion; **eligible control audio present**; original diff --git a/docs/screenshare-audio-exclusion-plan.md b/docs/screenshare-audio-exclusion-plan.md index fd1a089..59eec04 100644 --- a/docs/screenshare-audio-exclusion-plan.md +++ b/docs/screenshare-audio-exclusion-plan.md @@ -1475,8 +1475,10 @@ live-only screen-share gates ignored), strict all-target Clippy, formatting and **Phase 9 is current.** PixelPass `98bb78f` implements the two-probe, windowed per-channel normalized-correlation rig with involved-node xrun telemetry, fixed pre-run thresholds, route -integrity checks, and the control/guarded/naive topology. Its pure test, the full non-live suite, -and strict Clippy pass. The controlled live rig test has not fired because an already-running -PeerSpeak instance owned an echo-cancel module; it must pass alone after PeerSpeak is closed. -**Field-test §12 also remains owed** — nothing in this design has yet been tested over the real -GStreamer/AAC/network path or on two machines. No exclusion claim may be published yet. +integrity checks, and the control/guarded/naive topology; live-discovered harness hardening is +committed as `360d711`. The controlled live run passed on 2026-08-22: excluded-probe maxima were +0.1356 control / 0.1340 guarded against a 0.20 limit; the naive positive-control minimum was +0.5741 and eligible desktop minimum was 0.6429 against a 0.25 floor; every arm added zero xruns. +The full non-live suite, strict Clippy, `pixelpass --doctor`, route checks, and final residue scan +also pass. **Field-test §12 remains owed** — nothing in this design has yet been tested over the +real GStreamer/AAC/network path or on two machines. No exclusion claim may be published yet.