Repository navigation
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation and Context
Related to #519, not a replacement for the reporter's positive empty-body /
empty-header acceptance case. This draft supplies complementary rejection
coverage in
http-custom-header-server-validation:The old scenario passes the Go SDK before and after
modelcontextprotocol/go-sdk#1289. These checks detect
the pre-fix presence mismatch while still passing the fixed SDK. They require
HTTP 400 and JSON-RPC -32020 using existing requirement IDs and the normal CLI.
The selected tool's optional annotated string is preferred. If unavailable,
the omitted/null probes fail as untestable rather than appearing skipped/green.
The fixture requirement is documented in the scenario description.
No SDK implementation change, new scenario, dependency, check ID or traceability
edit is included. This is separate from #325's presence acceptance/required-
argument work and #555's standard-header error-code severity change.
How Has This Been Tested?
Pinned Go fixture, wire tests and reproduction instructions
are public so the real-SDK comparison can be rerun, not just taken from this
description.
tests pass after the patch. Correct and deliberately broken presence fixtures
are included, including the missing-prerequisite path.
npm run check,npm run build,npm test: pass, 48 files / 645 tests.8075fb3cf313a11816340dcbdd7090d04a5a4b71versus fixc04bc77a01ec33882c7e96ab957cc775cc2b0745:Counts include wire-schema validation. The four failures are exactly the
status/code pairs for omitted/empty and null/empty. Fresh local reruns of the
suite, build/check and both patched native-SDK runs reproduce these results.
An additional real HTTP/1.1 + HTTP/2 wire matrix and SDK-client round trip passes
21/21 cases on the fix, with seven expected failures on its parent. Rejection
tests verify zero tool invocations. The fixed SDK's official empty-header and
name-encoding regressions also pass. These checks used official pinned SDK
archives, local module replacement and Go 1.27.2 with dependency checksums
enabled. The full Go SDK suite and native client conformance scenario were not
run. A null-without-header control isolates transport validation, not whether
null satisfies a string JSON Schema.
Compatibility
The added checks intentionally turn some previously green SDK runs red. The
omitted/null probes require an optional annotated string in the selected tool;
missing fixture support is reported explicitly. There is no runtime SDK API
change. Existing scenario discovery and required-argument defaults are not
expanded in this patch.
Review Status and AI Disclosure
Draft for coordination with #519 and contributor review, not a claim of
assignment or maintainer approval. It intentionally does not close #519.
Codex authored the scenario/test/fixture changes, executed local validation and
drafted this text and the issue comment. No prior human code review is claimed.