Show director summons as info toasts and presence queue labels.

Corridor waiters need a summon-phase byte on presence (v11); EventDef DirectorSummoned is info-only so clocks keep running.
This commit is contained in:
Leonid Pershin
2026-08-21 13:07:47 +03:00
parent d3c2327e23
commit 9e429d0cd7
29 changed files with 453 additions and 28 deletions
+5 -2
View File
@@ -1,4 +1,4 @@
# Wire protocol v10
# Wire protocol v11
The client talks to the server two ways:
@@ -1159,10 +1159,13 @@ Each person:
| `u8` | `1` here, `2` walking |
| `u8` | talk-circle member count, then that many person-id strings |
| string | topic id (empty when not in a circle) |
| `u8` | summon phase: `0` none, `1` going to the principal, `2` waiting in the corridor, `3` in a hearing |
Member ids are the live circle, including self, sorted by id. Count `0` and an empty topic mean
the person is not talking — the same id/node/state as before the circle fields. Names are not
on this frame; the client builds «говорит с Машей о футболе» from the HTTP directory and locale.
Summon phase is a dedicated byte because node + here/walking alone cannot tell a corridor waiter
from a passer-by (protocol v11).
### `0x87` Notice — variable
@@ -1197,7 +1200,7 @@ Layout extra after the v10 personId field; protocol version stays 10.
the oldest, because a stale clock is worthless once a newer one exists.
- The map snapshot, presence and notices use a separate reliable queue so ticks cannot crowd them out.
## Not in v10 yet
## Not in v11 yet
Authentication, Sit orders, a year-long event log, walk animation, and `OpenLocation` on the server —
the tree and the location panel are filtered on the client from the snapshot plus presence.