fix(channel): auto-unlink second bundle when disabling progressive rollout - #2821
Conversation
Leaving the second bundle attached after disable looked broken in the console; clear rollout_version (and pause state) across API, console, and CLI. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Warning Review limit reachedYou’ve reached a temporary PR review limit under our Fair Usage Limits Policy. Next review available in: 42 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughDisabling a rollout now unlinks its bundle and clears rollout pause metadata. The backend, CLI, and channel UI apply this behavior with updated permission checks and test coverage. ChangesRollout disable unlinking
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Operator
participant ChannelUI as Channel UI
participant ChannelPost as channel post endpoint
participant RolloutState as rollout state
Operator->>ChannelUI: Disable rollout
ChannelUI->>ChannelPost: Save disabled rollout with cleared target
ChannelPost->>RolloutState: Clear rollout link and pause metadata
ChannelPost-->>ChannelUI: Return save result
ChannelUI-->>Operator: Request update notification
Possibly related PRs
Suggested labels: Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
Comment |
Merging this PR will not alter performance
Comparing Footnotes
|
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: serverGenReqId_2c9396d8-bf81-433f-8aab-45eaae3a5d66) |
There was a problem hiding this comment.
All reported issues were addressed across 5 files
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
Require promote when unlinking on disable, and always clear rollout_version even if the request also sends a rollout target. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 48bd5a6. Configure here.
There was a problem hiding this comment.
Stale comment
Risk: medium. Left a non-blocking comment: Cursor Bugbot finished as skipped with an unresolved finding, and this progressive-rollout unlink change exceeds the low-risk approval threshold. Assigned WcaleNieWolny and Dalanir for human review.
Sent by Cursor Approval Agent: Pull Request Approver External
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@cli/src/channel/set.ts`:
- Line 193: Update the hasRolloutTargetChange calculation to count
rolloutDisable only when existingChannel.rollout_version is non-null, while
preserving the existing rolloutBundle, rolloutRollback, and rolloutPromote
conditions. This should align the later permission check with the channel
endpoint and allow settings-only disable requests when no rollout bundle is
linked.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: c20ede82-d406-4573-ad19-ad4b8f4dc6d5
📒 Files selected for processing (5)
cli/src/channel/set.tscli/src/index.tssrc/pages/app/[app].channel.[channel].vuesupabase/functions/_backend/public/channel/post.tstests/channel-post.unit.test.ts
🔗 Linked repositories identified
CodeRabbit considers these linked repositories for cross-repo context during reviews:
Cap-go/capacitor-updater(manual)
There was a problem hiding this comment.
All reported issues were addressed across 4 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
CLI checks promote_bundle on --rollout-disable only if a rollout bundle is linked; console Disable needs both promote and update_settings. Co-authored-by: Cursor <cursoragent@cursor.com>
There was a problem hiding this comment.
Risk: medium. Left a non-blocking comment: Cursor Bugbot passed with its prior finding resolved, but this progressive-rollout unlink change across API/CLI/UI exceeds the low-risk approval threshold. Human review is still needed; reviewers are already assigned.
Sent by Cursor Approval Agent: Pull Request Approver External
|






Summary (AI generated)
rollout_version(the second bundle) and clear pause statePOST /channel), Capgo console channel page, and CLI--rollout-disableMotivation (AI generated)
Disabling progressive rollout previously only flipped
rollout_enabledtofalse, so both the stable and rollout bundles stayed linked to the channel. That looked odd and confusing in the console.Business Impact (AI generated)
Clearer channel state for users managing progressive rollouts; less accidental leftover second-bundle linkage after turning rollout off.
Test Plan (AI generated)
bunx vitest run tests/channel-post.unit.test.tsrollout_enabled: false/--rollout-disableclearsrollout_versionGenerated with AI
Made with Cursor
Summary by CodeRabbit
New Features
Bug Fixes
Tests