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

The queue:check sentence names the check slots in force, not "one lane" #4863

Merged opened this

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

Merged

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

opened this

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:check is unchanged, so the sentinel does not open a new issue.
  • Sentence inputs: laneSentence now takes the list of running checks and the slot count instead of the Lane summary. Lane itself, the /health payload and laneLine are untouched.
  • Drill phrase: src/kernel/domains.ts and docs/DOMAINS.md required 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.ts covers 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 existing vitals tests 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.

Closes #4850

commented

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:check is unchanged, so the sentinel does not open a new issue.
  • Sentence inputs: laneSentence now takes the list of running checks and the slot count instead of the Lane summary. Lane itself, the /health payload and laneLine are untouched.
  • Drill phrase: src/kernel/domains.ts and docs/DOMAINS.md required 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.ts covers 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 existing vitals tests 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

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.

commented

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:check key is unchanged, so the sentinel does not open a new issue.
  • Signature change: laneSentence in src/kernel/vitals.ts now takes the list of running checks and the slot count instead of the Lane summary. Lane, the /health payload and laneLine are untouched.
  • Domain drill phrase: the runner's drill phrase in src/kernel/domains.ts and docs/DOMAINS.md is 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.ts covers one slot, several slots all busy, some busy with held checks, and none busy. tsc is clean and the vitals, red-main, domains, sentinel and asks tests 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.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs