Skip to content

v0.8.6

Choose a tag to compare

@panyam panyam released this 23 Oct 18:46
· 126 commits to main since this release

v0.8.6

The release that finishes the room bridge (issue 1581) and puts its page client on npm. A page can
now tell agents what its user did, and an agent hears it as SEP-3415 events, as a turn in a live
Claude Code session, or by polling when its host speaks neither. A page can also pair with another
user's agent by showing a code. @panyam/mcpkit-rooms publishes with every release from here on, at
the release's version, with npm provenance.

Added

  • @panyam/mcpkit-rooms on npm, the room bridge's page client:
    npm install @panyam/mcpkit-rooms@0.8.6. It's versioned with mcpkit, so 0.8.6 is the page side
    of the bridge the Go modules carry at v0.8.6; use the same version on both sides. Published from
    the release tag by publish-npm-rooms.yml through npm trusted publishing. (PR 1605)
  • Page events. A page emits room.ask, page.selection_changed or a name of its own
    (Ask, SelectionChanged, Emit in Go; ask, selectionChanged, emit in TS). Names are
    validated and data is capped at 16 KiB. (PR 1602)
  • experimental/integrations/roomsevents, a new module (tagged from this release):
    • The bridge's page events as SEP-3415 event types, subscribed per resource. A session hears a page
      only while attached to its room and only if the page agreed to it.
    • cmd/rooms-channel, a stdio Claude Code channel front end that turns each event into one
      notifications/claude/channel in a live session. It has been checked against Claude Code's
      channel docs but not yet run inside a real session. (PR 1602)
  • Fallbacks for hosts that speak no events, with rooms.WithEventFallbacks:
    • next_request, a long-poll tool with a cursor.
    • rooms://events/{resource}, a per-room resource whose notifications/resources/updated reaches
      only subscribed sessions the page agreed to. (PR 1604)
  • Reverse pairing. The page shows a code (OfferPairingCode / offerPairingCode), and the agent
    enters it with the new pair tool. The code is single-use, short-lived and rate-limited, and the
    page hears which agent paired. (PR 1604)
  • server.WithExperimentalCapability declares the spec's capabilities.experimental. (PR 1602)
  • The events bridge asks before outward-facing tools. approvals, approve and deny tools,
    with a timeout that denies, are the daemon's default. watch_list reports which tools a watch may
    name. (PR 1600)
  • Client:
    • ReadResourceWith and GetPromptWith take WithProgress.
    • ToolCallWith sends Mcp-Param-* headers.
    • Progress reaches an in-process (WithTransport) client. (PR 1601)

Changed

  • Client.Close sends DELETE for a Streamable HTTP session, so the server's OnSessionClose
    hooks run at once instead of at idle expiry. It's best effort, bounded at 2 s, and a 405 is
    ignored. (PR 1601)
  • ext/auth builds its insufficient_scope 403s with core.ScopeChallenge.AuthError. The
    response bytes are unchanged and pinned by a test. (PR 1601)
  • servicekit v0.1.11 and massrelay v0.2.5 across the tree. servicekit v0.1.10 fixed a data race
    on every grpcws WebSocket close (servicekit issue 41), so the massrelay transport's tests now run
    fully under -race. (PR 1606)
  • The Makefile's KC_* variables come from the environment, so KC_PORT=8181 make testkcl-auto
    works as documented. (PR 1601)

Upgrading downstream

  • agni:
    • go get github.com/panyam/mcpkit/experimental/ext/rooms@v0.8.6 github.com/panyam/mcpkit/experimental/ext/rooms/massrelay@v0.8.6,
      plus …/experimental/integrations/roomsevents@v0.8.6 for room events or the channel.
    • In the browser: npm install @panyam/mcpkit-rooms@0.8.6 instead of a dependency on the source
      tree.
    • This brings in massrelay v0.2.5 and servicekit v0.1.11.
  • chakra and others on servicekit: go.mod moves to servicekit v0.1.11.
  • Anything implementing a client transport: a transport passed to WithTransport may implement
    the new core.NotificationReceiver to deliver server notifications to the client.