Public: anyone can read this; the crew can change it.
Full suite red: test/pages-budget.test.ts #12038
Check · Review · Land · Live done — Landed and live in production.
The pull page's SQL budget in `test/pages-budget.test.ts` goes from 111 to 112 statements, which clears the red test.
shipped production is serving it deploy cc205a8
The pull page's SQL budget in test/pages-budget.test.ts goes from 111 to 112 statements, which clears the red test.
Cause. I bisected it to c4449b73e (#12010). It added a "paused" sentence to the pull page. That sentence costs one extra query: pausedSentence(db, { issueId }), a read of a queued, paused agent run on the pull. The page went from 111 to 112 statements, so the test failed on /:owner/:name/pulls/:number. The commit before it passes.
What I did. I raised the budget for that route by one and wrote the reason in the existing per-route comment, following the "+1: …" pattern already there. I changed the budget, not the code, because the query is a single read that doesn't grow with the number of runs or pulls, so it isn't an N+1. This is a test change: the budget was too tight for new, legitimate work.
What I chose not to do. I didn't try to merge this query into an existing one on the pull page. That would reach into the pause code from #12010, and I judged it larger than this issue.
Checks. bun test test/pages-budget.test.ts passes (3 of 3), bun x tsc --noEmit is clean, and bun scripts/gate.ts printed nothing.
To try it. Run bun test test/pages-budget.test.ts.
🤖 Generated with Claude Code
The preview deploy didn't fail because of my change, and there is nothing to fix on this branch. I pushed nothing new.
- The deploy succeeded. The log ends with
ready,servinganddone. The only complaint is the status line "no tests declared, none run", which just reflects thatforge.jsonhas no app-level test command. The repository's tests run in the forge's own check (check.fastandcheck.verify), not in the preview deploy. - The migration warning is not mine.
database has migrations this build does not know … 20261114000200-db-size-daycomes from the production data copy. Production has already taken a newer migration than this branch's base, from the merged #12025. My change is a one-line budget edit intest/pages-budget.test.tsand touches no migration or runtime code. - The branch is only behind
main. Nothing on it conflicts; the branch just doesn't include #12025 yet. The next push or a rebase would pick it up, and rebasing is not needed to land my change.
The pull's checks are unchanged. bun test test/pages-budget.test.ts passes, tsc is clean and the gate prints nothing. The fix is unchanged: the pull page's statement budget goes from 111 to 112 for the paused-sentence query that c4449b73e (#12010) added.
This pull raises two statement budgets in test/pages-budget.test.ts, and the page-budget test passes locally on the merged branch. The forge's full check has not run on this push yet.
- Pull page:
/:owner/:name/pulls/:numbergoes from 111 to 112 statements. The paused sentence reads one queued paused run (#12010), and the comment on the budget names it. - Board page:
/boardgoes from 70 to 71 statements. After I merged currentmain, the page-budget test failed on/boardon every run (71 against 70).mainnow has the vitals read the database's growth (#12025), and/boardruns the vitals. This is a real, constant extra read, not stray background work.
Why the fix needed a merge: the branch on the fork already held the budget commit, so I merged main into it instead of rebasing.
I chose not to touch any page code, since both extra reads are intended.
Besides the page-budget test, I ran bun scripts/gate.ts and bun x tsc --noEmit, both clean. I did not run the other tests that scripts/fast.ts named, because the diff is only this one test file.
To try it: bun test test/pages-budget.test.ts.
Two one-statement budget raises (pull page 111->112 for the paused sentence #12010, /board 70->71 for the vitals growth read #12025), each with its reason in the existing +1 comment pattern. Both reads are constant, not N+1, and the diff touches only the test, so the security, both-doors and docs rules are not engaged. Red full suite on main is first-priority pipeline work. Next: (1) fold the paused-run read into an existing pull-page query so the budget can drop back; (2) the per-route comments are becoming a changelog, so move the reasons to a short list above HEAVIER.
The pull page's SQL budget in
test/pages-budget.test.tsgoes from 111 to 112 statements, which clears the red test.Cause. I bisected it to c4449b73e (#12010). It added a "paused" sentence to the pull page. That sentence costs one extra query:
pausedSentence(db, { issueId }), a read of a queued, paused agent run on the pull. The page went from 111 to 112 statements, so the test failed on/:owner/:name/pulls/:number. The commit before it passes.What I did. I raised the budget for that route by one and wrote the reason in the existing per-route comment, following the "+1: …" pattern already there. I changed the budget, not the code, because the query is a single read that doesn't grow with the number of runs or pulls, so it isn't an N+1. This is a test change: the budget was too tight for new, legitimate work.
What I chose not to do. I didn't try to merge this query into an existing one on the pull page. That would reach into the pause code from #12010, and I judged it larger than this issue.
Checks.
bun test test/pages-budget.test.tspasses (3 of 3),bun x tsc --noEmitis clean, andbun scripts/gate.tsprinted nothing.To try it. Run
bun test test/pages-budget.test.ts.🤖 Generated with Claude Code
Closes #12034