Connect the ChecksPanel PR draft generation to the global generation
slice, aligning its behavior with SourceControl. This allows detail
generation to continue in the background when navigating away or
switching worktrees, and guarantees that generated fields, terminal seeds,
and branch-preparation push requirements are restored on remount.
* Make Create PR intent resilient to worktree switching
Co-authored-by: Orca <help@stably.ai>
* Restrict PR creation sidebar actions to foreground worktrees
- Prevent switching tabs and opening the PR URL when a background
worktree's PR creation finishes.
- Extract commit eligibility checking into a dedicated module and
disable the commit message textarea during operations or when
ineligible.
- Fix flakiness in the remote runtime request connection test.
* Abort Create PR if branch changes during details generation
If the branch changes within the active worktree while review details
are being generated, the Create PR flow now aborts and shows a muted
notice prompting the user to retry.
- Allows worktree navigation during PR details generation without
treating it as an intent conflict.
- Adds localized strings for the new retry notice.
- Uses platform-independent paths in tests for cross-platform support.
---------
Co-authored-by: Orca <help@stably.ai>
* Persist commit message generation state across worktree switches
Introduce a new global store slice for commit message generation to prevent
in-flight requests from being orphaned or lost when the Source Control
sidebar is unmounted or when switching between worktrees.
- Key commit generation records by worktree ID/path in the Zustand store
- Hydrate completed messages back into the draft input when returning to
the originating worktree without overwriting active user edits
- Ensure the agent-selection dialog state remains bound to the target
worktree that initiated the generation
- Wait for the PR composer eligibility check before hydrating completed
PR field generations on sidebar remounts
* Route cancellations to starting runtime and prune stale worktree records
Ensure commit message and pull request generation cancellation requests
are always routed to the runtime environment that was selected when
the generation started, even if active settings change before
cancellation.
Additionally, prune commit message and pull request generation records
when worktrees are removed to prevent stale records from lingering in
the store.