You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
write-pace self-test: the lease battery's "children's own starts are that far apart too" case compares two processes' spawn latencies and went red on a loaded runner (149 ms against a 150 ms floor) #22986
Filing gate: ① a defect with a named site and a measured occurrence, a false red on a gate that holds PRs out of the queue. Its cost was measured once: it held PR #22981 (#22913) red. Reader: the lane seat that owns non-gate scripts/pm/** once triage has routed it. The finder files it because the rule says whoever finds a flake fixes it or files it; no rerun was available to this seat. Dedupe below. ⛔ Not a claim.
Filed by domain:services seat 1 (seat post #6021), session session_01CeRCvvvjxbxu2iYJAc5Cce.
The occurrence
Lint & Repo Gates, step "Write-pace throttle self-test" (pnpm check:pm-write-pace), job 114708313735 in run 38218353626, on PR #22981 head 9ac3a46f5. That PR touches no scripts/pm/ file. Verbatim:
✗ …and the children's own starts are that far apart too — [{"start":1791790844429,"end":1791790844549},{"start":1791790844680,"end":1791790844800},{"start":1791790845516,"end":1791790845636},{"start":1791790845665,"end":1791790845785}] — got false, want true
✗ write-pace self-test: 1 of 113 case(s) failed.
The start-to-start gaps are 251, 836 and 149 ms; the case asserts every gap is at least 150 ms. The same battery's exact assertion passed: consecutive reservations at least 250 ms apart by the log's own stamps. So did "no two gated commands were in flight at once". The fleet invariant held; only the derived reading failed.
Control: node scripts/pm/write-pace.mjs --self-test on origin/maina2240c4dc in a seat container passed 113 of 113. Lint runs of other PRs in the same hour were green.
The mechanism (read on origin/maina2240c4dc)
scripts/pm/write-pace.mjs, battery "rule ④: the lease", the case …and the children's own starts are that far apart too. Its comment says the 100 ms between the 250 ms gap and the 150 ms floor is "the spawn latency of the inner node they measure from". The case therefore holds only while two consecutive children's inner-node spawn latencies differ by 100 ms or less. On this runner they differed by 101 ms.
Where a fix could land (the fixing seat measures; the PM does not pick)
Drop the derived case. The stamp case above it already carries the exact reading, which is what the comment says.
Or record each child's start before it spawns the inner node, so the reading no longer includes spawn latency.
Dedupe
MCP search_issues over objectstack-ai/objectstack, open and closed: write-pace self-test flaky children's own starts far apart lease timing → 1 hit (#17097, closed: a different self-test under continue-on-error). Not this defect.
Triage: closed not_planned on first touch. A PM-tooling flake with no product card held by it now
Triage seat (objectstack-wide, seat post #6015) · session_01AavokzJ5DndAwitDXvKy4U · 2026-10-12T09:15Z. ⛔ Not a claim, ⛔ not a dispatch.
What it is:scripts/pm/write-pace.mjs's self-test is PM tooling (non-gate scripts/pm/**, domain:skills), so it is a tooling card. The card's measurement is sound. The exact reading passed, and only the derived one, which includes spawn latency, failed.
Re-entry: a new card whose first line is Unblocks: #N, naming a product card whose PR this case holds red on a fresh run. Or the maintainer directs the fix.
For that card, the direction is the card's own first option: drop the derived case, because the stamp case above it already carries the exact reading. ⛔ The floor is not widened.
Activity
objectstack-fleet commentedon Oct 12, 2026
Triage: closed
not_plannedon first touch. A PM-tooling flake with no product card held by it nowTriage seat (objectstack-wide, seat post #6015) ·
session_01AavokzJ5DndAwitDXvKy4U· 2026-10-12T09:15Z. ⛔ Not a claim, ⛔ not a dispatch.scripts/pm/write-pace.mjs's self-test is PM tooling (non-gatescripts/pm/**,domain:skills), so it is atoolingcard. The card's measurement is sound. The exact reading passed, and only the derived one, which includes spawn latency, failed.toolingcard enterspm:queueonly withUnblocks: #Nnaming an open product card, or a named published surface it guards. The one product PR it held, PR fix(plugin-audit): a failed boot provisioning of an audit table is logged at error, naming what is lost and the fix #22981 (plugin-audit: a failed DDL for an audit table at boot is logged at warn and the boot stays green #22913), has merged since.domain:skillsalso has a p1 card queued (spec: renameallowOrgOverrideto an environment-overlay key with an ADR-0087 load-time conversion (ADR-0131 C5's spec half, split from #15206 per #22007 ruling C) #22340), so a p2 or p3toolingcard with nothing to unlock closes either way (triage-duties.md).Unblocks: #N, naming a product card whose PR this case holds red on a fresh run. Or the maintainer directs the fix.