diff --git a/docs/testing/wine-proton-phases.md b/docs/testing/wine-proton-phases.md index 4eb3be7..d124813 100644 --- a/docs/testing/wine-proton-phases.md +++ b/docs/testing/wine-proton-phases.md @@ -129,7 +129,7 @@ At the start of every phase session: |---|---|---|---|---| | 0 | Native exclusion foundation | none | `wine/native-hook-exclusions` | Fast-forward merged into wine-access `hunter`; not pushed | | 1 | Ready record, spawn evidence, mixed-prefix spawn semantics | `wine/ready-and-spawn-evidence` | `wine/ready-and-spawn-evidence` | Accepted and merged into `hunter` in both repositories; not pushed | -| 2 | Live Wine settings | `wine/live-settings` | none | Not started | +| 2 | Live Wine settings | `wine/live-settings` | none | Accepted and merged into `hunter`; not pushed | | 3 | Wine preferences tab | `wine/preferences-tab` | none | Not started | | 4 | Live verification and final results | `wine/verification` | Defect branch only for a proven helper cause | Not started | @@ -279,6 +279,57 @@ profiles cannot change the governing Wine list. Stop boundary: report the diff and evidence. Do not begin the preferences tab in the same session. +### Accepted handoff (2026-11-01) + +- Session: `wine-2-jefferson` (`fallow-puppis`, + 01a19a90-0c47-71a3-931e-404257a1fefe); coordinated from the master + session (`still-enceladus`). +- Starting commit: Cthulhu `a60a251` on `wine/live-settings`. + Wine-access untouched (Cthulhu-only phase). +- Committed after maintainer acceptance: Cthulhu `9a10a15` + ("Read Wine settings live at poll and spawn"), 13 files, + +327/-51, then merged into `hunter` at the maintainer's + direction. This ledger update rides a separate docs commit on + the phase branch. Not pushed. +- Behavior: the manager reads a live global-only Wine snapshot once + per poll and uses it for that poll's restart/spawn decisions; + global applies republish it (`setGlobalSettings`), per-application + profile switching never does. Decision 17 restart-on-addition and + the absolute no-downgrade rule are preserved and now live-driven. +- Automated evidence (phase session; `internal/wine`, + `internal/config`, the focused app live-settings tests, `go vet`, + and gofmt independently re-run green by the master session at + landing): race-enabled wine suite including live-source + transitions; TOML → config store → global apply test proving an + addition governs the same manager with no reader restart and that + application-profile switching cannot change the governing list; + build and brlapi-tagged wine/config suites. One `internal/app` + failure (`TestEchoSpeakerSwitchesBothVoicesTransactionally`, + sandbox unix-socket restriction) reproduced on clean `a60a251`; + recorded as pre-existing environmental, as in Phase 1. +- Live evidence, by kind: installed-binary — maintainer-rebuilt + Cthulhu from the phase tree. Audible speech — maintainer smoke, + 2026-11-01: baseline Wine Notepad read normally beside Diablo IV; + after adding Notepad itself to the exclusions and reloading the + reader, Notepad no longer spoke (expected native gating); after + removing it and reopening, reading returned. An attempt to edit + the settings file externally while the reader stayed alive did + not take effect; this was investigated and recorded as a + methodological note, not a defect: neither Go nor legacy Python + Cthulhu has ever auto-reloaded the main settings file on external + edit (legacy reloads on explicit triggers such as preferences + Apply/`loadUserSettings`), and decision 3's live trigger is + preferences Apply, whose Wine values arrive with the Phase 3 tab. + Physical input beyond launching, and Braille-display evidence: + none this phase. +- Not exercised: a user-accessible no-restart Wine addition (no + Wine control exists until Phase 3; the backend chain is covered + by the applyNext-level test), full `go test ./...`, the Phase 4 + live corpus and Braille regression. +- Ready for maintainer review: yes. Accepted by the maintainer on + 2026-11-01 ("a good state for phase two") after the external-edit + question was settled as above. + ## Phase 3: Wine preferences tab Status: not started. Contract decisions: 6, 9, 13, 19.