What's Changed
- fix(webmcp): thread page-tool approval into chat-v2's hosted engines by @chelojimenez in #4466
- feat(browserd): W1(a) — canonical protocol + at-most-once command queue by @chelojimenez in #4467
- An empty-string nextCursor is a cursor, not the end of the list (MCP 2026-07-28 pagination) by @chelojimenez in #4462
- feat(browserd): daemon control plane — HTTP handler, auth, bootId, staleness guard (W1 PR b) by @chelojimenez in #4470
- Record the system prompt the hosted turn actually sent by @chelojimenez in #4471
- feat(browserd): Chromium driver foundations — launch args, state token, profile lock, settle (W1 PR c1) by @chelojimenez in #4472
- fix(auth): retry token refresh instead of dying on one failure by @ignaciojimenezr in #4403
- feat(browserd): the real ChromiumDriver — persistent context, tabs, W1 nav/observe (W1 PR c2) by @chelojimenez in #4473
- bench: document the canonical suite-hash contract at the worker pin seam by @chelojimenez in #4476
- feat(browserd): daemon entrypoint + esbuild bundler + checked-in dist (W1 PR c3) by @chelojimenez in #4475
- feat(browserd): boot recipe — start browserd in a desktop sandbox (W1 PR e1) by @chelojimenez in #4478
- feat(browserd): inspector→browserd HTTP client (W1 PR e3a) by @chelojimenez in #4479
- tasks/list also treats an empty-string cursor as a cursor (follow-up to #4462) by @chelojimenez in #4480
- Give a judge case the iteration it graded by @chelojimenez in #4477
- feat(browserd): internal debug route — the W1 end-to-end exit (W1 PR e3) by @chelojimenez in #4481
- docs(browserd): W2–W7 handoff + wire bundle:browserd into build/pretest by @chelojimenez in #4485
- Revert "docs(browserd): W2–W7 handoff + wire bundle:browserd into build/pretest" by @chelojimenez in #4486
- fix(browserd): IIFE-wrap page.evaluate strings — the daemon was inert (P0) by @chelojimenez in #4487
- fix: increase payload limits and improve truncation handling for RPC logs by @weimar-torres-herrera in #4458
- fix(ollama): implement backoff strategy for polling and pause on tab visibility by @weimar-torres-herrera in #4194
- feat(score): redesign public score runner by @prathmeshpatel in #4500
- Changelog: public score runner redesign by @mintlify[bot] in #4502
- feat(browser): hosted browser + WebMCP runtime — W2 through W7-prep by @chelojimenez in #4489
- connect: keep the reason a hosted connect failed (BB-48) by @ZeHuari in #4389
- scenario: resume the tester's conversation across a refresh (BB-51) by @ZeHuari in #4390
- UVH-IN5: show the user-value chain on /evals when it has data by @chelojimenez in #4488
- UVH-IN1: file a failed tool-call assertion at selection, not user value by @chelojimenez in #4490
- UVH-IN7: an observed tool error reaches response, even unauthored by @chelojimenez in #4491
- UVH-IN2: attribute a model-provider failure to us, not to the server by @chelojimenez in #4492
- UVH-IN4: a judged stage row says who judged it, and on what by @chelojimenez in #4493
- UVH-IN3: name a verdict/chain disagreement instead of calling it missing data by @chelojimenez in #4494
- UVH-IN6: the run detail can show a run's canonical stage analytics by @chelojimenez in #4496
- feat(webmcp): select the hosted browser per session, so W5's provider is reachable by @chelojimenez in #4513
- fix(computers): attach the bearer to the local-terminal nonce mint by @chelojimenez in #4515
- Versioned Skills: compose stops dropping version pins, and turns record what they ran with by @chelojimenez in #4452
- fix(auth): keep hosted sign-in by proxying AuthKit through our own origin by @ignaciojimenezr in #4514
- Local terminal: self-repair spawn-helper, surface open errors, embed in Playground rail by @chelojimenez in #4518
- test(auth): assert cookie flags per cookie, not across the joined header by @ignaciojimenezr in #4517
- Pin composed eval servers with --compose-server by @ignaciojimenezr in #4444
- fix(oauth): stop reporting target server request failures by @ignaciojimenezr in #4521
- feat(cli): --api-header, so the CLI can reach a deployment behind an edge authenticator by @chelojimenez in #4522
- Stop a failed connection attempt from burning the retry that fixes it by @ignaciojimenezr in #4468
- Pull request for mintlify/docs-update-pr-4468-1788219788309 by @mintlify[bot] in #4523
- UVH-FU1: the emulated engine says which side of the handover it died on by @chelojimenez in #4524
- chore(sdk): regenerate host catalog fallback with the new theme pairs by @ignaciojimenezr in #4520
- fix(evals): attach the bearer to the Evaluate chain reads by @chelojimenez in #4527
- UVH-FU5: two claims that stayed on screen after they stopped being true by @chelojimenez in #4528
- UVH-FU6: a missing route stops looking like a missing run, and a provisional funnel refreshes itself by @chelojimenez in #4529
- harness: move Claude Code and Codex onto the stable @ai-sdk/harness line by @chelojimenez in #4530
- harness: let Claude Code pause for approval on MCP-server tools by @chelojimenez in #4531
- UVH-FU10: drop the landed UVH stack pattern from the CI branch filters by @chelojimenez in #4533
- Update enterprise auth policy copy by @ignaciojimenezr in #4525
- UVH-FU8a: the judge pass reads the model-layer classification instead of guessing by @chelojimenez in #4535
- test: BehaviorTab expects the approval switch enabled for claude-code by @chelojimenez in #4538
- Fix Claude Code tool approval docs by @mintlify[bot] in #4539
New Contributors
- @weimar-torres-herrera made their first contribution in #4458
Full Changelog: v3.3.1...v3.3.2