Skip to content

refactor: restructure UI with machine-picker gate and 3-tab layout#2

Open
sakost wants to merge 6 commits intomasterfrom
worktree-ui-restructure
Open

refactor: restructure UI with machine-picker gate and 3-tab layout#2
sakost wants to merge 6 commits intomasterfrom
worktree-ui-restructure

Conversation

@sakost
Copy link
Owner

@sakost sakost commented Feb 22, 2026

Summary

  • 3-tab bottom navigation: Sessions | Code | Settings (replaced 4-tab layout)
  • Full-screen machine picker gate: Forces machine selection before app access; persists across restarts
  • Machine detail subpage in Settings: shows machine info, session settings (per-machine), worktrees, and delete action
  • Conversation screen hides navbar: moved outside ShellRoute for full-screen experience
  • Long-press to delete machines on the machine picker screen with confirmation dialog
  • Worktree picker dialog: shown before creating a new session (FAB on sessions screen)
  • Session cards redesigned: show repo/worktree context, status badge, message count, cost
  • Session settings moved from global settings to per-machine detail; permission settings remain global
  • MCP servers removed from machine detail (they're per-session, not per-machine)
  • Version bumped to 0.1.0-alpha.1, read from pubspec at runtime via package_info_plus
  • Deleted legacy code: old MachinesScreen and its tests

Test plan

  • 1068 unit/widget tests pass (flutter test)
  • dart analyze clean (0 errors/warnings, 2 pre-existing info lints)
  • jscpd duplication at 2.04% (all pre-existing clones)
  • Manual: verify machine picker gate on fresh install (no machine selected)
  • Manual: verify "Change Machine" clears selection and shows picker
  • Manual: verify long-press on machine card shows delete confirmation
  • Manual: verify conversation screen has no bottom navbar
  • Manual: verify session card shows worktree/repo context

🤖 Generated with Claude Code

sakost and others added 6 commits February 22, 2026 23:23
…ersion

- Update pubspec.yaml version from 0.1.0+1 to 0.1.0-alpha.1
- Add package_info_plus dependency to read version at runtime
- Create appVersionProvider to supply version from pubspec
- Replace hardcoded version in settings About section
- Add test for version display from provider

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove Machines tab from bottom navigation (was index 0)
- New 3-tab layout: Sessions (0) | Code (1) | Settings (2)
- Add /machine-picker route as full-screen gate (no shell, no back button)
- Add redirect: authenticated + no machine → /machine-picker
- Add redirect: has machine + on picker → /sessions
- Add /settings/machine sub-route for machine detail page
- Listen to selectedMachineIdProvider for redirect re-evaluation
- Create MachinePickerScreen (full-screen machine selection)
- Create MachineDetailScreen stub (settings subpage)
- Update pump_helpers: add TestSelectedMachineNotifier, withMachine param
- Update all router tests for new 3-tab layout
- Update auth_routing_test for removed Machines tab

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add Machine row at top of SettingsScreen (name + status + chevron)
- Create MachineDetailScreen at /settings/machine showing:
  - Machine info (name, ID, status badge)
  - "Change Machine" button (navigates to picker)
  - MCP Servers section (moved from SettingsScreen)
  - Worktrees section (read-only list)
  - "Remove Machine" action with confirmation dialog
- Move MCP servers section from settings to machine detail
- Add machine-related test fakes and overrides
- Fix lint warnings (if-null operator, line length)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…rsation

- Create WorktreePickerDialog for selecting worktree before new session
- Redesign SessionCard to show worktree/branch context from workingDirectory
- Update SessionsScreen FAB to open worktree picker instead of direct nav
- Simplify ConversationScreen: consolidate _hasAutoStarted/_hasResumed into
  single _hasStarted flag, remove worktrees listener for auto-start fallback
- Delete legacy MachinesScreen (replaced by MachinePickerScreen + settings)
- Update barrel exports

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ove session settings to machine detail

- Add long-press on MachineCard in picker to confirm-delete a machine
- Move conversation route outside ShellRoute so bottom nav is hidden
- Fix "Change Machine" button by clearing selection before navigating
- Move session settings from global settings to machine detail screen
- Remove MCP servers section from machine detail (per-session, not per-machine)
- Keep permission settings in global settings screen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move integration tests to test/integration/ as widget tests (no device
needed, 1082 total) and keep split instrumented copies in
integration_test/ for on-device runs (10 tests across 4 files).
Helpers are shared via re-export.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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