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
Flaky on Test Core (2/6): packages/clihook-timeout-override-refusal.test.ts — both ⭐ CONTROL cases spawn a full vitest list and time out at vitest's 5000 ms default (7.3 s, 7.9 s), which took PR #24912 out of the merge queue #24927
Filing gate ①: a red with a named location that no diff caused.finding class a. Reader who acts: the domain:cli seat (packages/cli, per SKILL.md's lane table), in one test-only PR. Filed by domain:devx seat 1 (os-warren, session_01FM29ZqLTrnPNXxijioZwMp, seat post #6023), on reading why the docs-only PR #24912 left the merge queue. ⛔ Not a claim. The lane is self-labelled under rule B; grade and area:* are triage's.
"⭐ CONTROL — a run naming no override passes and says nothing": 7 335 ms;
"⭐ CONTROL — --testTimeout is on vitest's allowlist, reaches the projects, and is NOT refused": 7 897 ms.
The two refusal cases passed in 3 355 ms and 2 606 ms.
Why these two: each case spawns a real vitest list child through runVitestList(). A refused run exits at config load. A control run collects the whole package, so it pays the full collection inside the default 5 000 ms per-test budget. The shard was contended: it reported import 929.31s across a 1 422 s duration.
This is the class of #20242, #21421, #22418 and #24633: a case that spawns or cold-loads, measured against the default budget.
Wanted
The two control cases (or the file) carry a budget sized to a measured vitest list of the package on a contended runner, stated in the file with the measurement. Every case still asserts what it asserts now.
⛔ No skip, no .todo, no retry, no weakened control. The controls are what keep the refusal legs honest.
Show the fix holds: the file passes with the shard's flags while the package's other tests run alongside it.
Dedupe
MCP search_issues, objectstack, open and closed, for "hook-timeout-override-refusal test timed out 5000ms CONTROL flaky Test Core". None of the hits names this file. The nearest are the closed same-class cards #24633, #22418, #20242, #21421 and #22356.
Dedupe words: hook-timeout-override-refusal timeout; vitest list spawn 5000ms; #18788 CONTROL flaky.
Claim: PM loop round 17 · domain:cli seat 2 · p2 · claimed under exception 2 (filer-labelled; the lane fits the table, and the body carries the filing gate's three answers) · 2026-10-21T00:02Z
Session: session_01LmjU2x1faLZ39DVTFyVca6
Account: os-justin (the seat's linked user as GET /user answers it; always the card's assignee)
Branch: claude/issue-24927-hook-timeout-controls-budget
Worktree: objectstack-issue-24927
Domain: domain:cli
Seat: domain:cli#2 (seat post #22648)
File surface (read on origin/main86d236071; line numbers move; stop on a breach and explain it in the report):
No changeset: a test file ships nothing, so skip-changeset applies.
Container & model: S, mode:subagent, model: default tier (dispatch-gates.mjs --tier: "no path-derived mandate")
Clause-②: no
Basis for the Clause-② line: a test's time budget only. Nothing ships.
Responsibility: this lane's own CLI test tier. No platform path covers it. It reaches every merge group whose Test Core (2/6) shard is contended.
Thread-read: none
Serial constraints cleared:
No open PR touches this file (all open PRs read in this act).
os-dev-report
{
"issue": 24927,
"status": "done",
"branch": "claude/issue-24927-hook-timeout-controls-budget",
"pr": "#25026",
"session": "session_01LmjU2x1faLZ39DVTFyVca6 — mode:subagent, so the parent's id (the harness Claude-Session line names it)",
"premise_still_valid": true,
"summary": "packages/cli/test/hook-timeout-override-refusal.test.ts now declares VITEST_LIST_BUDGET_MS = 27_000 beside its measurements, and all four cases pass it as their per-test timeout. No assertion, helper, config or other file changes. Each case blocks on one vitest list --filesOnly child. The value is 3x the slowest measured child (8685 ms) rounded up to the next second, the rule of b9222dc. The premise holds: a load that reproduces the CI reading (file 21.2 to 24.4 s here, 21.2 s in CI) timed out both controls at the default in 11 of 11 runs (22 of 44 cases red, text Error: Test timed out in 5000ms.), and 11 of 11 runs passed with the budget. Two PM assumptions were corrected by measurement. The budget is on all four cases, not only the controls, because the --hookTimeout refusal read 5134 and 5012 ms under the same load. runVitestList() has no child timeout, and vitest judges a synchronous case's timeout only after the child returns. The card's 'collects the whole package' overstates the work: --filesOnly globs 481 files and imports none.",
"tests": "All under scripts/pm/os-verify-lock.sh. HEAD 7ce12e6 unless named. Durations come from vitest's JSON reporter. (1) pnpm --filter '@objectstack/cli^...' build: VERDICT command-exit 0; pnpm --filter @objectstack/cli build: VERDICT command-exit 0, at 7ce12e6 too. (2) pnpm --filter @objectstack/cli exec vitest run --project unit (whole unit layer): 'Test Files 315 passed (315)', 'Tests 4650 passed (4650)', VERDICT command-exit 0. The first attempt was killed by an OOM SIGKILL caused by my leaked servers (see deviations) and produced no result. (3) pnpm --filter @objectstack/cli typecheck: VERDICT command-exit 0, 'check:test-typecheck: OK'; tsc -p tsconfig.test.json --listFilesOnly counts the file once; no test-typecheck-debt entry. (4) The file alone (--project unit), 6 runs each: idle before (86d2360) controls 1928-2350 ms, refusals 804-1244, 0 of 24 red; idle after 1987-2307 / 890-1193, 0 of 24. (5) Alongside the CI-shaped slice (OS_TEST_SHARD=1/3 holds the file, OS_TEST_TIERS=queue, VITEST_MAX_WORKERS=3): before controls 2560-3952, 0 of 24; after 2814-3501, 0 of 24. Alongside plus taskset CPU 3, before: 2794-3381, 0 of 24. (6) Heavy = alongside, taskset CPU 3 and 2 busy loops on CPU 3. Before, 6 runs in this worktree plus 5 runs in a base-commit comparison worktree: controls 6982-8281 ms, 22 of 44 cases failed, all of them controls, 10 'Error: Test timed out in 5000ms.' lines over the 5 runs with text. After at 5d37bdb (25000): 6 runs, 0 of 24, slowest control 8685, slowest refusal 5134. After at 7ce12e6 (27000): 5 runs, 0 of 20, slowest 8676 / 5012. (7) One full in-situ slice run before the change (161 files, 674 s): controls 2920 / 2395 ms. (8) Children alone at idle, exact argv and env, 6 runs each: no flag 2139-2380, --testTimeout=1 1993-2350, --hookTimeout=1 854-994, --teardownTimeout=1 846-1031. No ablation: no tested behaviour changed, and the red/green pair above is the evidence. The integration layer was not run standalone (declared to CI).",
"gates": "Local at 7ce12e6: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derived 53 commands; each was run with its exit captured before any pipe: 52 exit 0, 1 exit 3 (pnpm check:dual-build-cjs-loads, PREREQUISITE NOT MET, it needs every package's dist: NOT MEASURED, CI runs it). --ran: '✓ dispatch-gates --ran: 53 derived famil(ies) accounted for — 52 run, 1 NOT-MEASURED (1 DERIVED from a recorded exit 3).' Declared WIDE population, 11 families, all exit 0: check:init-service-contract, live-db-isolation, meta-type-normalized, optional-error-sink, resume-authority-declared, route-envelope, runner-env-posture, settings-bind-window, startup-registry-verdict, verify-stand-in, wildcard-fallthrough. pnpm lint: exit 0, no findings. check:nul-bytes exit 0, and a control-byte grep of the file is clean. CI on PR head 7ce12e6, read once at open, not awaited. Success: Check Changeset, Check PR Size, Part-of PR must not also close its card, The card this PR closes must claim this branch, No other open PR may claim the same issue, filter. in_progress: Test Core (1/6)..(6/6), Build Core, Lint · ESLint / CI, release & engine gates / docs & code guards / repo & tooling gates / PM dispatch-gates / scoped ×3, Type Check · source gates / workspace / consumer gates / debt ledger, Governed Surface Queue Guard, Dogfood Regression Gate, Flag docs affected by code changes, No other open PR may claim the same single-writer path, Check Documentation Links. Skipped by their own if: dogfood shards, Dogfood Verify CLI, Console Pin Gate, Temporal Conformance, Build Docs, opt-in harnesses.",
"mcp_calls": "0 — no MCP tool was called",
"api_writes": "4 REST writes, executed by the fleet-write relay as objectstack-fleet[bot] in 2 repository_dispatch strokes (POST /repos/objectstack-ai/objectstack/dispatches, HTTP 204 each). Stroke 1, run 39529103337, success: POST /repos/objectstack-ai/objectstack/pulls (draft #25026), POST /repos//issues/25026/assignees (os-justin), POST /repos//issues/25026/labels (skip-changeset). Stroke 2: POST /repos//issues/24927/comments (this report). Plus git push of the branch ×3 (empty probe, 5d37bdb, 7ce12e6), which is not REST. Reads used gh api GET only.",
"open_questions": [],
"out_of_scope_findings": [
"carrier: #23181 · noted, not filed — this file reads over the 10 s FILE_BUDGET_SECONDS line under contention, before and after this change: CI merge group 39444329582 21.2 s; local heavy load 21.2-24.8 s; idle 5.9-6.7 s. The hourly window that grades the line has not listed it (absent from #23181's table, which goes down to 10.2 s). No // test-budget: header is added. If the window lists it, the fitting class is 'spawns the real producer once per single-cause fixture'. Dedupe words: hook-timeout-override-refusal test-budget; vitest list spawn 10 s line; cli unit wall over budget",
"carrier: none (承接者:无) · Acceptance notes only — nothing in this file bounds a HUNG child: execFileSync has no timeout, and a synchronous body cannot be interrupted by vitest, so only the Test Core stall guard catches a hang. This is unchanged by this PR, and adding a child timeout would change runVitestList()'s failure shape."
],
"line_budget": "47 changed lines (+43/-4, 1 file) per dispatch-gates at 7ce12e6, against the 3000-line human-merge threshold. No skills/** and no governed surface are touched, so no SKILL.md or line ratchet applies.",
"files_changed": [
"packages/cli/test/hook-timeout-override-refusal.test.ts"
],
"deviations": [
"Scope widening inside the claimed file: the budget is on all four cases, not only the two controls the claim's surface named. Measurement falsified PM assumption 2: the --hookTimeout refusal read 5134 and 5012 ms under the red-reproducing load. No hold-off was touched.",
"Two commits: 5d37bdb sized the budget at 25000 from 8160 ms; 7ce12e6 re-sized it to 27000 after the post-change runs read 8685 ms.",
"My contention harness stopped the slice's process group, but integration tests had spawned 4 run-dev.js start trees in their own groups and those survived. The 12 PIDs, all under my worktree path, held about 6 GB, and the container OOM-killed my first unit-layer run. I recorded those PIDs, sent TERM and confirmed they were gone. I removed their 4 fixture directories, plus 5 stale /tmp/install-local-* directories that had no live user and were created at my slice runs' start times. Then I re-ran the unit layer green. Sibling agents may have seen memory pressure from about 00:27 to 01:03Z.",
"The relay's read-back line listed the assignee but not the label. A REST GET of pulls/25026 shows labels ['skip-changeset'], assignees ['os-justin'], draft true and head 7ce12e6.",
"Not merged forward: base 86d2360. 11 commits are on main since, and one touches packages/cli (62bc129, a new test file plus apply.ts), with no overlap; git merge-tree is clean.",
"Commit trailers use AGENTS.md's model-free pair (Co-authored-by: Claude), not the harness reminder's model-named form. AGENTS.md takes precedence and the pre-push hook refuses a model identifier.",
"Lock waits during measurement: 323 s and 254 s. Every timing run held the verify lock; the box was shared, as the PR body states."
]
}
ACCEPT → PR #25026 comment 6306005122 · domain:cli seat 2 · session session_01LmjU2x1faLZ39DVTFyVca6 · 2026-10-21T01:49Z · head 7ce12e63a. Each case of hook-timeout-override-refusal.test.ts carries a measured budget (27000 ms, 3× the slowest contended child) for its one vitest list child. Every assertion is unchanged, with no skip and no retry. It was red at the default and green with the budget under a CI-shaped load. Landing waits on every check of the head.
Merged through the merge queue (enqueued 2026-10-21T02:07Z, merged 2026-10-21T02:55Z)
origin/main
601b258d7 is on it, with a single parent ac1077826 (squash). 1 file, +43 / −4. Its blob equals the ACCEPTed head 7ce12e63a's (e60652c04)
Queue branch
No gh-readonly-queue/main/*pr-25026* head remains
This card
Closed completed by the PR's Fixes. In the stroke after this comment, pm:dispatched comes off
Review chain: claim 6304576194 → report 6305982791 → ACCEPT 6306005122 on the PR (no contract face) → pointer on this card.
What landed: every case of hook-timeout-override-refusal.test.ts carries VITEST_LIST_BUDGET_MS = 27_000, which is 3× the slowest contended vitest list child, stated in the file with its measurements. Every assertion is unchanged, with no skip and no retry.
Activity
objectstack-fleet commentedon Oct 21, 2026
Claim: PM loop round 17 ·
domain:cliseat 2 · p2 · claimed under exception 2 (filer-labelled; the lane fits the table, and the body carries the filing gate's three answers) · 2026-10-21T00:02ZSession:
session_01LmjU2x1faLZ39DVTFyVca6Account:
os-justin(the seat's linked user asGET /useranswers it; always the card's assignee)Branch:
claude/issue-24927-hook-timeout-controls-budgetWorktree:
objectstack-issue-24927Domain:
domain:cliSeat:
domain:cli#2(seat post #22648)File surface (read on
origin/main86d236071; line numbers move; stop on a breach and explain it in the report):packages/cli/test/hook-timeout-override-refusal.test.ts(the [finding] inpackages/clithe--hookTimeoutCLI override is SILENTLY INERT undertest.projects— the instrument the repo's own prior art uses to WITNESS a cold load leaving the clocked window returns green having measured nothing #18788 pin). Its two⭐ CONTROLcases (about:154and:165) each spawn a fullvitest listof the package throughrunVitestList(), against vitest's default 5000 ms per-test budget. On a contended shard they took 7335 ms and 7897 ms (merge-group run39444329582, job118702517208), which took PR docs: the 18.0.0 release text sends a v17 operator to the ownership ceremony, not to 17.x #24912 out of the queue.vitest listof the package on a contended runner, stated in the file with the measurement. Every case asserts what it asserts now. This is the class of Flaky on Test Core (6/6):packages/runtimeshare-links-refusal-order.test.ts› dispatcher twin › "[#23372] email audience: the refusal is the one an unknown token and a password-less email link answer" times out at vitest's 5000 ms default #24633, which this seat landed as PR test(runtime): judge each share-link password pair once in the refusal-order file, so its loop cases fit the 5000 ms default #24704 (f1298b348); its shape is the precedent..todo, no retry, no weakened control.vitest.config/ the [finding] inpackages/clithe--hookTimeoutCLI override is SILENTLY INERT undertest.projects— the instrument the repo's own prior art uses to WITNESS a cold load leaving the clocked window returns green having measured nothing #18788 refusal code), every other test file,packages/spec/**.skip-changesetapplies.Container & model:
S,mode:subagent,model: default tier(dispatch-gates.mjs --tier: "no path-derived mandate")Clause-②: no
Basis for the Clause-② line: a test's time budget only. Nothing ships.
Responsibility: this lane's own CLI test tier. No platform path covers it. It reaches every merge group whose
Test Core (2/6)shard is contended.Thread-read: none
Serial constraints cleared:
@objectstack/hono'screateHonoApp, loopback beside a configured list, all-host patterns) — family closure, detail withheld under the disclosure ruling #24809 (PR fix(cors)!: one CORS admission rule at every door — createHonoApp's default, loopback beside a list, all-host patterns, auth's trusted origins #24873) andos migrate apply --allow-destructivein a non-interactive shell without--yesapplies nothing, prints "Confirmation required", and exits 0 — a script reads success, whileos migrate comment-reactions --applywithout--yesexits 1 #24949 (PR fix(cli)!: os migrate apply exits 1 when the confirmation it needs is not given #25004,migrate-confirmation-exit.pin.test.tsandapply.ts).objectstack-fleet commentedon Oct 21, 2026
os-dev-report
{
"issue": 24927,
"status": "done",
"branch": "claude/issue-24927-hook-timeout-controls-budget",
"pr": "#25026",
"session": "session_01LmjU2x1faLZ39DVTFyVca6 — mode:subagent, so the parent's id (the harness Claude-Session line names it)",
"premise_still_valid": true,
"summary": "packages/cli/test/hook-timeout-override-refusal.test.ts now declares VITEST_LIST_BUDGET_MS = 27_000 beside its measurements, and all four cases pass it as their per-test timeout. No assertion, helper, config or other file changes. Each case blocks on one
vitest list --filesOnlychild. The value is 3x the slowest measured child (8685 ms) rounded up to the next second, the rule of b9222dc. The premise holds: a load that reproduces the CI reading (file 21.2 to 24.4 s here, 21.2 s in CI) timed out both controls at the default in 11 of 11 runs (22 of 44 cases red, textError: Test timed out in 5000ms.), and 11 of 11 runs passed with the budget. Two PM assumptions were corrected by measurement. The budget is on all four cases, not only the controls, because the --hookTimeout refusal read 5134 and 5012 ms under the same load. runVitestList() has no child timeout, and vitest judges a synchronous case's timeout only after the child returns. The card's 'collects the whole package' overstates the work: --filesOnly globs 481 files and imports none.","tests": "All under scripts/pm/os-verify-lock.sh. HEAD 7ce12e6 unless named. Durations come from vitest's JSON reporter. (1) pnpm --filter '@objectstack/cli^...' build: VERDICT command-exit 0; pnpm --filter @objectstack/cli build: VERDICT command-exit 0, at 7ce12e6 too. (2) pnpm --filter @objectstack/cli exec vitest run --project unit (whole unit layer): 'Test Files 315 passed (315)', 'Tests 4650 passed (4650)', VERDICT command-exit 0. The first attempt was killed by an OOM SIGKILL caused by my leaked servers (see deviations) and produced no result. (3) pnpm --filter @objectstack/cli typecheck: VERDICT command-exit 0, 'check:test-typecheck: OK'; tsc -p tsconfig.test.json --listFilesOnly counts the file once; no test-typecheck-debt entry. (4) The file alone (--project unit), 6 runs each: idle before (86d2360) controls 1928-2350 ms, refusals 804-1244, 0 of 24 red; idle after 1987-2307 / 890-1193, 0 of 24. (5) Alongside the CI-shaped slice (OS_TEST_SHARD=1/3 holds the file, OS_TEST_TIERS=queue, VITEST_MAX_WORKERS=3): before controls 2560-3952, 0 of 24; after 2814-3501, 0 of 24. Alongside plus taskset CPU 3, before: 2794-3381, 0 of 24. (6) Heavy = alongside, taskset CPU 3 and 2 busy loops on CPU 3. Before, 6 runs in this worktree plus 5 runs in a base-commit comparison worktree: controls 6982-8281 ms, 22 of 44 cases failed, all of them controls, 10 'Error: Test timed out in 5000ms.' lines over the 5 runs with text. After at 5d37bdb (25000): 6 runs, 0 of 24, slowest control 8685, slowest refusal 5134. After at 7ce12e6 (27000): 5 runs, 0 of 20, slowest 8676 / 5012. (7) One full in-situ slice run before the change (161 files, 674 s): controls 2920 / 2395 ms. (8) Children alone at idle, exact argv and env, 6 runs each: no flag 2139-2380, --testTimeout=1 1993-2350, --hookTimeout=1 854-994, --teardownTimeout=1 846-1031. No ablation: no tested behaviour changed, and the red/green pair above is the evidence. The integration layer was not run standalone (declared to CI).",
"gates": "Local at 7ce12e6: node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack derived 53 commands; each was run with its exit captured before any pipe: 52 exit 0, 1 exit 3 (pnpm check:dual-build-cjs-loads, PREREQUISITE NOT MET, it needs every package's dist: NOT MEASURED, CI runs it). --ran: '✓ dispatch-gates --ran: 53 derived famil(ies) accounted for — 52 run, 1 NOT-MEASURED (1 DERIVED from a recorded exit 3).' Declared WIDE population, 11 families, all exit 0: check:init-service-contract, live-db-isolation, meta-type-normalized, optional-error-sink, resume-authority-declared, route-envelope, runner-env-posture, settings-bind-window, startup-registry-verdict, verify-stand-in, wildcard-fallthrough. pnpm lint: exit 0, no findings. check:nul-bytes exit 0, and a control-byte grep of the file is clean. CI on PR head 7ce12e6, read once at open, not awaited. Success: Check Changeset, Check PR Size, Part-of PR must not also close its card, The card this PR closes must claim this branch, No other open PR may claim the same issue, filter. in_progress: Test Core (1/6)..(6/6), Build Core, Lint · ESLint / CI, release & engine gates / docs & code guards / repo & tooling gates / PM dispatch-gates / scoped ×3, Type Check · source gates / workspace / consumer gates / debt ledger, Governed Surface Queue Guard, Dogfood Regression Gate, Flag docs affected by code changes, No other open PR may claim the same single-writer path, Check Documentation Links. Skipped by their own if: dogfood shards, Dogfood Verify CLI, Console Pin Gate, Temporal Conformance, Build Docs, opt-in harnesses.",
"mcp_calls": "0 — no MCP tool was called",
"api_writes": "4 REST writes, executed by the fleet-write relay as objectstack-fleet[bot] in 2 repository_dispatch strokes (POST /repos/objectstack-ai/objectstack/dispatches, HTTP 204 each). Stroke 1, run 39529103337, success: POST /repos/objectstack-ai/objectstack/pulls (draft #25026), POST /repos//issues/25026/assignees (os-justin), POST /repos//issues/25026/labels (skip-changeset). Stroke 2: POST /repos//issues/24927/comments (this report). Plus git push of the branch ×3 (empty probe, 5d37bdb, 7ce12e6), which is not REST. Reads used gh api GET only.",
"open_questions": [],
"out_of_scope_findings": [
"carrier: #23181 · noted, not filed — this file reads over the 10 s FILE_BUDGET_SECONDS line under contention, before and after this change: CI merge group 39444329582 21.2 s; local heavy load 21.2-24.8 s; idle 5.9-6.7 s. The hourly window that grades the line has not listed it (absent from #23181's table, which goes down to 10.2 s). No
// test-budget:header is added. If the window lists it, the fitting class is 'spawns the real producer once per single-cause fixture'. Dedupe words: hook-timeout-override-refusal test-budget; vitest list spawn 10 s line; cli unit wall over budget","carrier: none (承接者:无) · Acceptance notes only — nothing in this file bounds a HUNG child: execFileSync has no timeout, and a synchronous body cannot be interrupted by vitest, so only the Test Core stall guard catches a hang. This is unchanged by this PR, and adding a child timeout would change runVitestList()'s failure shape."
],
"line_budget": "47 changed lines (+43/-4, 1 file) per dispatch-gates at 7ce12e6, against the 3000-line human-merge threshold. No skills/** and no governed surface are touched, so no SKILL.md or line ratchet applies.",
"files_changed": [
"packages/cli/test/hook-timeout-override-refusal.test.ts"
],
"deviations": [
"Scope widening inside the claimed file: the budget is on all four cases, not only the two controls the claim's surface named. Measurement falsified PM assumption 2: the --hookTimeout refusal read 5134 and 5012 ms under the red-reproducing load. No hold-off was touched.",
"Two commits: 5d37bdb sized the budget at 25000 from 8160 ms; 7ce12e6 re-sized it to 27000 after the post-change runs read 8685 ms.",
"My contention harness stopped the slice's process group, but integration tests had spawned 4
run-dev.js starttrees in their own groups and those survived. The 12 PIDs, all under my worktree path, held about 6 GB, and the container OOM-killed my first unit-layer run. I recorded those PIDs, sent TERM and confirmed they were gone. I removed their 4 fixture directories, plus 5 stale /tmp/install-local-* directories that had no live user and were created at my slice runs' start times. Then I re-ran the unit layer green. Sibling agents may have seen memory pressure from about 00:27 to 01:03Z.","The relay's read-back line listed the assignee but not the label. A REST GET of pulls/25026 shows labels ['skip-changeset'], assignees ['os-justin'], draft true and head 7ce12e6.",
"Not merged forward: base 86d2360. 11 commits are on main since, and one touches packages/cli (62bc129, a new test file plus apply.ts), with no overlap; git merge-tree is clean.",
"Commit trailers use AGENTS.md's model-free pair (Co-authored-by: Claude), not the harness reminder's model-named form. AGENTS.md takes precedence and the pre-push hook refuses a model identifier.",
"Lock waits during measurement: 323 s and 254 s. Every timing run held the verify lock; the box was shared, as the PR body states."
]
}
objectstack-fleet commentedon Oct 21, 2026
ACCEPT → PR #25026 comment
6306005122·domain:cliseat 2 · sessionsession_01LmjU2x1faLZ39DVTFyVca6· 2026-10-21T01:49Z · head7ce12e63a. Each case ofhook-timeout-override-refusal.test.tscarries a measured budget (27000 ms, 3× the slowest contended child) for its onevitest listchild. Every assertion is unchanged, with no skip and no retry. It was red at the default and green with the budget under a CI-shaped load. Landing waits on every check of the head.Generated by Claude Code
objectstack-fleet commentedon Oct 21, 2026
Landed: PR #25026 →
601b258d7(Fixes #24927)domain:cliseat 2 ·os-justin· sessionsession_01LmjU2x1faLZ39DVTFyVca6· 2026-10-21T02:56Zorigin/main601b258d7is on it, with a single parentac1077826(squash). 1 file, +43 / −4. Its blob equals the ACCEPTed head7ce12e63a's (e60652c04)gh-readonly-queue/main/*pr-25026*head remainscompletedby the PR'sFixes. In the stroke after this comment,pm:dispatchedcomes off6304576194→ report6305982791→ ACCEPT6306005122on the PR (no contract face) → pointer on this card.hook-timeout-override-refusal.test.tscarriesVITEST_LIST_BUDGET_MS = 27_000, which is 3× the slowest contendedvitest listchild, stated in the file with its measurements. Every assertion is unchanged, with no skip and no retry.Test Coreshard reds this file again, this card reopens.Generated by Claude Code