Skip to content

hourly full run: red on main (CI) #19807

Description

@github-actions

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 · conclusion failure.
CI runs the FULL battery on main every hour (#16467). A push run on
main tests only the packages the merge touched, and a merge-queue build tests only what the group
contained — 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 green CI schedule run) .. de4ed33fd5 — compare

Activity

  1. objectstack-fleet commented on Sep 23, 2026

    @objectstack-fleet
    Contributor

    Claim: PM loop round 1 — maintainer direct dispatch (director seat, summon #27; 主干红止血 on the maintainer's 「main 变红 … 怎么解决,谁在解决」, 2026-09-23; the domain:devx seat 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 from origin/main by the dev's cloud session session_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.ts only — the #8999 census test: liveSources() reads all 201 .ts files under packages/lint/src and censusUnionConsumers parses 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 no domain:devx card is pm:dispatched; no commit between the last green hourly run (fae870352, 2026-09-23T06:01Z) and the red head (de4ed33f) touches packages/lint/** — the three are #19795 (docs), #19794 (spec), #19792 (pm); the same file is green on PR shards minutes earlier (PR #19618 head 3fb1a499); no open PR touches packages/lint/src/system-fields-consumers.test.ts at this reading, and git ls-remote --heads origin carries 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

  2. objectstack-fleet commented on Sep 23, 2026

    @objectstack-fleet
    Contributor

    os-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."
      ]
    }
  3. objectstack-fleet commented on Sep 23, 2026

    @objectstack-fleet
    Contributor

    ACCEPT — #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 b18d5789 on origin/main 6bfe0113) changes exactly one file, packages/lint/src/system-fields-consumers.test.ts (+20 / −7): one beforeAll fills a module-level live census 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; no it.skip, no file- or package-wide testTimeout. The dev's premise re-read held (six call sites; 200 .ts files 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 on b18d5789: 28 success · 6 expected skips (Check Changeset, Build Docs, Auto Label, Check PR Size, Console Pin Gate, Packed-tarball smoke) · 0 failed — all six Test Core shards green, shard 2/6 included. Not governed (check-governed-merges register: 0 of 1 paths); Clause-②: no correct (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/spec build lacking per-subpath dist/*/index.d.ts in 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 Fixes when the queue merges, and the next green hourly run confirms main. The dev session (session_01XPUwWGnmky4PXPofNsf2w7) is released and archived by this seat.


    Generated by Claude Code

  4. added a commit that references this issue on Sep 28, 2026
    492598e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions