Skip to content

feat(onboarding): add Code Mode setup step#643

Merged
Gagancreates merged 2 commits into
devfrom
feat/onboarding-code-mode-step
Jun 24, 2026
Merged

feat(onboarding): add Code Mode setup step#643
Gagancreates merged 2 commits into
devfrom
feat/onboarding-code-mode-step

Conversation

@Gagancreates

Copy link
Copy Markdown
Collaborator

Summary

Adds a new Code Mode step to onboarding (step 3, between Connect and Done; Completion shifts to 4), shown in both the Rowboat and BYOK paths and skippable like Connect Accounts.

The step lets users opt into Code Mode up front using their existing Claude Code or Codex subscription, without blocking onboarding on the ~200 MB engine downloads.

UX

  • Value-led copy: "Use your existing Claude Code or Codex subscription inside Rowboat to tackle coding tasks and unlock far more workflows, all without leaving the app." + the reminder to be signed in locally via claude login / codex login.
  • A master Enable code mode toggle that reveals per-agent toggles (Claude Code / Codex). Pre-fills from codeMode:checkAgentStatus — already-installed agents are pre-selected and the master starts on. A green check shows when an agent is already set up.
  • Continue does not block on downloads: for each selected-but-not-installed agent it kicks off codeMode:provisionEngine fire-and-forget in the main process and saves code-mode.json enabled (approval policy left at default ask, configured later in Settings). The download keeps running and its live % surfaces in Settings → Code Mode.
  • Skip for now advances without enabling/downloading; Back returns to Connect.

Implementation notes

  • Step plumbing: Step type 0|1|2|3…|4; index.tsx switch (case 3 = Code Mode, case 4 = Completion); step-indicator.tsx ROWBOAT/BYOK arrays gain a "Code" entry; handleNext/handleBack renumbered.
  • To make an onboarding-started download show progress in Settings, the module-level provisioning store (startProvisioning/useProvisioning/enabledOptimistic) was lifted out of settings-dialog.tsx into a shared lib/code-mode-provisioning.ts used by both. No behavior change to Settings.

Test plan

  • Reset onboarding; delete ~/.rowboat/engines/{claude,codex} for a clean download.
  • Walk to the new Code step in both paths; confirm indicator shows Welcome · (Model) · Connect · Code · Done.
  • Enable code mode → toggles appear → select an agent → Continue advances immediately.
  • Open Settings → Code Mode and confirm the selected agent shows the live download %.
  • Verify Skip / Back behave correctly.

Checks

  • tsc --noEmit clean across the renderer
  • npm run lint: only pre-existing errors (none in changed files)

Adds a new onboarding step (3, between Connect and Done; Completion moves
to 4) shown in both Rowboat and BYOK paths. It informs the user up front
that Code Mode needs Claude Code and/or Codex installed and signed in
locally (claude login / codex login), then offers a master 'Enable code
mode' toggle that reveals per-agent toggles.

Downloads do NOT block onboarding: on Continue, selected-but-not-yet-
installed engines are provisioned fire-and-forget in the main process,
and their live % surfaces in Settings -> Code Mode. Approval policy is
left at the default ('ask'); users adjust it later in Settings. The step
is skippable like Connect Accounts.

To make an onboarding-started download show its progress in Settings, the
module-level provisioning store (startProvisioning/useProvisioning) is
lifted out of settings-dialog.tsx into lib/code-mode-provisioning.ts and
shared by both.
- Show just the agent name (Claude Code / Codex) with a toggle and a
  green check when ready; drop the per-row download/sign-in clutter
- Value-led description: use your existing Claude Code or Codex
  subscription inside Rowboat, signed in locally via the terminal
@Gagancreates Gagancreates merged commit 6dbaa61 into dev Jun 24, 2026
2 checks passed
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.

1 participant