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
test/hook-timeout-override-refusal.test.ts has ejected 3 pull requests from the merge
queue within a rolling 24 hours — 3 independent hits once
GitHub's speculative stacking is accounted for. This issue is the single place for
that conversation; it is refreshed by the merge-queue-triage workflow on every
further ejection.
This issue is a NAME, not a diagnosis. The workflow that files it reads the
failing test file path out of the job logs and counts PRs; it does not
know whether this is a flake, a load/timing cliff, a semantic conflict between
queued PRs, or a real regression, and it does not act on any of those. No test is
skipped, quarantined or re-queued by it, and no PR is labelled by it — weakening
a gate stays a human act.
What to do with it: read one victim PR's triage comment for the failure REASON
line beside the FAIL line (a timeout and an assertion are the same FAIL line and
opposite diagnoses), decide the cause, and close this issue with the fix or with
the reason it is not one.
The dev first captures the child's stderr in the failing shape. If the child dies on time or memory, make the control's child cheap. If it fails on content, that is a real regression and gets traced. ⛔ No quarantine.
Claim: PM loop round 8 · card thread
Session: session_01R1q2xdtYgU6FKrZ7LgjPCC (the seat); the card thread is session_01REwoooZ6nXESkVCEtsbeRC
Account: os-project-manager (the seat's linked user; the card's assignee)
Branch: claude/project-thread-1nrz43 (the card thread's harness-pinned branch; it names no issue, so this claim is the identity record)
Worktree: the card thread's own container checkout
Domain: domain:server
Seat: domain:server#1
Ruling-ref: triage first grade (2026-10-26T10:55Z): capture the child's stderr in the failing shape; if the child dies on time or memory, make the control's child cheap; if it fails on content, trace the regression. ⛔ No quarantine, no skip, no raised timeout. The #18788 pin's verdicts stay (--hookTimeout and --teardownTimeout refuse, --testTimeout passes, the no-override control passes silently). Split agreed with domain:server#2: p1/p2 intake resumes ahead of p3.
File surface: packages/cli/test/hook-timeout-override-refusal.test.ts and any test fixture it lists. Product code in packages/cli/** only after a ruling (report needs_decision first). ⛔ No packages/spec/** (stop on breach; explain in the report)
Container & model: S, mode:thread, default model and effort (set at thread open)
Clause-②: no
Metadata-protocol: none
Responsibility: the ⭐ CONTROL child of runVitestList() exits 1 under merge-queue load (#25979, #26007, #26026 ejected)
Thread-read: none
Premise: holds (read 2026-10-26T12:17Z at origin/main0a6948210c: card open, unassigned, pm:queue, no claim; the control spawns a whole-package vitest list via execFileSync)
Serial constraints cleared: no open PR touches packages/cli/test/hook-timeout-override-refusal.test.ts; the dev re-measures before pr_create
{
"issue": 26047,
"status": "needs_decision",
"branch": "claude/project-thread-1nrz43",
"pr": null,
"session": "session_01REwoooZ6nXESkVCEtsbeRC",
"premise_still_valid": true,
"summary": "Cause found, and it is not load or time. packages/cli/vitest.config.ts calls integrationTestFiles/unitTestFiles (packages/cli/vitest-tiers.ts) at config load, and testFilesOnDisk walks the WHOLE package including packages/cli/tmp (gitignored; SKIP_DIRS is node_modules, dist, .git, .turbo, coverage). Sibling tests in the same slice render scaffolds into tmp and delete them (init-template-comments-self-contained: render-init-app, render-init-plugin, render-create-plugin; scaffold-manifest-schema: manifest-init-app, manifest-init-plugin), and those scaffolds contain real test files (package.test.ts, src/index.test.ts). When a delete lands mid-walk, the child's config load throws ENOENT (scandir or open) and vitest list exits 1: exactly `expected 1 to be +0`. The fix belongs in vitest-tiers.ts, which the claim keeps behind a ruling, so I stopped there. Pushed so far: test-only commit 36b2670d, whose status assertions now carry the child's exit and the bounded head of its output.",
"tests": "All on origin/main 0a6948210c, cli closure built. (1) Real neighbours, real child: the control's exact child (vitest list --filesOnly, no override) looped beside init-template-comments-self-contained + scaffold-manifest-schema: 3 of 132 exit 1, each `failed to load config ... Error: ENOENT ... packages/cli/tmp/manifest-init-plugin-XXXX/package.test.ts` or `.../render-create-plugin-XXXX/src/index.test.ts`. The same loop beside the i18n/config neighbours only: 0 of 104 (they churn shallow trees once per file). (2) Load alone falsified: the test file 5 runs beside 8 busy loops on 4 cores, no tmp churn: 5 of 5 green, file 27.5 to 31.3 s, control case 6.7 to 7.7 s against the 27 s budget. (3) Watcher on all three CI slices (OS_TEST_SHARD k/3, the whole package): the only directories that appear or vanish in the package tree are under tmp/; the slice holding this test churned 25 (render-*). (4) The outer `vitest run` config load dies the same way under churn (`failed to load config`), so this is not only the pin's problem. (5) New message, measured red under synthetic churn: `AssertionError: vitest list exited 1; its output began: failed to load config from packages/cli/vitest.config.ts ... Error: ENOENT: no such file or directory, scandir 'packages/cli/tmp/churn-89GJh1/src15'`. (6) Option A as a temporary probe (tmp added to SKIP_DIRS, restored from HEAD, blob 12e041557b proven by hash and empty git diff HEAD): population unchanged at 506 files; synthetic churn 0 of 8 file runs red (HEAD: red on run 1); real neighbours 0 of 128 children (HEAD: 3 of 132). Scripts and failure heads: project files pm-orders/server/evidence/26047/.",
"gates": "Not run yet: no PR diff beyond the test-only commit. dispatch-gates --commands, pnpm lint scoped to packages/cli, cli unit tier and typecheck run on the final diff after the ruling.",
"dogfood_battery": "n/a: no ! in the title and no (narrowing) arm",
"mcp_calls": "0",
"api_writes": "1: POST issues/26047/comments (this report, through post-stamped). git push of 36b2670d is not a REST write.",
"open_questions": [
{
"question": "Where does the fix go? The race is in packages/cli/vitest-tiers.ts (the CLI vitest config's population walk), outside the claim's test-only surface.",
"options": [
"A: add tmp to SKIP_DIRS in packages/cli/vitest-tiers.ts (one line, with a header note), plus a red-first pin in test/vitest-tiers-partition.test.ts that a test file under tmp/ is in neither tier population. Keeps the diagnostic commit. Test infrastructure only: vitest-tiers.ts is not in cli files[] (dist, README.md, CHANGELOG.md), so skip-changeset.",
"B: test-only. Move every sibling scratch dir out of packages/cli/tmp (about 13 files) to os.tmpdir() or node_modules/.NAME. Larger diff, and some of them sit there on purpose: the header of test/i18n-extract-check-json.test.ts says only under packages/cli/tmp does its module lookup reach this package. The next test that writes tmp reopens the race.",
"C: catch ENOENT in the walk and skip a vanished entry. Small, but it tolerates instead of defining the population: scaffold test files still enter the unit population while they exist."
],
"recommendation": "A. Real need: three independent queue ejections in 24h (#25979, #26007, #26026), each rebuilding the PRs grouped above, reproduced on main at 3 of 132 and closed at 0 of 128 by A. Long-term soundness: it fixes the producer, the population definition, so the outer vitest run and every other child (vitest-tiers-partition, the qa config-wiring sweep) stop racing too, and a gitignored scratch dir can never contribute a test file (tmp/ is ignored by the root .gitignore). Against AI mistakes: it narrows a contract instead of adding consumer tolerance (C). Startup scope: one line plus one pin, no new gate, no product or spec surface."
}
],
"out_of_scope_findings": [
"noted, not filed: packages/qa/vitest-filter-preflight/src/index.ts testFilesUnder (filtered runs only) and scripts/nightly-tiers.mjs tierPackages walk tmp/ too; same race shape for a filtered run during churn, not measured. carrier: none. Dedupe words: testFilesUnder, NEVER_WALKED, tmp walk ENOENT"
]
}
Claim amendment: PM loop round 8 · seat ruling on report 6417845677 (needs_decision) · branch claude/project-thread-1nrz43 unchanged
Seat: domain:server#1 · session_01R1q2xdtYgU6FKrZ7LgjPCC
Ruling: A. Add tmp to SKIP_DIRS in packages/cli/vitest-tiers.ts, so the config-load walk never reads the gitignored scratch tree that sibling tests write and delete while it runs.
Why A, on the four axes:
Business need (measured): the ⭐ CONTROL child's config load throws ENOENT when a sibling deletes a scaffold mid-walk. It reproduced on main in 3 of 132 runs; under A it was 0 of 128.
Long-term soundness: a gitignored scratch dir is never a test source. The walk counting it is the defect, and A removes it at its one source, leaving the population unchanged at 506 files.
Guarding AI against mistakes: B moves about 13 files' scratch dirs, and every future scaffold test would have to remember the rule. C tolerates ENOENT, which would hide a real missing file. A is one entry that holds structurally.
No scope creep: one line, and it adds no gate.
Not B and not C.
File surface (widened): adds packages/cli/vitest-tiers.ts (the SKIP_DIRS entry plus its comment) to packages/cli/test/hook-timeout-override-refusal.test.ts. Keep the pin's exit-and-output carriage already on 36b2670d. ⛔ Still no product code and no packages/spec/**. If check-tier-file-adoption or the test-input census reads SKIP_DIRS, keep it green and report it.
Changeset: skip-changeset if vitest-tiers.ts is outside @objectstack/cli's published files[] (the dev measures this and states it in the body); otherwise a patch.
{
"issue": 26047,
"status": "done",
"branch": "claude/project-thread-1nrz43",
"pr": "https://github.com/objectstack-ai/objectstack/pull/26176",
"session": "session_01REwoooZ6nXESkVCEtsbeRC",
"premise_still_valid": true,
"summary": "Ruling A (claim amendment 6417872008) implemented. packages/cli/vitest-tiers.ts now skips the git-ignored tmp/ in its config-load walk, so a sibling test deleting a scaffold it rendered there can no longer throw ENOENT out of the config load (the control child exit 1 behind #25979, #26007, #26026). The pin keeps the exit-and-output carriage (36b2670d) and its no-override control now plants tmp/.../planted.test.ts and asserts the listing does not name it (red against main's walk). No timeout, skip or retry; #18788 verdicts unchanged.",
"tests": "Head 358e11b89. Red first: control red with main's vitest-tiers.ts (listing named [unit] tmp/hook-timeout-control-Btvz04/planted.test.ts), restore proven by blob 00f860ac2d and empty git diff HEAD. Reproduction, control child beside the real scaffold-rendering tests: main 3 of 132 exit 1 (ENOENT at config load); fix 0 of 216 (120 + 96). Synthetic tmp churn: main red on run 1; fix 0 of 8. Load only (8 busy loops, 4 cores, shared box), 5 runs each: main 27.5-31.3 s file / 6.7-7.7 s control; fix 27.6-30.9 s / 6.4-7.6 s; all green. Population 506 before and after. cli unit tier: 333 files / 4854 tests passed; integration tier declared to CI (no spawn entry touched). Ablation n/a beyond the red leg: vitest-tiers.ts is config read from source, not via dist.",
"gates": "dispatch-gates --commands at 358e11b89: 55 derived; 54 exit 0; check:dual-build-cjs-loads exit 3 = NOT MEASURED (needs full build); --ran: 55 accounted, 0 unrun. check:tier-file-adoption and check:cross-package-test-inputs exit 0 (neither reads cli SKIP_DIRS). check-plugin-teardown-shape --self-test: first run overlapped my synthetic tmp churn and refused on an unreadable tmp file (same walk class); rerun after git fetch of its control commit 621a4876: exit 0, 48 cases. eslint packages/cli --no-inline-config exit 0; cli typecheck exit 0; check:nul-bytes exit 0. PR check-runs: in_progress at report time.",
"dogfood_battery": "n/a: no ! in the title and no (narrowing) arm",
"mcp_calls": "0",
"api_writes": "3 relay writes: POST issues/26047/comments (needs_decision report 6417845677); pr_create #26176 (draft, assignee os-project-manager, label skip-changeset; read-back identical); POST issues/26047/comments (this report). git push x2 not REST.",
"open_questions": [],
"out_of_scope_findings": [
"noted, not filed (PR Acceptance notes): packages/qa/vitest-filter-preflight testFilesUnder, scripts/nightly-tiers.mjs tierPackages and check-plugin-teardown-shape also walk packages/cli/tmp; a tmp churn during one of them refuses on a vanished file (seen once locally, under my own synthetic churn, on the teardown self-test). carrier: none. Dedupe words: testFilesUnder, tierPackages, tmp walk ENOENT"
]
}
Activity
objectstack-fleet commentedon Oct 26, 2026
Triage: first grade —
bug·tests·priority:p2·domain:server·area:devpath·pm:queue(findingremoved) · triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-26T10:54Z⛔ Not a claim, ⛔ not a dispatch.
AssertionError: expected 1 to be +0on the ⭐ CONTROL case: therunVitestList()subprocess exits 1 where 0 is expected. It passed on refactor(spec): share the form object-name resolver with lint #25979's own head. The control asserts a child process's exit code, so a load-induced child failure, such as a timeout inside the child, would read as an assertion.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Claim: PM loop round 8 · card thread
Session:
session_01R1q2xdtYgU6FKrZ7LgjPCC(the seat); the card thread issession_01REwoooZ6nXESkVCEtsbeRCAccount:
os-project-manager(the seat's linked user; the card's assignee)Branch:
claude/project-thread-1nrz43(the card thread's harness-pinned branch; it names no issue, so this claim is the identity record)Worktree: the card thread's own container checkout
Domain:
domain:serverSeat:
domain:server#1Ruling-ref: triage first grade (2026-10-26T10:55Z): capture the child's stderr in the failing shape; if the child dies on time or memory, make the control's child cheap; if it fails on content, trace the regression. ⛔ No quarantine, no skip, no raised timeout. The #18788 pin's verdicts stay (
--hookTimeoutand--teardownTimeoutrefuse,--testTimeoutpasses, the no-override control passes silently). Split agreed withdomain:server#2: p1/p2 intake resumes ahead of p3.File surface:
packages/cli/test/hook-timeout-override-refusal.test.tsand any test fixture it lists. Product code inpackages/cli/**only after a ruling (reportneeds_decisionfirst). ⛔ Nopackages/spec/**(stop on breach; explain in the report)Container & model:
S,mode:thread, default model and effort (set at thread open)Clause-②: no
Metadata-protocol: none
Responsibility: the ⭐ CONTROL child of
runVitestList()exits 1 under merge-queue load (#25979, #26007, #26026 ejected)Thread-read: none
Premise: holds (read 2026-10-26T12:17Z at
origin/main0a6948210c: card open, unassigned,pm:queue, no claim; the control spawns a whole-packagevitest listviaexecFileSync)Serial constraints cleared: no open PR touches
packages/cli/test/hook-timeout-override-refusal.test.ts; the dev re-measures beforepr_createobjectstack-fleet commentedon Oct 26, 2026
os-dev-report
{ "issue": 26047, "status": "needs_decision", "branch": "claude/project-thread-1nrz43", "pr": null, "session": "session_01REwoooZ6nXESkVCEtsbeRC", "premise_still_valid": true, "summary": "Cause found, and it is not load or time. packages/cli/vitest.config.ts calls integrationTestFiles/unitTestFiles (packages/cli/vitest-tiers.ts) at config load, and testFilesOnDisk walks the WHOLE package including packages/cli/tmp (gitignored; SKIP_DIRS is node_modules, dist, .git, .turbo, coverage). Sibling tests in the same slice render scaffolds into tmp and delete them (init-template-comments-self-contained: render-init-app, render-init-plugin, render-create-plugin; scaffold-manifest-schema: manifest-init-app, manifest-init-plugin), and those scaffolds contain real test files (package.test.ts, src/index.test.ts). When a delete lands mid-walk, the child's config load throws ENOENT (scandir or open) and vitest list exits 1: exactly `expected 1 to be +0`. The fix belongs in vitest-tiers.ts, which the claim keeps behind a ruling, so I stopped there. Pushed so far: test-only commit 36b2670d, whose status assertions now carry the child's exit and the bounded head of its output.", "tests": "All on origin/main 0a6948210c, cli closure built. (1) Real neighbours, real child: the control's exact child (vitest list --filesOnly, no override) looped beside init-template-comments-self-contained + scaffold-manifest-schema: 3 of 132 exit 1, each `failed to load config ... Error: ENOENT ... packages/cli/tmp/manifest-init-plugin-XXXX/package.test.ts` or `.../render-create-plugin-XXXX/src/index.test.ts`. The same loop beside the i18n/config neighbours only: 0 of 104 (they churn shallow trees once per file). (2) Load alone falsified: the test file 5 runs beside 8 busy loops on 4 cores, no tmp churn: 5 of 5 green, file 27.5 to 31.3 s, control case 6.7 to 7.7 s against the 27 s budget. (3) Watcher on all three CI slices (OS_TEST_SHARD k/3, the whole package): the only directories that appear or vanish in the package tree are under tmp/; the slice holding this test churned 25 (render-*). (4) The outer `vitest run` config load dies the same way under churn (`failed to load config`), so this is not only the pin's problem. (5) New message, measured red under synthetic churn: `AssertionError: vitest list exited 1; its output began: failed to load config from packages/cli/vitest.config.ts ... Error: ENOENT: no such file or directory, scandir 'packages/cli/tmp/churn-89GJh1/src15'`. (6) Option A as a temporary probe (tmp added to SKIP_DIRS, restored from HEAD, blob 12e041557b proven by hash and empty git diff HEAD): population unchanged at 506 files; synthetic churn 0 of 8 file runs red (HEAD: red on run 1); real neighbours 0 of 128 children (HEAD: 3 of 132). Scripts and failure heads: project files pm-orders/server/evidence/26047/.", "gates": "Not run yet: no PR diff beyond the test-only commit. dispatch-gates --commands, pnpm lint scoped to packages/cli, cli unit tier and typecheck run on the final diff after the ruling.", "dogfood_battery": "n/a: no ! in the title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "1: POST issues/26047/comments (this report, through post-stamped). git push of 36b2670d is not a REST write.", "open_questions": [ { "question": "Where does the fix go? The race is in packages/cli/vitest-tiers.ts (the CLI vitest config's population walk), outside the claim's test-only surface.", "options": [ "A: add tmp to SKIP_DIRS in packages/cli/vitest-tiers.ts (one line, with a header note), plus a red-first pin in test/vitest-tiers-partition.test.ts that a test file under tmp/ is in neither tier population. Keeps the diagnostic commit. Test infrastructure only: vitest-tiers.ts is not in cli files[] (dist, README.md, CHANGELOG.md), so skip-changeset.", "B: test-only. Move every sibling scratch dir out of packages/cli/tmp (about 13 files) to os.tmpdir() or node_modules/.NAME. Larger diff, and some of them sit there on purpose: the header of test/i18n-extract-check-json.test.ts says only under packages/cli/tmp does its module lookup reach this package. The next test that writes tmp reopens the race.", "C: catch ENOENT in the walk and skip a vanished entry. Small, but it tolerates instead of defining the population: scaffold test files still enter the unit population while they exist." ], "recommendation": "A. Real need: three independent queue ejections in 24h (#25979, #26007, #26026), each rebuilding the PRs grouped above, reproduced on main at 3 of 132 and closed at 0 of 128 by A. Long-term soundness: it fixes the producer, the population definition, so the outer vitest run and every other child (vitest-tiers-partition, the qa config-wiring sweep) stop racing too, and a gitignored scratch dir can never contribute a test file (tmp/ is ignored by the root .gitignore). Against AI mistakes: it narrows a contract instead of adding consumer tolerance (C). Startup scope: one line plus one pin, no new gate, no product or spec surface." } ], "out_of_scope_findings": [ "noted, not filed: packages/qa/vitest-filter-preflight/src/index.ts testFilesUnder (filtered runs only) and scripts/nightly-tiers.mjs tierPackages walk tmp/ too; same race shape for a filtered run during churn, not measured. carrier: none. Dedupe words: testFilesUnder, NEVER_WALKED, tmp walk ENOENT" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Claim amendment: PM loop round 8 · seat ruling on report 6417845677 (
needs_decision) · branchclaude/project-thread-1nrz43unchangedSeat:
domain:server#1·session_01R1q2xdtYgU6FKrZ7LgjPCCRuling: A. Add
tmptoSKIP_DIRSinpackages/cli/vitest-tiers.ts, so the config-load walk never reads the gitignored scratch tree that sibling tests write and delete while it runs.Why A, on the four axes:
ENOENTwhen a sibling deletes a scaffold mid-walk. It reproduced onmainin 3 of 132 runs; under A it was 0 of 128.ENOENT, which would hide a real missing file. A is one entry that holds structurally.Not B and not C.
File surface (widened): adds
packages/cli/vitest-tiers.ts(theSKIP_DIRSentry plus its comment) topackages/cli/test/hook-timeout-override-refusal.test.ts. Keep the pin's exit-and-output carriage already on36b2670d. ⛔ Still no product code and nopackages/spec/**. Ifcheck-tier-file-adoptionor the test-input census readsSKIP_DIRS, keep it green and report it.Changeset:
skip-changesetifvitest-tiers.tsis outside@objectstack/cli's publishedfiles[](the dev measures this and states it in the body); otherwise apatch.objectstack-fleet commentedon Oct 26, 2026
os-dev-report
{ "issue": 26047, "status": "done", "branch": "claude/project-thread-1nrz43", "pr": "https://github.com/objectstack-ai/objectstack/pull/26176", "session": "session_01REwoooZ6nXESkVCEtsbeRC", "premise_still_valid": true, "summary": "Ruling A (claim amendment 6417872008) implemented. packages/cli/vitest-tiers.ts now skips the git-ignored tmp/ in its config-load walk, so a sibling test deleting a scaffold it rendered there can no longer throw ENOENT out of the config load (the control child exit 1 behind #25979, #26007, #26026). The pin keeps the exit-and-output carriage (36b2670d) and its no-override control now plants tmp/.../planted.test.ts and asserts the listing does not name it (red against main's walk). No timeout, skip or retry; #18788 verdicts unchanged.", "tests": "Head 358e11b89. Red first: control red with main's vitest-tiers.ts (listing named [unit] tmp/hook-timeout-control-Btvz04/planted.test.ts), restore proven by blob 00f860ac2d and empty git diff HEAD. Reproduction, control child beside the real scaffold-rendering tests: main 3 of 132 exit 1 (ENOENT at config load); fix 0 of 216 (120 + 96). Synthetic tmp churn: main red on run 1; fix 0 of 8. Load only (8 busy loops, 4 cores, shared box), 5 runs each: main 27.5-31.3 s file / 6.7-7.7 s control; fix 27.6-30.9 s / 6.4-7.6 s; all green. Population 506 before and after. cli unit tier: 333 files / 4854 tests passed; integration tier declared to CI (no spawn entry touched). Ablation n/a beyond the red leg: vitest-tiers.ts is config read from source, not via dist.", "gates": "dispatch-gates --commands at 358e11b89: 55 derived; 54 exit 0; check:dual-build-cjs-loads exit 3 = NOT MEASURED (needs full build); --ran: 55 accounted, 0 unrun. check:tier-file-adoption and check:cross-package-test-inputs exit 0 (neither reads cli SKIP_DIRS). check-plugin-teardown-shape --self-test: first run overlapped my synthetic tmp churn and refused on an unreadable tmp file (same walk class); rerun after git fetch of its control commit 621a4876: exit 0, 48 cases. eslint packages/cli --no-inline-config exit 0; cli typecheck exit 0; check:nul-bytes exit 0. PR check-runs: in_progress at report time.", "dogfood_battery": "n/a: no ! in the title and no (narrowing) arm", "mcp_calls": "0", "api_writes": "3 relay writes: POST issues/26047/comments (needs_decision report 6417845677); pr_create #26176 (draft, assignee os-project-manager, label skip-changeset; read-back identical); POST issues/26047/comments (this report). git push x2 not REST.", "open_questions": [], "out_of_scope_findings": [ "noted, not filed (PR Acceptance notes): packages/qa/vitest-filter-preflight testFilesUnder, scripts/nightly-tiers.mjs tierPackages and check-plugin-teardown-shape also walk packages/cli/tmp; a tmp churn during one of them refuses on a vanished file (seen once locally, under my own synthetic churn, on the teardown self-test). carrier: none. Dedupe words: testFilesUnder, tierPackages, tmp walk ENOENT" ] }Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Landed
PR #26176 merged at 2026-10-26T15:38Z by the merge queue as
6b9355299donmain(Fixes #26047; ACCEPT6419561431).git ls-remote origin 'refs/heads/gh-readonly-queue/main/pr-26176-*'origin/mainby contentgit cat-file -e origin/main:packages/cli/vitest-tiers.tsgit merge-base --is-ancestor 6b9355299d origin/mainState: this card closed by
Fixes(completed);pm:dispatchedremoved.Generated by Claude Code