Skip to content

ci(ui-merge): the ui filter covers the roots the ui gates read outside ui/, and Lint UI runs the spec liveness gate - #26278

Merged
os-zhuang merged 1 commit into
mainfrom
claude/project-thread-5a915t
Oct 26, 2026
Merged

os-zhuang merged 1 commit into
mainfrom
claude/project-thread-5a915t

Conversation

@objectstack-fleet

Copy link
Copy Markdown
Contributor

Requested by Tesla · project thread

Part of #25712
Part of objectstack#25677

What

The root filter job's ui globs named ui/**, the lockfile, the workspace, turbo.json and ci.yml. Three roots outside ui/ are read by the ui jobs' gates and tests, and a change confined to one of them started no ui job. This PR (the parked 4b patch, applied onto current main) closes that gap and adds one step to Lint UI:

Three ui tests pin the new coverage by path: check-pre-install-import-graph.test.ts now requires every root workflow to be matched, and check-prompt-component-keys.test.ts and check-skills-paths.test.ts pin their Lint UI home and the root they read.

Measured cost of F21

Over the 211 merges of the 7 days before this change, 3 changed another root workflow and no ui path. Those 3 would newly start the 4 ui lanes (Lint UI, Type Check UI, Build & E2E UI, Test UI). Every other merge is unaffected.

Clause-②: no
Metadata-protocol: none

Verification

  • Head 81471c06, one commit on main 3d50a43b; 4 files, +82 / −12.
  • pnpm --dir ui exec vitest run on the three pinning tests: 3 files, 120/120.
  • pnpm --filter @objectstack/spec check:liveness: exit 0.
  • node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack: 63 derived gates, 63 exit 0; --ran: 63 run, 0 NOT-MEASURED, 0 UNRUN.
  • Push battery (GITHUB_ACTIONS=true GITHUB_EVENT_NAME=push node scripts/pm/check-dispatch-gates.mjs, both tiers): 2182 cases pass, 0 fail (fast 1917, slow 265).
  • Model tier: dispatch-gates finds no path-derived mandate for this surface.

维护者速读(草稿)

  1. 改了什么:根 ci.yml 的 ui 过滤器补上 ui 门禁实际读取的三处 ui/ 之外的根路径(全部根 workflow、.github/prompts/**、skills/objectui/**);Lint UI 增加 spec 活性账本检查一步。
  2. 为什么:只改这三处根路径的 PR 此前不会启动任何 ui 任务,ui 门禁读到的文件无人检查;活性账本自 refactor(spec-liveness): the renderer's ledger evidence is in-repo under ui/; objectui becomes a retired realm that fails #26150 起引用 ui/ 下的渲染器,而 ui-only PR 不跑 Spec Liveness Check。
  3. 风险:近 7 天 211 次合并中有 3 次会因此新启动 4 条 ui 车道;活性检查一步约 3 秒。
  4. 验证:三个钉住测试 120/120,63 个派生门禁全绿,push battery 2182/0。
  5. 席位意见:

🤖 Generated with Claude Code

https://claude.ai/code/session_01P33kUswHotSHBLPc6UVn6n

…e ui/, and Lint UI runs the spec liveness gate

The root `filter` job's `ui` globs named `ui/**`, the lockfile, the
workspace, turbo.json and ci.yml. Three roots outside `ui/` are read by the
ui jobs' gates and tests, and a change confined to one of them started no ui
job:

- every root workflow (F21): Lint UI's pre-install import graph check scans
  all of `.github/workflows/`, not ci.yml alone. `.github/workflows/**`
  replaces the ci.yml entry;
- `.github/prompts/**` (F16): objectui's prompts moved there in #25957, and
  Lint UI's prompt-keys check reads them;
- `skills/objectui/**` (cutover bill item 35): objectui's skill bundle moved
  to the root catalog in #26097; Lint UI's skill gates and Test UI's skill
  readers find it through `ui/scripts/skill-bundle-root.mjs`.

Lint UI also runs `pnpm --filter @objectstack/spec check:liveness` after its
install (F26, PM ruling B). Since #26150 the liveness ledger cites the
renderer under `ui/`, and Spec Liveness Check neither runs on a ui-only pull
request nor is required. The step takes about 3 s, against about 25
runner-minutes per push for the alternative of declaring `ui/` as a spec test
input and starting Test Core on every ui pull request.

Three ui tests pin the new coverage by path: the pre-install test now
requires every root workflow to be matched, and the prompt-keys and
skills-paths tests pin their Lint UI home and the root they read.

Claude-Session: https://claude.ai/code/session_01P33kUswHotSHBLPc6UVn6n
Co-authored-by: Claude <noreply@anthropic.com>
@objectstack-fleet objectstack-fleet Bot added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Oct 26, 2026
@objectstack-fleet
objectstack-fleet Bot marked this pull request as ready for review October 26, 2026 18:44
@os-zhuang
os-zhuang added this pull request to the merge queue Oct 26, 2026
Merged via the queue into main with commit 7435353 Oct 26, 2026
67 checks passed
@os-zhuang
os-zhuang deleted the claude/project-thread-5a915t branch October 26, 2026 22:58
os-tesla pushed a commit that referenced this pull request Oct 26, 2026
#26278 widened the ci.yml `ui` filter (every root workflow, .github/prompts,
skills/objectui). Both sides kept: main's entries, then this PR's turbo
globalDependencies and the SDUI manifest's four files.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A6SEitNngAMugGbuJHWsDS
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants