Skip to content

chore: remove stale select-runner references after ci-perf Phase 7 - #631

Merged
kyle-sexton merged 2 commits into
mainfrom
chore/602-select-runner-cleanup
Sep 28, 2026
Merged

kyle-sexton merged 2 commits into
mainfrom
chore/602-select-runner-cleanup

Conversation

@kyle-sexton

Copy link
Copy Markdown
Contributor

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 the CI_RUNNER_* and CI_HOSTED_RUNNER organization variables. Docs, manifest comments, and test fixtures here still described the selector as live.

Fix

  • distribution/README.md: record CI_HOSTED_RUNNER and the CI_RUNNER_* selector variables as deleted by the 2026-09-08 apply.
  • distribution/sync-manifest.yml (comments only): lane callers name the fleet label melodic-review-ubuntu-24.04-x64 as a literal with.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 (no select-runner job, literal with.runner); pin counts drop from 4/8/7 to 2/6/5.
  • components/runner-policy/runner-policy.test.mjs: routesToTheManagedFleet matches the fleet label only.
  • components/managed-files-guard/managed-files-guard.test.sh: drop the vacuous select-runner check (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

  • No live caller uses the removed shape: a code search for select-runner.yml across the org returns only docs and this repo's tests; select-runner.yml returns 404 in ci-workflows; both shipped lane callers pass a literal runner:.
  • 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.sh on repin-callers.test.sh, claude-lanes.test.sh, managed-files-guard.test.sh, distribution/sync-manifest.test.sh: all pass.
  • npm run lint:runner-policy and npm run lint:md: clean.
  • The manifest diff against main is comment-only: filtering its added and removed lines for anything not starting with # prints nothing.

Related

🤖 Generated with Claude Code

https://claude.ai/code/session_01LCEBhuXxZAT8K619tC6T5f

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
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-27T22:43:31.230940Z d5cd65b PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@claude

claude Bot commented Sep 27, 2026 •

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 34s —— View job


Security review complete

  • Gather context (PR body, changed files list)
  • Run /review:security-review per custom instructions
  • Post findings

No security issues found.

This PR is a documentation/comment/test-fixture cleanup following the removal of select-runner.yml (ci-workflows Phase 7) and the deletion of the CI_RUNNER_* / CI_HOSTED_RUNNER org variables. Reviewed the full diff (git diff origin/main...HEAD) across all 9 changed files:

  • .github/workflows/ci.yml, .github/workflows/claude-review.yml: comment-text-only changes; the actual runner: ubuntu-24.04 value and workflow structure (triggers, permissions, secrets passed) are unchanged.
  • README.md, distribution/README.md, distribution/sync-manifest.yml (comments only), distribution/sync-manifest.test.sh: prose/comment rewording ("selector-routed" → "fleet-routed", documenting the org-variable deletion date). No manifest targets, managed lists, or ownership entries changed.
  • components/claude-lanes/repin-callers.test.sh, components/runner-policy/runner-policy.test.mjs, components/managed-files-guard/managed-files-guard.test.sh: test fixtures/assertions updated to match the already-shipped shape (no select-runner job, literal with.runner); no test coverage was weakened — the removed managed-files-guard.test.sh assertion is redundant with an existing stricter check ("no job calls a reusable workflow", already asserted at 0) per the PR's own explanation, which checks out on inspection.

No changes to authorization logic, secret/credential handling, injection surfaces, or GitHub Actions trigger/permission configuration. Per the skip gate in /review:security-review, this change has no security-relevant surface — skipping deep review.

@kyle-sexton
kyle-sexton enabled auto-merge (squash) September 27, 2026 23:28
kyle-sexton added a commit that referenced this pull request Sep 28, 2026
…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

claude Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Claude finished @kyle-sexton's task in 27s —— View job


Security review complete

  • Gather context (PR body, changed files list)
  • Run /review:security-review per custom instructions
  • Post findings

No security issues found.

Reviewed the full diff (git diff origin/main...HEAD) across all 9 changed files at 00c9d04. This is a documentation/comment/test-fixture cleanup following the removal of select-runner.yml (ci-workflows Phase 7) and the 2026-09-08 deletion of the CI_RUNNER_* / CI_HOSTED_RUNNER org variables:

  • .github/workflows/ci.yml, .github/workflows/claude-review.yml: comment-text-only edits. The actual runner: ubuntu-24.04 value, triggers, permissions, and the single named secret passed (no secrets: inherit) are unchanged.
  • README.md, distribution/README.md, distribution/sync-manifest.yml (comments only), distribution/sync-manifest.test.sh: prose/comment rewording ("selector-routed" → "fleet-routed", documenting the org-variable deletion date). No manifest targets, managed:/locally-owned lists, or ownership entries changed.
  • components/claude-lanes/repin-callers.test.sh, components/runner-policy/runner-policy.test.mjs, components/managed-files-guard/managed-files-guard.test.sh: test fixtures/assertions updated to match the already-shipped shape (no select-runner job, literal with.runner). The removed managed-files-guard.test.sh assertion (no uses: anywhere references select-runner) is redundant with the still-present, stricter assertion no job calls a reusable workflow (asserted 0), so no test coverage was weakened.

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.
· Branch: chore/602-select-runner-cleanup

@kyle-sexton
kyle-sexton merged commit abf459d into main Sep 28, 2026
49 of 50 checks passed
@kyle-sexton
kyle-sexton deleted the chore/602-select-runner-cleanup branch September 28, 2026 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

chore: remove stale select-runner and routing-variable references after ci-perf Phase 7

1 participant