docs: Campaign CH plan skeleton — chat & interface-text retail parity
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 <noreply@anthropic.com>
This commit is contained in:
parent
dad38320fb
commit
8df35d1e18
1 changed files with 106 additions and 0 deletions
106
docs/plans/2026-08-09-chat-parity-campaign.md
Normal file
106
docs/plans/2026-08-09-chat-parity-campaign.md
Normal file
|
|
@ -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 | — | — | — | — |
|
||||||
Loading…
Add table
Add a link
Reference in a new issue