INNER CODE UNIT · Go
selectAndExecutePlan
umputun/ralphex · cmd/ralphex/main.go:354
func selectAndExecutePlan(ctx context.Context, o opts, req executePlanRequest, selector *plan.Selector) error {
// plan is optional only for review modes (ModeReview, ModeCodexOnly)
planOptional := req.Mode == processor.ModeReview || req.Mode == processor.ModeCodexOnly
planFile, err := selector.Select(ctx, o.PlanFile, planOptional)
if err != nil {
// check for auto-plan-mode: no plans found on default branch
handled, autoPlanErr := tryAutoPlanMode(ctx, err, o, req, selector)
if handled {
return autoPlanErr
}
return fmt.Errorf("select plan: %w", err)
}
req.PlanFile = planFile
// worktree mode: create worktree, chdir into it, run execution from there.
if req.Config.WorktreeEnabled && planFile != "" && modeRequiresBranch(req.Mode) {
return runWithWorktree(ctx, o, req)