Skip to content

feat: serve SolutionServer through agents.Serve() (#290) - #293

Merged
antoinetoussaint-byte merged 2 commits into
mainfrom
issue-290-solution-wire-solutionserver-into-agents-serve-so-the
Aug 16, 2026
Merged

feat: serve SolutionServer through agents.Serve() (#290)#293
antoinetoussaint-byte merged 2 commits into
mainfrom
issue-290-solution-wire-solutionserver-into-agents-serve-so-the

Conversation

@antoinetoussaint-byte

Copy link
Copy Markdown
Contributor

Closes#290.

Summary

Test plan

  • go test ./agents/ passes
  • serve_solution_test.go boots a real solution agent binary through Serve() and calls the Solution RPC end-to-end (no mocks)

Add a Solution field to PluginRegistration and register it during agent
startup, so a solution plugin can expose its gRPC contract through the
standard Serve() path alongside Provider and the other capabilities.
Extract the unconditional server registrations into a testable
registerServices helper and cover Solution registration with a test.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The prior test asserted a private registerServices helper via
GetServiceInfo, so it could not catch a regression that stopped Serve
from calling the registration (both tests passed against the helper, not
against Serve). The helper existed only to enable that weaker test.
Register Solution inline in Serve exactly like Provider (dropping the
helper), and replace the unit test with a real spawn test: it builds a
testdata solution agent, starts it through Serve, dials over gRPC, and
asserts a Solution RPC routes to the fixture handler. Removing the
registration in Serve now surfaces as an Unimplemented "unknown service"
error — verified by temporarily deleting the registration. No mocks; the
test drives the actual Serve path.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@antoinetoussaint-byte
antoinetoussaint-byte merged commit b615128 into mainAug 16, 2026
1 check passed
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.

solution: wire SolutionServer into agents.Serve() so the contract is servable

1 participant

@antoinetoussaint-byte