acdream/tests/AcDream.UI.Abstractions.Tests
Erik d3cab1ab10 fix(chat): / and @ are equivalent command prefixes (retail parity)
Retail treats / and @ interchangeably for commands, but two client-side
layers broke the / spelling for server commands:

- ChatCommandRouter refused ANY unknown /verb with a local "Unknown
  command" guess — so /tele, /ci, /acehelp never reached ACE even
  though ACE supports them. The guard is gone; the server is now the
  single authority on what's a valid command (ACE replies "Unknown
  command: x" itself).
- ChatInputParser passed unknown /verbs through as literal speech.
  ACE's GameActionTalk only intercepts the @ form on the wire (the /
  acceptance in CommandManager is the server CONSOLE path), so the
  parser now rewrites unknown /xyz -> @xyz.

Both command pass-throughs (@ and rewritten /) now also force the Say
channel: GameActionTalk (0x0015) is the only wire action ACE parses
commands on — previously a command typed with a chat channel active
would broadcast as channel speech.

Phase J Tier 4 ("/-text must never broadcast as speech") still holds:
letter-verbed input goes out as an @command (never speech), and
command-shaped-but-verbless input ("/", "//shrug") is refused locally
by a narrow router guard.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 09:46:50 +02:00
..
Input feat(D.2b): write-mode movement gate that preserves autorun 2026-06-16 15:24:19 +02:00
Panels fix(chat): / and @ are equivalent command prefixes (retail parity) 2026-07-03 09:46:50 +02:00
AcDream.UI.Abstractions.Tests.csproj test(ui): AcDream.UI.Abstractions unit tests (11 tests green) 2026-04-25 00:25:26 +02:00
ChatVMTests.cs fix(chat): BuildTell wire field order + retail-style FormatEntry + suppress duplicate Channel echo 2026-04-25 20:49:02 +02:00
FakePanelRenderer.cs feat(ui): chat Copy mode — select + Ctrl+C any text in the chat tail 2026-04-26 21:45:39 +02:00
IPanelRendererMainMenuBarTests.cs feat(ui): #25 Phase K.3 — Settings panel + click-to-rebind + Phase K shipped 2026-04-26 09:44:56 +02:00
IPanelRendererWidgetTests.cs feat(ui): #14 IPanelRenderer widget extension - TextColored, Checkbox, Combo, InputTextSubmit, BeginTable, etc. 2026-04-25 19:03:28 +02:00
LiveCommandBusTests.cs feat(ui+net): #16 LiveCommandBus + WorldSession.Send{Talk,Tell,Channel} + SendChatCmd wiring 2026-04-25 19:27:22 +02:00
NullCommandBusTests.cs test(ui): AcDream.UI.Abstractions unit tests (11 tests green) 2026-04-25 00:25:26 +02:00
PanelContextTests.cs test(ui): AcDream.UI.Abstractions unit tests (11 tests green) 2026-04-25 00:25:26 +02:00
SendChatCmdTests.cs feat(ui+net): #16 LiveCommandBus + WorldSession.Send{Talk,Tell,Channel} + SendChatCmd wiring 2026-04-25 19:27:22 +02:00
VitalsVMTests.cs feat(player): #5 PlayerDescription parser — Stam/Mana via attribute block 2026-04-25 16:42:24 +02:00