Skip to content

feat: implement Spawn view#112

Open
2witstudios wants to merge 3 commits intomainfrom
ppg/issue-85-spawn-view
Open

feat: implement Spawn view#112
2witstudios wants to merge 3 commits intomainfrom
ppg/issue-85-spawn-view

Conversation

@2witstudios
Copy link
Owner

Summary

  • Adds SpawnView.swift — SwiftUI form for spawning worktrees with agents from the iOS app
  • Includes name field, multi-line prompt editor, agent type picker (claude/codex/opencode), count stepper (1-10), base branch picker, and quick prompt templates section
  • Form validation ensures name is required and either prompt or template must be provided
  • Loading state disables controls during spawn, form clears on success, and navigates to the new worktree detail view on completion

Dependencies

Closes #85

Test plan

  • Verify form renders with all sections (name, agent, prompt, templates, base branch)
  • Verify Spawn button is disabled when name is empty
  • Verify Spawn button is enabled when name + prompt are filled
  • Verify Spawn button is enabled when name + template are selected (no prompt)
  • Verify agent type picker shows claude/codex/opencode variants
  • Verify count stepper bounds (1-10)
  • Verify templates section is hidden when no templates available
  • Verify template toggle selection (tap to select, tap again to deselect)
  • Verify loading spinner replaces Spawn button text during API call
  • Verify form clears on successful spawn
  • Verify navigation to WorktreeDetailView after spawn
  • Verify error message displays on spawn failure

SwiftUI form for spawning new worktrees with agents:
- Name field (required, used as branch suffix)
- Multi-line prompt TextEditor
- Agent type picker (claude/codex/opencode)
- Count stepper (1-10)
- Base branch picker (derived from manifest)
- Quick prompt templates section with toggle selection
- Form validation (name required, prompt or template required)
- Loading state during spawn with disabled controls
- Clear form on success
- Navigate to WorktreeDetailView on completion

Closes #85
@chatgpt-codex-connector
Copy link

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai
Copy link

coderabbitai bot commented Feb 27, 2026

Warning

Rate limit exceeded

@2witstudios has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 10 minutes and 41 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 34deb69 and 52e61fd.

📒 Files selected for processing (2)
  • ios/PPGMobile/PPGMobile/Views/Spawn/SpawnView.swift
  • src/commands/spawn.test.ts
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ppg/issue-85-spawn-view

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 and usage tips.

- Add .scrollDismissesKeyboard(.interactively) for keyboard dismiss
- Add .disabled(isSpawning) on Form to prevent edits during spawn
- Replace navigationDestination(isPresented:) with item: overload
  to eliminate showResult state and prevent blank navigation edge case
- Pass trimmedPrompt directly instead of falling back to template
  name as prompt text (template is sent separately)
- Add client-side name validation (alphanumeric + hyphens) with
  inline error message in footer
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.

Implement Spawn view

1 participant