Skip to content

Upgrade cpflow to 6.0.1 and drop vendored actions - #862

Merged
justin808 merged 2 commits into
masterfrom
justin808-claude/5121-upgrade-cpflow-6-0-1
Oct 11, 2026
Merged

justin808 merged 2 commits into
masterfrom
justin808-claude/5121-upgrade-cpflow-6-0-1

Conversation

@justin808

@justin808 justin808 commented Oct 11, 2026 •

Copy link
Copy Markdown
Member

🤖 Claude Code · Anthropic · claude-opus-5-5 · medium

This repository no longer carries copies of cpflow's composite actions. cpflow 6.0.1 loads them from the pinned upstream commit again, which resolves shakacode/control-plane-flow#510. The gem and the review-app deploy and delete workflows move to the v6.0.1 commit. The eight action directories added for 6.0.0 are deleted, along with the check and specs that kept them in step. Net change: about 1,480 lines removed. Merged as a749064; master CI, the staging deploy and a comment-triggered review-app deploy and delete passed afterwards.

PR prepared with Shaka.

Code Walkthrough · Post-implementation verification

Known gaps

The review app for this PR was deleted after its smoke passed, so there is no live preview. It was deployed and deleted by dispatching this branch's workflows; comment commands run the default-branch workflows, so they run 6.0.1 only after merge. Staging, cleanup, help and production promotion stay on their v5.2.0 pin. This PR deletes about 1,480 lines, above the 999-line merge limit; about 1,260 are the generated action files.

Check Result
Local validation PASS on 13a447c: RuboCop, ESLint, test asset build, 76 RSpec examples, 16 Jest tests
cpflow checks PASS: contract check, 25 contract examples, validator with registry readiness and actionlint
Hosted CI PASS on 13a447c: Rspec CI, JS CI, Lint CI and Demo fleet smoke
Review app deploy, smoke, teardown PASS on 13a447c with cpflow 6.0.1: all six actions ran from the upstream checkout; home page hydrated; server components page streamed with toggle, Refresh, Simulate Error and Retry; RSC payload 200; app, image and deployment deleted
Independent review Local adversarial review, two rounds: two risks dismissed with evidence, two nits documented, final round clean
Execution provenance
Field Value
Task source description
Workflow version d270475
Recommended model / effort claude-opus-5-5 / low
Active model / effort claude-opus-5-5 / medium
Provenance history
Head Workflow version User-requested model / effort Recommended model / effort Active model / effort
13a447c 59aab3e Not specified claude-opus-5-5 / low claude-opus-5-5 / medium
13a447c d270475 Not specified claude-opus-5-5 / low claude-opus-5-5 / medium
Usage and cost · $8.38 estimated
Report USD Input Cached input Output Reasoning Cache writes
claude‑opus‑5‑5 implementation $7.23 44 11.3M 25.7K 2.3K 557K
claude‑opus‑5‑5 review $1.15 12 291K 9.3K 4.6K 113K
Total $8.38

Understand the columns and accounting rules.

How each report was measured and priced

claude‑opus‑5‑5 implementation

Rate card: installed Shaka.

Anthropic API list prices, verified 2026-09-23.

Sources: Anthropic pricing.

Local adversarial reviewer usage: UNKNOWN. External reviewer/tool-model usage: UNKNOWN.

Native usage is PARTIAL. Scope: responses at or after 2026-10-11T08:15:00Z (whole-second sources include the cutoff second).

claude‑opus‑5‑5 review

Rate card: installed Shaka.

Claude CLI recorded estimated USD for an independent call; not an invoice.

Local adversarial reviewer usage: included below. External reviewer/tool-model usage: UNKNOWN.

Native usage is PARTIAL. Scope: all turns in selected sources.

Rate card: installed Shaka.

Anthropic API list prices, verified 2026-09-23.

Sources: Anthropic pricing.

Local adversarial reviewer usage: UNKNOWN. External reviewer/tool-model usage: UNKNOWN.

Native usage is PARTIAL. 22 responses. Scope: responses at or after 2026-10-11T08:15:00Z (whole-second sources include the cutoff second).

Shaka settings used

UNKNOWN: rerun missing evidence.

Local files remain local. This reports operation settings and cannot restore them. It does not prove earlier checks ran. Private merge.preference grants no Auto authority. Private trials default to Ask; explicit user authorization and live required gates govern merging.

Setting Before push: validation Review Current merge input (not evidence)
source UNKNOWN UNKNOWN trusted/team
source.layout UNKNOWN UNKNOWN legacy
installation.source UNKNOWN UNKNOWN revision
merge.preference UNKNOWN UNKNOWN ask
merge.private_trial_default UNKNOWN UNKNOWN UNKNOWN
review.required UNKNOWN UNKNOWN none
review.ci_review_wait UNKNOWN UNKNOWN one
overrides.command UNKNOWN UNKNOWN UNKNOWN
overrides.effort UNKNOWN UNKNOWN UNKNOWN
overrides.reviewer UNKNOWN UNKNOWN UNKNOWN
wip.include_locations UNKNOWN UNKNOWN true
opening_check.external_enabled UNKNOWN UNKNOWN true
pr_description.show_shaka_credit UNKNOWN UNKNOWN true
merge.limits.max_changed_files UNKNOWN UNKNOWN 29
merge.limits.max_changed_lines UNKNOWN UNKNOWN 999
merge.limits.max_commits UNKNOWN UNKNOWN 9
prose_limits.max_sentence_words UNKNOWN UNKNOWN 35
prose_limits.max_paragraph_words UNKNOWN UNKNOWN 100
prose_limits.max_description_words UNKNOWN UNKNOWN 300
prose_limits.words_per_changed_line UNKNOWN UNKNOWN 4
commands UNKNOWN UNKNOWN REDACTED
paths UNKNOWN UNKNOWN REDACTED
review.prompts UNKNOWN UNKNOWN REDACTED
review.ci_review_jobs UNKNOWN UNKNOWN REDACTED
merge.required_checks UNKNOWN UNKNOWN REDACTED
branches UNKNOWN UNKNOWN REDACTED
base_branch UNKNOWN UNKNOWN REDACTED
overrides.arguments UNKNOWN UNKNOWN REDACTED
overrides.model UNKNOWN UNKNOWN REDACTED
local_changes UNKNOWN UNKNOWN REDACTED
defaults_changed UNKNOWN UNKNOWN UNKNOWN
source.revision UNKNOWN UNKNOWN a749064
source.configuration UNKNOWN UNKNOWN trusted/team
installation.version UNKNOWN UNKNOWN 0.1.0.pre.1
installation.revision UNKNOWN UNKNOWN REDACTED

Summary by CodeRabbit

  • Updates

    • Review-app deployment and deletion workflows now use cpflow 6.0.1. Other generated workflows remain on version 5.2.0.
    • Review-app workflows now use composite actions from their pinned upstream release rather than repository-maintained copies.
  • Documentation

    • Updated version guidance and links for the review-app workflows and local cpflow setup.

justin808 and others added 2 commits October 10, 2026 22:28
cpflow 6.0.1 loads its composite actions from the pinned upstream ref
again, so the review-app deploy and delete workflows no longer need
the copies under .github/actions/cpflow-*. Move the gem and both
callers to the v6.0.1 commit, delete the copies, and remove the
contract check and specs that existed only to keep them in step.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@justin808

justin808 commented Oct 11, 2026 •

Copy link
Copy Markdown
Member Author

Earlier review — findings are not automatically resolved. Latest local review: #862 (comment)

Earlier local review

Local Adversarial Review

Reviewed revision: 3abce9c

Outcome: No open findings; closed and optional findings are in history.

Coverage: anthropic/claude: Supplied diff only; unchanged source and test execution are unavailable to this reviewer.

Usage and attribution in the PR description.

Review evidence and history

Commit: Upgrade cpflow to 6.0.1 and drop vendored actions

Finding details

  • F1 risk: Nothing in the diff shows 6.0.1 no longer needs caller-side action copies — Dismissed — The v6.0.1 reusable deploy workflow has no ./.github/actions reference and six ./.cpflow/.github/actions references, and the tag resolves to the pinned commit. A review app is deployed and deleted from this branch before merge as the end-to-end proof. · Reported by: anthropic/claude · last recorded at 3abce9c

  • F2 risk: Another workflow or config might still reference the deleted action directories — Dismissed — No workflow or Dependabot config in this repository references a local cpflow action; the v5.2.0 workflows use upstream action references. · Reported by: anthropic/claude · last recorded at 3abce9c

  • F3 nit: Clean-fixture baseline assertion was removed — documented nit — A one-line baseline example was restored in the next commit. · Reported by: anthropic/claude · last recorded at 3abce9c

  • F4 nit: Doc states there are no local copies without enforcing it — documented nit — Stale copies would be inert under 6.0.1. · Reported by: anthropic/claude · last recorded at 3abce9c

Review coverage:

Coverage excerpts may be incomplete or misidentified; inspect the original reports.

  • anthropic/claude: Supplied diff only; unchanged source and test execution are unavailable to this reviewer.

Unverified report excerpt · anthropic/claude:

Repository criteria: supplied (AGENTS.md from 23cbd83927daf15e9258e3c249a6c801eff4c7be).

- **Inspected:** the supplied diff only.
- **Not inspected:** the checkout. It lies outside the directory the file tools are confined to, so every read was refused, and Git commands are unavailable.
- **Tests run:** none. `bundle exec rspec`, `bundle exec rubocop` and `bin/check-cpflow-review-app-contract` were not executed, so there is no before/after evidence.
- **Missing context:**
  - The upstream `control-plane-flow` source at `6aa575780f2d9175755881b79cbb3253adbc9c1f`: whether that SHA is the `v6.0.1` tag, and whether its reusable workflows load composite actions from upstream rather than from the caller repository.
  - The unchanged workflows for staging, cleanup, help and promotion, plus `dependabot.yml`, lint configs and any docs outside the diff that may still name `.github/actions/cpflow-*`.
  - The full `Gemfile.lock`: whether it has a `CHECKSUMS` section with a `cpflow` entry, and whether 6.0.1's dependency list matches the unchanged lines under `cpflow (6.0.1)`.
  - The installed 6.0.1 gem's `lib/github_flow_templates`, which the contract checker compares against.

Execution metadata

Round Commit Reviewer Model Effort Prompt Findings Tokens Cost
1 3abce9c anthropic/claude claude-opus-5-5 UNKNOWN Shaka default · criteria 23cbd83 4 (2 dismissed, 2 documented) UNKNOWN UNKNOWN
Round 1 · 3abce9c · anthropic/claude · effort UNKNOWN · 4 findings

Coverage

Repository criteria: supplied (AGENTS.md from 23cbd83).

  • Inspected: the supplied diff only.
  • Not inspected: the checkout. It lies outside the directory the file tools are confined to, so every read was refused, and Git commands are unavailable.
  • Tests run: none. bundle exec rspec, bundle exec rubocop and bin/check-cpflow-review-app-contract were not executed, so there is no before/after evidence.
  • Missing context:
    • The upstream control-plane-flow source at 6aa575780f2d9175755881b79cbb3253adbc9c1f: whether that SHA is the v6.0.1 tag, and whether its reusable workflows load composite actions from upstream rather than from the caller repository.
    • The unchanged workflows for staging, cleanup, help and promotion, plus dependabot.yml, lint configs and any docs outside the diff that may still name .github/actions/cpflow-*.
    • The full Gemfile.lock: whether it has a CHECKSUMS section with a cpflow entry, and whether 6.0.1's dependency list matches the unchanged lines under cpflow (6.0.1).
    • The installed 6.0.1 gem's lib/github_flow_templates, which the contract checker compares against.

Findings

  1. risk — .github/workflows/cpflow-deploy-review-app.yml:42, .github/workflows/cpflow-delete-review-app.yml:44, bin/check-cpflow-review-app-contract:15-18. The change rests on the claim that 6.0.1 no longer needs caller-side action copies, and nothing in the diff demonstrates it.

    • Failing state: if the reusable workflow at 6aa5757… still resolves ./.github/actions/cpflow-* in the caller's checkout, both review-app workflows fail at their first composite-action step.
    • Why local checks miss it: the checker reads only the gem's caller templates, and the removed action_errors was the only local link between repo and release actions. The spec and contract script would stay green.
    • Evidence gap: the SHA-to-tag mapping is likewise asserted only by the # v6.0.1 comment and the SHA constant. A real deploy and delete run of the review-app pair on this pin is the missing evidence.
  2. risk — .github/actions/cpflow-preview-promotion/action.yml:1 (deleted), along with the other seven deleted action directories. The deletion removes actions the review-app pair never used (cpflow-preview-promotion, cpflow-wait-for-health, cpflow-detect-release-phase).

    • Failing state: any unchanged workflow with uses: ./.github/actions/cpflow-…, or a Dependabot or lint config listing those directories, now points at a missing path. A promotion or staging workflow would fail only when next triggered, not in PR CI.
    • Mitigating evidence: the base doc text said the older cohort "still loads its actions from its own pinned upstream source", which makes this unlikely.
    • Check needed: grep for .github/actions/cpflow- in the checkout, which I could not run.
  3. nit — spec/cpflow_review_app_contract_spec.rb:116 (removed "accepts the unchanged local actions"). This was the only assertion that CpflowReviewAppContract.check(fixture) is empty for an unmodified fixture. The surviving negative cases use include(a_string_including(...)), and the only positive check runs the script against the real root. Keeping a one-line be_empty baseline (renamed) would show the copied fixture is clean before each mutation.

  4. nit — .controlplane/docs/testing-cpflow-github-actions.md:46-48. "This repository checks in no .github/actions/cpflow-* copies" is now a stated rule with no enforcement. Re-adding stale copies fails nothing. They are probably inert under 6.0.1, so either drop the sentence's normative tone or add a one-line absence check.

Observations (not counted)

  • Trust direction: under 6.0.0 the composite actions ran from this repo at the triggering event's revision. Under 6.0.1 they come from an immutable upstream SHA. If finding 1's claim holds, this narrows trust rather than widening it. Caller permissions, secrets mapping and if: guards are unchanged.
  • Lost test coverage: the removed "isolated composite action command stubs" context covered hostile-input handling in cpflow-setup-environment and the ACTION_PATH binding in the delete action. That behaviour now lives entirely upstream and is untested here. This follows from the design rather than being a defect, but it leaves the pin review as the only control.
  • Removed doc paragraph: the testing doc no longer explains the separate checkout of PR code under app/. The retained sentence that REVIEW_APP_PREFIX and CPLN_ORG_STAGING take precedence over the PR's controlplane.yml now stands without its rationale, and I could not confirm it still holds for 6.0.1.
  • Revert sensitivity: reverting the pin fails "moves deploy and delete together to the released source" and both v6.0.1 output assertions. Reverting only the action deletions fails nothing.
  • Simplicity: the change is a net deletion. The gem_root inlining in check is correct, and I see nothing further to remove from the diff alone.
  • Docs consistency: within the diff, every 6.0.0 and 68b5d83… mention is updated consistently across the five docs, both callers, Gemfile, lockfile, checker and spec.

REVIEWED 3abce9c BY anthropic/claude EFFORT UNKNOWN FINDINGS 4

REVIEWED 3abce9c BY anthropic/claude EFFORT UNKNOWN FINDINGS 4

REVIEWED 3abce9c BY anthropic/claude EFFORT UNKNOWN FINDINGS 4

@github-actions

Copy link
Copy Markdown

🚀 Quick Review App Commands

Welcome! Here are the commands you can use in this PR:
They require the repository to have cpflow review apps configured, including the CPLN_TOKEN_STAGING secret.

+review-app-deploy

Deploy your PR branch for testing.

+review-app-delete

Remove the review app when done.

+review-app-help

Show detailed instructions, environment setup, and configuration options.

Comment +review-app-help for full setup details.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 11, 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-10-11T08:35:19.683279Z 13a447c 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.

@justin808

Copy link
Copy Markdown
Member Author

Local Adversarial Review

Reviewed revision: 13a447c

Outcome: No open findings; closed and optional findings are in history.

Coverage: anthropic/claude: Supplied diff only; unchanged source and test execution are unavailable to this reviewer.

Usage and attribution in the PR description.

Review evidence and history

Commit: Keep a clean-fixture baseline in the contract spec

Finding details

  • F1 risk: Nothing in the diff shows 6.0.1 no longer needs caller-side action copies — Dismissed — The v6.0.1 reusable deploy workflow has no ./.github/actions reference and six ./.cpflow/.github/actions references, and the tag resolves to the pinned commit. A review app is deployed and deleted from this branch before merge as the end-to-end proof. · Reported by: anthropic/claude · last recorded at 3abce9c

  • F2 risk: Another workflow or config might still reference the deleted action directories — Dismissed — No workflow or Dependabot config in this repository references a local cpflow action; the v5.2.0 workflows use upstream action references. · Reported by: anthropic/claude · last recorded at 3abce9c

  • F3 nit: Clean-fixture baseline assertion was removed — documented nit — A one-line baseline example was restored in the next commit. · Reported by: anthropic/claude · last recorded at 3abce9c

  • F4 nit: Doc states there are no local copies without enforcing it — documented nit — Stale copies would be inert under 6.0.1. · Reported by: anthropic/claude · last recorded at 3abce9c

Review coverage:

Coverage excerpts may be incomplete or misidentified; inspect the original reports.

  • anthropic/claude: Supplied diff only; unchanged source and test execution are unavailable to this reviewer.

Unverified report excerpt · anthropic/claude:

- **Inspected:** the supplied diff only, in full: five docs, the nine deleted files under `.github/actions/cpflow-*`, both review-app caller workflows, `Gemfile`, `Gemfile.lock`, `bin/check-cpflow-review-app-contract`, and `spec/cpflow_review_app_contract_spec.rb`.
- **Tests run:** none. I did not execute candidate code, and no before/after reproduction was supplied.
- **Missing context:**
  - The checkout at the pinned commit was unreadable (file tools are confined to an empty working directory) and Git is unavailable. I could not read unchanged regions of the changed files or search the rest of the repository.
  - I could not inspect the cpflow 6.0.1 gem or the upstream workflows at `6aa575780f2d9175755881b79cbb3253adbc9c1f`. Whether that SHA is the `v6.0.1` tag, and whether 6.0.1 loads its composite actions from upstream, are both taken from the change's own docs, not observed.
  - I could not see the full `Gemfile.lock`, so I cannot tell whether it has a `CHECKSUMS` section or whether 6.0.1's dependency list differs outside the hunk shown.

Execution metadata

Round Commit Reviewer Model Effort Prompt Findings Tokens Cost
2 13a447c anthropic/claude claude-opus-5-5 UNKNOWN Shaka default · criteria 23cbd83 0 UNKNOWN UNKNOWN
Round 2 · 13a447c · anthropic/claude · effort UNKNOWN · 0 findings

Repository criteria: supplied (trusted AGENTS.md at 23cbd83927daf15e9258e3c249a6c801eff4c7be). It contains no rule this diff touches beyond routing Ruby/Bundler commands through bin/conductor-exec.

Coverage

  • Inspected: the supplied diff only, in full: five docs, the nine deleted files under .github/actions/cpflow-*, both review-app caller workflows, Gemfile, Gemfile.lock, bin/check-cpflow-review-app-contract, and spec/cpflow_review_app_contract_spec.rb.
  • Tests run: none. I did not execute candidate code, and no before/after reproduction was supplied.
  • Missing context:
    • The checkout at the pinned commit was unreadable (file tools are confined to an empty working directory) and Git is unavailable. I could not read unchanged regions of the changed files or search the rest of the repository.
    • I could not inspect the cpflow 6.0.1 gem or the upstream workflows at 6aa575780f2d9175755881b79cbb3253adbc9c1f. Whether that SHA is the v6.0.1 tag, and whether 6.0.1 loads its composite actions from upstream, are both taken from the change's own docs, not observed.
    • I could not see the full Gemfile.lock, so I cannot tell whether it has a CHECKSUMS section or whether 6.0.1's dependency list differs outside the hunk shown.

Prior rounds

  • F1, F2 (dismissed): not raised again. The change did not make them worse, and I had no new evidence either way because of the access limits above.
  • F3 (clean-fixture baseline removed): resolved by 13a447c. spec/cpflow_review_app_contract_spec.rb:73-75 adds "accepts the unchanged callers", asserting CpflowReviewAppContract.check(fixture) is empty on the untouched fixture, so the rejection cases again have a passing baseline.
  • F4 (documented nit): unchanged, not raised again.

Findings

no findings

Observations (not classed, not counted):

  • Correctness: within the diff the version/SHA swap is consistent everywhere it appears: both callers, VERSION/SHA in the checker, Gemfile, both Gemfile.lock lines, the spec's release_sha and table rows, and all five docs. No 6.0.0 or 68b5d83… string remains in any added or context line shown. The diff shows no remaining use of the removed gem_root local or action_errors.
  • Security and trust: removing action_errors drops the byte-identity and executable-bit gate on local action copies. That is safe only if the 6.0.1 reusable workflows no longer run caller-side actions, which is the dismissed F1 premise. The caller permission, ref-pinning and release-comment gates are untouched in the diff.
  • Tests:
    • Reverting the pins, the Gemfile or the lockfile would fail the specs at spec/cpflow_review_app_contract_spec.rb:13, :30, :54, :109 and :116.
    • Reverting the action deletion alone would fail nothing, since no check asserts the directories are absent (this is F4).
    • The deleted "isolated composite action command stubs" block exercised shell-input handling in the local copies of cpflow-setup-environment and cpflow-delete-control-plane-app. With the copies gone that coverage rests entirely with upstream.
  • Contract drift: the new .controlplane/readme.md:9 link points at control-plane-flow/blob/v6.0.1/..., a tag ref. It is a documentation link, not a workflow pin; I did not verify that it resolves.
  • Simplicity: nothing further to delete; the change is itself a net removal.

REVIEWED 13a447c BY anthropic/claude EFFORT UNKNOWN FINDINGS 0

REVIEWED 13a447c BY anthropic/claude EFFORT UNKNOWN FINDINGS 0

@github-actions

Copy link
Copy Markdown

No description provided.

@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 16c5c805-2b9e-4bee-923a-4ddf187fe7af



📥 Commits

Reviewing files that changed from the base of the PR and between 23cbd83 and 13a447c.




⛔ Files ignored due to path filters (1)
  • Gemfile.lock is excluded by !**/*.lock



📒 Files selected for processing (20)
  • .controlplane/docs/testing-cpflow-github-actions.md
  • .controlplane/readme.md
  • .controlplane/shakacode-team.md
  • .github/actions/cpflow-build-docker-image/action.yml
  • .github/actions/cpflow-delete-control-plane-app/action.yml
  • .github/actions/cpflow-delete-control-plane-app/delete-app.sh
  • .github/actions/cpflow-detect-release-phase/action.yml
  • .github/actions/cpflow-preview-promotion/action.yml
  • .github/actions/cpflow-preview-promotion/preview-promotion.sh
  • .github/actions/cpflow-resolve-review-config/action.yml
  • .github/actions/cpflow-setup-environment/action.yml
  • .github/actions/cpflow-validate-config/action.yml
  • .github/actions/cpflow-wait-for-health/action.yml
  • .github/cpflow-help.md
  • .github/testing-github-actions.md
  • .github/workflows/cpflow-delete-review-app.yml
  • .github/workflows/cpflow-deploy-review-app.yml
  • Gemfile
  • bin/check-cpflow-review-app-contract
  • spec/cpflow_review_app_contract_spec.rb



💤 Files with no reviewable changes (10)
  • .github/actions/cpflow-delete-control-plane-app/action.yml
  • .github/actions/cpflow-wait-for-health/action.yml
  • .github/actions/cpflow-detect-release-phase/action.yml
  • .github/actions/cpflow-build-docker-image/action.yml
  • .github/actions/cpflow-preview-promotion/preview-promotion.sh
  • .github/actions/cpflow-delete-control-plane-app/delete-app.sh
  • .github/actions/cpflow-preview-promotion/action.yml
  • .github/actions/cpflow-resolve-review-config/action.yml
  • .github/actions/cpflow-setup-environment/action.yml
  • .github/actions/cpflow-validate-config/action.yml



Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 2 remain after this review.





Walkthrough

The review-app deploy and delete workflows and local cpflow dependency are updated to version 6.0.1. The checked-in cpflow composite actions and their contract checks are removed. Documentation and contract tests are updated for the new release pins and action source.

Changes

cpflow release and action migration

Layer / File(s) Summary
Update release pins and contract checks
.github/workflows/cpflow-*.yml, Gemfile, bin/check-cpflow-review-app-contract, spec/cpflow_review_app_contract_spec.rb
The deploy and delete workflow references and local cpflow dependency now target 6.0.1. The contract checker and tests expect the updated version and commit.
Remove checked-in composite actions
.github/actions/cpflow-*, bin/check-cpflow-review-app-contract, spec/cpflow_review_app_contract_spec.rb
The checked-in cpflow composite actions and scripts are deleted. The checker no longer compares local action files with released files, and tests for the local actions are removed.
Update release and action documentation
.controlplane/docs/testing-cpflow-github-actions.md, .controlplane/readme.md, .controlplane/shakacode-team.md, .github/cpflow-help.md, .github/testing-github-actions.md
Documentation updates the deploy and delete pair to 6.0.1 and describes loading composite actions from the pinned upstream source. Upgrade instructions no longer include maintaining local action copies.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 13a44

No actionable merge-blocking issue was established. Normal checks should still run before merge, including the contract check against the installed cpflow 6.0.1 gem.

Pre-merge checks | Passed 4 | Failed 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (9 skipped: 9 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Description Check Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check Passed The title clearly and concisely summarizes the two main changes: upgrading cpflow to 6.0.1 and removing vendored actions.

Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (9 skipped: 9 unsupported.)


  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR




🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR





  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

No description provided.

@claude

claude Bot commented Oct 11, 2026

Copy link
Copy Markdown

Reviewed: no blocking issues found.

  • Both review-app callers, the Gemfile/lockfile, the validator constants (VERSION/SHA) and the spec all agree on 6.0.1 / 6aa5757….
  • Removing the vendored .github/actions/cpflow-* copies is consistent with the docs updates. No stale references to those paths or the old 6.0.0 SHA remain in the repo.
  • Pins stay as full SHAs with readable version comments, and the security-relevant guard conditions are unchanged.
  • The spec gained an "accepts the unchanged callers" positive case, which is good.

Not verified: I didn't run bin/check-cpflow-review-app-contract or rspec locally, and I didn't confirm that SHA 6aa5757… is the v6.0.1 tag upstream. Worth checking in CI or with git ls-remote.

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

🎉 Deploy Complete!

Open Review App

Deployment successful for PR #862, commit 13a447c

🎮 Control Plane Console
📋 View Completed Action Build and Deploy Logs

@github-actions
github-actions Bot temporarily deployed to review/qa-react-webpack-rails-tutorial-862 October 11, 2026 08:34 Destroyed
@greptile-apps

greptile-apps Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

[High impact] The inspected changes appear safe to merge, with no actionable defect found.

Summary

Updates the review-app deploy/delete pair and local cpflow dependency to 6.0.1. Removes vendored actions and their matching checks.

  • Review-app workflows and local cpflow now use release 6.0.1.

Reviews (1) · Last reviewed commit: "Keep a clean-fixture baseline in the con..." · Reviewed by Greptile

@github-actions

Copy link
Copy Markdown

No description provided.

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

✅ Review App Deleted

Review app for PR #862 is deleted

🎮 Control Plane Console
📋 View Workflow Logs

@justin808 justin808 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤖 Claude Code · Anthropic · claude-opus-5-5 · medium

Code Walkthrough

Review-app deploys and deletes now run cpflow 6.0.1, whose actions come from the pinned upstream commit, so this repository stops carrying copies of them.

The pin moves as a pair

The gem pin, the deploy caller and the delete caller move from the v6.0.0 commit to the v6.0.1 commit, and the contract constants follow. Apart from the ref, both callers already equal the 6.0.1 templates.

The copies go away

Under 6.0.0 the reusable workflows ran actions checked in under .github/actions/cpflow-*. Under 6.0.1 they run the same actions from the upstream checkout at the pinned commit, as 5.3.0 did. The eight directories are deleted. So is the contract check that compared them with the gem, and the specs that exercised them; that behaviour is now upstream's to test. A baseline example still proves an unmodified fixture passes the contract check.

What was not changed

Staging, cleanup, help and production promotion keep their v5.2.0 pin; they never used the copies. The customized validator stays. The docs keep the rule that REVIEW_APP_PREFIX and CPLN_ORG_STAGING stay set.

Validation and rollback

A review app was deployed, smoked and deleted with this branch's workflows; the logs show all actions running from the upstream checkout. Reverting returns review apps to 6.0.0 with its copies.

Gate Result on 13a447c
test (22.x, 3.4.6): Rspec CI, JS CI, Lint CI success
smoke / Demo fleet smoke success
deploy / deploy (branch dispatch, run 38125208886) success
delete-review-app (branch dispatch, run 38125842858) success
claude-review success
Greptile Review success
CodeRabbit success

Walkthrough for commit 13a447cdcac42f1bbe06e496825b769bcedadc82. This is a COMMENT, not an approval.

@justin808

Copy link
Copy Markdown
Member Author

🤖 Codex · OpenAI · gpt-6.1-sol (configured) · medium

Post-implementation validation

PR disposition (task owner): Merge

The change removes the vendored actions the maintainer objected to, and a review app deployed, smoked and deleted on this head using upstream actions.

Next action (task owner): The maintainer merges this head under Ask.

Verification conclusion: Proceed

This delivers the maintainer’s requested simplification while preserving demonstrated deployment and cleanup behavior. The resulting reduction in repository maintenance makes this approach worth choosing again.

Head: 13a447cdcac42f1bbe06e496825b769bcedadc82

Unresolved concerns: none

Required checks, reviews, and merge authority still apply.

Supporting analysis and execution details

Conclusion: Proceed

The change removes unwanted generated copies and their synchronization burden. Reported deployment and deletion evidence supports preserving the review-app outcome.

The two commits match the planned migration and baseline-spec repair: 21 files, 45 insertions, 1,479 deletions; other callers retain v5.2.0. Two review rounds show no recurring approach problem.

Maintenance decreases without new dependencies or configuration. Quantified time savings and usage frequency are unknown.

Alternative considered: Keeping v6.0.0 preserves local action inspection and equality checks but retains unwanted duplication. Immutable upstream pins, retained caller contracts, and the reported canary justify retiring those local guarantees.

observed model: UNKNOWN; configured model: gpt-6.1-sol · recorded effort: medium

Prompt: Shaka default.

[
  {
    "configuration": [
      "openai",
      "gpt-6.1-sol",
      "UNKNOWN",
      "medium"
    ],
    "usage": {
      "input_tokens": 37556,
      "cached_input_tokens": 12288,
      "cache_write_input_tokens": 0,
      "output_tokens": 79,
      "reasoning_output_tokens": 0,
      "total_tokens": 37635
    }
  },
  {
    "configuration": [
      "openai",
      "gpt-6.1-sol",
      "UNKNOWN",
      "medium"
    ],
    "usage": {
      "input_tokens": 40319,
      "cached_input_tokens": 37376,
      "cache_write_input_tokens": 0,
      "output_tokens": 308,
      "reasoning_output_tokens": 21,
      "total_tokens": 40627
    }
  },
  {
    "configuration": [
      "openai",
      "gpt-6.1-sol",
      "UNKNOWN",
      "medium"
    ],
    "usage": {
      "input_tokens": 43301,
      "cached_input_tokens": 40192,
      "cache_write_input_tokens": 0,
      "output_tokens": 266,
      "reasoning_output_tokens": 0,
      "total_tokens": 43567
    }
  }
]

Ruby verified report shape and head binding. The reviewer judged value; the task owner handles concerns and merge readiness. This does not attest to technical review.

@justin808 justin808 added the awaiting-merge-approval Ready under Ask: merge this commit or approve it so the agent merges label Oct 11, 2026
@justin808

Copy link
Copy Markdown
Member Author

Squash commit message for 13a447c. Paste the title and the body into GitHub's squash merge boxes.

Upgrade cpflow to 6.0.1 and drop vendored actions (#862)
Move the cpflow gem and the review-app deploy and delete workflows from
6.0.0 to 6.0.1, pinned to the v6.0.1 commit.

cpflow 6.0.1 loads its composite actions from the pinned upstream commit
again, so delete the eight copies under .github/actions/cpflow-* that
6.0.0 required, the contract check that compared them with the gem, and
the specs that exercised them.

Staging, stale-app cleanup, help and production promotion stay on their
reviewed v5.2.0 pin.

No breaking changes. Security: the actions that receive the staging
token now come from the pinned upstream commit instead of the pull
request's own revision. Existing review apps are unaffected; new deploys
and deletes use 6.0.1 after merge.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

@justin808
justin808 merged commit a749064 into master Oct 11, 2026
16 checks passed
@justin808
justin808 deleted the justin808-claude/5121-upgrade-cpflow-6-0-1 branch October 11, 2026 08:49
@github-actions

Copy link
Copy Markdown

No description provided.

@github-actions

github-actions Bot commented Oct 11, 2026 •

Copy link
Copy Markdown

✅ Review App Deleted

Review app for PR #862 is deleted

🎮 Control Plane Console
📋 View Workflow Logs

This branch was successfully deployed

No deployments
review/qa-react-webpack-rails-tutorial-862 — 13a447cd Deployed Oct 11, 2026 by github-actions[bot]
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.

Follow-up: 6.0.0 makes every app vendor cpflow's composite actions; restore loading them from the pinned upstream ref

1 participant