Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/workflows/website-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,11 @@ jobs:
# memory only; whoami never carries X-Agent-Key. Pure, no browser.
- name: TRI identity
run: npm run check:tri-identity
# Why free bees are idle, read from /queen/status alone: real snapshots
# and malformed ones through the pure reader, no fabricated zeros, a
# stale round called stale. Pure, no browser.
- name: Queen idle reason
run: npm run check:queen-idle
- name: Catalog generators
run: npm run test:sync-skills && npm run test:sync-crons
# The tiers, the touch minimum and the QA matrix come from
Expand Down
2 changes: 2 additions & 0 deletions apps/website/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@
"check:queen-review": "node qa/queen-review-lifecycle-contract.mjs",
"check:queen-viewport": "node qa/queen-viewport-contract.mjs",
"check:queen-honesty": "node --experimental-strip-types qa/queen-honesty-contract.mjs",
"check:queen-idle": "node --experimental-strip-types qa/queen-idle-reason-contract.mjs",
"check:queen-idle-layout": "node qa/queen-idle-layout-contract.mjs",
"check:queen-coverage": "node --experimental-strip-types qa/queen-coverage-contract.mjs",
"check:queen-displays": "node --experimental-strip-types qa/queen-hive-display-contract.mjs",
"check:queen-worlds": "node --experimental-strip-types qa/queen-repository-worlds.mjs",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"status":"ok","swarmState":"healthy_idle","workers":{"capacity":4,"active":0,"idle":4,"utilization":0},"queue":{"state":"no-eligible-work","observedAt":"2026-09-15T12:50:33.230Z"},"scheduler":{"enabled":true,"intervalSeconds":300,"billingMode":"coding_plan","estimatedUSDGateEnabled":false},"lastTick":{"decidedAt":"2026-09-15T12:50:33.230Z","allowed":false,"refusal":"nothing to choose","skippedCount":488,"skipSummary":{"claimed":{"count":12,"issues":[3587,3586,3585,3584,3582,3576,3533,3527,3521,3510,3509,3507],"more":0},"completed":{"count":27,"issues":[3619,3591,3590,3589,3588,3583,3542,3541,3540,3539,3537,3535,3532,3529,3528,3526,3523,3522,3520,3519,3518,3517,3516,3514,3513],"more":2},"missingBoundary":{"count":449,"issues":[3573,3572,3571,3570,3569,3474,3473,3472,3464,3445,3443,3440,3404,3399,3386,3377,3371,3370,3368,3366,3337,3333,3331,3328,3316],"more":424}},"skipIssueListCap":25},"dispatches":{"total":442,"finished":442,"running":0,"unreviewed":3,"latest":{"issue":3576,"dispatchedAt":"2026-09-15T12:20:33.844Z","finishedAt":"2026-09-15T12:43:01.735Z","outcome":"finished"}}}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"status":"ok","swarmState":"working","workers":{"capacity":4,"active":2,"idle":2,"utilization":50},"queue":{"state":"work-dispatched","observedAt":"2026-09-15T14:00:24.187Z"},"scheduler":{"enabled":true,"intervalSeconds":300,"billingMode":"coding_plan","estimatedUSDGateEnabled":false},"lastTick":{"decidedAt":"2026-09-15T13:59:58.978Z","allowed":true,"refusal":null,"skippedCount":96,"skipSummary":{"claimed":{"count":12,"issues":[3587,3586,3585,3584,3582,3576,3533,3527,3521,3510,3509,3507],"more":0},"completed":{"count":27,"issues":[3619,3591,3590,3589,3588,3583,3542,3541,3540,3539,3537,3535,3532,3529,3528,3526,3523,3522,3520,3519,3518,3517,3516,3514,3513],"more":2},"missingBoundary":{"count":57,"issues":[3622,3573,3572,3571,3570,3569,3474,3473,3472,3464,3445,3443,3440,3404,3399,3386,3377,3371,3370,3368,3366,3337,3333,3331,3328],"more":32}},"skipIssueListCap":25},"dispatches":{"total":443,"finished":441,"running":2,"unreviewed":3,"latest":{"issue":3624,"dispatchedAt":"2026-09-15T14:00:00.585Z","finishedAt":null,"outcome":null}}}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"status":"ok","swarmState":"working","workers":{"capacity":12,"active":1,"idle":11,"utilization":8},"queue":{"state":"work-dispatched","observedAt":"2026-09-15T15:33:47.532Z"},"scheduler":{"enabled":true,"intervalSeconds":300,"billingMode":"coding_plan","estimatedUSDGateEnabled":false},"lastTick":{"decidedAt":"2026-09-15T15:30:11.960Z","allowed":true,"refusal":null,"skippedCount":439,"skipSummary":{"claimed":{"count":12,"issues":[3587,3586,3585,3584,3582,3576,3533,3527,3521,3510,3509,3507],"more":0},"completed":{"count":27,"issues":[3619,3591,3590,3589,3588,3583,3542,3541,3540,3539,3537,3535,3532,3529,3528,3526,3523,3522,3520,3519,3518,3517,3516,3514,3513],"more":2},"missingBoundary":{"count":400,"issues":[3672,3573,3572,3571,3570,3569,3474,3473,3472,3464,3445,3443,3440,3404,3399,3386,3377,3371,3370,3368,3366,3337,3333,3331,3328],"more":375}},"skipIssueListCap":25},"dispatches":{"total":443,"finished":442,"running":1,"unreviewed":3,"latest":{"issue":3624,"dispatchedAt":"2026-09-15T15:30:12.894Z","finishedAt":null,"outcome":null}}}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"status":"ok","swarmState":"working","workers":{"capacity":4,"active":1,"idle":3,"utilization":25},"queue":{"state":"work-dispatched","observedAt":"2026-09-15T13:50:45.629Z"},"scheduler":{"enabled":true,"intervalSeconds":300,"billingMode":"coding_plan","estimatedUSDGateEnabled":false},"lastTick":{"decidedAt":"2026-09-15T13:50:37.349Z","allowed":false,"refusal":"nothing to choose","skippedCount":487,"skipSummary":{"claimed":{"count":12,"issues":[3587,3586,3585,3584,3582,3576,3533,3527,3521,3510,3509,3507],"more":0},"completed":{"count":27,"issues":[3619,3591,3590,3589,3588,3583,3542,3541,3540,3539,3537,3535,3532,3529,3528,3526,3523,3522,3520,3519,3518,3517,3516,3514,3513],"more":2},"missingBoundary":{"count":448,"issues":[3622,3573,3572,3571,3570,3569,3474,3473,3472,3464,3445,3443,3440,3404,3399,3386,3377,3371,3370,3368,3366,3337,3333,3331,3328],"more":423}},"skipIssueListCap":25},"dispatches":{"total":442,"finished":441,"running":1,"unreviewed":3,"latest":{"issue":3576,"dispatchedAt":"2026-09-15T13:45:36.746Z","finishedAt":null,"outcome":null}}}
4 changes: 2 additions & 2 deletions apps/website/qa/queen-honesty-contract.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -143,8 +143,8 @@ check(/`\$\{c\.hudSince\} \$\{formatMoment\(lastRoundAt, lang\)\} · ≤ \$\{for
check(/schedulerOff \|\| !roundKnown \? "—" : `\+\$\{formatCountdown\(elapsedSeconds\)\}`/.test(src), "the value counts up since the last round; no countdown promises the next round at a second");
// the status pill reads swarmState through COPY keys; the VERDICTS tile adds the unreviewed count only when the wire has it (P1-28)
check(/data\?\.swarmState === "working"[\s\S]{0,40}c\.swarmWorking[\s\S]{0,120}c\.swarmIdle[\s\S]{0,120}c\.swarmPaused[\s\S]{0,80}data\.swarmState\.toUpperCase\(\)[\s\S]{0,40}c\.swarmUnknown/.test(src), "the pill maps working/idle/paused to COPY keys, prints an unfamiliar wire state as itself, and a missing one as the unknown key");
check(/swarmWorking:\s*"WORKING"/.test(src) && /swarmWorking:\s*"РАБОТАЕТ"/.test(src) && /hudReady:\s*"ready"/.test(src) && /hudReady:\s*"готово"/.test(src), "the four swarm words and the ready word exist in both languages");
check(/typeof data\?\.dispatches\.unreviewed === "number" \? ` · \$\{data\.dispatches\.unreviewed\} \$\{c\.hudReady\}` : ""/.test(src), "the VERDICTS sub-line prints the unreviewed count only when the wire carries the field, never 0 for an absent one");
check(/swarmWorking:\s*"WORKING"/.test(src) && /swarmWorking:\s*"РАБОТАЕТ"/.test(src) && /hudNoVerdict:\s*"finished, no verdict"/.test(src) && /hudNoVerdict:\s*"без вердикта"/.test(src), "the four swarm words and the no-verdict words exist in both languages (dispatches.unreviewed counts finished rows with no verdict, not issues ready)");
check(/typeof data\?\.dispatches\.unreviewed === "number" \? ` · \$\{data\.dispatches\.unreviewed\} \$\{c\.hudNoVerdict\}` : ""/.test(src), "the VERDICTS sub-line prints the unreviewed count only when the wire carries the field, never 0 for an absent one");
check(/`\$\{decisionInfo\} · \$\{decision\.allowed \? c\.chose : c\.stoodDown\}`/.test(src), "the gold block's decision line leads with the wire field (the refusal or what the round did), the verb follows");
// the INTEL FEED header states what it holds, from its rows (P1-27)
const cov = feedCoverage([{ at: "2026-09-05T00:40:00Z" }, { at: "2026-09-05T00:41:02Z" }, { at: "2026-09-05T00:40:30Z" }]);
Expand Down
Loading
Loading