Repository navigation
Description
Filing gate ① (CI gate false-red, reach: PR runs on main) + ④: aftercare of the cutover #25752 (pm:epic; epic PM session_01RSDL3SFtJaKzcymvCD8RsU). Part of #25677. Touches .github/workflows/ci.yml = Tier H: GOVERNED_APPROVERS review, the PR stops at draft.
谁付代价(业务筛): the maintainer wants Type Check UI in the required set (procedure #25752 step 6) and it was held back at the sitting only because of this red (ruling: add Lint UI + Build & E2E UI now, Type Check UI after the fix). Until then a spec change that breaks the Console compile is caught only by Build & E2E UI, and every workflow-only or root-only PR that touches a ui_consumers path shows a red check that means nothing.
Measured
- PR B ci(ui-merge): retire the two-repo pin gates — Spec Shape Gate, Console Pin Gate, prerelease-pin-watch #25827 head
f973a4f3fd(workflow + scripts diff, noui/change):Type Check UIred. The job'sturbo run type-check --filter=...[<base>]affected-scope is empty, so 0 tasks execute and nothing underui/packages/*/distis built; the next steppnpm --dir ui run type-check:vitest-setup(tsc -p tsconfig.vitest-setup.json) then fails with TS2882 / TS2307 on@object-ui/components,@object-ui/fields,@object-ui/plugin-dashboard,@object-ui/plugin-grid,@object-ui/i18n/locales— the packages whosetypespoint atdist/. - 4a release(ui-merge): one release lane for both scopes — @object-ui joins the fixed group, @objectstack/console builds from ui/apps/console, the objectui pin is deleted (#25711) #25745 head
fb110c2323(changesui/packages): the same job green — turbo built the affected packages first. - fix(ui-merge): two tests that #25745 broke on main read the merged tree — the Changesets config through changesetConfigPath(), the SDUI html tier by its tags (#25711) #25852 (ui scripts change): see its run for the same shape. The red is a property of the diff, not of the tree.
Wanted
- In
ci.ymltype-check-ui: either build the packagestsconfig.vitest-setup.jsonresolves before the vitest-setup step (turbo run build --filter=@object-ui/components --filter=@object-ui/fields --filter=@object-ui/plugin-dashboard --filter=@object-ui/plugin-grid --filter=@object-ui/i18nwith the turbo cache the job already restores), or maketype-check:vitest-setupresolve those packages from source (pathsinui/tsconfig.vitest-setup.json) — the seat measures both and says which is cheaper per run; ⛔ do not skip the step or narrow the job'sif:. - The job's own gate rosters follow (
check-ci-filter-parity,check-expected-skips,check-step-collectors,check-workflow-step-name-quoting); each--self-test0. - Prove it on this PR (which changes no
ui/package, so the affected-scope is empty by construction):Type Check UIgreen here = the fix.
Acceptance
Type Check UIgreen on this PR and on aui/-touching PR of the same day; the derived gate list for the diff exits 0.- On the card: the per-run cost delta of the chosen fix (job duration before/after), so the maintainer can add the context to the required set (a separate settings step, after this merges; the registry row rides the same two-step as the step 6 card).
Size: S. Clause-②: no. Metadata-protocol: none.
Dedupe
search_issues 2026-10-26 00:29Z 「Type Check UI red empty ui affected scope type-check:vitest-setup TS2882 unbuilt @object-ui packages」: 0 hits. Bill item 49 in /mnt/project-files/d1-merge/out/5-cutover-bill-notes.md is the only record. New.
Activity
objectstack-fleet commentedon Oct 26, 2026
Claim: epic #25677 round 7 (cutover aftercare card threads; Tesla 2026-10-25 「你应该使用 pm-dispatch 技能派发」「并发可以到6」) 2026-10-26T00:43Z
Session:
session_01RSDL3SFtJaKzcymvCD8RsUAccount:
os-teslaBranch:
claude/project-thread-zt7jcy(the card thread's designated branch in objectstack-ai/objectstack — the thread can push only this branch, a measured platform exception toclaude/issue-<n>-<slug>)Worktree:
objectstack-issue-25855Domain:
domain:devxSeat:
epic:#25677Scope: the whole card — ci.yml type-check-ui builds the five packages tsconfig.vitest-setup.json resolves (components, fields, plugin-dashboard, plugin-grid, i18n) before the vitest-setup step; Tier H (draft, os-zhuang + hotlong); the gate rosters that read the job follow
Why now: Type Check UI is red on every PR whose ui affected-scope is empty (PR B f973a4f), which keeps the context out of the required set
Container & model: S,
mode:thread(thread sessionsession_01DoFgrZuLrgVbaH4Z7Fb3Mu; order: this card's body, FRAME.md applies),model: opus,effort: xhighClause-②: no
Metadata-protocol: none
Responsibility: n/a — epic step
Thread-read: none
Serial constraints cleared: #25853 touches scripts/check-required-contexts.mjs, not ci.yml; the next #25712 PRs touch ui/.github, not the root ci.yml type-check-ui job
objectstack-fleet commentedon Oct 26, 2026
os-dev-report
{ "issue": 25855, "status": "done", "branch": "claude/project-thread-zt7jcy", "pr": "https://github.com/objectstack-ai/objectstack/pull/25856", "session": "session_01DoFgrZuLrgVbaH4Z7Fb3Mu", "premise_still_valid": true, "summary": "ci.yml type-check-ui gains one unconditional step before the vitest-setup step: turbo run build --concurrency=4 for @object-ui/components, fields, plugin-dashboard, plugin-grid and i18n (52 tasks with their ^build closure). The source-paths route was not re-measured: ui/tsconfig.vitest-setup.json's own paths comment records it at 484 errors / 318 foreign files (30 with the full alias map, 24 of them noImplicitAny residue), so only the build route can be green. Job if: unchanged, no step skipped.", "tests": "Proof run: #25856 head aeadd97e5f, CI run 40251065567, Type Check UI job 121342966510 green in 3m18s with an empty ui affected scope ('Run type-check over the ui packages' 1 s); the new step replayed 52/52 cached in 314ms (FULL TURBO); vitest-setup step green in 5 s. Before: PR B f973a4f3fd run 40245604632 red (7m22s job, type-check step 0 s, vitest-setup red). Same-day ui-touching run: #25852 6015709368 run 40248884869 green (12m20s; type-check step 7m43s built the five), without this step; on such a run the new step is a cache replay of what the type-check step just built. Local: cold build of the five 52 tasks / 0 cached 7m07s, warm 52/52 cached 1.1 s, then pnpm --dir ui run type-check:vitest-setup exit 0 in 5 s.", "cost_delta": "Cache hit (the normal PR case: restore-keys fall back to main's type-check-ui cache): +0.3-1 s per run. Cache miss: the build cost the type-check step would otherwise pay for an affected scope, measured locally at 7m07s cold for the 52-task closure; it falls on runs whose restored cache lacks these outputs.", "gates": "dispatch-gates --commands (56) run locally at aeadd97e: 55 exit 0, pnpm check:dual-build-cjs-loads exit 3 PREREQUISITE NOT MET (no full workspace build) = NOT MEASURED locally; CI Build Core runs it: success. --ran reconcile: 56 accounted, 55 run, 1 NOT-MEASURED, 0 UNRUN. Required contexts on aeadd97e: Lint & Repo Gates success, TypeScript Type Check success, Test Core 8/8 success, Build Core success, Governed Surface Queue Guard success. Advisory: Type Check UI success, Lint UI success, Build & E2E UI success; Test UI 3/16, 8/16, 9/16 failure, identical on main (run 40247794069) and not this diff's (3/16 owned by #25852, 8/16 + 9/16 by #25712 PR 2c); standing-down comment 6405840432. List: /mnt/project-files/d1-merge/out/25855-gates-ran.list", "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm", "mcp_calls": "0 MCP GitHub writes; MCP reads only (issue_read, get_job_logs, search_pull_requests, search_issues, subscribe_pr_activity)", "api_writes": "3 — relay pr_create (#25856, assignee os-tesla, label skip-changeset; governed follow-up requested os-zhuang + hotlong), post-stamped comment 6405840432 on #25856, this os-dev-report comment on #25855; plus git push", "deviations": "Edited in the primary clone on the thread branch instead of a dedicated worktree (single-agent container); the cold build ran outside os-verify-lock (no other agent in this container).", "open_questions": [], "out_of_scope_findings": [ "carrier: #25852 (Test UI 3/16) and #25712 PR 2c (Test UI 8/16, 9/16) — noted, not filed" ] }Generated by Claude Code