Evidence matrix
3 independent candidates verified against the same frozen regression and commands. Candidate B was rejected automatically: introduced new test failures (2). 2 candidates remain eligible. The choice is yours.
Candidates
3
Eligible
2
Rejected
1by hard gate
Checks run
15/15
New failures caught
2
Verification
12.9ssequential
| Candidate → | |||
|---|---|---|---|
| Hard gatesany failure rejects the candidate | |||
| Frozen regression test intactsha256 matches the frozen artifact | INTACT(pass) | INTACT(pass) | INTACT(pass) |
| Regression testmust now pass | PASS(pass) | PASS(pass) | PASS(pass) |
| New test failures vs baselinecandidate failures − baseline failures | 0(pass) | 2(fail)
| 0(pass) |
| Typecheckrequired by run policy | PASS(pass) | PASS(pass) | PASS(pass) |
| Buildrequired by run policy | PASS(pass) | PASS(pass) | PASS(pass) |
| Evidenceinformational · shown, never weighted | |||
| Test suite (pass / total, incl. frozen regression) | 13/13(pass) | 11/13(fail) | 13/13(pass) |
| Pre-existing baseline failures still failingalready failing on baseline · not held against it | 0 | 0 | 0 |
| Lintnot required by run policy | PASS(pass) | PASS(pass) | PASS(pass) |
| Files changedexcludes the injected regression test | 1 | 1 | 1 |
| Lines added / deletedimplementation only | +2−1 | +6−2 | +8−3 |
| Dependency manifest changed | NO | NO | NO |
| Config files touched | 0 | 0 | 0 |
No composite score. No recommendation. Hard gates reject; everything else is evidence. The developer decides.base ad6b83d · baseline failures 0
Candidate B: Treat any refresh failure as unauthorized
REJECTED
Clients only need to know they must log in again when refresh fails.
✕ Rejected by hard gate
- Introduced new test failures (2)
New failures vs baseline (2)
- refresh during a token-store outage returns 503, not an auth errortest/account-policy.test.ts
- refresh for a disabled account returns 403 account_disabledtest/account-policy.test.ts
Trade-offs · as proposed
- Simple catch-all
- Collapses distinct failure modes into one status
Implementation brief
Wrap the refresh route in a try/catch that returns 401 { error: "invalid_token" } for any thrown error.
Change surface
- src/app.ts+6 −2
dependency manifest unchangedconfig untouched
Inspect locally
git -C .patchbench/worktrees/run-20260926073526-aab88e/b diffBranch patchbench/run-20260926073526-aab88e/b. PatchBench never merges or pushes.
- ✓Frozen regression intactintact
- ✓Regression testpass · 1/1 tests · exit 0 · 146ms$ node --test --test-reporter=tap test/refresh-expired.test.ts
- ✕Test suitefail · 11/13 tests · exit 1 · 582ms$ pnpm run test
- ✓Typecheckpass · exit 0 · 1.4s$ pnpm run typecheck
- ✓Lintpass · exit 0 · 1.0s$ pnpm run lint
- ✓Buildpass · exit 0 · 1.2s$ pnpm run build
- ✕New failures vs baseline2
- ✕ test/account-policy.test.ts > refresh during a token-store outage returns 503, not an auth error
- ✕ test/account-policy.test.ts > refresh for a disabled account returns 403 account_disabled
- ·Preserved baseline failures0none · baseline recorded 0 failures