test(realtime): broadcast parity for every MCP write tool

A suite under tests/integration/broadcast-parity boots the app once per
group, runs a write tool through a real MCP session the way the
assistant attaches the registry, runs its REST twin on a twin scene, and
records every broadcast. Per case it checks the exact events in order and
count, that no MCP broadcast skips a socket (the asking tab hears its own
change), that nothing is sent inside a transaction, that every payload
parses with its registered schema, that REST sends the same sequence to
the same room and recipients, and that MCP's keys cover REST's.

A registry test lists the write tools as an MCP client sees them and
fails on a tool without a row, a stale row, or an exemption without a
reason; exemptions run too and must send nothing, and the tools still
waiting for a case are frozen in a list that may only shrink.

The new events the next changes send are registered now (member:updated,
todo:reordered, trips:changed, settings:updated, tags:changed,
notification:read-all, journey:updated, journey:deleted, atlas:changed);
the client keeps them apart as awaiting a sender, and the journey page
already leaves a journey that journey:deleted says is gone.
This commit is contained in:
Maurice
2026-10-22 00:03:34 +00:00
parent 5daa2a0311
commit 72ff9600f4
25 changed files with 2058 additions and 14 deletions
+1 -1
View File
@@ -14,7 +14,7 @@
"files.ts": 4,
"help.ts": 3,
"inspector.ts": 4,
"journey.ts": 70,
"journey.ts": 69,
"login.ts": 1,
"map.ts": 5,
"memories.ts": 8,