acdream/docs/research/2026-08-09-campaign-ch-test-script.md
Erik 09453ecae8 fix(chat): #363 — retail 0x1A typing for command refusals via the interface-text seam
ChatVM gains an OnInterfaceText hook + ShowInterfaceText(text), the
App-layer composition wires it to RuntimeCommunicationState.AddText,
and ChatCommandRouter routes every retail-0x1A command refusal through
it instead of the chat log's 0x00 sink. UI.Abstractions still never
references Runtime directly; unwired hosts (headless, tests) fall back
to the chat log tagged ClientLocal so no text is ever silently lost.

Reclassified per register row AP-183 (DoChannelList/On/Off, DoAllegiance,
DoHouseAvailableList — the last also corrected to retail's own bad-house-
type string instead of a synthesized "Usage:" line) and newly wired two
sites that previously showed nothing at all (DoStupidChannelHack's bare
legacy-channel-verb refusal, DoReply's message-but-no-last-teller
refusal). The generic bad-args fallback now resolves WeenieErrorMessages
0x026 ("That is not a valid command.", retail's HandleFailureEvent(0x26))
instead of synthesizing "Usage: {Usage}". DoSpeaker/DoEndurance/DoTitle
are untouched — already correct at 0x00.

Also closes #367 (DoHelp's "Unknown command" fallback and the degenerate-
prefix refusal now reach the SpewBox too) and retires register row
AP-186, whose own filing proposed exactly this seam shape.

Full Release suite: 12,542 passed / 4 skipped / 0 failed (baseline
12,466/4/0 at ff2784ea).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 15:21:30 +02:00

112 lines
5.9 KiB
Markdown

# Campaign CH — in-client user test script
One connected session against local ACE, retail GUI (`ACDREAM_RETAIL_UI=1`).
For the color checks, running the retail client side-by-side is ideal but
optional — the hex values are byte-verified; what needs eyes is "does it
FEEL right".
## 1. On-screen interface text (CH2 — the SpewBox)
- Jump, and press jump again while airborne → **"You can't jump while in
the air"** appears as transient text flush to the very TOP of the
viewport (round 3, 2026-08-10 — moved off the earlier 60px-down
placeholder), NOT in the chat window. Chat gets no line at all.
- Spam it 5+ times fast: the line refreshes in place (no stacking of
identical text); distinct refusals stack newest-on-top, max 4 lines.
- Try `@version` → its output goes to CHAT (green), not the SpewBox.
- The SpewBox text should now read visibly SMALLER than round 2 (retail
dat Font `0x40000025`, 11px, replacing the earlier 15px debug font).
- **Report presentation impressions**: position and font are now
best-available approximations, not resolved retail values (register
AP-178); line lifetime is still a placeholder (AP-177) — say what looks
wrong vs your retail memory.
## 2. Chat colors (CH1)
Side-by-side vs retail if possible:
- Say something → white. Emote (`:waves` works now) → grey.
- Tell someone → your "You tell ..." line is DARK yellow (210,210,100);
an incoming tell is BRIGHT yellow.
- Magic self-cast lines → light blue. Combat: damage you take → salmon,
damage you deal → dark red.
- `@version` / `@loc` output → green (retail types command output 0x00).
- Fellowship chat (if you form one) → bright yellow.
## 3. Side channels (CH3)
- `/general hi` → round-trips (ACE echoes it back; blue-grey color).
Same for `/trade`, `/lfg`.
- Roleplay: with "Hear Roleplay Chat" OFF (the ACE default), sending to
Roleplay → **"You are not listening to the Roleplay channel!"** and
nothing is sent. Enable it in Settings → Chat → ACE reports entering
the channel; sending now works. (`@join roleplay` / `@leave roleplay`
also flip it, effective immediately.)
- Legacy family single-print: `/f hi` (in a fellowship) shows ONE line,
not two. Same for /v /p /m /cv if you have the allegiance structure.
- `/a hi` without an allegiance → refusal, not a silent drop.
## 4. Commands (CH4)
- `:waves` and `;waves` → emote. `@f, hi` (trailing comma) works.
- `@t Two Word Name, hello` → comma splits the name (needs an alt with a
multi-word name to fully verify).
- `@g hi` → goes to FELLOWSHIP (not the global General room!). Without a
fellowship expect a server-side error — the important thing is it does
NOT broadcast globally.
- `@allegiance boot Bob` → "Please see @help Allegiance for more
information..." locally; nothing broadcast, nothing sent.
- `@house abandon` → TWO confirmation dialogs. **Decline** (unless you
really want to abandon a house). Declining either stage sends nothing.
- `@mr` → help text only. `@clist general` → channel list from ACE.
- An unknown verb like `@somenonsense` → passes through to ACE (server
answers, client does not swallow it).
## 5. Help text (round 3, 2026-08-10)
- `/help` (no args) → TWO lines in the chat window: a "Note: You may
substitute a forward slash..." line, then "Available help:" followed by
13 real retail topic one-liners (allegiances/channels/chatting/death/
emote/fillcomps/friends/house/squelch/status/text/commands). This
replaced an acdream-invented cheat sheet ("Chat: /say...", "Client:
/help...") — that text should no longer appear at all.
- `/help death` → the SAME "Note:" line first, then a SECOND line starting
"For more information, type @help <command>." immediately followed by
the 8-line corpse/death command listing — not just the 8 lines alone.
- `/help somenonsenseverb`**goal-window fix (2026-08-10, #367 closed):**
"Unknown command" now flashes on the SpewBox (top of viewport), NOT the
chat window — the SAME surface as section 1's "jump in the air" refusal.
Chat gets no line at all.
## 6. Goal-window fix — SpewBox refusal typing (2026-08-10, #363/#367)
- `/g` (or `/f`/`/a`/`/m`/`/p`/`/v`/`/c` etc.) with NO message → **"You
must specify the text you wish to say!"** flashes on the SpewBox.
Previously this silently did nothing.
- `/r hi there` (or `/reply`) with no prior incoming Tell → **"Someone
must @tell you first!"** flashes on the SpewBox. Previously silent.
- A bad-args catalog command, e.g. `/ls now` or `/marketplace foo`**"That
is not a valid command."** flashes on the SpewBox. Previously showed a
green "Usage: /lifestone" line in CHAT — both the color/surface AND the
wording changed.
- `/hslist badtype`**"Please see @help hslist for more information on
how to use this command"** flashes on the SpewBox. Previously showed a
green "Usage: /hslist <house type>" line in CHAT.
- `/clist`/`/on`/`/off` with no channel name, and `@allegiance boot Bob`
from section 4 above — SAME text as before, but now flash on the
SpewBox instead of showing in chat.
- A bare `/` or `@x` (no letter verb) and `/help somenonsenseverb` (section
5) both now flash "Unknown command[: x]" on the SpewBox too.
- Sanity: `/endurance`, `@version`, `@loc` and other informational command
output must STILL show in chat (green/default), not the SpewBox — only
genuine refusals moved.
## Known-open, do not report as new
- Ctrl+M mute chord (#358) — still broken, separate from this campaign.
- SpewBox line lifetime is still a placeholder (AP-177) pending a retail
measurement session; position/font are now best-available
approximations (AP-178), not confirmed retail pixel values.
- Allegiance management subcommands print the help refusal instead of
executing (#360); `@day`/`@log`/`@render` deferred (#361); four request
commands send but responses aren't rendered yet (#362, already closed).