Collected policy patterns for L3 runners, mostly from the webrtc-datachannels conformance suite (patterns that survived the webcrypto fork are additionally marked ✓):
- Instance granularity is runner policy. Fresh-instance-per-case gives isolation, trivial trap containment, and parallelism via replication (intra-instance concurrency is cooperative-only — replication is the parallelism axis); instance-per-suite is cheaper but poisoning costs the remainder (recover by re-instantiating + resuming by name). Both legal under L1. ✓ (both systems are fresh-per-case/process)
- Layered timeouts: runner hang guard > any SUT-internal operation timeout, so genuine failures classify as
failed outcomes and only true hangs trip the guard (guard trip = trap-equivalent = abandon instance). Phase markers in diagnostics identify the hung phase.
- No retries ✓: a flaky bug would be masked by a second attempt; for network nondeterminism prefer deterministic simulation environments over retries.
- Write-through reporting: forward diagnostics to the transport promptly; anything buffered in a wasm runner core dies with the store on a trap (prototype finding).
- Cost tiers / corpus subsetting are
deselected, not not-applicable: restricting an expensive target (e.g. browser-boot-per-case) to a smoke subset is selection policy, visible as such in results — never conflated with capability.
- Concurrent drain obligation: a runner observing diagnostics must consume the stream concurrently with run (load-bearing for sync-lifted suites too — they wedge, not trap, under a non-draining observer).
- Parallelism multipliers need empirical tuning per target class (browser targets saturate at lower multiples; load-induced timeouts are the flake signature).
Destination: runner-implementer documentation + defaults in the reference runners; the results schema work inherits the deselected/not-applicable distinction.
Collected policy patterns for L3 runners, mostly from the webrtc-datachannels conformance suite (patterns that survived the webcrypto fork are additionally marked ✓):
failedoutcomes and only true hangs trip the guard (guard trip = trap-equivalent = abandon instance). Phase markers in diagnostics identify the hung phase.deselected, notnot-applicable: restricting an expensive target (e.g. browser-boot-per-case) to a smoke subset is selection policy, visible as such in results — never conflated with capability.Destination: runner-implementer documentation + defaults in the reference runners; the results schema work inherits the deselected/not-applicable distinction.