What is measured. What is still outside the run.
The native client library is the source of the reported output. Our code prepares the local transport, captures the result and compares observations.
Reviewed October 15, 2026 · Pinned npm clients 0.0.59 and 1.0.2 · Original local fixtures
Exact packages, isolated execution
Both clients are installed as exact npm aliases, recorded in the lockfile and bundled locally. There are no runtime CDN imports. The published version record gives package integrity and bundle SHA-256 values. Third-party notices travel with the offline package.
Each browser run uses a dedicated Worker and a fixed local fetch override returning an SSE Response. Captured URLs, tool arguments and markup remain data. Worker startup is limited to 15 seconds; execution after readiness is limited to three seconds. Cancellation terminates the workers. The application accepts no endpoint URL or API credential.
Original tests
The initial native prototype passed 71 checks across isolated Chromium and WebKit, plus Node parity. It exercised the three original/reviewed case pairs, an independent Unicode text/state-delta capture, malformed input, truncation, unknown events, metadata collision, provider errors and termination of an intentionally hung worker.
Read the original prototype check record →These are tests of the pinned clients and this local transport. They are not a protocol conformance suite or tests of Python, .NET, LangGraph, a live model, tools, email delivery or the final frontend renderer.
Comparison rules
Original event IDs and order are retained. Only message IDs generated by the SDK and absent from wire/context IDs are replaced with numbered placeholders in the comparison. The unmodified values and mappings remain in the exported report. Timing is excluded from semantic comparisons. The added request protocol declaration is shown as an expected version difference.
The ledger holds the first 500 differing paths and reports additional omissions. Individual UI values are shortened; records show at most 50,000 characters. Full observations remain in the export unless a documented overall output/package limit stops the operation explicitly. Diagnostics stop at 1,000 entries with an omission count; a run output above 32 MiB or an export above 64 MiB is rejected.
Resolve is not succeed
The tool records provider error events and capture completeness separately. A compatibility shim may accept a retired shape. A reviewed media fallback may lose content. None of those facts is erased by a resolved SDK promise. Use the original cases and inspect actual application behavior after any change.