diff --git a/CLAUDE.md b/CLAUDE.md index b0b0dd5e..7bf9f53a 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -156,7 +156,24 @@ colors, the SpewBox with retail's two-plane glyph outlines, working side channels, the 152-verb command registry, the CH6 window shell (floating windows, all-corner resize, opacity), and verbatim /help. Carried tail: #360/#361, #366, #369, AP-177/190/191, and the round-5 review S1–S3 -polish items. +polish items. **Campaign OP — the retail four-tab Options panel +(`docs/plans/2026-08-10-options-panel-campaign.md`) is CODE-COMPLETE +2026-08-11.** Retail's Options panel (Gameplay Options / Character / Chat / +Config, LayoutDesc `0x2100002B`) plus the Configure Keyboard screen are +acdream's ONE in-client settings surface (design D1): F11/toolbar open the +authored tab host; `RuntimeCharacterOptionsState` + the 53-id +`CharacterOptionTable` own option storage; retail's wire split ships exactly +(21 auto-save ids → `0x0005` immediate, the rest ride the real `0x01A1` +PlayerModule blob with Apply/logout/480 s flushes, header always `0x460`); +headless bots declare options by name (OP7's live bot-vs-ACE gate PASSED); +OP9 retired the dead F11 `SettingsPanel`/`SettingsVM` surface and the +`GameplaySettings` record outright. OP1/OP2/OP7/OP9 CLOSED through dual/ +combined Opus review; **OP3–OP6 + OP8 owe their connected user gates** — +script `docs/research/2026-08-11-campaign-op-test-script.md`, launch with +`ACDREAM_RETAIL_UI=1` (#372's blank-tabs half is FIXED at `057d8cd7`; its +Gameplay-buttons half needs the re-gate with the new click logs). Tail: +#371, #373, AP-198/199/201/202/203. START at +`claude-memory/project_settings_options_digest.md`. **Placement cutover — C4 COMPLETE 2026-08-05, merged to main.** Every placement route now runs through the canonical residence + continuation- diff --git a/docs/plans/2026-08-10-options-panel-campaign.md b/docs/plans/2026-08-10-options-panel-campaign.md index 83484d29..96cdbabf 100644 --- a/docs/plans/2026-08-10-options-panel-campaign.md +++ b/docs/plans/2026-08-10-options-panel-campaign.md @@ -6,7 +6,11 @@ > appendix — implementers MUST read the cited sections before coding; every > table this plan references by section number is committed there in full. -**Status: ACTIVE — planned 2026-08-10. No slices landed yet.** +**Status: CODE-COMPLETE 2026-08-11 — all nine slices landed and reviewed. +OP1/OP2/OP7/OP9 CLOSED; OP3–OP6 + OP8 owe their connected user gates (the +campaign's remaining work is the user's eyes, not code). Gate script: +`docs/research/2026-08-11-campaign-op-test-script.md`. Post-campaign tail: +#371, #372's Gameplay-buttons re-gate observation, #373, AP-198/199/201/202/203.** **Goal:** retail's four-tab in-game Options panel (Gameplay Options / Character / Chat / Config), retail-faithful mechanics end-to-end: authored @@ -425,4 +429,4 @@ before anything builds on them. | OP6 | CODE-COMPLETE, gate READY | `f5ac1742` (REJECTED) → rework `472525b9` → doc residuals (coordinator) | REJECT (`2026-08-11-op6-review.md`) → re-review CLOSED, all six caption sites byte-decoded (`2026-08-11-op6-rereview.md`) | connected gate OWED (script §OP6) | | OP7 | CLOSED | `09cb548a` → fixes in `7b60e71b` (shared commit, see its message) | combined-lens APPROVE-WITH-FIXES (`2026-08-11-op7-review.md`); all nine findings closed | live bot-vs-ACE gate PASSED 2026-08-11 (coordinator; evidence in script §OP7) | | OP8 | CODE-COMPLETE, gate READY | `b4edee97` (REJECTED) → rework `b1968ce9` → residuals `f1d50207` → merge `1c5cd969` | dual REJECT (`2026-08-11-op8-review-{mechanism,blast}.md`) → rework → re-review REOPEN-narrow (`2026-08-11-op8-rereview.md`) → coordinator round-2 residuals (inert-row conflict exclusion, DAT-default display, injectivity pin; #373 filed) | connected gate OWED (script §OP8) — merged onto the campaign tip AFTER `057d8cd7` per the re-review's merge note, so the #372 viewport fix covers OP8's six ListBoxes | -| OP9 | — | | | | +| OP9 | CLOSED | `371197a3` → review residuals `07f2b3f7` | combined-lens APPROVE-WITH-FIXES (`2026-08-11-op9-review.md`, `289bf5bc`): MUST-FIX 1 (SaveAudio→ApplyAudio live-apply lost its only assertion — restored + failure-ordering pin), SF-2 (code-structure.md seam list), SF-3 (dead residues: private SaveCharacter, ISettingsStorage.SaveCharacter, IngressShutdownRoots.Settings — deleted; SettingsStore's public SaveCharacter kept as the tested storage API), SF-4 (test-delta was −84 = 94 removed/10 added, not the commit message's "−80 exactly"; no live-behavior test in the gap besides MUST-FIX 1's), SF-5 (dangling comment), NIT 6 (AP-196 channel attribution corrected in-register) — all closed by coordinator residuals | closeout gate = the user's final connected matrix over §OP3–§OP8 | diff --git a/docs/research/2026-08-11-campaign-op-test-script.md b/docs/research/2026-08-11-campaign-op-test-script.md index 1164cb0e..776d4bf4 100644 --- a/docs/research/2026-08-11-campaign-op-test-script.md +++ b/docs/research/2026-08-11-campaign-op-test-script.md @@ -1,7 +1,13 @@ # Campaign OP connected-gate test script -**Status:** OP3, OP4, OP5, OP6, OP7, and OP8 sections. The campaign's OP9 -closeout gate is this document complete plus every slice code-complete. +**Status: COMPLETE (2026-08-11) — the campaign is code-complete and this +script is its connected-gate contract.** §OP3–§OP6 and §OP8 are the gates +the user still owes their eyes; §OP7's gate already PASSED (coordinator, +evidence in-section). Launch with `ACDREAM_RETAIL_UI=1` against live ACE. +Re-gate note for the previously-blank tabs: #372's viewport fix landed +(`057d8cd7`), and every wired Gameplay-tab button now logs +`[options] gameplay button 0x... clicked` — a silent click in that log IS +evidence, report it per-button. This document is the script the user runs against the live connected client (`ACDREAM_LIVE=1` against the local ACE server) to accept each