Repository navigation
Conversation
|
Warning Review limit reachedNext included review available in 3 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Advanced Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (64)
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. Comment |
…of an SDK traceback
fix: floor the auto-derived min_loc at 1
fix: reject diffs containing binary files instead of silently dropping them
fix: keep one assignment per file when merging chunk groups
fix: show UNKNOWN in status when a PR's live state cannot be fetched
fix: reject a remote-tracking --base up front instead of failing at PR creation
…hunks fix: carry every ancestor's hunks into stacked descendants
fix: make branch cleanup reliable on failure and in clean
fix: report fork-PR resolution errors instead of a traceback
chore: remove dead checkout-based branch helpers
fix: keep graph-backend plans acyclic
…dopt gh pr list --head also returns fork PRs and heads that merely start with the branch name, so find_open_pr now keeps only an exact, same-repository head. A failed link or lookup saves nothing, so adopt can be re-run; the error now says so, since the stack may already be partly registered. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
Keep the quoted-header normaliser and main's split_new_files_over parameter on parse_diff. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
adopt records the user's own branches and PRs in the plan's git state, so clean (and a re-split's cleanup) would close those PRs and delete the branches locally and remotely. Records now carry an adopted flag, set by adopt; cleanup counts adopted ones as done without touching them, so the plan is forgotten and the user's work is kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
feat: adopt already-built branches as a native stack
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
…nder its top branch adopt (from main) checked for an existing plan and saved one without selecting a branch, so with plans for other branches it hit the ambiguous plan error or refused over another branch's state. It now selects the stack's top branch first, as split does with its dev branch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
Keep both sides' tests; the merged-cleanup test patches plan_path, which cleanup now uses to find the plan. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
#146 (the base of this branch) is already in main, so the merge keeps main's code and adds only #168's change: an Anthropic token-count failure is an LLMError, and a rejected key names ANTHROPIC_API_KEY. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
feat: retarget a split whose base branch has merged
feat: group units that share names in the graph backend and name every group
feat: one plan per dev branch, plan dir out of git, atomic saves, and a plan-aware clean check
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
Since execute lays out any plan with dependency edges along its DAG, stacked or not, an unstacked child also sits on its parent's branch; rebuilding the parent on resume would rewrite the base under the child's open PR. Keep recorded ancestors whenever the plan has dependencies. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
fix: resume execute past groups whose PRs already exist, and retry transient push errors
fix: report an Anthropic token-count failure as an LLM error, naming a rejected key
Validate settings (now via _split_settings) before the existing-plan cleanup, keep the dry-run refusal and plain-branch typo check on top of main's current split flow. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
…before-rev-parse Brings in the base PR (#136) as already updated with origin/main, so this stacked PR is current with main and shares its base's conflict resolution. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015rnEEjXWDBdePRhKMmZr1w
|
This change is already in Generated by Claude Code |
Summary
In
split, the "Clean up and proceed with re-splitting?" step — which closes the existing sub-PRs, deletes their remote branches and removes the plan — ran beforeSettings(...)was constructed. An invalid option pair (--min-loc 500 --max-loc 400), a missingANTHROPIC_API_KEY, or a negative--max-refinement-iterationswas therefore only reported after the user's live PRs had already been destroyed, with nothing re-created.Settingsdepends only on CLI options and the environment, so its construction (and the existing clean error handling) now happens right after_validate_inputs, before anything destructive.Stacked on #111 (
fix/split-dry-run-preamble), which owns the surrounding cleanup block.Test plan
test_bad_settings_never_reach_the_destructive_cleanup: with an executed plan on disk and--min-loc 500 --max-loc 400, exit 1 with the settings error and neither the confirm prompt,_cleanup_git_state, norextract_diffis reached — fails on the base--dry-run --partition-strategy graphwithout an API key still works, andexecutehas no equivalent hazard