Skip to content

feat(tui): show progress and confirmation when forking a session#29651

Open
kitlangton wants to merge 1 commit into
devfrom
worktree-fork-toast
Open

feat(tui): show progress and confirmation when forking a session#29651
kitlangton wants to merge 1 commit into
devfrom
worktree-fork-toast

Conversation

@kitlangton
Copy link
Copy Markdown
Contributor

@kitlangton kitlangton commented May 28, 2026

Forking gave no feedback: the dialog stayed open during the (potentially slow) fork, then silently navigated to a near-identical copy. Now the dialog shows a "Forking session…" spinner while the fork runs, then lands on the new session with a "Forked session" toast (or an error toast on failure).

Also moved <Toast/> from per-route mounts (home.tsx, session/index.tsx) to one mount in the app shell so a toast fired around route.navigate(...) survives the route remount.

Verified end-to-end via tuistory; typecheck passes.

What it looks like

After picking a fork point in the Fork dialog:

  ┌─ Fork session ───────────────┐
  │                              │
  │  ⠼ Forking session…          │   ← in-dialog spinner; spins until done.
  │                              │     Replaces the option list, so the
  └──────────────────────────────┘     dialog no longer looks frozen on a
                                       large/slow fork.

Then it lands on the new (forked) session and confirms:

  ┃                            ┌──────────────────┐
  ┃  Explain the architec…     │  Forked session  │   ← success toast,
  ┃                            └──────────────────┘     top-right, 4s.
  ▣  Build · Little Frank…                              (Error toast if
                                                         the fork failed.)

Forking gave no feedback: the dialog stayed open during the (potentially
slow) fork, then silently navigated to a near-identical copy. Now the
dialog shows a "Forking session…" spinner while the fork runs, then lands
on the new session with a "Forked session" toast (or an error toast on
failure).

Mount <Toast/> once in the app shell instead of per-route, so a toast
fired around route.navigate survives the route remount.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant