# Split plan (draft)

Generated: 2026-01-25T18:08:26.316Z

This lists commits whose manual-review verdict suggests **splitting** (mixed concerns).
The “how to split” is captured here as a checklist so we can execute it mechanically during the rewrite (via `cherry-pick -n` + selective staging).

## 054 66c678451335 fix(ui): apply small review fixes

- Verdict: split
- Depends on:
  - none (but many of these are follow-ups to nearby feature commits: session model mode, new picker, settings, dropdown, sync backoff).

Files touched:
- M `expo-app/sources/-session/SessionView.tsx`
- M `expo-app/sources/app/(app)/new/pick/machine.tsx`
- M `expo-app/sources/app/(app)/settings/terminal.tsx`
- M `expo-app/sources/components/ConnectionStatusControl.tsx`
- M `expo-app/sources/components/OptionTiles.tsx`
- M `expo-app/sources/components/SettingsView.tsx`
- M `expo-app/sources/components/dropdown/DropdownMenu.tsx`
- M `expo-app/sources/utils/sync.ts`

Rewrite hints (from manual review):
- Keep subject (if not splitting): `fix(ui): apply small review fixes`
- If splitting by topic: convert into multiple commits scoped to the touched features (session model mode, new picker, settings terminal, dropdown chevron opacity, sync backoff).

## 059 f7f81497444d fix(modal): prevent non-dismissible WebAlertModal

- Verdict: split
- Depends on:
  - 

Files touched:
- M `expo-app/sources/__tests__/app/new/pick/machine.presentation.test.ts`
- A `expo-app/sources/components/ConnectionStatusControl.popover.test.ts`
- M `expo-app/sources/components/ConnectionStatusControl.tsx`
- M `expo-app/sources/components/Popover.test.ts`
- M `expo-app/sources/components/Popover.tsx`
- M `expo-app/sources/modal/components/WebAlertModal.tsx`

Rewrite hints (from manual review):
- If kept as a single commit: rewrite subject to reflect the actual scope (Popover + modal + portal).
- Preferred: split as described above and keep the original subject only for the WebAlertModal change.

## 082 3fbdc10018fe fix: tmux parsing/targeting + review feedback

- Verdict: split
- Depends on:
  - tmux semantics and consistent env formatting (this commit documents the assumptions).

Files touched:
- M `cli/bin/happy-dev.mjs`
- M `cli/docs/bug-fix-plan-2025-01-15-athundt.md`
- M `cli/scripts/__tests__/ripgrep_launcher.test.ts`
- M `cli/scripts/claude_version_utils.cjs`
- M `cli/scripts/claude_version_utils.test.ts`
- M `cli/scripts/env-wrapper.cjs`
- M `cli/scripts/ripgrep_launcher.cjs`
- M `cli/scripts/test-continue-fix.sh`
- M `cli/src/api/api.test.ts`
- M `cli/src/api/apiSession.ts`
- M `cli/src/api/types.ts`
- M `cli/src/claude/claudeLocal.ts`
- M `cli/src/claude/runClaude.ts`
- M `cli/src/utils/tmux.test.ts`
- M `cli/src/utils/tmux.ts`

Rewrite hints (from manual review):
- Rewrite subject to Conventional Commits: `fix(tmux): correct TMUX parsing and command targeting`

## 224 98bc00096e86 fix(i18n): localize Codex resume banner

- Verdict: split

Files touched:
- M `expo-app/sources/app/(app)/new/NewSessionWizard.tsx`
- M `expo-app/sources/text/translations/ca.ts`
- M `expo-app/sources/text/translations/en.ts`
- M `expo-app/sources/text/translations/es.ts`
- M `expo-app/sources/text/translations/it.ts`
- M `expo-app/sources/text/translations/ja.ts`
- M `expo-app/sources/text/translations/pl.ts`
- M `expo-app/sources/text/translations/pt.ts`
- M `expo-app/sources/text/translations/ru.ts`
- M `expo-app/sources/text/translations/zh-Hans.ts`

Rewrite hints (from manual review):
- If split:
- `fix(i18n): localize Codex resume banner`
- `refactor(new-session): use WizardSectionHeaderRow for wizard sections`
- `refactor(new-session): centralize permission mode options`
- If squashed: keep the “fix(i18n)” message but mention the refactor in the body.
