Repository navigation
chore(ci): pin ci-workflows v0.61.0 for the lanes and pass lane-id - #9074
Conversation
Move the intake-triage and review callers, and the direct run-claude-cli, apply-claude-managed-settings and report-lane-outcome uses in pr-verify and pr-run-activity-read/write, to ci-workflows v0.61.0. Pass lane-id at every direct report-lane-outcome step so each lane writes the lane-outcome record. Re-read the pin-tracking test constants at the new SHA. Refs: #8491 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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. |
|
The pr-unblock lane stopped on this pull request and needs a person: a conflicted path is protected, so the lane does not resolve it.
To resume, deal with the reason above, remove the gh workflow run pr-unblock.yml -R melodic-software/claude-code-plugins -f pr-number=9074 -f activity=resolve-conflicts |
…0.61.0 # Conflicts: # .github/workflows/intake-triage.yml # .github/workflows/pr-review-hosted.yml # .github/workflows/pr-review-security-hosted.yml
|
The pr-unblock lane escalated this pull request as |
… run (#309) Refs: #288 ## Summary Adds the first real lane-outcome annotation to `LaneOutcomeTests`. It is from claude-code-plugins check run [119996073843](https://github.com/melodic-software/claude-code-plugins/actions/runs/39827904468/job/119996073843), the review lane on [claude-code-plugins#9074](melodic-software/claude-code-plugins#9074), which runs ci-workflows [v0.61.0](https://github.com/melodic-software/ci-workflows/releases/tag/v0.61.0). The message was read back through `GET /repos/{owner}/{repo}/check-runs/{id}/annotations` and pasted verbatim. ## Fix - `LaneOutcomeTests.ARealReviewLaneAnnotationIsReadFromItsJsonRecord`. The real message's legacy tokens and its JSON record carry the same class and credential. The test rewrites the legacy `class=` token, then asserts that the parser still returns the record's `skipped-validation`. This proves the JSON path read it. What the real annotation settles (release 2.4.0 plan, Phase 8 open questions): - A record written by `report-lane-outcome` reaches the check-run annotations API intact, with the marker mid-line and free text after the JSON. - This message has no newline between the sentence and the marker, and the parser reads it. ## Verification - `dotnet test --project tests/ClaudeCodeAccountRotation.Core.Tests -c Release --filter-class "*LaneOutcomeTests"`: 34 succeeded, 0 failed. - `dotnet format --verify-no-changes` on the file: clean. `eng/check-no-machine-paths.sh`: clean. ## Related - [ci-workflows#856](melodic-software/ci-workflows#856), [#857](melodic-software/ci-workflows#857), [claude-code-plugins#9074](melodic-software/claude-code-plugins#9074) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…0.62.0 Keeps the v0.62.0 pins over main's v0.61.0 pins (#9074) on the three callers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Refs: #8491
Refs: melodic-software/claude-code-account-rotation#288
Summary
Repins every lane-related ci-workflows use to v0.61.0 (
164c2809f6150429b6f24d4a2777bb377af953d9) and passeslane-idat each directreport-lane-outcomestep, so every lane emits the lane-outcome record (docs/lane-outcome.md). v0.61.0 contains ci-workflows#854, which #8491 needs.The v0.61.0 runner-policy contracts come from standards#843, synced here by #9076.
Fix
Reusable callers:
.github/workflows/intake-triage.yml:intake-triage.yml@82ca5ca…(v0.60.0, chore(ci): pin ci-workflows v0.60.0 #9066) to@164c280…(v0.61.0)..github/workflows/pr-review-hosted.yml:pr-review.yml@82ca5ca…(v0.60.0, chore(ci): pin ci-workflows v0.60.0 #9066) to@164c280…(v0.61.0)..github/workflows/pr-review-security-hosted.yml:pr-review-security.yml@82ca5ca…(v0.60.0, chore(ci): pin ci-workflows v0.60.0 #9066) to@164c280…(v0.61.0).Direct action uses:
.github/workflows/pr-verify.yml: apply-claude-managed-settings, run-claude-cli and report-lane-outcome in both judge jobs, v0.58.0 to v0.61.0; both reports passlane-id: pr-verify..github/workflows/pr-run-activity-read.yml: apply-claude-managed-settings and both run-claude-cli legs, v0.54.0 to v0.61.0; issue-mode report-lane-outcome v0.58.0 and PR-mode report-lane-outcome v0.54.0 to v0.61.0; both passlane-id: ${{ inputs.lane }}(pr-unblockorwork-resolve-issue, never the formatted display name)..github/workflows/pr-run-activity-write.yml: report-lane-outcome v0.58.0 to v0.61.0 withlane-id: ${{ inputs.lane }}.Pin-tracking tests:
.github/scripts/pr-verify/probe/replay.mjsand.github/actions/resolve-config/callers.test.mjsmove to the v0.61.0 SHA.The review callers keep the default
credential-name(CLAUDE_CODE_OAUTH_TOKEN, the one secret they map) and set nofallback-credential-name.What the jump brings
v0.58.0 → v0.61.0 (pr-verify, read issue-mode and write reports). The intake-triage and review callers come from v0.60.0 (#9066), so for them only #856 and #857 are new:
lane-idandhandoffand writes the lane-outcome record (ci-workflows#853, #856); #857 fails any ci-workflows lane that does not emit it.on.workflow_call, permissions andruns-onare unchanged.action.ymlis unchanged. apply-claude-managed-settings is unchanged.v0.60.0 → v0.61.0 (review callers):
pr-review.ymlandpr-review-security.ymladd the optionalcredential-nameandfallback-credential-nameinputs and report the first attempt's usage-limit handoff as its own record (#856). No change to secrets, permissions orruns-on.v0.54.0 → v0.61.0 (pr-run-activity-read launcher and PR-mode report), adding to the above:
latestby default and hands off a key refused with 401 or 402 (lane-class: auth,handoff: true) (#840), and stops on a 403 (#841).no-execution(#813) and takesfallback-reason(#834).credit-stop, so a 401/402 key stays a terminal failure as it was at v0.54.0; noif:changes meaning. A 403 whose text reads as a credit stop is nowauthand no longer hands off.Verification
actionlinton the six workflow files: no findings.node .github/standards/runner-policy/runner-policy.mjs --root .after merging main (with chore: sync standards components #9076):Runner policy passed.AUTOMATIONS_CLAUDE_API_KEY,AUTOMATIONS_CLAUDE_CODE_OAUTH_TOKENorISSUE_LANE_CLAUDE_CODE_OAUTH_TOKEN.replay.mjs'sRUN_CLAUDE_CLI_PINand thecallers.test.mjslauncher SHA move to164c280. That SHA joinsPERMISSION_PROMPTS_NONE_LAUNCHERS, sincelane.cjs:355-358still passes--permission-prompts none. From v0.58.0,lane.cjschanges only an error string, andrun-claude-cli/action.ymland apply-claude-managed-settings do not change.node --testover the workflow-related suites (resolve-config, report-check-run, pr-verify, pr-unblock, pr-merge, intake-reenter and others): 1487 tests, 1487 pass, 0 fail. The 11 workflow shell tests (scripts/*read*,scripts/write-runner-*,collect-patch-lane, and others) all exit 0.Related
🤖 Generated with Claude Code