Skip to content

v1.4.0

Choose a tag to compare

@cmer cmer released this 13 Aug 17:40
· 23 commits to main since this release
673872a

Added

  • Lean mode per agent. An agent with 5–10 enabled servers can receive 100+ tool definitions —
    tens of thousands of context tokens paid on every session for schemas it mostly never uses. A new
    per-agent Tool exposure toggle (Agents page, default Full) switches an agent to Lean: its
    tools/list shrinks to a constant-size set of meta-tools — switchboard__search_tools (ranked
    lexical search over its enabled catalog), switchboard__describe_tools (full descriptions with
    input/output shapes rendered as compact TypeScript instead of JSON Schema), and
    switchboard__call_tool (invoke any enabled tool by namespaced name) — so tools are discovered on
    demand via search → describe → call. The switch matrix still governs what is searchable and
    callable, typo'd names come back with suggestions, the Logs page attributes wrapped calls to the
    real upstream tool, and toggling the mode updates live sessions immediately.

  • Agents can register MCP servers themselves. Discovering a useful server used to mean relaying
    its config to a human to paste into the UI. An agent granted the new manager role (a per-agent
    toggle on the Agents page, off by default) gets switchboard__add_server — paste the same
    claude mcp add … line or mcpServers JSON found in a README and the server is created, enabled,
    and its tools appear in the same live session — plus switchboard__assign_server,
    switchboard__list_agents and switchboard__server_status to manage the matrix and self-debug.
    Local stdio servers are the deliberate exception: they execute a command on your machine, so no
    agent can create one directly, whatever its role.

  • A request/approval queue keeps humans in the loop. Every agent (manager or not) gets
    switchboard__request_server: it files the ask — with a pasted config or just a reason — and
    returns immediately. Pending requests show as a badge in the UI with a review panel that renders
    stdio commands in a "this will execute on your machine" warning block; approving one creates the
    server through the same path as the UI and pushes the new tools into the requesting agent's
    still-open session. Denials carry an optional note the agent reads back with
    switchboard__request_status. Stored request configs are encrypted at rest like every other
    secret, and a Settings toggle hides the request tools entirely if you'd rather agents couldn't
    ask. Servers created by agents show an "added by" chip for provenance, and because meta-tool
    calls are ordinary MCP requests, every management action lands in the request logs.

Changed

  • Calls to a server an agent lacks now fail exactly like calls to a server that doesn't exist.
    The two cases used to return different errors ("not enabled for this agent" vs "unknown server"),
    which let any agent probe which server slugs were configured globally. Both now return the same
    Unknown server error, so the switch matrix no longer leaks the existence of servers it hides.

Fixed

  • Request logs no longer attribute switchboard__* meta-tool calls to a phantom "switchboard"
    server.
    Management and request meta-tools were logged with switchboard as their upstream
    server — a server that doesn't exist — polluting the Logs page's server filter. They now log with
    no upstream server, like the other switchboard-native rows.