experimental-ext-variants/.github/workflows
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Sambhav Kothari cfc05d6f5e
Some checks failed
Go CI / Linting (push) Has been cancelled
Go CI / Unit Tests (push) Has been cancelled
Go CI / Unit Tests-1 (push) Has been cancelled
Go CI / Race Detection (push) Has been cancelled
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>
2026-05-29 09:17:04 +01:00
..
comment-trigger.yml Merge pull request #1 from modelcontextprotocol/chore/scaffolding 2026-01-27 20:10:28 +00:00
go.yml fix: merge Extensions in unionCapabilities (#9) 2026-05-29 09:17:04 +01:00
python.yml Merge pull request #1 from modelcontextprotocol/chore/scaffolding 2026-01-27 20:10:28 +00:00
status-check.yml Merge pull request #1 from modelcontextprotocol/chore/scaffolding 2026-01-27 20:10:28 +00:00
typescript.yml Merge pull request #1 from modelcontextprotocol/chore/scaffolding 2026-01-27 20:10:28 +00:00