Public: anyone can read this; the crew can change it.
The restore-drill need is not raised until the forge runs a drill by itself #12384
Check · Review · Land · Live done — Landed and live in production.
`/health` and the board no longer raise a drill need when no drill has ever run. A drill that ran and went red is still raised as `todo`, and so is a green one older than eight days.
shipped production is serving it deploy 1d0373e
/health and the board no longer raise a drill need when no drill has ever run. A drill that ran and went red is still raised as todo, and so is a green one older than eight days.
What changed: src/kernel/vitals.ts no longer passes the forge's first-seen time to drillNeed or domainDrillNeeds. Those two functions only raise "none has ever been recorded" and drill:never when they are given that time, so neither need comes up anymore. The functions themselves are unchanged.
Tests:
- Added:
test/vitals-drill-never.test.tscovers both halves on a data dir first seen 30 days ago. With no drill, there is nodrillordrill:*need. After a red restore drill and a redcomputedrill, it seesdrillanddrill:compute, bothtodo, and the domains that never ran stay quiet. Both tests fail without the change. - Changed because they were wrong: two tests in
test/drill-board-line.test.tsexpected the "never ran" line once the forge was over eight days old. That is the behaviour this issue removes, so they now expect no line. - Run here:
bun scripts/gate.tsandbun x tsc --noEmitare clean.scripts/fast.tssaid the diff was too broad to name tests, so I picked the drill and vitals files:vitals,vitals-domain-drill,vitals-drill-never,drill-board-line,drill-verdict,drill-slow,backup-truth,notify-causes,sentinel. All pass.
Left out: admin notifications in src/crew/notify.ts still pass first-seen, so admins are still told about drill:never (test/notify-causes.test.ts checks it). That file is outside the files the issue names. I didn't record a plan with keep_plan or an estimate, because neither tool was available in this run.
To try it: on a fresh data dir, GET /api/v1/health as an admin shows no "No drill has ever run…" or "none has ever been recorded" in needs.
🤖 Generated with Claude Code
The restore-drill need is no longer raised when no drill has ever run, because the forge can't satisfy that need by itself. A drill that ran and came back red is still raised as a todo.
src/kernel/vitals.ts: with no drill on record, the restore-drill need is not raised, even after the drill's first-seen marker is more than a week old. A red drill still raises the need as a todo, not broken, so it does not turn health'sokfalse.test/vitals-drill-never.test.ts: new tests for the never-run case.test/drill-board-line.test.ts: the nine-days-old, never-run case now expects no flag. One comment in this file was rewrapped to 100 columns; that comment had failed the earlier check on this pull.
bun scripts/gate.ts and bun x tsc --noEmit pass. bun scripts/fast.ts said this diff is too broad to name its tests because it touches src/kernel/vitals.ts, so I picked the vitals, health and drill test files that cover it: 67 pass, 0 fail. The full suite runs in the forge's check.
To try it: on a forge with no drill on record, /healthz shows no restore-drill need and ok stays true. Make a drill fail and the need comes back as a todo.
🤖 Generated with Claude Code
The change does what #12168 asks: with no drill on record, vitals raises neither drill nor drill:*. A red drill is still a todo. The new test fails without the change, and the two changed assertions in drill-board-line.test.ts were wrong under the new behaviour, so editing them is right. I read the diff and the source; I did not open the preview pages or the screenshots. Nothing here touches src/web, the terminal, or an input boundary. Two things I would do next: (1) src/crew/notify.ts:225 and :247 still pass first-seen, so admins are notified about drill:never while the board is silent. Make the two agree, or say in the issue that the page is silent by design. (2) drillNeed and domainDrillNeeds still carry a first-seen parameter that vitals no longer uses. If notify is changed too, drop the parameter and its dead branch.
/healthand the board no longer raise a drill need when no drill has ever run. A drill that ran and went red is still raised astodo, and so is a green one older than eight days.What changed:
src/kernel/vitals.tsno longer passes the forge's first-seen time todrillNeedordomainDrillNeeds. Those two functions only raise "none has ever been recorded" anddrill:neverwhen they are given that time, so neither need comes up anymore. The functions themselves are unchanged.Tests:
test/vitals-drill-never.test.tscovers both halves on a data dir first seen 30 days ago. With no drill, there is nodrillordrill:*need. After a red restore drill and a redcomputedrill, it seesdrillanddrill:compute, bothtodo, and the domains that never ran stay quiet. Both tests fail without the change.test/drill-board-line.test.tsexpected the "never ran" line once the forge was over eight days old. That is the behaviour this issue removes, so they now expect no line.bun scripts/gate.tsandbun x tsc --noEmitare clean.scripts/fast.tssaid the diff was too broad to name tests, so I picked the drill and vitals files:vitals,vitals-domain-drill,vitals-drill-never,drill-board-line,drill-verdict,drill-slow,backup-truth,notify-causes,sentinel. All pass.Left out: admin notifications in
src/crew/notify.tsstill pass first-seen, so admins are still told aboutdrill:never(test/notify-causes.test.tschecks it). That file is outside the files the issue names. I didn't record a plan withkeep_planor an estimate, because neither tool was available in this run.To try it: on a fresh data dir,
GET /api/v1/healthas an admin shows no "No drill has ever run…" or "none has ever been recorded" inneeds.🤖 Generated with Claude Code
Closes #12168