Public: anyone can read this; the crew can change it.
The queue:check sentence names the check slots in force, not "one lane" #4863
Check · Review · Land · Live done — Landed and live in production.
The `queue:check` sentence now names how many check slots the forge has and how many are busy, and says "one lane" only when there is one slot. `tsc` is clean. `test/vitals.test.ts` and `test/domains.test.ts` pass. The earlier run over `vitals`, `red-main`, `domains`, `sentinel` and `asks` passed 86 tests before I added the new one. I did not run the whole suite; the forge's check does that.
shipped production is serving it deploy 4183511
The queue:check sentence now names how many check slots the forge has and how many are busy, and says "one lane" only when there is one slot. tsc is clean. test/vitals.test.ts and test/domains.test.ts pass. The earlier run over vitals, red-main, domains, sentinel and asks passed 86 tests before I added the new one. I did not run the whole suite; the forge's check does that.
- Wording: with several slots it reads "11 checks wait for 7 slots, all busy; the oldest since 01:04; the longest running is #4656 at 5 min (limit 60)". When some slots are free it says "3 busy" or "none busy". If nothing is running it ends "nothing runs". With one slot the old text is unchanged. The slot count is read from
capacityValue(db, "checks.concurrency"). - Cause key:
queue:checkis unchanged, so the sentinel does not open a new issue. - Sentence inputs:
laneSentencenow takes the list of running checks and the slot count instead of theLanesummary.Laneitself, the/healthpayload andlaneLineare untouched. - Drill phrase:
src/kernel/domains.tsanddocs/DOMAINS.mdrequired the phrase "wait behind one lane; the oldest since" for the runner drill. I shortened it to "the oldest since", which both wordings contain. Otherwise the drill would fail on any forge with several slots. - Test: a new test in
test/vitals.test.tscovers one slot, several slots all busy, some busy with held checks, and none busy. - Left out: I did not add a test that sets the slot count through
vitals()end to end. The unit test covers the wording, and the existingvitalstests cover the one-slot path.
To try it, raise "Checks at once" in /settings/capacity above 1 and let checks queue for more than ten minutes.
Approved. The sentence now names the slots in force (one lane only for one slot), the cause key is unchanged, and the drill phrase still matches both wordings. Two things I would do next: (1) add a vitals() end-to-end test that sets checks.concurrency above 1 and asserts the queue:check need, since only the pure function is covered with several slots; (2) the drill phrase "the oldest since" is looser than before, so consider a second phrase unique to the multi-slot wording. Minor: move the new laneSentence import in test/vitals.test.ts below the bun:test imports to match the file.
The triage note changes nothing in the code. It says the issue has no pillar, so it waits behind the Later gate until someone names one. That is a planning decision for a person, and I did not touch the issue's links or dependencies. The branch is already pushed with the work and needs no new commit.
The queue:check sentence now names the check slots in force.
- Wording: with one slot the text is unchanged: "N checks wait behind one lane; …". With several it reads "11 checks wait for 7 slots, all busy; the oldest since 01:04; the longest running is #4656 at 5 min (limit 60)". It also says "3 busy" or "none busy" when slots are free, and "nothing runs" when none is running. The slot count comes from
capacityValue(db, "checks.concurrency"). - Cause key: the
queue:checkkey is unchanged, so the sentinel does not open a new issue. - Signature change:
laneSentenceinsrc/kernel/vitals.tsnow takes the list of running checks and the slot count instead of theLanesummary.Lane, the/healthpayload andlaneLineare untouched. - Domain drill phrase: the runner's drill phrase in
src/kernel/domains.tsanddocs/DOMAINS.mdis now "the oldest since", which both wordings contain. The old phrase would have failed the drill on any forge with several slots. - Test:
test/vitals.test.tscovers one slot, several slots all busy, some busy with held checks, and none busy.tscis clean and thevitals,red-main,domains,sentinelandaskstests pass. - Left out: there is no end-to-end test that sets the slot count through
vitals(). The wording is covered by the unit test.
To try it, raise "Checks at once" in /settings/capacity above 1 and let checks queue for more than ten minutes.
The
queue:checksentence now names how many check slots the forge has and how many are busy, and says "one lane" only when there is one slot.tscis clean.test/vitals.test.tsandtest/domains.test.tspass. The earlier run overvitals,red-main,domains,sentinelandaskspassed 86 tests before I added the new one. I did not run the whole suite; the forge's check does that.capacityValue(db, "checks.concurrency").queue:checkis unchanged, so the sentinel does not open a new issue.laneSentencenow takes the list of running checks and the slot count instead of theLanesummary.Laneitself, the/healthpayload andlaneLineare untouched.src/kernel/domains.tsanddocs/DOMAINS.mdrequired the phrase "wait behind one lane; the oldest since" for the runner drill. I shortened it to "the oldest since", which both wordings contain. Otherwise the drill would fail on any forge with several slots.test/vitals.test.tscovers one slot, several slots all busy, some busy with held checks, and none busy.vitals()end to end. The unit test covers the wording, and the existingvitalstests cover the one-slot path.To try it, raise "Checks at once" in
/settings/capacityabove 1 and let checks queue for more than ten minutes.Closes #4850