docs: close Phase 8 integration

This commit is contained in:
2026-08-21 22:13:33 -04:00
parent 2c2b861516
commit 260815154f
2 changed files with 49 additions and 10 deletions
+33 -2
View File
@@ -22,8 +22,10 @@ validated and committed locally in PixelPass (`7b11827`).** The deterministic Ph
link-manager matrix is complete. **The production-path three-arm AEC leak qualification is
built, validated and committed locally in PixelPass (`e027bc6`), completing Phase 6.**
**Phase 7's public selector, AEC wiring and versioned capability response are built, validated
and committed locally in PixelPass (`792f2bd`).** Phases 89 are not built — nothing released to
date changes the feature's user-visible behaviour. **Phase 8 is now the current front.**
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 remains unbuilt; nothing has been released. **Phase 9 is now the current
front and remains the ship gate.**
**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.*
@@ -968,6 +970,35 @@ variant names (0d) do not block on it.
- Capability-gated picker entry; wording per v3.4 §11.
- Regression: existing `--app` / `--strict-audio` argv byte-identical to today.
> **Phase 8 — built, validated and committed locally as PeerSpeak `2c2b861` on 2026-08-21.**
> The picker/core boundary now uses one typed selection for legacy desktop, desktop-excluding,
> and strict per-app audio. `System audio except PeerSpeak` appears only when the exact resolved
> PixelPass advertises `desktop_audio_exclusion`; the existing `All system audio` choice remains
> alongside it with its echo warning. The machine-readable schema is primary, `--help` is only
> the old-PixelPass strict-app fallback, and the two capability bits stay independent.
>
> Capability results carry the resolved executable path. A capability-gated share reuses the
> picker probe only for that same path; a changed override or `$PATH` resolution is re-probed at
> start and fails closed when the selected feature is absent. The new mode emits exactly
> `--audio-mode=desktop-excluding` plus `--aec=off|pulse-module:<idx>`. The session-owned
> `EchoCancelGuard` exposes its verified numeric module index without moving the guard out of the
> load-bearing teardown object. Legacy desktop and per-app argv still delegate to the old builder
> and are byte-identical.
>
> All four version-1 exclusion events parse into one shared status type that crosses the actual
> host-notice channel into `UiEvent`; there is no duplicate matching enum. The UI retains an
> explanatory warning even when a status races the share-start acknowledgement, displays it with
> the live sharing badge, clears it on stop, and ignores late events for another mode. Exact
> parser and causal tests cover `stream_unsupported`, `aec_failed`, `aec_revoked`, and
> `foreign_aec_warning`.
>
> Final serialized validation (used after the parallel all-target link exhausted disk) passes:
> 649 unit tests with 7 live-only ignored, 20 integration tests with 4 live-only screen-share
> gates ignored, strict all-target Clippy, formatting, and `git diff --check`. The host-fault
> integration target compiles with the typed command. PixelPass's completed 9.1 GiB target tree
> was cleaned to recover disk; no source or Git state was removed. Phase 9 remains the explicit
> rig-upgrade and two-machine field-test ship gate.
---
## 7. Phase 9 — rig upgrade and field tests 🚦 SHIP GATE