inspector/core/mcp
Repository files (latest commit first)
Filename Latest commit message Latest commit date
cliffhall e234343702 fix: cancellable compat probes and a validated budget (#2319 round 16)
Two real bugs and two stale rationales.

The OIDC fallback probes were issued with `{ headers }` and no signal,
so a caller that aborted after the initial 404 got a timeout reported
in place of its own cancellation, while the probe ran on to its own
deadline. The probes now carry the caller's signal — via the shared
`callerSignalOf`, so the precedence rule has one definition — a
pre-aborted caller is not probed at all, and an abort is rethrown
rather than folded back into the preceding response.

`Math.max(0, Math.round(timeoutMs))` let NaN and Infinity through.
`setTimeout(fn, NaN)` fires immediately, and a delay above 2**31-1
overflows a 32-bit signed int and falls back to 1ms — so a caller
asking for a very large budget, or one whose arithmetic produced NaN,
got an immediate OAuth timeout. `normalizeBudget` falls back to the
default on non-finite and clamps to the timer's range; the route's
envelope-supplied deadline gets the same clamp, but ignores a
non-finite value outright since a malformed deadline reads safest as
no deadline.

The wire-marker docblock and the matching route test still said a
backend deadline is the only one on the transport-internal discovery
path, which round 11 changed. Both now give the real reason the marker
matters: both ends run the same budget, and it is the backend winning
the race — a backgrounded tab throttling setTimeout — that must not
decide whether the error names its endpoint.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YFnM6RqB4nXqNysgUYmjmq
Signed-off-by: cliffhall <cliff@futurescale.com>
2026-09-11 06:06:36 -04:00
..
__tests__ fix: walk past an empty-string cursor in the legacy task refresh (#2220) 2026-09-06 13:59:51 -04:00
import chore(deps): migrate to eslint 10 to clear the brace-expansion DoS advisory (#1900) 2026-08-01 20:13:30 -04:00
node Merge remote-tracking branch 'origin/v2/main' into v2/fix/2071-oauth-resource-metadata 2026-08-24 21:26:59 -04:00
remote fix: cancellable compat probes and a validated budget (#2319 round 16) 2026-09-11 06:06:36 -04:00
state feat: Skills extension phase 3 — CLI, TUI, directory reads, frontmatter check 2026-09-07 18:10:37 -04:00
appElicitation.ts fix(apps): address review of app-rendered elicitations 2026-08-22 19:43:44 -04:00
apps.ts SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') (#1624) 2026-07-15 10:44:24 -04:00
config.ts chore: close quality-gate coverage gaps (#1689) (#1766) 2026-07-24 17:20:12 -04:00
elicitationCreateMessage.ts fix(core): register peer-request handlers before connect (#1797) (#1798) 2026-07-27 11:32:23 -04:00
extensions.ts feat(apps): negotiated app-rendered form elicitations 2026-08-22 19:05:33 -04:00
fetchTracking.ts Network: modern Mcp-* headers, new error codes, cancellation-as-abort (#1628) (#1722) 2026-07-18 17:32:05 -04:00
index.ts fix: salvage a list result's valid entries when one is malformed (#1909) 2026-08-15 16:52:11 -04:00
inspectorClient.ts fix: preserve Response enumerability, refresh transport docs (#2319 round 12) 2026-09-11 05:07:31 -04:00
inspectorClientEventTarget.ts feat: allow complex JSON values in request _meta 2026-08-23 12:23:40 -04:00
inspectorClientProtocol.ts feat: Skills extension phase 3 — CLI, TUI, directory reads, frontmatter check 2026-09-07 18:10:37 -04:00
listSalvage.ts fix: return the era-parsed tool, and hide aggregate reports in paginated mode (#1909) 2026-08-15 20:08:03 -04:00
messageTrackingTransport.ts fix: cancel a Streamable HTTP call by closing its stream (#2140) 2026-08-28 00:55:29 -04:00
modernTaskSchemas.ts Tasks: io.modelcontextprotocol/tasks extension on modern servers (era fork) (#1731) 2026-07-21 19:17:04 -04:00
oauthManager.ts fix(web): address Copilot review on the OAuth recovery failure arms 2026-08-29 01:54:53 -04:00
samplingCreateMessage.ts fix(core): register peer-request handlers before connect (#1797) (#1798) 2026-07-27 11:32:23 -04:00
serverList.ts feat: seed the MCP org example server as a remote first-run card (#2201) 2026-09-06 22:57:53 -04:00
sessionStorage.ts feat(core): port v1.5 hook layer (#1243) (#1300) 2026-05-13 17:43:07 -04:00
sha256.ts fix: address Copilot review round 4 on #2251 2026-09-04 22:38:03 -04:00
skillFile.ts fix: address Copilot review round 8 on #2248 2026-09-07 21:09:26 -04:00
skills.ts fix: address Copilot review round 19 on #2248 2026-09-07 23:55:53 -04:00
skillsSchemas.ts fix: address Copilot review round 13 on #2248 2026-09-07 22:09:19 -04:00
skillsVerification.ts fix: address Copilot review round 19 on #2248 2026-09-07 23:55:53 -04:00
subscriptionAck.ts fix(core): say why a never-acknowledged subscriptions/listen ended 2026-08-27 20:49:55 -04:00
taskNotificationSchemas.ts SDK v2 migration (behavior-neutral, versionNegotiation: 'legacy') (#1624) 2026-07-15 10:44:24 -04:00
toolCallCancelledError.ts fix(web): send a cancellation notification when cancelling an ordinary tool call (#1458) (#1463) 2026-06-13 22:23:02 -04:00
toolOutputValidation.ts Refactor / justify codebase-wide 'as unknown as' casts (#1690) (#1756) 2026-07-24 09:34:32 -04:00
typedEventTarget.ts fix(core): read state stores during render instead of re-syncing in an effect 2026-08-29 02:07:53 -04:00
types.ts fix(auth): keep the failure path total, and align the docs with the new order (#2144) 2026-08-28 05:55:00 -04:00
uriTemplate.ts fix: scope the value ceiling to the names a template references 2026-08-17 01:54:37 -04:00
urlElicitation.ts Address @claude review: format core/, typed output-validation error, document progress heuristic 2026-07-15 11:08:54 -04:00