chore: remove stale select-runner references after ci-perf Phase 7 - #631
Conversation
ci-workflows v0.23.0 deleted select-runner.yml and the 2026-09-08 github-iac apply deleted the CI_RUNNER_* and CI_HOSTED_RUNNER org variables. Docs, manifest comments, and test fixtures still described the selector as live. - distribution/README.md: record the variables as deleted. - sync-manifest.yml: describe lane callers as naming the fleet label and restate the public/shared-shape blockers (#622) without the selector. - repin-callers.test.sh: fixture callers match the shipped shape (literal with.runner, no select-runner job); pin counts follow. - runner-policy.test.mjs: routesToTheManagedFleet matches the fleet label only. - managed-files-guard.test.sh: drop the vacuous select-runner check and rename selector-routed to fleet-routed. - README.md, ci.yml, claude-review.yml, sync-manifest.test.sh: comment wording. Closes #602 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LCEBhuXxZAT8K619tC6T5f
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Claude finished @kyle-sexton's task in 34s —— View job Security review complete
No security issues found. This PR is a documentation/comment/test-fixture cleanup following the removal of
No changes to authorization logic, secret/credential handling, injection surfaces, or GitHub Actions trigger/permission configuration. Per the skip gate in |
…ockstep-drift (#634) Closes #633 ## Summary `pr-convention-lockstep` failed on every open PR with `drift: hook validator: KEYWORD_ERE / NO_ISSUE_ERE declarations not found`. melodic-software/claude-code-plugins#4636 rewrote the hook validator around a per-line `scan_linkage` and renamed its closing pattern to `CLOSING_ERE`, so `parseValidatorPatterns` could not find it. The validator and the ci-workflows `pr-contract` composite still agree, so this was a parse failure, not drift. ## Fix - `parseValidatorPatterns` reads `CLOSING_ERE` (plus the unchanged `NO_ISSUE_ERE`) and translates `[[:blank:]]` as well as `[[:space:]]`. - The new EREs are lowercase with no `i` flag, matched against `${line,,}`. The parser now asserts that lowercasing is present and the probes lowercase their input, the same way the composite check already asserts `lower = tolower(line)`. - The test fixture takes the new validator shape; a new test fails when the validator stops lowercasing. - `policy.json` is unchanged. Every closing keyword and no-issue marker it lists is still accepted by both the composite (`run.sh` `scan_line` and the `no-issue` test) and the validator. The new `Refs:` / `Relates to:` acceptance and negated-closer rejection are enforced by both, but `policy.json` has no field for them and `pr-convention-policy.mjs` and the pinned reusables do not implement them, so recording them would be a separate change. ## Verification - `npm run test:pr-convention-lockstep`: 40/40 pass. - `npm run test:pr-convention-policy`: 11/11 pass. - `npm run lint:pr-convention-lockstep` against live sources with a token: `pr-convention lockstep: all copies and consumer pins match policy.json`, exit 0. - `biome check` on both touched files: clean. ## Related - melodic-software/claude-code-plugins#4636 (the validator rewrite) - melodic-software/ci-workflows#544 (the `pr-contract` negation and `Refs:` change the validator mirrors) - Unblocks #628, #630, #631, #632 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01LCEBhuXxZAT8K619tC6T5f --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 27s —— View job Security review complete
No security issues found. Reviewed the full diff (
No changes to authorization logic, secret/credential handling, injection surfaces, or GitHub Actions trigger/permission configuration. Skip gate criterion 2 applies (no security-relevant surface in this diff) — no deeper review performed. |
Closes #602
Summary
ci-perf Phase 7 deleted
select-runner.yml(ci-workflows#569, v0.23.0) and the 2026-09-08 github-iac apply deleted theCI_RUNNER_*andCI_HOSTED_RUNNERorganization variables. Docs, manifest comments, and test fixtures here still described the selector as live.Fix
distribution/README.md: recordCI_HOSTED_RUNNERand theCI_RUNNER_*selector variables as deleted by the 2026-09-08 apply.distribution/sync-manifest.yml(comments only): lane callers name the fleet labelmelodic-review-ubuntu-24.04-x64as a literalwith.runner; "selector-routed" becomes "fleet-routed"; the public/shared-shape blockers are restated without the selector and without the observer-key clause. No managed, locally-owned, or target entry changed.components/claude-lanes/repin-callers.test.sh: fixture callers match the shipped shape (noselect-runnerjob, literalwith.runner); pin counts drop from 4/8/7 to 2/6/5.components/runner-policy/runner-policy.test.mjs:routesToTheManagedFleetmatches the fleet label only.components/managed-files-guard/managed-files-guard.test.sh: drop the vacuousselect-runnercheck (the "no job calls a reusable workflow" assertion already covers it); rename selector-routed to fleet-routed.README.md,.github/workflows/ci.yml,.github/workflows/claude-review.yml,distribution/sync-manifest.test.sh: comment wording.Verification
select-runner.ymlacross the org returns only docs and this repo's tests;select-runner.ymlreturns 404 in ci-workflows; both shipped lane callers pass a literalrunner:.node --test components/runner-policy/runner-policy.test.mjs components/claude-lanes/repin-policy-lockstep.test.mjs: 271 pass, 0 fail.bash harness/shell/run-tests.shonrepin-callers.test.sh,claude-lanes.test.sh,managed-files-guard.test.sh,distribution/sync-manifest.test.sh: all pass.npm run lint:runner-policyandnpm run lint:md: clean.#prints nothing.Related
sync-manifest.ymlfeed that decision; this PR does not decide it.🤖 Generated with Claude Code
https://claude.ai/code/session_01LCEBhuXxZAT8K619tC6T5f