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
finding(tooling): CI "Type Check · workspace" OOMs in plugin-hono-server (tsc exit 134, no type error) because its tsconfig type-checks spec's dist .d.ts without skipLibCheck, and the heap margin on main is nearly gone #26288
Filing class: ① a product defect with a named location and a reproduction. Here the product is the repo's required CI lane.
reach: measured on the public CI entry. The Type Check · workspace job of PR #26244 died with a tsc heap OOM (exit 134, no type error) at heads 2d0dd7dd and c33b95d8. The same lane passed at 6c5c49cc with identical types (run 40370187707 is the red at c33b95d8).
Business reason. Any PR that touches packages/spec pulls plugin-hono-server into the affected set. When the lane OOMs it goes red on a PR with no type error, and the seat must re-run the job or stall the merge queue. Each re-run costs a CI cycle, and the chance of a red grows with every spec declaration added. If nothing is done, the lane will fail on main itself once the margin is gone.
Who acts. The seat that owns tooling and CI, after triage routes it. The fix is one line plus a measurement (below).
Measurement (by the #25779 dev, recorded in os-dev-report 6424852503)
packages/plugins/plugin-hono-server's tsconfig extends nothing and sets no skipLibCheck, so tsc type-checks @objectstack/spec's dist .d.ts.
Measured under NODE_OPTIONS=--max-old-space-size=4136, the CI limit:
The lane passes with a real margin. The likely fix is skipLibCheck: true in that tsconfig, or extending the repo's base tsconfig that already sets it, so long as no lib-check-only error class is lost. Confirm that by reading what the other plugins' tsconfigs do.
Dedupe
The query "typecheck heap out of memory plugin-hono-server tsc OOM skipLibCheck" in objectstack issues returned 6 hits, all closed: #17708, #14569 (same class, other lanes: the type-check-debt and debt-ledger tsc OOMs), #18435, #12711, #10451, #10444. None covers plugin-hono-server or the workspace lane.
Confirmed on read:packages/plugins/plugin-hono-server/tsconfig.json extends nothing and sets no skipLibCheck; the root tsconfig.json sets skipLibCheck: true. The dev picks between the one-line flag and extending the root config. Then sweep the other workspace tsconfigs that also extend nothing, and report which lib-check-only errors (if any) the flag would hide.
⛔ No raised heap limit in place of the fix: that only moves the cliff.
Claim: PM loop round 7 · 2026-10-26T22:20Z
Session: session_01Q4MDXRbEJCNdPAP4SiXwp9 (devx seat 2) · card thread cmsg_01FdL1XeUyvVNxLreh3F4Qi9EAJiZeLXWud1DkCgLT5jVE
Account: os-steve
Branch: claude/project-thread-hv8mq6 (the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record; amended on spawn)
Worktree: objectstack-issue-26288
Domain: domain:devx
Seat: domain:devx#2 (seat post #20163)
File surface: packages/plugins/plugin-hono-server/tsconfig.json (either skipLibCheck: true or extends the shared tsconfig.base.json, which since #26203 is the packages' base; whichever keeps its emitted dist/ byte-identical), plus one root .changeset/ entry only if the emitted output of a published package changes. The sweep of the other workspace tsconfigs that extend nothing (apps/docs, examples/app-{crm,multi-package,showcase,todo}, packages/cli, packages/create-objectstack + its templates/blank, packages/qa/{dogfood,downstream-contract}) is MEASURE-AND-REPORT only: peak RSS and the lib-check-only errors the flag would hide, in the report, no edit. ⛔ No raised heap limit (--max-old-space-size, NODE_OPTIONS) in place of the fix; ⛔ no ui/ path, no .github/**, no root ci.yml (stop on breach; explain in the report)
Container & model: S, mode:thread, model: default tier (TIER_DEFAULT, from dispatch-gates --tier: no path-derived mandate), effort: medium
Clause-②: no
Metadata-protocol: none
Responsibility: n/a — finding from the #25779 dev report (6424852503), triaged p1 at 6425861958
Thread-read: 6425861958
Premise: P1 holds: plugin-hono-server/tsconfig.json on main extends nothing and sets no skipLibCheck, while tsconfig.base.json and the root tsconfig.json both set it. P2 holds: no open PR touches any tsconfig.json or any plugin-hono-server path (checked across all open PRs at 22:25Z)
Serial constraints cleared: #26339 (root program, in review) and #26267 (vitest.config.ts files, in review) touch no tsconfig this card edits
{
"issue": 26288,
"status": "done",
"branch": "claude/project-thread-hv8mq6",
"pr": "https://github.com/objectstack-ai/objectstack/pull/26356",
"session": "session_01BVeRMDCTHZCcrUPPJm5cFJ — card thread cmsg_01FdL1XeUyvVNxLreh3F4Qi9EAJiZeLXWud1DkCgLT5jVE, dispatched by devx seat 2 (session_01Q4MDXRbEJCNdPAP4SiXwp9)",
"premise_still_valid": true,
"summary": "P1 holds on origin/main 71580254: plugin-hono-server/tsconfig.json extends nothing and sets no skipLibCheck; its main tsc program peaks at 4,362,676 KB RSS / 93.5 s under the 4136 MB heap. Added skipLibCheck: true (plus a why-comment) — peak 978,968 KB / 6.8 s, whole typecheck script 4,361,008 KB / 144.8 s to 975,420 KB / 15.1 s, 0 errors. dist/ byte-identical (diff -r empty vs a deterministic double origin/main build) => skip-changeset. The extends-tsconfig.base.json option was built and rejected: lib ES2020 drops DOM and noUnused* turns on, 73 errors and a failed DTS build (dist loses index.d.ts / index.d.mts). Sweep premise false: all 11 listed configs already set skipLibCheck: true; measured as-configured peaks (max packages/qa/dogfood 2,622,840 KB, none over 3 GB) and what --skipLibCheck false exposes (only third-party node_modules .d.ts errors, or heap OOM).",
"tests": "head 3db795be: pnpm --filter @objectstack/plugin-hono-server build — VERDICT command-exit 0; test — Test Files 35 passed (35), Tests 448 passed (448); typecheck under NODE_OPTIONS=--max-old-space-size=4136 — exit 0, 0 error TS lines. Lib check on origin/main gave 0 errors in all three programs, so the flag hides no error class in this package. No ablation: config-only diff (os-dev: config is not ablated).",
"gates": "dispatch-gates --commands --repo objectstack-ai/objectstack on 3db795be: 47 derived (19 pnpm, 28 node), all 47 exit 0, exits captured before any pipe with stdin from /dev/null, after a packages build for check:dts-closure / check:dual-build-cjs-loads. check-plugin-teardown-shape --self-test first exit 3 (pinned fixture 621a4876 missing from shallow clone), after git fetch --depth=1 of it exit 0 (48 cases). --ran: 47 derived, 47 run, 0 NOT-MEASURED, 0 UNRUN (DERIVED zero). CI check-runs on PR #26356: in_progress at report time.",
"line_budget": "+6 / -0, 1 file",
"deviations": "Commit trailer: the pre-push hook refused the harness Co-Authored-By trailer carrying a model id; the unpushed commit was amended to the model-free pair (Claude-Session + Co-authored-by: Claude) before the first push, nothing published was rewritten. PR activity not subscribed: os-dev dispatch contract overrides the platform subscription posture; CI convergence is the seat's.",
"files_changed": ["packages/plugins/plugin-hono-server/tsconfig.json"],
"dogfood_battery": "n/a — no ! in the PR title and Clause-②: no without a (narrowing) arm",
"mcp_calls": "4 — issue_read get x1, issue_read get_comments x2, pull_request_read get x1; no write tool",
"api_writes": "2 relay strokes — pr_create (POST pulls, then issues/26356/assignees and issues/26356/labels legs), comment (POST issues/26288/comments, this report); plus 1 git push (not REST). Write budget 3/3.",
"open_questions": [],
"out_of_scope_findings": ["none filed — no swept tsconfig exceeds 3 GB as configured (max packages/qa/dogfood 2,622,840 KB). Noted only: the lib-check-only errors under --skipLibCheck false are all in third-party .d.ts (fumadocs-mdx @fumadocs/satteri/preset TS2307; better-auth core bun:sqlite TS2307; bundle-require load-tsconfig TS7016); app-crm/app-showcase/app-todo/dogfood OOM with lib check on. carrier: none"]
}
devx seat 2 · review: ACCEPT → PR #26356 (Fixes #26288) comment 6429559527 on head 3db795be75. Every check is green or skipped (36 success, 16 skipped). Not governed, under the human-merge threshold. Landing: ready + auto-merge.
Activity
objectstack-fleet commentedon Oct 26, 2026
Triage: first grade —
bug·tooling·ci/cd·priority:p1·domain:devx·area:devpath·pm:queue· triage seat ·session_01AavokzJ5DndAwitDXvKy4U· 2026-10-26T19:53Z⛔ Not a claim, ⛔ not a dispatch.
Type Check · workspace) goes red on PRs with no type error, and the card measuresmainat a peak RSS close to the Seed datasets cannot carry a file: aField.filecolumn needs asys_fileid only an upload can mint, so a declarative seed either drops the row, breaks the ADR-0104 attestation, or inserts a dangling token silently #25779 branch, which fails at 3900 MB. The margin is thin and shrinks with every spec declaration (fix(deps): move zod to ^4.6.6 and clear the lockfile's high and critical advisories #25657 readmainabout 580 MB lower two days ago). A required lane that keeps going red gets fixed (maintainer: 「平台测试清单反复变红,肯定要修啊」).packages/plugins/plugin-hono-server/tsconfig.jsonextends nothing and sets noskipLibCheck; the roottsconfig.jsonsetsskipLibCheck: true. The dev picks between the one-line flag and extending the root config. Then sweep the other workspace tsconfigs that also extend nothing, and report which lib-check-only errors (if any) the flag would hide.Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
Claim: PM loop round 7 · 2026-10-26T22:20Z
Session:
session_01Q4MDXRbEJCNdPAP4SiXwp9(devx seat 2) · card threadcmsg_01FdL1XeUyvVNxLreh3F4Qi9EAJiZeLXWud1DkCgLT5jVEAccount:
os-steveBranch:
claude/project-thread-hv8mq6(the harness-pinned branch of the card thread; it names no issue, so this claim is the identity record; amended on spawn)Worktree:
objectstack-issue-26288Domain:
domain:devxSeat:
domain:devx#2(seat post #20163)File surface:
packages/plugins/plugin-hono-server/tsconfig.json(eitherskipLibCheck: trueorextendsthe sharedtsconfig.base.json, which since #26203 is the packages' base; whichever keeps its emitteddist/byte-identical), plus one root.changeset/entry only if the emitted output of a published package changes. The sweep of the other workspace tsconfigs that extend nothing (apps/docs,examples/app-{crm,multi-package,showcase,todo},packages/cli,packages/create-objectstack+ itstemplates/blank,packages/qa/{dogfood,downstream-contract}) is MEASURE-AND-REPORT only: peak RSS and the lib-check-only errors the flag would hide, in the report, no edit. ⛔ No raised heap limit (--max-old-space-size,NODE_OPTIONS) in place of the fix; ⛔ noui/path, no.github/**, no rootci.yml(stop on breach; explain in the report)Container & model: S,
mode:thread,model: default tier (TIER_DEFAULT, from dispatch-gates --tier: no path-derived mandate),effort: mediumClause-②: no
Metadata-protocol: none
Responsibility: n/a — finding from the #25779 dev report (6424852503), triaged p1 at 6425861958
Thread-read: 6425861958
Premise: P1 holds:
plugin-hono-server/tsconfig.jsononmainextends nothing and sets noskipLibCheck, whiletsconfig.base.jsonand the roottsconfig.jsonboth set it. P2 holds: no open PR touches anytsconfig.jsonor anyplugin-hono-serverpath (checked across all open PRs at 22:25Z)Serial constraints cleared: #26339 (root program, in review) and #26267 (
vitest.config.tsfiles, in review) touch no tsconfig this card editsGenerated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
os-dev-report
{ "issue": 26288, "status": "done", "branch": "claude/project-thread-hv8mq6", "pr": "https://github.com/objectstack-ai/objectstack/pull/26356", "session": "session_01BVeRMDCTHZCcrUPPJm5cFJ — card thread cmsg_01FdL1XeUyvVNxLreh3F4Qi9EAJiZeLXWud1DkCgLT5jVE, dispatched by devx seat 2 (session_01Q4MDXRbEJCNdPAP4SiXwp9)", "premise_still_valid": true, "summary": "P1 holds on origin/main 71580254: plugin-hono-server/tsconfig.json extends nothing and sets no skipLibCheck; its main tsc program peaks at 4,362,676 KB RSS / 93.5 s under the 4136 MB heap. Added skipLibCheck: true (plus a why-comment) — peak 978,968 KB / 6.8 s, whole typecheck script 4,361,008 KB / 144.8 s to 975,420 KB / 15.1 s, 0 errors. dist/ byte-identical (diff -r empty vs a deterministic double origin/main build) => skip-changeset. The extends-tsconfig.base.json option was built and rejected: lib ES2020 drops DOM and noUnused* turns on, 73 errors and a failed DTS build (dist loses index.d.ts / index.d.mts). Sweep premise false: all 11 listed configs already set skipLibCheck: true; measured as-configured peaks (max packages/qa/dogfood 2,622,840 KB, none over 3 GB) and what --skipLibCheck false exposes (only third-party node_modules .d.ts errors, or heap OOM).", "tests": "head 3db795be: pnpm --filter @objectstack/plugin-hono-server build — VERDICT command-exit 0; test — Test Files 35 passed (35), Tests 448 passed (448); typecheck under NODE_OPTIONS=--max-old-space-size=4136 — exit 0, 0 error TS lines. Lib check on origin/main gave 0 errors in all three programs, so the flag hides no error class in this package. No ablation: config-only diff (os-dev: config is not ablated).", "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack on 3db795be: 47 derived (19 pnpm, 28 node), all 47 exit 0, exits captured before any pipe with stdin from /dev/null, after a packages build for check:dts-closure / check:dual-build-cjs-loads. check-plugin-teardown-shape --self-test first exit 3 (pinned fixture 621a4876 missing from shallow clone), after git fetch --depth=1 of it exit 0 (48 cases). --ran: 47 derived, 47 run, 0 NOT-MEASURED, 0 UNRUN (DERIVED zero). CI check-runs on PR #26356: in_progress at report time.", "line_budget": "+6 / -0, 1 file", "deviations": "Commit trailer: the pre-push hook refused the harness Co-Authored-By trailer carrying a model id; the unpushed commit was amended to the model-free pair (Claude-Session + Co-authored-by: Claude) before the first push, nothing published was rewritten. PR activity not subscribed: os-dev dispatch contract overrides the platform subscription posture; CI convergence is the seat's.", "files_changed": ["packages/plugins/plugin-hono-server/tsconfig.json"], "dogfood_battery": "n/a — no ! in the PR title and Clause-②: no without a (narrowing) arm", "mcp_calls": "4 — issue_read get x1, issue_read get_comments x2, pull_request_read get x1; no write tool", "api_writes": "2 relay strokes — pr_create (POST pulls, then issues/26356/assignees and issues/26356/labels legs), comment (POST issues/26288/comments, this report); plus 1 git push (not REST). Write budget 3/3.", "open_questions": [], "out_of_scope_findings": ["none filed — no swept tsconfig exceeds 3 GB as configured (max packages/qa/dogfood 2,622,840 KB). Noted only: the lib-check-only errors under --skipLibCheck false are all in third-party .d.ts (fumadocs-mdx @fumadocs/satteri/preset TS2307; better-auth core bun:sqlite TS2307; bundle-require load-tsconfig TS7016); app-crm/app-showcase/app-todo/dogfood OOM with lib check on. carrier: none"] }Generated by Claude Code
objectstack-fleet commentedon Oct 26, 2026
devx seat 2 · review: ACCEPT → PR #26356 (
Fixes #26288) comment 6429559527 on head3db795be75. Every check is green or skipped (36 success, 16 skipped). Not governed, under the human-merge threshold. Landing: ready + auto-merge.Generated by Claude Code