Repository navigation
hourly full run: red on main (CI) #19807
Description
Activity
- addedbugSomething isn't workingSomething isn't workingpriority:p1High: required for production / M2High: required for production / M2
on Sep 23, 2026 objectstack-fleet commented
on Sep 23, 2026 ContributorMore actionsClaim: PM loop round 1 — maintainer direct dispatch (director seat, summon #27; 主干红止血 on the maintainer's 「main 变红 … 怎么解决,谁在解决」, 2026-09-23; the
domain:devxseat 1 (seat post #6023) has produced no GitHub output for three days and holds no card in flight, so the director takes the p1 directly)
Session:session_0129ZpnaBcYZZ51rCvQiXg6C
Branch:claude/issue-19807-lint-census-timeout(cut fromorigin/mainby the dev's cloud sessionsession_01XPUwWGnmky4PXPofNsf2w7; poked with this card's order right after this claim)
Worktree:objectstack-issue-19807(a cloud session's own checkout; ⛔ no worktree in this seat's container)
Domain:domain:devx
Seat: domain:devx#2 (the director's direct-dispatch seat number; no seat post is opened for it)
File surface:packages/lint/src/system-fields-consumers.test.tsonly — the #8999 census test:liveSources()reads all 201.tsfiles underpackages/lint/srcandcensusUnionConsumersparses every one with the TypeScript compiler (setParentNodes: true), and the file recomputes that census SIX times (:588, :595, :610, :627, :634, :653), each under vitest's default 5,000 ms per-test wall; the first computation timed out on the hourly full run's loaded shard (run 35829772446,Test Core (2/6), 13 packages scheduled). ⛔ No change to the census logic, the LEDGER rows or any assertion; ⛔ never skip or narrow the walk
Container & model:L,mode:cloud(an existing cloud session, fourth card),model: TIER_DEFAULT—packages/lint/src/**is on no declared tier glob and not on the governed register; ordinary queue landing after this seat's ACCEPT
Clause-②: no
Thread-read: none
Serial constraints cleared: the devx seat post #6023 was last refreshed at 2026-09-20T18:02Z and nodomain:devxcard ispm:dispatched; no commit between the last green hourly run (fae870352, 2026-09-23T06:01Z) and the red head (de4ed33f) touchespackages/lint/**— the three are #19795 (docs), #19794 (spec), #19792 (pm); the same file is green on PR shards minutes earlier (PR #19618 head3fb1a499); no open PR touchespackages/lint/src/system-fields-consumers.test.tsat this reading, andgit ls-remote --heads origincarries no branch of this card's. Related, ⛔ not this card: #16465 / #16468 (per-shard duration and suite-duration ratchets,pm:queue).Written 2026-09-23T07:37Z. ⛔ Not a second claim by another seat: this card carries no other
Claim:.
Generated by Claude Code
objectstack-fleet commented
on Sep 23, 2026 ContributorMore actionsos-dev-report
{ "issue": 19807, "status": "done", "branch": "claude/issue-19807-lint-census-timeout", "pr": "https://github.com/objectstack-ai/objectstack/pull/19813", "session": "session_01XPUwWGnmky4PXPofNsf2w7", "premise_still_valid": true, "summary": "Test-only fix in packages/lint/src/system-fields-consumers.test.ts (one commit, b18d5789, on origin/main 6bfe011): one beforeAll at the top of the file's outer describe fills a module-level `live` census once with an explicit 60_000 ms hook timeout, and the six live tests read that one result instead of each recomputing censusUnionConsumers(liveSources()). The walk, the analyzer, the LEDGER rows, the PROVENANCE_API pin and every assertion are unchanged; no file- or package-wide testTimeout raised; no it.skip. The premise held exactly as read on main: six call sites (:588, :595, :610, :627, :634, :653), 200 .ts files walked under packages/lint/src at this head (git ls-tree -r origin/main packages/lint/src | grep -c '\\.ts$'; the card said 201). PR #19813 was opened by the director from this branch; no second PR, no further push.", "measurement": "vitest run --maxWorkers=2 src/system-fields-consumers.test.ts --reporter=verbose, through scripts/pm/os-verify-lock.sh, quiet container. BEFORE (origin/main 6bfe011, six computations): cold 1,042 ms (is anchored to a real export), then 638 / 579 / 592 / 502 / 413 ms; file: 14 tests, tests 3.82 s, Duration 5.03 s. AFTER (b18d5789, one computation in beforeAll): the six tests read 0 / 1 / 1 / 0 / 0 / 3 ms; file: 14 tests, tests 1.05 s (the single beforeAll computation included — about 1 s cold), Duration 1.86 s. The one cold computation now sits under a 60 s hook wall instead of the 5 s per-test wall.", "tests": "pnpm --filter @objectstack/lint test (whole package, through the lock, after building lint's dependency closure): 108 test files passed, 4,116 tests passed, 5 skipped, Duration 59.49 s, VERDICT command-exit 0. pnpm --filter @objectstack/lint typecheck (tsc --noEmit && check:test-typecheck --package packages/lint --project tsconfig.test.json): VERDICT command-exit 0. A first package-wide run before the dependency build showed 96 failed files, all 'Cannot find package @objectstack/spec/...' / 'Failed to resolve entry for package @objectstack/formula' — unbuilt workspace dependencies in the fresh worktree, not the change; green once built.", "gates": "Gates derived by `node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands` on the edited tree at b18d57897; each run alone, exit captured before any pipe (`cmd > log 2>&1; ec=$?`).\n\n| command | exit | verdict line |\n|---|---|---|\n| `node scripts/check-changeset-no-major.mjs --base origin/main` | 0 | · no `pull_request` payload was available to read a declaration from |\n| `node scripts/check-changeset-no-major.mjs --self-test` | 0 | ✓ check-changeset-no-major --self-test: 339 assertions (frontmatter dialects measured against @changesets/pars |\n| `node scripts/check-ci-filter-parity.mjs` | 0 | OK: all 185 declared cross-package glob(s) (132 unique) are covered by `core` or `crosspkg`, every `crosspkg` |\n| `node scripts/check-closing-keyword-parity.mjs` | 0 | • packages/spec/CHANGELOG.md -- 6080503 bytes exceeds the sweep's 2097152-byte cutoff for UNREGISTERED files |\n| `node scripts/check-closing-keyword-parity.mjs --self-test` | 0 | ✓ check-closing-keyword-parity --self-test: 40 assertions, 5 mutations of the shipped parsers each driven to r |\n| `node scripts/check-comment-mask-adoption.mjs` | 0 | OK check:comment-mask-adoption — 14 private comment-stripper(s) under packages/** + examples/**, all 14 record |\n| `node scripts/check-comment-mask-adoption.mjs --self-test` | 0 | PASS check-comment-mask-adoption --self-test (0 failure(s)) |\n| `node scripts/check-comment-mask-corpus.mjs` | 0 | ✓ comment-mask corpus sweep [scripts/js-comment-mask.mjs]: 7017 files, 0 disagree, 0 unparseable, 65.7s (compa |\n| `node scripts/check-keyed-text-bounds.mjs` | 0 | ⚠ The delta is information, not a verdict — this population grows AND shrinks for good reasons, and only the f |\n| `node scripts/check-keyed-text-bounds.mjs --self-test` | 0 | PASS check-keyed-text-bounds --self-test (0 failure(s)) |\n| `node scripts/check-platform-object-tenancy-census.mjs` | 0 | ✓ platform-object tenancy census matches the tree: 84 platform-namespace objects, 58 in the machinery's reach, |\n| `node scripts/check-platform-object-tenancy-census.mjs --self-test` | 0 | ✓ check-platform-object-tenancy-census self-test: all checks pass (84 objects, 26 outside the machinery) |\n| `node scripts/check-plugin-teardown-shape.mjs` | 0 | ✓ check:plugin-teardown-shape: 69 Plugin implementation(s) across 6449 source(s) under packages/**; every tear |\n| `node scripts/check-plugin-teardown-shape.mjs --self-test` | 0 | ✓ check-plugin-teardown-shape self-test: 48 cases pass (real pre-#10375 fixture reds, the repaired file and bo |\n| `node scripts/check-registry-log-declared.mjs` | 0 | examples/app-showcase — S1 constructs a SchemaRegistry in its tests |\n| `node scripts/check-registry-log-declared.mjs --self-test` | 0 | self-test OK: 16 cases + level-vocabulary read + population declaration + real-tree selection floor. |\n| `node scripts/check-rest-log-spy-declared.mjs` | 0 | OK: 29 of 196 test file(s) beside packages/rest/src/log.ts observe the fault log, and every one of them declar |\n| `node scripts/check-rest-log-spy-declared.mjs --self-test` | 0 | check-rest-log-spy-declared self-test reached its verdict: 23 case(s), 0 failure(s). |\n| `node scripts/check-system-context-census.mjs` | 0 | check-system-context-census: OK — 110 elevation read sites in 20 packages across 45 files, living in 91 symbol |\n| `node scripts/check-system-context-census.mjs --self-test` | 0 | check-system-context-census --self-test: all cases passed |\n| `node scripts/check-undeclared-dep-imports.mjs` | 0 | ⚠ The delta is information, not a verdict — the floors are `>=` and cannot see an upward drift at all, which i |\n| `node scripts/check-undeclared-dep-imports.mjs --self-test` | 0 | PASS check-undeclared-dep-imports --self-test (0 failure(s)) |\n| `node scripts/docs-audit/check-affected-docs.mjs` | 0 | → the unreachable rows themselves: this command with --json |\n| `node scripts/docs-audit/check-drift-comment.mjs` | 0 | ✓ check-drift-comment: 66 cases pass across 5 fixture diff(s). |\n| `pnpm --filter @objectstack/spec run check:duration-unit-keys` | 0 | ✓ check:duration-unit-keys — 205 unit-declaring numeric key(s) across 2561 source file(s) all carry their unit |\n| `pnpm check:changeset-gate-self-tests` | 0 | ✓ check-changeset-no-major --self-test: 339 assertions (frontmatter dialects measured against @changesets/pars |\n| `pnpm check:cross-package-test-inputs` | 0 | OK: 29 package(s) read outside themselves, all declared, and turbo.json hashes every declared glob (6 of them |\n| `pnpm check:doc-authoring` | 0 | ✓ doc authoring guard: sibling-package prose ids hold the baseline — 819 pinned site(s) across 231 file(s), 90 |\n| `pnpm check:docs-transcript-drift` | 0 | ✓ check-docs-transcript-drift: 4 declared transcript value(s) across 405 page(s) under content/docs/ equal wha |\n| `pnpm check:driver-memory-census` | 0 | check-driver-memory-census: OK — every declaration is ledgered, every ledger entry is live, and every ruled fi |\n| `pnpm check:dts-closure` | 1 | ELIFECYCLE Command failed with exit code 1. |\n| `pnpm check:dual-build-cjs-loads` | 3 | ELIFECYCLE Command failed with exit code 3. |\n| `pnpm check:engine-double-contract` | 0 | ⚠ The delta is information, not a verdict — this population grows AND shrinks for good reasons, and only the f |\n| `pnpm check:gitlink-declared` | 0 | check-gitlink-declared: OK (9274 index entries -- 0 gitlink(s) at mode 160000; no .gitmodules in the index, so |\n| `pnpm check:issue-citations` | 0 | ✅ check-issue-citations --self-test: grammar narrowed, four 404 causes kept apart, both board strategies agree |\n| `pnpm check:lean-entry-closure` | 3 | ELIFECYCLE Command failed with exit code 3. |\n| `pnpm check:logger-receiver-detach` | 0 | control corpus fired on all five detach shapes in this same run, and stayed silent on the measured `console` a |\n| `pnpm check:nul-bytes` | 0 | check-nul-bytes: OK (scanned 9267 text file(s) -- 9267 tracked, 0 untracked-not-ignored; skipped 7 binary; no |\n| `pnpm check:objectql-double-limit` | 0 | baseline key set verified against 6bfe011: no files added. |\n| `pnpm check:org-identifier` | 0 | check-org-identifier: OK (2855 author-facing source file(s), 17 session binding(s) resolved, no removed sessio |\n| `pnpm check:page-declaration-shape` | 0 | blind spot: 1 computed carrier(s) no source scan can enumerate — examples/app-crm/objectstack.config.ts:86. |\n| `pnpm check:published-files` | 0 | ✓ check:published-files — 70 publishable package(s) of 81 workspace member(s) declare a `files` whitelist that |\n| `pnpm check:query-options-erasure` | 0 | baseline key set verified against 6bfe011: no files added. |\n| `pnpm check:refd-timer-probe` | 0 | 1 code site(s), all inside the approved module, which is present and still reads it. |\n| `pnpm check:slot-lookup` | 0 | baseline key set verified against 6bfe011: no files added. |\n| `pnpm check:sourcemap-no-sources-content` | 0 | check-sourcemap-no-sources-content: 3 built package(s) swept - 48 map(s), none embed source text. |\n| `pnpm check:test-source-alias` | 0 | check-test-source-alias OK — 74 packages with tests scanned; 61 registered as still resolving a workspace dep |\n| `pnpm check:tier-file-adoption` | 0 | @objectstack/cli — 69 file(s); imports readTierMode, selectTierFiles from scripts/nightly-tiers.mjs (via packa |\n| `pnpm check:type-check-coverage` | 0 | ⚠ The delta is information, not a verdict — this population grows AND shrinks for good reasons, and only the f |\n| `pnpm check:type-check-debt` | 3 | ELIFECYCLE Command failed with exit code 3. |\n| `pnpm check:watch-hint-literal` | 0 | ✓ check-watch-hint-literal: 71 declaration(s) across 4 rostered name(s) -- ROOT_DIR_WATCH_HINTS 47, ROOT_FILE_ |\n| `pnpm check:where-matcher` | 0 | baseline key set verified against 6bfe011: no files added. |\n\nReconciliation: `dispatch-gates --ran: 52 derived famil(ies) accounted for — 49 run, 3 NOT-MEASURED (3 DERIVED from a recorded exit 3)`. Named honestly: (1) check:dual-build-cjs-loads, check:lean-entry-closure, check:type-check-debt — exit 3 PREREQUISITE NOT MET, each needs every package's dist/ (`turbo run build --filter='./packages/*' --filter='./packages/*/*'`, what lint.yml does first); their population is the whole built tree and none reads the changed test file — declared to CI, not built here. (2) check:dts-closure — exit 1 (counted as run by --ran): it names packages/spec/dist/{ai,api,automation,contracts,...}/index.d.ts as missing after the closure build restored spec from the turbo cache; not this diff's (a test file cannot move spec's dist); a forced spec rebuild and re-run was in flight when this report posted and is NOT MEASURED here. Two gates measured only after their prerequisite: check-plugin-teardown-shape --self-test (its positive-control commit 621a4876 fetched into the shallow clone) and check:docs-transcript-drift (lint built) — both exit 0. check:nul-bytes exit 0.", "mcp_calls": "2 — reads only: mcp__github__issue_read ×2 (get + get_comments on #19807). No MCP write tool.", "api_writes": "3. git push ×2 (empty-branch probe, then b18d5789); this os-dev-report comment via node scripts/pm/post-stamped.mjs --comment=19807 --file=report.md from the objectstack-issue-19807 worktree (auto transport, no env prefix, no write-pace wrapper — the transport line the tool printed is the record). No PR opened by the dev: the director opened #19813 from the branch (read back: draft, objectstack-fleet[bot], head b18d5789, labels size/s · tests · skip-changeset). Reads: one GET /pulls/19813.", "deviations": [ "PR opened by the director seat (#19813) before the dev's pr_create; per the follow-up poke the dev opened no second PR and pushed nothing further.", "The lint dependency closure and lint itself were built through the lock to measure the package tests, typecheck and two gates; the whole-tree build the three exit-3 gates need was not run (declared to CI).", "Worktree objectstack-issue-19807 is kept until the in-flight spec force-rebuild finishes, then removed with its node_modules; the session checkout stays on claude/issue-19739-fleet-write-channel-text." ], "files_changed": [ "packages/lint/src/system-fields-consumers.test.ts (+20 / −7)" ], "open_questions": [], "out_of_scope_findings": [ "carrier: none · noted, not filed — a turbo-cache-restored @objectstack/spec build in a fresh worktree lacked the per-subpath dist/*/index.d.ts that check:dts-closure requires (spec's own build reports success; the gate's text points at #15042's shape). One observation in one container; re-measured by the forced rebuild in flight, ⛔ not asserted as a repo defect here." ] }objectstack-fleet commented
on Sep 23, 2026 ContributorMore actionsACCEPT — #19807 delivered as one draft PR, CI green on its head — director seat (dispatching seat), summon #27,
session_0129ZpnaBcYZZ51rCvQiXg6C, 2026-09-23T08:17Z.Report 5791173702 (2026-09-23T07:55Z) read against GitHub and the fetched head, ⛔ not against its narrative: PR #19813 (draft, opened by this seat from the dev's branch through the relay; head
b18d5789onorigin/main6bfe0113) changes exactly one file,packages/lint/src/system-fields-consumers.test.ts(+20 / −7): onebeforeAllfills a module-levellivecensus once under an explicit 60,000 ms hook timeout and the six live tests read it;censusUnionConsumers,liveSources(), the LEDGER rows, the PROVENANCE_API pin and every assertion unchanged; noit.skip, no file- or package-widetestTimeout. The dev's premise re-read held (six call sites; 200.tsfiles walked at this head, the card said 201). Package tests 108 files / 4,116 passed / 5 skipped in 59.49 s, typecheck exit 0, derived gates exit 0 with the whole-tree build declared to CI. CI onb18d5789: 28 success · 6 expected skips (Check Changeset,Build Docs,Auto Label,Check PR Size,Console Pin Gate,Packed-tarball smoke) · 0 failed — all sixTest Coreshards green, shard 2/6 included. Not governed (check-governed-mergesregister: 0 of 1 paths);Clause-②: nocorrect (a test file publishes nothing).Reading kept, ⛔ not this PR's: ten other test files walk directories or parse with the TypeScript compiler under the default wall (cli ×5, spec ×4, service-analytics ×1), none red so far; the same one-computation shape applies if one goes red. The dev's out-of-scope observation (a turbo-cache-restored
@objectstack/specbuild lacking per-subpathdist/*/index.d.tsin a fresh worktree) is one container's reading, not filed.Landing: ready + auto-merge (SQUASH) as the bot in one relay request after this comment; the card closes by
Fixeswhen the queue merges, and the next green hourly run confirmsmain. The dev session (session_01XPUwWGnmky4PXPofNsf2w7) is released and archived by this seat.
Generated by Claude Code
- added a commit that references this issue
on Sep 28, 2026
os-hourly-full-run-ci — machine-findable marker for this generated card. ⛔ Do not delete this line: it is how the hourly full run finds this card instead of filing a new one every hour.
hourly full run: red on main (CI)
Swept 2026-09-23T07:22:35.007Z · run log · commit
de4ed33fd5745d3061986c69d2c2898af14ba202· conclusionfailure.CIruns the FULL battery onmainevery hour (#16467). Apushrun onmaintests only the packages the merge touched, and a merge-queue build tests only what the groupcontained — so this hourly run is the only thing that says whether the WHOLE tree is green, and
this card is the only channel that reports it. Nothing is blocked by it.
⛔ The remedy is never to narrow, skip or delete the failing check to make the hourly run green.
Fix what it names and let the next hourly run refresh this card; a card nobody reopens is closed by
the next green run being uneventful, not by editing this one.
What landed since the last green hourly run
Range:
16d090ede0(run 35764440297, the last greenCIschedule run) ..de4ed33fd5— comparec120dbdfb8docs(spec): bring the odata module's Programmatic Use example under check:skill-examples (docs(spec): bring the odata module's Programmatic Use example under check:skill-examples #19745)2bdb81f8adfix(spec): re-measure the ComponentPropsMap objectui read-point records at the live pin and make them assertable (fix(spec): re-measure the ComponentPropsMap objectui read-point records at the live pin and make them assertable #19743)544767da3btest(spec): pin proof 4's message-includes leg with a fifth check-mode box (test(spec): pin proof 4's message-includes leg with a fifth check-mode box #19754)a754563353fix(plugin-auth): a public plain-HTTP boot says its AS discovery is unencrypted, in English (fix(plugin-auth): a public plain-HTTP boot says its AS discovery is unencrypted, in English #19689)dc1b98680bfix(spec): narrow the object designer's formula returnType options to the four declared members (fix(spec): narrow the object designer's formula returnType options to the four declared members #19759)ed4b655e5bfix(pm): fleet-write derives the seat session from the container; the workflow’s Actions state is the kill switch; size-routed direct for post-stamped (fix(pm): fleet-write derives the seat session from the container; the workflow’s Actions state is the kill switch; size-routed direct for post-stamped #19760)e99a14ceaefix(census): scope the tenant-audit census on class-property and callable names (fix(census): scope the tenant-audit census on class-property and callable names #19749)2005a558dedocs(pm): the dev's writes go through the fleet tools; platform-readings records the relay's first readings (docs(pm): the dev's writes go through the fleet tools; platform-readings records the relay's first readings #19771)041c8cf62bfix(spec): describeformatby the readers that exist, not by email/phone (fix(spec): describeformatby the readers that exist, not by email/phone #19763)d0f1845657feat(spec)!: split the translation bundle type —settingsis a platform group, not a per-app one ([finding]TranslationDataSchema.settingsis declared, read by the settings service, and extractable by nothing — registry-driven emitter, or removal from the per-app schema (ADR-0049) #15178) (feat(spec)!: split the translation bundle type —settingsis a platform group, not a per-app one (#15178) #19600)0f057b65bcfix(spec): correct both $between-endpoint entries' carrier claims and detectors (fix(spec): correct both $between-endpoint entries' carrier claims and detectors #19752)90d65e4db5ci(fleet-write): grant permission-contents: write to the mint step so the relay can arm auto-merge (ci(fleet-write): grant permission-contents: write to the mint step so the relay can arm auto-merge #19767)70a2e752b8docs(pm): rest-channel names the fleet-write relay as the channel to the App identity (docs(pm): rest-channel names the fleet-write relay as the channel to the App identity #19770)595621d35cdocs(skills): split the four over-500-line SKILL.md into routing + references, TOC the seven long reference files, trim data's description (docs(skills): split the four over-500-line SKILL.md into routing + references, TOC the seven long reference files, trim data's description #19738)67add1301adocs(adr): spell the ADR-0005/0010 payloadcodetokens as the ledger members the runtime emits (docs(adr): spell the ADR-0005/0010 payloadcodetokens as the ledger members the runtime emits #19765)4b23e4fab5docs(gates): record the [finding] 183packages/spec/src/**citations name no tracked file and are DECLINED by the new corpus — the spec analogue of #15809, and #16960's three sites are inside it #17242 re-census — the declined residual is a SPELLING population, not rot (docs(gates): record the #17242 re-census — the declined residual is a SPELLING population, not rot #19733)43e17b8905fix(service-datasource): emit the authorisedObjectSchema.createshape for object drafts (fix(service-datasource): emit the authorisedObjectSchema.createshape for object drafts #19776)531689c230test(lint): pin the dispatch-contract disarm by an undeclared same-named action, and state it in the docblock (test(lint): pin the dispatch-contract disarm by an undeclared same-named action, and state it in the docblock #19781)cc2e9511c8fix(pm): fleet-write fails closed on an indeterminate liveness read, reads it only behind the proxy re-exec, and stops reading a proxy 403 as a rate limit (fix(pm): fleet-write fails closed on an indeterminate liveness read, reads it only behind the proxy re-exec, and stops reading a proxy 403 as a rate limit #19780)a690c494c0test(plugin-dev): make the tenancy-posture clocked window load-independent (test(plugin-dev): make the tenancy-posture clocked window load-independent #19779)01df025f7ffix(lint): check the autonumber format the runtime resolves, not a local copy (fix(lint): check the autonumber format the runtime resolves, not a local copy #19787)55095cc460fix(spec): composeStacks refuses a non-arrayobjectswith an ADR-0112 envelope (fix(spec): composeStacks refuses a non-arrayobjectswith an ADR-0112 envelope #19783)3f9e2eaa1cfix(spec): list plugin-security's class-field error codes under its own ledger key (fix(spec): list plugin-security's class-field error codes under its own ledger key #19782)628e55dfa6pm: retire the needs:contract-review label from the tree (ruling B step ③) (pm: retire the needs:contract-review label from the tree (ruling B step ③) #19737)2cf9db7c43fix(spec): the gantt, timeline and map binding warnings describe the refusals objectui left, not the floors it deleted (fix(spec): the gantt, timeline and map binding warnings describe the refusals objectui left, not the floors it deleted #19788)fae870352edocs(gates): delete the spec-docblock gate's stale "symbol is ZERO" reason (docs(gates): delete the spec-docblock gate's stale "symbol is ZERO" reason #19786)98d83361d9pm-dispatch: the pre-dispatch in-flight read covers every lane's pm:dispatched claims (pm-dispatch: the pre-dispatch in-flight read covers every lane's pm:dispatched claims #19792)0b83e01627fix(spec): composeStacks refuses a non-array concatenated collection instead of dropping its content (fix(spec): composeStacks refuses a non-array concatenated collection instead of dropping its content #19794)de4ed33fd5docs(pm): a suspended seat account is a dead session — takeover, re-rendered records, retriage, durable state (docs(pm): a suspended seat account is a dead session — takeover, re-rendered records, retriage, durable state #19795)Filed by
.github/workflows/scheduled-full-run-card.yml. Generated by Claude Code