Repository navigation
ci(fleet-patrols): prose and comments stop naming the four retired patrol workflow files - #27122
Conversation
…trol workflow files The four daily patrols live as jobs of .github/workflows/fleet-patrols.yml; every comment that still pointed a reader at required-set-patrol.yml, platform-checklist-watchdog.yml, release-coverage-patrol.yml or board-snapshot.yml now names fleet-patrols.yml and the job. lint.yml's watchdog-pin note no longer claims the pull_request filter names the watchdog file alone (the pin freezes a set: the workflow plus the sibling patrols' inputs), fleet-patrols.yml's header no longer says a one-sided cron edit reds nowhere (the watchdog pin's clause 7 refuses it), and check-stall-guard-budget's reused-job-id examples are re-measured. Comments only; no gate behaviour changes. Claude-Session: https://claude.ai/code/session_01QSeKYmhU5KEj1nukYhp1Tg Co-authored-by: Claude <noreply@anthropic.com>
…n on line 738 The prose swap at the patrol-posture paragraph added a line above the inherited-population marker, which the dispatch-gates self-test pins by line. Claude-Session: https://claude.ai/code/session_01QSeKYmhU5KEj1nukYhp1Tg Co-authored-by: Claude <noreply@anthropic.com>
Line numbers in these files are cited elsewhere (the dispatch-gates census, a dist-freshness note), so the swaps re-wrap inside the lines they replace. Claude-Session: https://claude.ai/code/session_01QSeKYmhU5KEj1nukYhp1Tg Co-authored-by: Claude <noreply@anthropic.com>
…tired-patrol-names
Contract reviewServed-tier: Read at 2026-10-28T07:02Z by the ① Derived judgments
② Semver level
③ Boundary flags
④ Design judgment
Implemented-by: VERDICT: PASS |
维护者速读 — 席位终稿 · PR #27122 · head
|
Seat note —
|
Seat note —
|
|
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U Contract-review-claim: Triage seat, under the gap rule (#27062), condition (b). The record on file names Generated by Claude Code |
|
triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U Contract-review-claim withdrawn: Triage misread it: the record on file already names this head ( Generated by Claude Code |
Fixes #26525
Clause-②: no
Metadata-protocol: none
维护者速读
required-set-patrol.yml等)的注释与说明文字,全部改指fleet-patrols.yml及对应 job 名;只改注释,零行为变化。fleet-patrols.yml,读这些注释的开发者/席位会去找一个已不存在的文件;lint.yml里「watchdog 的 PR 过滤只点名它自己」与fleet-patrols.yml头部「cron 单边改动哪儿都不红」两句也已失真。.github/workflows/lint.yml(watchdog 静态钉说明块,约 L2541–L2558,改写了 ALONE 一句)、.github/workflows/fleet-patrols.yml(L25 cron 句)、scripts/check-stall-guard-budget.mjs(L458–L461 复用 job id 的举例重新实测)。git grep -n -E 'required-set-patrol\.yml|platform-checklist-watchdog\.yml|release-coverage-patrol\.yml|board-snapshot\.yml' -- . ':!ui' ':!docs/audits',预期只剩fleet-patrols.yml自己的历史说明 8 行。.github/workflows/**(Tier H),请审批或亲手入队。What changes
Comments and prose only; every hunk is line-neutral (
git diff --numstatis N/N on all 12 files) becausescripts/pm/dispatch-gates.self-test.mjspins live declaration line numbers (scripts/pm/dispatch-gates.mjs:738) andpackages/spec/scripts/dist-freshness.test.tscitesscripts/import-prerequisite.mjs:250..github/workflows/lint.ymlboard-snapshot.yml.github/workflows/lint.yml.github/workflows/platform-checklist-watchdog.ymlruns the gateplatform-checklist-watchdogjob of.github/workflows/fleet-patrols.ymlruns the gate.github/workflows/lint.ymlpaths-filtered to the watchdog file ALONEpaths-filtered to a frozen set of the four patrols' inputs (whatcheck-platform-checklist-watchdog.mjsclause 4 compares as a set).github/workflows/lint.yml.github/workflows/fleet-patrols.yml.github/workflows/fleet-patrols.ymlrequired-set-patrol.ymlrequired-set-patroljob.github/workflows/merged-branch-reaper.ymlrequired-set-patrol.ymlrequired-set-patroljob.github/workflows/shard-timings-refresh.ymlrequired-set-patrol.yml.github/workflows/test-nightly-tiers.ymlplatform-checklist-watchdog.ymlfleet-patrols.yml'splatform-checklist-watchdogjobscripts/check-platform-checklist.mjs.github/workflows/platform-checklist-watchdog.ymlplatform-checklist-watchdogjob of.github/workflows/fleet-patrols.ymlscripts/check-stall-guard-budget.mjspatrolreused in half-state-patrol.yml and release-coverage-patrol.ymlpublish(checklist-status, docker-publish, release),pack-smoke(pack-smoke-optin, publish-smoke),registry-canary(publish-smoke, scaffold-e2e); the fold renamed the job, sopatrolis no longer reusedscripts/ci/board-snapshot-r2-upload.shboard-snapshotjob's stepscripts/import-prerequisite.mjsrequired-set-patrol.ymlrequired-set-patroljobscripts/sync-release-index-currency.mjsrelease-coverage-patrol.ymlpasses--strictrelease-coverage-patroljob passes--strictscripts/pm/dispatch-gates.mjsrequired-set-patrol.yml,release-coverage-patrol.ymlscripts/pm/dispatch-gates.self-test.mjsrequired-set-patrol.yml,release-coverage-patrol.yml(comments beside the fixtures, not assertions)Each re-pointed claim was checked against
fleet-patrols.ymlat this head: therequired-set-patroljob branches onexit_code == '0'/!= '0'(L348, L362) and runs--verify-required-setbehind a continuation and a redirection (L309–310); therelease-coverage-patroljob runscheck-release-section-coverage.mjsbare (L922) and--strict(L938); theboard-snapshotjob installs no pnpm (its "Nopnpm install" note); the patrol-posture words live at L149.Tests
Final head
5fe8c76d, after mergingorigin/main.fleet-patrols.yml's own history note (L12–15 table, four "formerly" headers) plus the out-of-card hits below remain.pnpm check:pm-dispatch-gates(fast tier):✓ dispatch-gates self-test (fast tier): 1935 cases pass; 7 slow section(s) deferred.(419.1s). An earlier head of this branch read✗ 1 of 1935 case(s) failedon the census line pin, fixed by keeping the hunks line-neutral.bash scripts/ci/board-snapshot-r2-upload.selftest.sh: exit 0,5 cases, 27 checks.node scripts/check-stall-guard-budget.mjs --self-test: exit 0 (60 assertions);node scripts/sync-release-index-currency.mjs --self-test: exit 0 (75 cases).node scripts/pm/dispatch-gates.mjs --commands --repo objectstack-ai/objectstack, 76 commands): 73 run with exit 0, 4 NOT MEASURED (exit 3, PREREQUISITE NOT MET: unbuilt workspace packages —check:doc-formula-expressions,check:doc-security-posture,check:dual-build-cjs-loads,check:lean-entry-closure; none reads a comment this PR edits, and CI'sLint & Repo Gatesruns all four on a built tree).--ranreconciliation:✓ dispatch-gates --ran: 77 derived famil(ies) accounted for — 73 run, 4 NOT-MEASURED (4 DERIVED from a recorded exit 3).Acceptance notes
docs/audits/gate-census-2026-09.md:301(a dated audit record), and the ui lane's tree:ui/content/docs/guide/ci-cd-pipeline.md:47and:2684,ui/scripts/__tests__/check-required-check-set.test.ts:324,ui/scripts/dependabot-merge-gate.mjs:236..github/workflows/fleet-patrols.ymlwere edited: L760 (a stalerequired-set-patrol.ymlmention outside the history note, which the card's own acceptance grep requires gone) and L25 (the one-sided-cron sentence the card's scope addendum 6440937713 assigned to this sweep, false since ci(fleet-patrols): pin each schedule cron to its job if: twin in the watchdog gate #26653 landed at86ae47e1).scripts/check-stall-guard-budget.mjsL466 still says "28 files, 51 jobs"; there are 30 workflow files today. That count was not re-measured here (not a retired-name mention); noted, not touched.scripts/pm/dispatch-gates.mjs'sinherited-populationmarker and the fast tier went red on the census pin (dispatch-gates.mjs:739read against:738pinned); the later commits make every hunk line-neutral, which is what this head carries.Verification
Acceptance grep at 5fe8c76
Line neutrality
git diff --numstatagainst the merge base: every one of the 12 files reads N/N (36 insertions, 36 deletions in all).Generated by Claude Code