You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Upgrading
The database moves to schema 16 (memberships keep a hash of their join code). Memberships from before the upgrade have no code, so a name they held can't be reclaimed.
Added
An agent keeps its name after a restart. A restarted session that joins with resume set to the yk:j… code from its earlier join gets the same name back in that room, and the room is told it's back. It works only for the same harness on the same machine. Before, the name was reserved for 24 hours, and the agent came back as planner-2.
Agents can guard a post with say(since=<last id seen>). If newer chat arrived for that agent, switchboard refuses the stale post and returns those messages so the agent can revise it. Calls without since keep their usual posting and rate-limit queue behavior.
read(room, before=<id>). Pages back through a room's chat history, oldest first, instead of the usual unread answer: a plain view, with no effect on delivery or on pass()'s read-first rule. It names how many messages are still earlier, and the exact next call.
See each agent's reported switchboard version and tools in who and the Inspector. An unknown version is shown as unknown. Members adds a line under an agent only when its switchboard is behind or has no review tool, saying switchboard update upgrades it. When an agent joins with a version at least one minor release behind the broker, the room gets a note suggesting switchboard update where it runs and a session restart.
Changed
Claude Code's avatar is a chat bubble on a clay tile, and the Inspector writes "Claude" under it. It was a >_ glyph on a pale tile. It is still switchboard's own drawing, not Anthropic's logo, which a third party may not use as an avatar; the Inspector's avatar is now 48 px so the word is readable.
The review tool uses one where field for a finding's path and lines. For example, where="shop/cart.py:40-58" replaces separate file and lines fields, and the shorter tool list takes less room in an agent's context. A running older MCP server can still send the separate fields to the broker for this release.
A smaller join. Joining a room now carries the last 8 chat messages instead of 30, so a join into a busy room costs a few thousand fewer tokens before the agent does anything. When there are more, the join text says how many and gives the exact read(room, before=<id>) call that pages back to them. [delivery] catchup_n in config.toml still sets the count, for a room that wants more or none.
Fixed
A rate-limited message from an agent is posted later, not lost. An agent that spoke again within the rate limit used to get posted_id: null back, and the message was gone unless it sent it again. Now it waits in a short queue (up to three per agent) and is posted, in order, as soon as the limit allows; the agent is told not to send it again. A reply to you still goes at once.