Skip to content

[Schema][Client] Bump default spec version - #550

Merged
chr-hertel merged 2 commits into
mainfrom
default-spec-version-sliced
Oct 10, 2026
Merged

chr-hertel merged 2 commits into
mainfrom
default-spec-version-sliced

Conversation

@chr-hertel

Copy link
Copy Markdown
Member

Replaces #537

@chr-hertel chr-hertel added Client Issues & PRs related to the Client component Schema Issues & PRs related to the Schema component breaking change Breaking the Backwards Compatibility Promise labels Oct 7, 2026
@chr-hertel
chr-hertel added this pull request to stack #549 October 7, 2026 22:04
@chr-hertel chr-hertel added the 2026-07-28 All issues and PRs related to the spec release 2026-07-28 label Oct 7, 2026
@chr-hertel chr-hertel added this to the 0.9.0 milestone Oct 7, 2026
@chr-hertel
chr-hertel force-pushed the default-spec-version-sliced branch 2 times, most recently from 4f6bbfa to 74fdbc7 Compare October 7, 2026 22:35
@chr-hertel
chr-hertel requested a balanced review from Copilot October 7, 2026 23:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Transport error handling and stream scheduling contain unresolved correctness issues.

4 open findings
What changed in this PR

Defaults the PHP MCP client to 2026-07-28, with handshake fallback for older servers, and adds dual-era stdio support.

Changes:

  • Adds protocol probing, configurable fallback, and modern client behavior.
  • Updates stdio routing, streaming, and transport failure handling.
  • Expands compatibility tests, documentation, and examples.
File Description
tests/​Unit/​Server/​Transport/​StdioDualEraTest.php Tests dual-era routing and streaming.
tests/​Unit/​Server/​Stateless/​StatelessProtocolTest.php Tests inline requests and refusals.
tests/​Unit/​Server/​ProtocolTest.php Checks refusal response IDs.
tests/​Unit/​ClientTest.php Tests logging connection requirements.
tests/​Unit/​Client/​Transport/​StdioTransportTest.php Tests process exit and notification ordering.
tests/​Unit/​Client/​Transport/​HttpTransportTest.php Tests refusals, fallback, and ordering.
tests/​Unit/​Client/​ProtocolTest.php Expands negotiation coverage.
tests/​Unit/​Client/​ConfigurationTest.php Tests defaults and fallback validation.
tests/​Integration/​SamplingToolsTest.php Pins sampling to handshake protocol.
tests/​Integration/​SamplingTest.php Tests sampling across protocol eras.
tests/​Integration/​RootsTest.php Pins roots to handshake protocol.
tests/​Integration/​NotificationTest.php Tests notifications across both eras.
tests/​Integration/​IntegrationTestCase.php Adds shared protocol-era provider.
tests/​Integration/​HttpNegotiationTest.php Tests HTTP protocol compatibility.
tests/​Integration/​HandshakeTest.php Expands stdio negotiation tests.
tests/​Integration/​Fixture/​http.php Adds configurable HTTP server fixture.
tests/​Integration/​Fixture/​handshake.php Adds handshake-only fixture mode.
tests/​Integration/​ElicitationTest.php Tests era-specific elicitation failures.
src/​Server/​Transport/​StdioTransport.php Adds dual-era routing and streams.
src/​Server/​Stateless/​StatelessProtocol.php Supports headerless dispatch and pacing.
src/​Server/​Protocol.php Preserves request IDs in refusals.
src/​Schema/​Result/​InitializeResult.php Keeps initialization defaults handshake-compatible.
src/​Schema/​JsonRpc/​MessageInterface.php Bumps default protocol version.
src/​Client/​Transport/​StdioTransport.php Handles process failures and progress ordering.
src/​Client/​Transport/​HttpTransport.php Handles HTTP refusals and progress ordering.
src/​Client/​Stateless/​RequestEnvelope.php Adds per-request logging level.
src/​Client/​Protocol.php Implements probing and handshake fallback.
src/​Client/​Configuration.php Updates defaults and validates fallback.
src/​Client/​Builder.php Exposes fallback configuration.
src/​Client.php Adapts calls to negotiated protocol.
examples/​server/​bootstrap.php Updates transport documentation comments only.
examples/​client/​stdio_client_communication.php Explicitly enables server logging.
examples/​client/​http_client_communication.php Explicitly enables server logging.
docs/​run/​protocol-eras.md Documents dual-era stdio behavior.
docs/​protocol-versions.md Explains negotiation and modern behavior.
docs/​client/​connecting.md Documents defaults and fallback configuration.
CHANGELOG.md Records compatibility and transport changes.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread src/Client/Transport/StdioTransport.php Outdated
Comment thread src/Server/Transport/StdioTransport.php Outdated
Comment thread src/Client/Transport/HttpTransport.php Outdated
Comment thread src/Server/Transport/StdioTransport.php
@chr-hertel
chr-hertel force-pushed the default-spec-version-sliced branch from 74fdbc7 to 60f9011 Compare October 8, 2026 00:55
@chr-hertel
chr-hertel requested a balanced review from Copilot October 8, 2026 00:56

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The defaults match existing negotiation support, and targeted inspection found no blocking regression in the examples’ input-request handling.

1 open finding
3 resolved since last review

🧠 Review effort: Balanced


Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.

@chr-hertel
chr-hertel force-pushed the default-spec-version-sliced branch from 60f9011 to 9ff707d Compare October 9, 2026 22:15
Base automatically changed from client-version-negotiation to main October 10, 2026 00:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The default-version change is consistently implemented, documented, and covered across modern and fallback paths.

0 open findings

1 resolved since last review

🧠 Review effort: Balanced

@chr-hertel
chr-hertel merged commit 79c03cb into main Oct 10, 2026
31 checks passed
@chr-hertel
chr-hertel deleted the default-spec-version-sliced branch October 10, 2026 00:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2026-07-28 All issues and PRs related to the spec release 2026-07-28 breaking change Breaking the Backwards Compatibility Promise Client Issues & PRs related to the Client component Schema Issues & PRs related to the Schema component

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants