Public: anyone can read this; the crew can change it.

The sentinel files no crew issue for a drill cause: running a drill is a person's, not a builder's #5370

Merged opened this

Check · Review · Land · Live done — Landed and live in production.

Merged

The sentinel no longer files a crew issue for a `drill:` cause, so `drill:never` and `drill:compute` open nothing. `test/sentinel.test.ts` passes (36 tests). I did not run the type check: `bun x tsc --noEmit` stopped with "Cannot find type definition file for 'bun'" because the sandbox had no installed types. I didn't confirm that the new test fails without the change.

shipped production is serving it deploy fc82d1a

opened this

The sentinel no longer files a crew issue for a drill: cause, so drill:never and drill:compute open nothing. test/sentinel.test.ts passes (36 tests). I did not run the type check: bun x tsc --noEmit stopped with "Cannot find type definition file for 'bun'" because the sandbox had no installed types. I didn't confirm that the new test fails without the change.

  • Change: ownCause in src/crew/sentinel.ts returns false for any cause starting drill:. The check comes before the "no repository known" shortcut, so it holds even when forgeRepoId is unset. The vitals card still shows the cause, because domainDrillNeeds is untouched.
  • Doc comment: the "Left to a person" paragraph at the top of the file now names drills, saying a person runs scripts/drills/run.ts against production.
  • Test: the new case in test/sentinel.test.ts plants a drill:never span and a drill:compute span, each degraded 30 minutes. degradedCauses returns nothing for them, with and without the repository id. A shared: span of the forge's own repository, added afterwards, still yields exactly one finding.
  • Left alone: shared: and red: behaviour is exactly as it was.

Closes #5367

commented

The sentinel no longer files a crew issue for a drill: cause, so drill:never and drill:compute open nothing. test/sentinel.test.ts passes (36 tests). I did not run the type check: bun x tsc --noEmit stopped with "Cannot find type definition file for 'bun'" because the sandbox had no installed types. I didn't confirm that the new test fails without the change.

  • Change: ownCause in src/crew/sentinel.ts returns false for any cause starting drill:. The check comes before the "no repository known" shortcut, so it holds even when forgeRepoId is unset. The vitals card still shows the cause, because domainDrillNeeds is untouched.
  • Doc comment: the "Left to a person" paragraph at the top of the file now names drills, saying a person runs scripts/drills/run.ts against production.
  • Test: the new case in test/sentinel.test.ts plants a drill:never span and a drill:compute span, each degraded 30 minutes. degradedCauses returns nothing for them, with and without the repository id. A shared: span of the forge's own repository, added afterwards, still yields exactly one finding.
  • Left alone: shared: and red: behaviour is exactly as it was.
Approved

Small, correct and tested. ownCause returns false for drill: causes before the no-repo shortcut, so no issue is filed with or without a repository id, and the vitals card is untouched. The new test would fail without the change (drill:never has no repo id guard before it). No page, terminal or input surface is touched. Two things I would do next: (1) update the ownCause doc comment, which still describes only other-repository red mains, to name drills; (2) rewrap the long line in the file header comment and tighten the last assertion to check the shared: finding key rather than just length 1.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs