From 8df35d1e186a79b2b7f86707d1e8510f8e0aca13 Mon Sep 17 00:00:00 2001 From: Erik Date: Sun, 9 Aug 2026 14:38:43 +0200 Subject: [PATCH] =?UTF-8?q?docs:=20Campaign=20CH=20plan=20skeleton=20?= =?UTF-8?q?=E2=80=94=20chat=20&=20interface-text=20retail=20parity?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit First track of the alpha-release program. Four deliverables: exact BuildChatColorLookupTable colors, working side channels vs ACE, retail's on-screen interface text, complete / and @ command registry. Model split per user direction: Opus research, Fable planning, Sonnet implementation, dual-lens Opus review per slice. Slices finalize when the four research lanes land. Co-Authored-By: Claude Opus 5 --- docs/plans/2026-08-09-chat-parity-campaign.md | 106 ++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 docs/plans/2026-08-09-chat-parity-campaign.md diff --git a/docs/plans/2026-08-09-chat-parity-campaign.md b/docs/plans/2026-08-09-chat-parity-campaign.md new file mode 100644 index 00000000..582501b6 --- /dev/null +++ b/docs/plans/2026-08-09-chat-parity-campaign.md @@ -0,0 +1,106 @@ +# Campaign CH — chat & interface-text retail parity + +**Status:** ACTIVE 2026-08-09 — research lanes running; slices finalize when +they land. + +**Why now:** first track of the alpha-release program (chat is the most +visible daily surface for the friend-alpha). User-directed 2026-08-09. + +## Scope + +Four deliverables, one campaign: + +1. **Exact chat colors.** The 2026-06-16 cdb session pinned the retail + `RGBAColor` constants (0x81c4a8+), but only 4 of ~13 kinds were mapped + with confidence; the type→color lookup table + (`ChatInterface::BuildChatColorLookupTable @ 0x4f31c0`) was never + decompiled. This campaign pins the COMPLETE table and conforms + `ChatWindowController.RetailChatColor` to it. +2. **Working side channels vs local ACE.** Turbine rooms (General / Trade / + LFG / Roleplay / Society) and the legacy family (/f /a /m /p /v /cv), + inbound and outbound. The 26-day-old "ACE doesn't run a TurbineChat + server" claim is under verification — the research lane reads current + ACE source rather than trusting it. +3. **Retail's on-screen interface text.** The transient yellow + top-of-viewport messages (jump-while-airborne being the canonical + example) that retail does NOT put in the chat window. Routing table + (on-screen vs chat vs both), presentation (color/duration/fade as far + as acclient-side data allows — the draw itself lives in keystone.dll), + and the client-raised local errors. +4. **Complete `/` and `@` command registry.** Every command the retail + client parses, audited against `RetailClientCommandCatalog` (the + 2026-07-13 family port is the baseline, not a restart). Missing + commands implemented; non-retail verbs remain ACE server-passthrough + per the command ownership rule (2026-07-13). + +**Out of scope:** retail's secondary/floating chat windows and per-window +filter masks (post-alpha polish unless a slice lands it for free); chat +color user-configurability (we ship retail defaults); TurbineChat server +emulation (ACE-side). + +## Method + +Per CLAUDE.md: grep `docs/research/named-retail/` first; cdb only where +static decomp is insufficient; cross-check ACE + holtburger; conformance +tests pin every table (colors, routing, command catalog); divergence +register rows land in the same commits; build + full Release suite green +per commit. + +**Model split (user-directed 2026-08-09):** research on Opus; planning by +the main loop (Fable); implementation slices on Sonnet; every slice gets a +dual-lens Opus review — retail faithfulness AND architecture — before its +gate. + +## Research lanes (all Opus, parallel, read-only) + +| Lane | Output doc | Question | +|---|---|---| +| R1 command registry | `docs/research/2026-08-09-chat-retail-command-registry.md` | Complete retail verb/alias/handler table + acdream audit | +| R2 interface text | `docs/research/2026-08-09-chat-retail-interface-text.md` | What draws the yellow text, the routing table, client-raised errors | +| R3 color table | `docs/research/2026-08-09-chat-retail-color-table.md` | Full BuildChatColorLookupTable decompile + wire→type→color trace | +| R4 side channels | `docs/research/2026-08-09-chat-side-channels-vs-ace.md` | Per-family defect diagnosis vs current ACE source | + +## Slices (provisional — finalized when research lands) + +Ordering rationale: colors first (small, immediately visible, zero wire +risk), then interface text (new presentation subsystem), then side +channels (wire work, needs the connected gate), then command breadth, +then closeout. Slices touching shared chat files run serially — one +implementer per slice against a pinned contract (per +`feedback_dont_parallelize_coupled_plan_slices`). + +- **CH1 — exact color table.** Conformance test pins every enum entry to + its retail RGBA; `RetailChatColor` corrected; register rows for any kind + we cannot yet receive on the wire. +- **CH2 — on-screen interface text.** New presentation owner (App layer, + retained-UI or TextRenderer HUD path per research recommendation); + routing per retail's table; client-raised local errors ported at their + retail raise sites; keystone-owned presentation unknowns get register + rows. +- **CH3 — side channels.** Fix list from R4; connected two-way gate + against local ACE (send + receive per family); self-echo semantics per + `ChatChannelInfo.IsSelfEchoChannel`. +- **CH4 — command registry completion.** Catalog conformance test pins + acdream's table against the retail registry enumeration; missing + commands implemented family-by-family. +- **CH5 — closeout.** Register sweep, ledger flip, ISSUES updates, + in-client test script for the user gate. + +## Gates + +- Per slice: `dotnet build` green, full Release suite green, conformance + tests, register rows same-commit, Opus dual review resolved. +- Campaign: user in-client gate — colors side-by-side vs the retail + client, each side channel spoken + heard, on-screen text provoked live + (jump in air), command spot-checks. Test script delivered at CH5. + +## Ledger + +| Slice | Commit | Suite | Review | User gate | +|---|---|---|---|---| +| R1–R4 research | — | — | — | — | +| CH1 colors | — | — | — | — | +| CH2 interface text | — | — | — | — | +| CH3 side channels | — | — | — | — | +| CH4 commands | — | — | — | — | +| CH5 closeout | — | — | — | — |