fix: merge Extensions in unionCapabilities (#9)
## Summary `unionCapabilities` merges `Experimental` map entries from inner variant servers but skips the `Extensions` field entirely. This means any extension registered via `ServerCapabilities.AddExtension()` on an inner server (e.g. `io.modelcontextprotocol/skills`) is silently dropped from the front proxy's `InitializeResult`. - Add the same first-wins merge logic for `Extensions` that already exists for `Experimental` - Bump `go-sdk` to v1.4.1 which introduced the `Extensions` field on `ServerCapabilities` - Add unit test for `unionCapabilities` extensions merging - Add integration test verifying extensions survive the variant path end-to-end ## Test plan - [x] `TestUnionCapabilities_MergesExtensions` — verifies first-wins merge semantics for extensions - [x] `TestIntegration_ExtensionsAdvertised` — verifies extensions registered on inner servers appear in the client's `InitializeResult` - [x] All existing tests pass (27/27) Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
b95923d172
commit
cfc05d6f5e
1 changed files with 103 additions and 18 deletions
4
.github/workflows/go.yml
vendored
4
.github/workflows/go.yml
vendored
|
|
@ -24,7 +24,7 @@ jobs:
|
|||
- name: Set up Go
|
||||
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
|
||||
with:
|
||||
go-version: "^1.25"
|
||||
go-version: "^1.24"
|
||||
- name: Check formatting
|
||||
run: |
|
||||
cd go/sdk
|
||||
|
|
@ -51,7 +51,7 @@ jobs:
|
|||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
go: ["1.23", "1.24", "1.25"]
|
||||
go: ["1.24", "1.25"]
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
|
|
|
|||
Loading…
Reference in a new issue