conformance/src
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Avi Seth 88ac3e595f
fix(runner): bound server scenarios with a per-scenario timeout (#454)
The client runner has had a 30s per-scenario timeout since it was written,
but `runServerConformanceTest` awaited `scenario.run(ctx)` with no bound. A
server under test that accepts the TCP connection and then never answers an
initialize POST, a tools call, or an SSE read stalled the entire suite run,
not just its own scenario.

#316 bounded the session-termination DELETEs in teardown, but that is a
call-site fix: covering the rest that way needs the same treatment on every
raw fetch in every scenario. Bounding at the runner makes those per-call
bounds defense-in-depth instead of the only protection.

`--timeout` now applies to server mode too, with the same 30s default as
client mode. On expiry the scenario reports a `scenario-timeout` FAILURE
naming the elapsed bound, so a wedged server reads as a failing scenario
rather than a hung process.

The timed-out scenario promise is left pending deliberately — a read blocked
on a socket has no cancellation channel — with its rejection swallowed so a
late failure can't surface against whichever scenario is running by then.

Fixes #427

Co-authored-by: Avi Seth <aviseth@users.noreply.github.com>
2026-09-06 20:14:58 +01:00
..
checks Allow expected-failures entries to name a single check (#406) 2026-07-20 17:20:32 +02:00
connection fix: send HTTP DELETE to terminate server sessions after each scenario (#316) 2026-07-31 17:24:13 +01:00
mock-server Fix wire-validation attribution bugs and extend the schema erratum to 2025-06-18 (#421) 2026-07-27 20:32:17 +01:00
new-sep feat: add new-sep scaffolding command (#272) 2026-05-13 15:53:24 +01:00
runner fix(runner): bound server scenarios with a per-scenario timeout (#454) 2026-09-06 20:14:58 +01:00
scenarios fix(client/auth): bind negative-check verdicts to an observed prerequisite (#483) 2026-09-06 19:14:00 +00:00
schemas fix(auth): add issuer to pre-registration context (#423) 2026-09-06 18:44:29 +01:00
sdk-runner feat: add ruby-sdk to the known SDKs registry (#457) 2026-09-06 18:43:45 +01:00
seps feat: add client-side JSON Schema 2020-12 preservation scenario (#335) 2026-07-31 17:24:05 +00:00
spec-types Validate all wire messages against the per-version spec JSON schema (#399) 2026-07-27 15:58:43 +01:00
tier-check fix(tier-check): strip package-name prefixes from monorepo release tags (#463) 2026-09-06 19:10:54 +00:00
traceability feat: add SEP conformance traceability manifest (#288) 2026-05-19 22:22:25 +01:00
validation Fix wire-validation attribution bugs and extend the schema erratum to 2025-06-18 (#421) 2026-07-27 20:32:17 +01:00
expected-failures.test.ts Allow expected-failures entries to name a single check (#406) 2026-07-20 17:20:32 +02:00
expected-failures.ts Allow expected-failures entries to name a single check (#406) 2026-07-20 17:20:32 +02:00
index.ts fix(runner): bound server scenarios with a per-scenario timeout (#454) 2026-09-06 20:14:58 +01:00
requirements.test.ts Freeze conformance requirements per spec revision, run each at its wire (#447) 2026-08-07 14:55:10 +01:00
requirements.ts Freeze conformance requirements per spec revision, run each at its wire (#447) 2026-08-07 14:55:10 +01:00
schemas.ts feat: add positive tests for the Authorization Code Grant (supersedes #267) (#364) 2026-06-24 16:13:55 +01:00
types.test.ts fix: update the draft wire version to 2026-07-28 (#331) 2026-06-08 16:47:17 +01:00
types.ts feat(sdk-runner): add rust-sdk + per-spec-version config overlays (#419) 2026-07-28 10:56:25 +01:00