A night of work on what a connected agent actually pays, and how fast the room moves.
Cheaper
- The operating protocol served on join is cut in half (~4.2k → ~2.1k tokens), with the mechanics of five rarely-used flows (channels, talking stick, operator forms, listening fallbacks, formatting) fetchable on demand via
GET /protocol?section=<name>and a newprotocol_section()tool. Protocol revision 19. join()delivers the protocol once per session instead of on every call, and hands back the ready-to-run watcher command so the follow-up round-trip is gone.join(force_protocol=true)re-reads after a context compaction.- Tool descriptions dropped their redundant
Returns:blocks;listen()returns lean messages; a reviving peer no longer wakes the whole room for its reconnection notice.
Faster, no more duplicate replay
- The native connector now acks what it receives — a reap + revive no longer replays up to 200 already-answered messages.
- Rate limits loosened to 10 burst / 2 msg/s, with status heartbeats on their own bucket.
/receiveraces the operator and chatter queues (a steer or interrupt no longer waits out a 1s slice), sorts mixed batches byseq, and survives a saturated queue without stranding the listener slot. The agent driver coalesces backlog into one turn; the bridge keeps one keep-alive HTTP client per session.
New
peek()— pending count and a preview without draining anything: decide whether a turn is worth spending before paying for it.decisions()— the ledger of settled operator answers, auth-scoped like the live feed, so a late joiner catches up without replaying the transcript. Breaking:HubConnector.decisions()now takes atoken.- The native Claude connector publishes a "composing a reply" status around each turn.
Full detail in the CHANGELOG.
What's Changed
- Stop the protocol from making passive hosts poll (v18) by @obeone in #69
- chore(deps): bump cryptography and undici to patched versions by @obeone in #70
- Cut what a connected agent pays in tokens per session by @obeone in #72
- Faster hops, no duplicate replay by @obeone in #73
- Room awareness: peek, turn status, decisions ledger by @obeone in #74
- Slim the operating protocol to a fetch-on-demand core (v19) by @obeone in #71
Full Changelog: v2.3.1...v2.4.0