github MCPJam/inspector v3.20.0
Release v3.20.0

2 hours ago

What's Changed

  • fix(conformance): failed and could-not-run rows open like not-applicable rows (CQT-126) by @ignaciojimenezr in #7121
  • test(hosted): settle the scenario OAuth gate before reporting a 401 by @chelojimenez in #7181
  • fix(harness): support Embed routing and patch sandbox dependencies by @chelojimenez in #7180
  • test(cli): retry sandbox cleanup so the proxy test stops failing with ENOTEMPTY (PP-226) by @ignaciojimenezr in #7183
  • cli: name the tools more conformance checks call by @ignaciojimenezr in #7184
  • feat(billing): say when a declined card stopped a run or chat (PLB-396 C2) by @ozboms in #7101
  • cli: run the OAuth negative checks by default by @ignaciojimenezr in #7191
  • cli: pin the protocol version for tasks conformance by @ignaciojimenezr in #7185
  • feat(conformance): search, filter and sort History by server (CQT-113) by @ZeHuari in #7177
  • fix(cli): require Node 22 and move the CI examples to it by @moisonmaxime in #6838
  • MCP Events (triggers): SDK, inspector server, Events/Triggers tabs, CLI by @chelojimenez in #5764
  • cli: conformance run takes the same settings as each suite command by @ignaciojimenezr in #7198
  • fix(chat): replay a paused call after sign-in on a single-login server by @ignaciojimenezr in #7203
  • refactor(evals): give the unified turn the direct contract evals need by @chelojimenez in #6656
  • refactor(evals): run hosted eval turns through the unified turn by @chelojimenez in #6657
  • refactor(evals): translate the eval stream one part at a time by @chelojimenez in #6658
  • refactor(evals): run local eval turns through the unified turn by @chelojimenez in #6659
  • test(evals): fail CI when server code starts a turn past the facade by @chelojimenez in #6660
  • fix(swarms): only report run completion the backend has settled by @chelojimenez in #6647
  • feat(sdk): export one definition of eval run and iteration lifecycle by @chelojimenez in #6648
  • refactor(evals): read run and iteration lifecycle from the SDK by @chelojimenez in #6649
  • fix(conformance): ask for OAuth sign-in at the top of the run (CQT-97) by @ZeHuari in #7176
  • refactor(client): read eval run terminality from the SDK contract by @chelojimenez in #6650
  • fix(conformance): drop repeated counts from the score card's gray line (CQT-133) by @ignaciojimenezr in #7205
  • refactor(evals): share the agent cancelEvalRun handler between tabs by @chelojimenez in #6651
  • fix(evals): let the in-app agent cancel a run held for its judge by @chelojimenez in #6652
  • fix(swarms): run on the execution budgets frozen at launch by @chelojimenez in #6655
  • Keep proxy tool calls attached to their active chat turn by @chelojimenez in #7186
  • Confirm native MCP readiness before continuing an agent by @chelojimenez in #7187
  • Bind warm-agent approvals to the authorized account by @chelojimenez in #7188
  • Retain native chat agents behind the internal pilot gate by @chelojimenez in #7189
  • Enable hosted warm-agent reuse by default by @chelojimenez in #7210
  • Make eval retries idempotent and capacity refusals retryable by @chelojimenez in #7213
  • test(swarms): pin when the journey run stream reopens by @chelojimenez in #7182
  • events: subscribe and run as a client's saved Events support by @chelojimenez in #7211
  • fix(evals): keep the status of a failed Convex read in Sentry (KES-781) by @nachocossio in #7091
  • fix(browserd): wait 60s for a new box's first Chromium launch (KES-720) by @chelojimenez in #7226
  • harness: resolve the MCP route in one planner by @chelojimenez in #7217
  • test(harness): adapter contract suite and pin-change gate by @chelojimenez in #7218
  • test(e2e): stop the OAuth layout test matching "503" in a port (PLB-477) by @ignaciojimenezr in #7228
  • fix(chat): lazy sign-in follow-ups from QA (per-login reconnect, copy) by @ignaciojimenezr in #7243
  • events: caniuse reads saved Event delivery; sync the SDK catalog by @chelojimenez in #7215
  • conformance: share a run as a score card, drawn in-house by @chelojimenez in #7245
  • conformance: unfurl a shared run's link as its score card by @chelojimenez in #7246
  • Extract the paginated tool declaration lookup by @chelojimenez in #7147
  • Align compatible plugin imports and manifest identities by @chelojimenez in #7148
  • Complete owned forms and retain input across App surfaces by @chelojimenez in #7149
  • fix(conformance): send a saved run's Back to the tab it was opened from (CQT-134) by @ignaciojimenezr in #7241
  • fix(conformance): drop "Fully conformant"; passed runs read "Conformant" (CQT-142) by @ignaciojimenezr in #7240
  • Bound App file transfer and preserve owned resource cleanup by @chelojimenez in #7150
  • Bind retained App tools and file views to their current owner by @chelojimenez in #7151
  • Show native tool sources and included plugin catalogs by @chelojimenez in #7152
  • Honor manual form capabilities and preserve client configuration by @chelojimenez in #7153
  • Bind CLI rendering to the saved project target by @chelojimenez in #7154
  • chore: add Inspector, CLI, and SDK release changeset by @ignaciojimenezr in #7250
  • fix(evals): connect background eval runs to Cross-App Access servers by @chelojimenez in #7216
  • Move Apps conformance configuration into its own module by @chelojimenez in #7155
  • Scope retained CLI widgets to fresh authenticated connections by @chelojimenez in #7156
  • Keep automatic plugins optional during authenticated command approval by @chelojimenez in #7157
  • Keep fullscreen-only Apps dismissible without replay by @chelojimenez in #7158
  • Honor Computer placement policy and authenticated delegation by @chelojimenez in #7159
  • Restore focus when owned forms finish by @chelojimenez in #7160
  • Keep Compare App state and pending input scoped to each lane by @chelojimenez in #7161
  • Extract managed turn failure response mapping by @chelojimenez in #7162
  • Recover completed chat persistence without replaying execution by @chelojimenez in #7163
  • Fix macOS harness conformance evidence and listener probing by @chelojimenez in #7252
  • Keep sign-in available after guest startup fails by @chelojimenez in #7256
  • fix(conformance): name CLI runs by their URL in History, and say when a run can't be saved (CQT-147) by @chelojimenez in #7255
  • fix(conformance): valid JUnit from conformance run, and no false Wire Schema Valid failure without a pinned version (CQT-146) by @chelojimenez in #7254
  • Let hosted egress reach operator-listed private targets by @chelojimenez in #7013
  • Honor DO_NOT_TRACK everywhere and read flags from a file by @chelojimenez in #7014
  • Serve the MCP Apps sandbox origin at runtime by @chelojimenez in #7015
  • Let operators turn the MCPJam agent off with MCPJAM_PLATFORM_AGENT by @chelojimenez in #7016
  • Recover harness credentials after backend startup outages by @chelojimenez in #7200
  • Add hosted OpenCode as a private Playground harness by @chelojimenez in #7258
  • Add GitHub Copilot CLI to the hosted Playground by @chelojimenez in #7261
  • feat(telemetry): one conformance_run_triggered event for every conformance run (CQT-128) by @ignaciojimenezr in #7244
  • evals: send each eval turn's MCP routing record with its trace (HARN-33) by @chelojimenez in #7262
  • Request a private BYOC candidate after Inspector releases by @chelojimenez in #7265
  • feat(conformance): skip checks that need input, and show "40/42 checks selected" (CQT-141) by @ignaciojimenezr in #7209
  • fix(auth): open signed out with sign-in when guest access is refused (KES-803) by @moisonmaxime in #7242
  • Fix hosted OpenCode approval controls and branding by @chelojimenez in #7272
  • Compare: resolve each column's model through its own harness (HARN-54, 1/6) by @chelojimenez in #7273
  • Compare: give each pane a stable id (HARN-54, 2/6) by @chelojimenez in #7275
  • Compare: restore each pane after tool sign-in (HARN-54, 3/6) by @chelojimenez in #7276
  • Compare: settings for each client pane (HARN-54, 4/6) by @chelojimenez in #7279
  • Compare: run a saved environment in a pane (HARN-54, 5/6) by @chelojimenez in #7285
  • Compare: show the skills available to each pane (HARN-54, 6/6) by @chelojimenez in #7280
  • feat(server): open workspace localhost apps in the hosted browser, and explain when Browser is missing (HARN-27) by @chelojimenez in #7253
  • feat(server): reach workspace computers that are closed to the internet by @chelojimenez in #7259
  • feat(server): pair a desktop with a pinned box for unattended Browser (HARN-48) by @chelojimenez in #7260
  • Fix hosted harness Stop and trace identity after approvals by @chelojimenez in #7274
  • feat(server): send pasted images as native Codex prompt input by @chelojimenez in #7266
  • feat(server): pin image-capable harness adapters and HOME bake layout by @chelojimenez in #7269
  • feat(server): send pasted images as native Claude Code prompt input by @chelojimenez in #7270
  • feat(server): send pasted images as native Cursor CLI prompt input by @chelojimenez in #7271
  • fix(conformance): color could-not-run checks by who is to blame by @ignaciojimenezr in #7268
  • cli: conformance run signs in for OAuth the way oauth conformance does (CQT-149) by @ignaciojimenezr in #7299
  • feat(oauth): say which callback URL to allow when OAuth sign-in never comes back (BB-380) by @ignaciojimenezr in #7298
  • fix(chat): help BYOC owners repair model setup by @chelojimenez in #7305
  • feat(server): always send native images to harnesses that accept them by @chelojimenez in #7307
  • Keep private sandbox credentials out of app and harness requests by @chelojimenez in #7302
  • Move the SDK's conformance operations into their own modules by @chelojimenez in #7277
  • Share conformance check selection and SDK mapping between the app and the server by @chelojimenez in #7278
  • Run hosted conformance with a server's saved settings, a time budget and cancel by @chelojimenez in #7282
  • Serve hosted conformance runs on MCP and the CLI, and read them check by check by @chelojimenez in #7283
  • Record who launched a hosted conformance run by @chelojimenez in #7284
  • conformance: say connected only once the protocol check passes (CQT-150) by @ignaciojimenezr in #7306
  • fix(conformance): drop duplicate breadcrumb from run setup by @ignaciojimenezr in #7312
  • perf(harness): reduce warm startup and pre-send work by @chelojimenez in #7267
  • perf(harness): overlap turn prep, send without a redundant read, time each stage by @chelojimenez in #7281
  • fix(conformance): drop Overview/History tabs from a run's header (CQT-132) by @ignaciojimenezr in #7315
  • Show an off conformance check's tool field while its row is open (CQT-152) by @ignaciojimenezr in #7311
  • fix(harness): keep the turn timing fields in production log rows by @chelojimenez in #7320
  • Show live conversation sandbox frames in the Browser pane by @chelojimenez in #7321
  • conformance: record a timed-out hosted suite as timed out (CQT-151) by @ignaciojimenezr in #7309
  • chore: add Inspector, CLI, and SDK release changeset by @ignaciojimenezr in #7322
  • Fall back to JPEG when browser video never starts by @chelojimenez in #7323
  • conformance: hosted runs pick their suites the way the app does (CQT-153) by @ignaciojimenezr in #7317
  • chore(release): version packages (3.20.0) by @chelojimenez in #7193
  • harness: run Cursor turns on the org key, checked before any box (HARN-33 · I4a) by @chelojimenez in #7286
  • conformance: QA UI fixes (CQT-127, CQT-138, CQT-130) by @ZeHuari in #7338
  • harness: delete the per-member Cursor key arms (HARN-33 · I4b) by @chelojimenez in #7287
  • harness: stop asking members for a Cursor key (HARN-33 · I5) by @chelojimenez in #7288
  • conformance: move the run timeout from setup to Settings (CQT-135) by @ZeHuari in #7339
  • Fix custom connections in the built-in agent loop (KES-831 I3) by @chelojimenez in #7329
  • evals: accept an org's Cursor key in the own-key run sheet check (HARN-33 · I14) by @chelojimenez in #7289
  • evals: run Cursor eval cases on their box and harness turn (HARN-33 · I15) by @chelojimenez in #7290
  • Support Cursor account models across client pickers and runtime admission by @chelojimenez in #7325
  • Enable Cursor Apps with single-use host tool approvals by @chelojimenez in #7327
  • harness: admit org keys by the API a connection serves (KES-831 I2a) by @chelojimenez in #7330
  • fix(inspector): restore server version and Overview after a page reload by @chelojimenez in #7343
  • harness: check the Cursor bridge launches from its install directory (HARN-33 · I1) by @chelojimenez in #7292
  • Extract shared organization provider controls by @chelojimenez in #7314
  • Add organization Cursor key setup and model refresh by @chelojimenez in #7316
  • Accept agents that register through auth.md by @chelojimenez in #7342
  • Stop detached harness processes after failed approval pauses by @chelojimenez in #7313
  • fix(evals): log and alert when an eval can't read an MCP App's page (KES-841) by @ignaciojimenezr in #7344
  • harness: keep Cursor's MCP config stable for the whole session (HARN-33 · I9a) by @chelojimenez in #7293
  • Show refused models with reasons; test gateways from the Inspector (KES-831 I1a) by @chelojimenez in #7333
  • Add a gateway from its base URL and key (KES-831 I1) by @chelojimenez in #7334
  • Run harness clients on organization gateways (KES-831 I2b) by @chelojimenez in #7335
  • harness: forward Cursor CLI turns on pass-through without a lease (HARN-33 · I9b) by @chelojimenez in #7294
  • harness: bind Cursor CLI approvals to the request they approve (HARN-33 · I8a) by @chelojimenez in #7295
  • sdk: seed Cursor CLI without the pins that block pass-through (HARN-33 · I13) by @chelojimenez in #7296
  • sdk: negotiate the Cursor CLI client's protocol as the CLI does (HARN-33 · I16) by @chelojimenez in #7297
  • fix(conformance): keep Starting on the card while its run connects the server (CQT-154) by @ignaciojimenezr in #7345
  • fix(sdk): report a -32022 version refusal as unsupported, not as HTTP 400/405 (CQT-156) by @ignaciojimenezr in #7346
  • fix(conformance): show a blocked OAuth sign-in window in the dialog only (CQT-157) by @ignaciojimenezr in #7350
  • fix(conformance): stack a run header's actions on a narrow window (CQT-155) by @ignaciojimenezr in #7349
  • fix(conformance): one line for a suite that doesn't apply, live and saved (CQT-158) by @ignaciojimenezr in #7351
  • Hide the Tasks update check behind a flag (CQT-159) by @ignaciojimenezr in #7354
  • ci: replace the staging-canary Ask MCPJam gate with a hermetic smoke by @chelojimenez in #7352
  • conformance: fill share card bars green when every scored check passes by @ignaciojimenezr in #7358
  • conformance: name the server on a shared run's page by @ZeHuari in #7357

Full Changelog: v3.19.0...v3.20.0

Don't miss a new inspector release

NewReleases is sending notifications on new releases.