✔ pure resolution selects current default or explicit enrolled account (2.564533ms)
✔ scope is explicit, bounded and never inferred (2.267411ms)
✔ fork pin is preserved against default change, override, missing account and revocation (1.104979ms)
✔ unenrolled account/provider, missing harness, model expansion and native model ceiling refuse (1.036968ms)
✔ only explicit synthetic credential forms and internal fixture stores admitted (9.495556ms)
✔ two concurrent workspaces of the same agent publish distinct complete private generations (79.481947ms)
✔ same execution ID is exclusively claimed and cannot overwrite a published generation (36.445001ms)
✔ failed generation after-auth preserves prior files, records failure and refuses blind same-ID retry (56.092833ms)
✔ failed generation before-publish preserves prior files, records failure and refuses blind same-ID retry (90.591743ms)
✔ credential lock contention refuses without duplicate side effects (14.186768ms)
✔ symlinked pre-existing final target is refused and never followed (28.81338ms)
✔ invalid registry cannot resolve; no fallback to supplied partial entries (0.38451ms)
✔ post-publication failure records uncertainty, preserves complete generation and prevents replay (28.638912ms)
✔ expired credentials refresh under transaction and subsequent generation reuses rotation (100.322375ms)
✔ refresh failure retains prior generation and store state (72.894091ms)
✔ refresh timeout retains prior generation and store state (146.852708ms)
✔ refresh malformed retains prior generation and store state (76.992508ms)
✔ concurrent refresh on same account refuses contention while unrelated account proceeds (216.279829ms)
✔ invalid refresh options refuse before burning claim (36.084975ms)
✔ fixed fake process rotates both OAuth fields without mutating caller input (46.226044ms)
✔ concurrent isolated processes preserve separate provider credentials (42.49935ms)
✔ fake failure is refused with fixed diagnostics (38.402014ms)
✔ fake malformed is refused with fixed diagnostics (27.556787ms)
✔ fake timeout is refused with fixed diagnostics (104.233639ms)
✔ fake unchanged is refused with fixed diagnostics (29.060453ms)
✔ caller executable/environment injection is rejected before spawning (0.432498ms)
✔ valid fixture tree validates and lists without secrets (95.518001ms)
✔ unknown-field refuses (0.660398ms)
✔ invalid-id refuses uppercase and traversal shapes (0.449262ms)
✔ plain-http baseUrl requires allowInsecureTransport (0.486138ms)
✔ native provider rejects allowInsecureTransport (0.185017ms)
✔ unsupported credential type and kind refuse (0.256722ms)
✔ account provider-path mismatch refuses (0.18805ms)
✔ profile account refs must be provider/account shaped (0.356319ms)
✔ seat selection accepts fork pin field, validates account refs (1.724632ms)
✔ harness manifest id must equal executable (gate 1) (0.254135ms)
✔ CLI validate: duplicate provider id across files refuses (41.184728ms)
✔ CLI validate: missing referenced provider/account refuse (35.552582ms)
✔ CLI validate: broken JSON refuses without secret echo (35.593541ms)
✔ CLI usage errors exit 2 (66.27167ms)
✔ credential.json sibling presence does not break validation and is never read (77.899926ms)
✔ D1 missing, empty and structurally empty roots refuse, no list projection (228.434182ms)
✔ D1 required directory auth cannot be absent (73.57918ms)
✔ D1 required directory auth/providers cannot be absent (67.812571ms)
✔ D1 required directory auth/accounts cannot be absent (70.125413ms)
✔ D1 required directory auth/settings cannot be absent (73.316956ms)
✔ D1 required directory harnesses cannot be absent (69.291484ms)
✔ D1 root file and unreadable metadata refuse (132.907832ms)
✔ D2 no symlink traversal at auth/providers/openai-codex.json (67.123961ms)
✔ D2 no symlink traversal at auth/accounts/openai-codex/homelab-openai (71.5302ms)
✔ D2 no symlink traversal at auth/providers (62.132478ms)
✔ D2 no symlink traversal at auth (63.923136ms)
✔ D2 root and ancestor symlinks and lexical traversal refuse (202.630806ms)
✔ private filesystem modes enforced for root (58.24232ms)
✔ private filesystem modes enforced for auth (56.842035ms)
✔ private filesystem modes enforced for auth/providers/openai-codex.json (61.433163ms)
✔ private filesystem modes enforced for auth/accounts/openai-codex/homelab-openai/account.json (73.081077ms)
✔ D3 numeric version 1 only across all record kinds (1.556293ms)
✔ D4 nested unknown keys and missing per-kind required fields refuse (72.551004ms)
✔ D5 unenrolled default refuses even when account exists (80.506059ms)
✔ D6 provider/account credential type must match (90.499001ms)
✔ D7 every harness endpoint enforces HTTP opt-in and shape (0.661626ms)
✔ D8 URLs reject embedded credentials and unsupported protocols without echo (199.726941ms)
✔ D9 malformed JSON diagnostics contain no content excerpt (80.056592ms)
✔ D10 missing metadata is missing-path, not invalid-json (78.392131ms)
✔ D10 library returns no partial entries on any invalid record (88.439502ms)
✔ null/scalar/array metadata refuses without stack or echo (279.003391ms)
✔ credential sibling is never opened, even when an unreadable symlink (35.059798ms)
✔ oversized metadata refuses before parsing (64.816327ms)
ℹ tests 69
ℹ suites 0
ℹ pass 69
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 2563.273154
