Repository navigation
ci(ui-coverage): run objectui's coverage lane nightly from the root, thresholds unchanged - #26003
Merged
Merged
Conversation
…thresholds unchanged The ui/ cutover did not port objectui's coverage lane (roster row 7 of #25697, "kept, follow-up port"), and the nested ui/.github copy runs nowhere, so the ui coverage thresholds (lines 40, functions 33, branches 30, statements 40) have been evaluated by nothing since the cutover. objectui ran the lane on every push and hourly: 8 legs of ~22 min, about 31 % of its CI minutes (#25924). It comes back as .github/workflows/ui-coverage-nightly.yml (`UI Coverage`), on schedule (06:13 UTC) plus workflow_dispatch only: eight blob-reporting shards, then one merge job that refuses a partial set, enforces the configured thresholds over the merged map, publishes the report and states whether the gate ran. Not a merge gate and not a release gate. scheduled-full-run-card.yml now also watches `UI Coverage`, with a `nightly` cadence in CARD_CADENCES, so a red night files or refreshes one card; the self-test pins the identity, the nightly body, the workflow's single daily cron and that the watcher list and the cadence map name the same workflows. The three ui pins that retired with the lane come back against the new file through helpers/root-ci.ts: the width said once, the shard reporter set, and the headroom reading's matrix and cap. Part of #25924 Co-authored-by: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WKpunbiE8c9w2i9FsEvQas
Contributor
Author
席位核对Verdict: ACCEPT at head The premise moved, and the change follows the measured reading
Seat's own reading at the head (detached worktree)
Gates at head
Item 4 (pnpm install retry): not pursued, closed on measurement
Generated by Claude Code |
This was referenced Oct 26, 2026
os-zhuang
approved these changes
Oct 26, 2026
os-zhuang
approved these changes
Oct 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Elon · project thread
Part of #25924 (item 2 of the card's Recommendation: the coverage lane on a schedule, thresholds unchanged). Part of #25677 (roster row 7 of #25697, "Test (coverage shard n/8) · Test (coverage)": kept, follow-up port).
Clause-②: no
Metadata-protocol: none
维护者速读
ui-coverage-nightly.yml(名为UI Coverage),把 objectui 的覆盖率车道(8 个分片 + 1 个合并任务)搬回根目录,只在每晚 06:13 UTC 定时跑,也可以手动触发。阈值不变(lines 40、functions 33、branches 30、statements 40),仍由合并任务在完整报告上检查。ui/.github/里那份 GitHub 不会执行,所以从合并那天起这四个阈值没有任何地方在检查。现在按卡的建议以定时方式补回,不回到每次 push。scheduled-full-run-card.yml现在也监听UI Coverage,定时运行红了就开或刷新一张卡nightly full run: red on main (UI Coverage)。RELEASE_GATE_WORKFLOWS仍只有CI和Lint & Type Check),PR 和合并队列都不跑它。.github/workflows/**,Tier H,需要 GOVERNED_APPROVERS 批准。What changed
.github/workflows/ui-coverage-nightly.ymlui-coverage(Test UI (coverage shard n/8), 8 shards, 40 min): install, the seven-package build ci.yml's ui jobs use, thenpnpm --dir ui run test:coveragewith--reporter=blob --reporter=default --reporter=github-actions --shard=n/8 --testTimeout=60000and the thresholds zeroed on the legs; uploadsui/.vitest-reports/*.ui-coverage-report(Test UI (coverage)): refuses a partial blob set, merges with--merge-reports(where the configured thresholds are enforced), publishesui/coverage/, prints the shard headroom (report-only) and states whether the gate ran. Triggers:schedule13 6 * * *andworkflow_dispatch. Caches are restore-only (Build UI Deps' turbo seed, the pnpm store)..github/workflows/scheduled-full-run-card.ymlUI Coveragetoo.scripts/ci/scheduled-full-run.mjsCARD_CADENCES['UI Coverage'] = 'nightly'(thenightlywording already existed). Self-test +4 cases: the nightly identity, the nightly body, the workflow's single daily cron, and the watcher list and the cadence map naming the same workflows. Battery floor 42 → 46.ui/scripts/__tests__/coverage-shard-width.test.ts,coverage-shard-reporter-readability.test.tshelpers/root-ci.ts.ui/scripts/__tests__/shard-headroom.test.tsui-coverage-report; thetest-aggregatehalf stays retired (no root job).ui/scripts/__tests__/helpers/root-ci.ts,ui/scripts/shard-headroom.mjsUI_COVERAGE(file + job keys); header prose.Measurements
test:coverageforui/(grep -rn 'test:coverage' .github/workflows/→ onlycoverage-nightly.yml, which is spec's). objectui'stest-coverage/coverage-reportjobs exist only inui/.github/workflows/ci.yml, which GitHub does not run. The ui coverage thresholds have had no reader since the cutover.RELEASE_GATE_WORKFLOWS(unchanged);check-ci-filter-parity(reads ci.yml only, which this PR does not touch); the aggregator roster (no ci.yml aggregator involved);merge-queue-triage.yml(workflows: [CI], unchanged). The one reader added is the red-run card filer.scripts/ci-setup-pnpm.shis nowui/scripts/ci-setup-pnpm.sh, and no workflow GitHub runs calls it (onlyui/.github/workflows/*); it also never ran the install, only Corepack. The root's pnpm acquisition (.github/actions/setup-pnpm) already retries.pnpm install --frozen-lockfileis spelled at ~40 sites in 25 root workflows. Actions API, failed runs created since 2026-10-19 (632 runs): exactly 1 job failed at an install step, run 39316437234Type Check · debt ledger,node-gypheaders download ECONNRESET from nodejs.org. The choice of landing (a shared install action at every site, an inline retry, or no change) goes to the devx seat on the card.Verification
node scripts/ci/scheduled-full-run.mjs --self-test: OK (battery 46 cases).Lint & Repo GatesandTest UIrun them on this PR too).workflow_dispatchonmainafter merge, or the first night.🤖 Generated with Claude Code
https://claude.ai/code/session_01WKpunbiE8c9w2i9FsEvQas