Skip to content

chore(deps): bump conformance to 0.1.15, port auth/pre-registration from v1.x#1650

Merged
felixweinberger merged 6 commits intomainfrom
chore/hono-lockfile-refresh
Mar 13, 2026
Merged

chore(deps): bump conformance to 0.1.15, port auth/pre-registration from v1.x#1650
felixweinberger merged 6 commits intomainfrom
chore/hono-lockfile-refresh

Conversation

@felixweinberger
Copy link
Contributor

@felixweinberger felixweinberger commented Mar 9, 2026

Bumps conformance 0.1.100.1.15. Pulls sdk@^1.26.0 (resolves to 1.27.1), clearing Dependabot alert #44 (GHSA-345p-7cg4-v4c7).

Forward-ports #1545 from v1.x so auth/pre-registration passes (adapter-only, no SDK changes). Adds expected-failures.yaml baseline for cross-app-access-complete-flow (SEP-990, blocked on #1531).

Also drops stale minimumReleaseAgeExclude entries.

@changeset-bot
Copy link

changeset-bot bot commented Mar 9, 2026

⚠️ No Changeset found

Latest commit: a1e989b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@pkg-pr-new
Copy link

pkg-pr-new bot commented Mar 9, 2026

Open in StackBlitz

@modelcontextprotocol/client

npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/client@1650

@modelcontextprotocol/server

npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/server@1650

@modelcontextprotocol/express

npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/express@1650

@modelcontextprotocol/hono

npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/hono@1650

@modelcontextprotocol/node

npm i https://pkg.pr.new/modelcontextprotocol/typescript-sdk/@modelcontextprotocol/node@1650

commit: a1e989b

Pulls sdk@^1.26.0 (resolves to 1.27.1), clearing the Dependabot alert
for GHSA-345p-7cg4-v4c7 (cross-client data leak, fixed in 1.26.0).

Also removes stale minimumReleaseAgeExclude entries for
hono@4.11.4 and @hono/node-server@1.19.9 (both well past 7 days).
@felixweinberger felixweinberger force-pushed the chore/hono-lockfile-refresh branch from 5c7fbed to 113caa2 Compare March 9, 2026 17:48
@felixweinberger felixweinberger changed the title chore: bump hono + @hono/node-server in lockfile chore(deps): bump @modelcontextprotocol/conformance to 0.1.15 Mar 9, 2026
…cenarios

Conformance 0.1.15 added three scenarios the v2 SDK doesn't implement yet:
- client: auth/pre-registration (OAuth without DCR)
- client: auth/cross-app-access-complete-flow (SEP-990)
- server: dns-rebinding-protection

Baseline them via --expected-failures so CI exits 0 on expected failures,
1 on regressions or stale entries (scenario starts passing → must update file).
@felixweinberger felixweinberger marked this pull request as ready for review March 9, 2026 18:00
@felixweinberger felixweinberger requested a review from a team as a code owner March 9, 2026 18:00
The SDK has localhostHostValidation() middleware; the conformance test
server just wasn't using it. Add it so the dns-rebinding-protection
scenario passes instead of baselining it as an expected failure.
Forward-ports PR #1545 from v1.x. The SDK already skips DCR when
clientInformation() returns pre-populated credentials; only the
conformance adapter wiring was missing.

- withOAuthRetry: accept optional existingProvider
- everythingClient: register auth/pre-registration handler
- expected-failures: drop now-passing scenario
@felixweinberger felixweinberger changed the title chore(deps): bump @modelcontextprotocol/conformance to 0.1.15 chore(deps): bump conformance to 0.1.15, port auth/pre-registration from v1.x Mar 11, 2026
Copy link

@claude claude bot left a comment

Choose a reason for hiding this comment

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

LGTM — test-harness dependency bump with corresponding fixture updates, no production code touched.

Extended reasoning...

Overview

This PR bumps the @modelcontextprotocol/conformance dev dependency from 0.1.10 to 0.1.15 and makes the test harness changes needed to pass the new conformance suite version. All code changes are confined to test/conformance/ (a private test-only package):

  • pnpm-lock.yaml / package.json — the version bump itself, pulling sdk@1.27.1 transitively (clears a Dependabot alert for express-rate-limit)
  • pnpm-workspace.yaml — drops stale minimumReleaseAgeExclude entries for hono/@hono/node-server now that the fix versions are past the 7-day window
  • expected-failures.yaml — new baseline listing auth/cross-app-access-complete-flow as not-yet-implemented, wired into the test scripts via --expected-failures
  • everythingClient.ts — adds the auth/pre-registration scenario, following the same pattern as existing auth scenarios; uses a pre-populated ConformanceOAuthProvider to skip dynamic client registration
  • everythingServer.ts — enables localhostHostValidation() middleware so the DNS-rebinding-protection scenario passes
  • withOAuthRetry.ts — adds an optional existingProvider parameter with ?? fallback, fully backwards-compatible

Security risks

None. No production or published code is modified. The lockfile changes are transitive deps of a dev-only test package. The localhostHostValidation() addition improves the security posture of the test server (though it's only ever bound to localhost anyway).

Level of scrutiny

Low. This is test infrastructure maintenance — a dependency bump with the minimal fixture changes needed to keep CI green on the new suite version. No package exports, no API changes, no logic in shipped code. The shell script at scripts/run-server-conformance.sh already forwards "$@", so the new --expected-failures flag is correctly plumbed through.

Other factors

Verified that localhostHostValidation is exported from @modelcontextprotocol/express (packages/middleware/express/src/middleware/hostHeaderValidation.ts:50) and that ConformanceOAuthProvider.saveClientInformation exists (test/conformance/src/helpers/conformanceOAuthProvider.ts:38). The PR description mentions three new scenarios but only one is in expected-failures.yaml — this is consistent, since the other two (pre-registration and dns-rebinding) are implemented by this PR rather than marked as expected failures. No changeset is needed since @modelcontextprotocol/test-conformance is private.

@felixweinberger felixweinberger enabled auto-merge (squash) March 12, 2026 14:59
Copy link

@claude claude bot left a comment

Choose a reason for hiding this comment

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

LGTM — test-infrastructure-only dep bump and conformance scenario port, no SDK changes.

Extended reasoning...

Overview

This PR bumps the conformance test tool from 0.1.10 to 0.1.15 and forward-ports the auth/pre-registration scenario from v1.x (#1545). All changes are confined to test infrastructure:

  • pnpm-lock.yaml / pnpm-workspace.yaml: lockfile refresh, removal of stale minimumReleaseAgeExclude entries for hono packages that are now past the 7-day age window
  • test/conformance/expected-failures.yaml: new baseline listing auth/cross-app-access-complete-flow as a known-failing scenario (blocked on #1531)
  • test/conformance/package.json: dep bump and --expected-failures flag wiring into test scripts
  • test/conformance/src/everythingClient.ts: adds a new scenario handler following the exact pattern of runClientCredentialsBasic — parses context, pre-populates the OAuth provider via saveClientInformation, runs connect/listTools/callTool
  • test/conformance/src/everythingServer.ts: adds localhostHostValidation() middleware (DNS rebinding protection) — already landed in 62ff4c2, appears here as merge artifact
  • test/conformance/src/helpers/withOAuthRetry.ts: adds optional existingProvider parameter with ?? fallback to the existing constructor call — fully backward-compatible

No changes to any published SDK package under packages/. The changeset bot correctly notes no changeset needed.

Security risks

None introduced; this PR is net-positive on security:

  • Clears Dependabot alert #44 (GHSA-345p-7cg4-v4c7) by pulling sdk@1.27.1 as a transitive dev-dependency of the conformance tool
  • Adds DNS rebinding protection to the test server (already merged separately)
  • New @octokit/* and undici@7.22.0 deps are transitive dev-dependencies of the conformance CLI only, never shipped to consumers

The auth/pre-registration scenario code is test-adapter code that pre-populates client credentials into a mock OAuth provider — it exercises SDK paths but contains no auth logic itself.

Level of scrutiny

Low. This is a test/** + workspace-config change with zero impact on published packages. The new scenario handler is a near-verbatim copy of existing handlers (runClientCredentialsBasic) with the one difference that it pre-populates client info instead of letting the SDK dynamically register. The run-server-conformance.sh script already uses "$@" pass-through, so the new --expected-failures flag plumbs through correctly.

Other factors

  • No bugs flagged by the bug hunting system
  • No outstanding reviewer comments
  • CODEOWNERS: the auth-team-owned paths (/src/server/auth/, /src/client/auth*, etc.) are not touched — test/conformance/ falls under the default team
  • ConformanceOAuthProvider.saveClientInformation is an existing method at conformanceOAuthProvider.ts:38, so the new callsite is valid

@felixweinberger felixweinberger merged commit 5405172 into main Mar 13, 2026
17 checks passed
@felixweinberger felixweinberger deleted the chore/hono-lockfile-refresh branch March 13, 2026 14:49
pcarleton added a commit to sagar-okta/typescript-sdk that referenced this pull request Mar 13, 2026
Conflicts:
  test/conformance/src/everythingClient.ts
    - kept both pre-registration (from modelcontextprotocol#1650) and cross-app-access
      discriminated union variants

Also: drop unused OAuthClientInformation import from crossAppAccess.ts
(lint failure from ef35f0b).
Copy link

@claude claude bot left a comment

Choose a reason for hiding this comment

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

LGTM — test-only conformance harness updates with a transitive dep bump that clears a security advisory.

Extended reasoning...

Overview

This PR bumps the @modelcontextprotocol/conformance dev dependency from 0.1.10 to 0.1.15, which transitively pulls sdk@1.27.1 and clears Dependabot alert GHSA-345p-7cg4-v4c7. All non-lockfile changes are confined to test/conformance/ (test harness code, not shipped) plus a two-line cleanup of stale minimumReleaseAgeExclude entries in pnpm-workspace.yaml. The new auth/pre-registration scenario in everythingClient.ts follows the established pattern of other scenarios in the file, and the withOAuthRetry helper gets a backwards-compatible optional existingProvider param. The server gains localhostHostValidation() middleware (DNS rebinding protection), which is a defensive addition for a test-only server.

Security risks

None introduced; the PR is net-positive security-wise. It resolves a known advisory in the transitive v1 SDK dep and adds Host-header validation to the conformance test server. No production SDK code paths are touched. The new transitive deps (@octokit/*, undici@7.22, ip-address, etc.) are all well-known packages pulled in by the conformance runner, not by the published packages.

Level of scrutiny

Low. This is test-infrastructure and workspace-config hygiene. The conformance harness is private: true and not published. The script changes (adding --expected-failures ./expected-failures.yaml) are mechanical and the shell script correctly forwards args via "$@". The minimumReleaseAgeExclude removals are safe because those pinned versions (hono@4.11.4, @hono/node-server@1.19.9) are now well past the 7-day age threshold.

Other factors

No changeset is needed since no published package is affected (changeset-bot correctly notes this). No outstanding reviewer comments. The saveClientInformation method and localhostHostValidation export both exist in the current codebase. The run-server-conformance.sh script passes through --expected-failures via "$@" at line 43.

Sign up for free to 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.

2 participants