Candidate 1126314bd522de838aad03689bed41f6b12a33c2d7f30b2eff1b38653f559ae0, 4 files on48b893871. The first gate stopped at script-queue: the pre-A2 fixture check pinned the old header comment. The check now skips comment lines (brief amended in06e964026). Second gate: 24 suites, 0 failed. Co-Authored-By: Claude Opus 5.5 <[email protected]>
78 lines
5.4 KiB
Plaintext
78 lines
5.4 KiB
Plaintext
✔ pure resolution selects current default or explicit enrolled account (2.135692ms)
|
||
✔ scope is explicit, bounded and never inferred (1.696573ms)
|
||
✔ fork pin is preserved against default change, override, missing account and revocation (0.751061ms)
|
||
✔ unenrolled account/provider, missing harness, model expansion and native model ceiling refuse (0.834454ms)
|
||
✔ only explicit synthetic credential forms and internal fixture stores admitted (5.651779ms)
|
||
✔ two concurrent workspaces of the same agent publish distinct complete private generations (101.846352ms)
|
||
✔ same execution ID is exclusively claimed and cannot overwrite a published generation (32.593771ms)
|
||
✔ failed generation after-auth preserves prior files, records failure and refuses blind same-ID retry (46.139481ms)
|
||
✔ failed generation before-publish preserves prior files, records failure and refuses blind same-ID retry (60.774131ms)
|
||
✔ credential lock contention refuses without duplicate side effects (11.113394ms)
|
||
✔ symlinked pre-existing final target is refused and never followed (30.783662ms)
|
||
✔ invalid registry cannot resolve; no fallback to supplied partial entries (0.266675ms)
|
||
✔ post-publication failure records uncertainty, preserves complete generation and prevents replay (26.890403ms)
|
||
✔ expired credentials refresh under transaction and subsequent generation reuses rotation (123.182237ms)
|
||
✔ refresh failure retains prior generation and store state (68.053264ms)
|
||
✔ refresh timeout retains prior generation and store state (154.620414ms)
|
||
✔ refresh malformed retains prior generation and store state (62.990002ms)
|
||
✔ concurrent refresh on same account refuses contention while unrelated account proceeds (215.640843ms)
|
||
✔ invalid refresh options refuse before burning claim (32.04283ms)
|
||
✔ fixed fake process rotates both OAuth fields without mutating caller input (29.720572ms)
|
||
✔ concurrent isolated processes preserve separate provider credentials (70.950318ms)
|
||
✔ fake failure is refused with fixed diagnostics (23.217211ms)
|
||
✔ fake malformed is refused with fixed diagnostics (24.645594ms)
|
||
✔ fake timeout is refused with fixed diagnostics (103.595576ms)
|
||
✔ fake unchanged is refused with fixed diagnostics (26.548106ms)
|
||
✔ caller executable/environment injection is rejected before spawning (0.311464ms)
|
||
✔ valid fixture tree validates and lists without secrets (76.274057ms)
|
||
✔ unknown-field refuses (0.436141ms)
|
||
✔ invalid-id refuses uppercase and traversal shapes (0.320595ms)
|
||
✔ plain-http baseUrl requires allowInsecureTransport (0.380754ms)
|
||
✔ native provider rejects allowInsecureTransport (0.186075ms)
|
||
✔ unsupported credential type and kind refuse (0.178492ms)
|
||
✔ account provider-path mismatch refuses (0.138572ms)
|
||
✔ profile account refs must be provider/account shaped (0.237522ms)
|
||
✔ seat selection accepts fork pin field, validates account refs (0.245458ms)
|
||
✔ harness manifest id must equal executable (gate 1) (0.234864ms)
|
||
✔ CLI validate: duplicate provider id across files refuses (32.865949ms)
|
||
✔ CLI validate: missing referenced provider/account refuse (32.541351ms)
|
||
✔ CLI validate: broken JSON refuses without secret echo (28.519109ms)
|
||
✔ CLI usage errors exit 2 (57.148481ms)
|
||
✔ credential.json sibling presence does not break validation and is never read (65.239047ms)
|
||
✔ D1 missing, empty and structurally empty roots refuse, no list projection (184.857134ms)
|
||
✔ D1 required directory auth cannot be absent (67.860984ms)
|
||
✔ D1 required directory auth/providers cannot be absent (60.088359ms)
|
||
✔ D1 required directory auth/accounts cannot be absent (63.468986ms)
|
||
✔ D1 required directory auth/settings cannot be absent (73.038247ms)
|
||
✔ D1 required directory harnesses cannot be absent (69.029213ms)
|
||
✔ D1 root file and unreadable metadata refuse (119.490104ms)
|
||
✔ D2 no symlink traversal at auth/providers/openai-codex.json (54.86312ms)
|
||
✔ D2 no symlink traversal at auth/accounts/openai-codex/homelab-openai (65.403539ms)
|
||
✔ D2 no symlink traversal at auth/providers (56.102928ms)
|
||
✔ D2 no symlink traversal at auth (57.325378ms)
|
||
✔ D2 root and ancestor symlinks and lexical traversal refuse (169.358477ms)
|
||
✔ private filesystem modes enforced for root (56.497545ms)
|
||
✔ private filesystem modes enforced for auth (53.365766ms)
|
||
✔ private filesystem modes enforced for auth/providers/openai-codex.json (56.01682ms)
|
||
✔ private filesystem modes enforced for auth/accounts/openai-codex/homelab-openai/account.json (66.821651ms)
|
||
✔ D3 numeric version 1 only across all record kinds (1.972247ms)
|
||
✔ D4 nested unknown keys and missing per-kind required fields refuse (79.552573ms)
|
||
✔ D5 unenrolled default refuses even when account exists (66.6451ms)
|
||
✔ D6 provider/account credential type must match (68.767803ms)
|
||
✔ D7 every harness endpoint enforces HTTP opt-in and shape (0.449312ms)
|
||
✔ D8 URLs reject embedded credentials and unsupported protocols without echo (168.73083ms)
|
||
✔ D9 malformed JSON diagnostics contain no content excerpt (59.71486ms)
|
||
✔ D10 missing metadata is missing-path, not invalid-json (62.072326ms)
|
||
✔ D10 library returns no partial entries on any invalid record (72.736021ms)
|
||
✔ null/scalar/array metadata refuses without stack or echo (245.003918ms)
|
||
✔ credential sibling is never opened, even when an unreadable symlink (34.755858ms)
|
||
✔ oversized metadata refuses before parsing (57.711837ms)
|
||
ℹ tests 69
|
||
ℹ suites 0
|
||
ℹ pass 69
|
||
ℹ fail 0
|
||
ℹ cancelled 0
|
||
ℹ skipped 0
|
||
ℹ todo 0
|
||
ℹ duration_ms 2246.198087
|