Skip to content

fix(protocol,server): rpc_response discriminator + server-side rpc routing - #11

Merged
johnnyhuy merged 1 commit into
mainfrom
fix/rpc-envelope
Aug 5, 2026
Merged

fix(protocol,server): rpc_response discriminator + server-side rpc routing#11
johnnyhuy merged 1 commit into
mainfrom
fix/rpc-envelope

Conversation

@johnnyhuy

Copy link
Copy Markdown
Contributor

Summary

  • RpcResponseSchema gains kind: "rpc_response" — previously the client's correlation check (envelope.kind === "rpc_response") could never match, so SupaplaneClient.rpc() was broken.
  • Adds server-side RPC routing: RpcRouter answering provider.list, provider.models, provider.modes, provider.diagnostic, workspace.list, session.list; unknown RPCs get an explicit ok: false reply.
  • WebSocket server gains setRpcHandler alongside setCommandHandler.

Consequences

  • None breaking — no RPC responses existed on the wire before.

Testing

  • 28/28 server tests pass, including 4 new E2E RPC round-trip tests
  • bun run typecheck clean, bun run lint 0 errors

…uting
RpcResponseSchema gains kind: "rpc_response" so SupaplaneClient.rpc()
can actually match replies. Adds an RpcRouter (provider.list/models/
modes/diagnostic, workspace.list, session.list) wired into the daemon,
plus E2E coverage of the rpc round-trip.
Co-authored-by: opencode-agent <hello@sst.dev>
@johnnyhuy
johnnyhuy merged commit 3838632 into mainAug 5, 2026
7 checks passed
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
…uting (#11)
RpcResponseSchema gains kind: "rpc_response" so SupaplaneClient.rpc()
can actually match replies. Adds an RpcRouter (provider.list/models/
modes/diagnostic, workspace.list, session.list) wired into the daemon,
plus E2E coverage of the rpc round-trip.
Co-authored-by: opencode-agent <hello@sst.dev>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
…uting (#11)
RpcResponseSchema gains kind: "rpc_response" so SupaplaneClient.rpc()
can actually match replies. Adds an RpcRouter (provider.list/models/
modes/diagnostic, workspace.list, session.list) wired into the daemon,
plus E2E coverage of the rpc round-trip.
Co-authored-by: opencode-agent <hello@sst.dev>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
…uting (#11)
RpcResponseSchema gains kind: "rpc_response" so SupaplaneClient.rpc()
can actually match replies. Adds an RpcRouter (provider.list/models/
modes/diagnostic, workspace.list, session.list) wired into the daemon,
plus E2E coverage of the rpc round-trip.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
johnnyhuy added a commit that referenced this pull request Aug 9, 2026
…uting (#11)
RpcResponseSchema gains kind: "rpc_response" so SupaplaneClient.rpc()
can actually match replies. Adds an RpcRouter (provider.list/models/
modes/diagnostic, workspace.list, session.list) wired into the daemon,
plus E2E coverage of the rpc round-trip.
Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com>
This was referenced Aug 9, 2026
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@johnnyhuy