Commit 348ee25e disabled the branch selector for local executors and
also blanked the branch value at submit time. This caused the backend
to fall back to Repository.DefaultBranch, which may contain whatever
branch was checked out at repo discovery time rather than "main".
Keep the selector disabled (cosmetic) but send the auto-selected
branch value so the backend uses the correct base branch.
* feat(web): add right-click context menu to move sidebar tasks between workflow steps
* fix: scope Move to submenu to task's own workflow steps
* fix: surgical rollback and disable actions during delete
* fix: wrap TaskItem in div for ContextMenuTrigger asChild ref forwarding
* refactor: unify right-click and 3-dot menus into single context menu
- Delete task-item-menu.tsx (DropdownMenu) — no longer needed
- TaskItem's 3-dot button now dispatches contextmenu event to trigger
the wrapping ContextMenu
- TaskItemWithContextMenu tracks open state and passes menuOpen to
TaskItem for hover visibility
- Add Duplicate item to the context menu
- Fix step color dots using block display
* fix: use Tailwind class for step color dots instead of inline style
* fix: disable Duplicate menu item until handler is implemented
* fix: defer move-to-step to let context menu close before optimistic update
* fix: defer move-to-step to let context menu close before optimistic update
* fix(github): reliable PR-task association across all launch paths
Three bugs caused inconsistent PR detection for agent-opened PRs:
- StartCreatedSession never called ensureSessionPRWatch
- Push detection bailed out when a pr_number=0 watch existed
- PR watch branch was never updated after agent branch switches
* fix: extract searchPRForExistingWatch to reduce nesting depth
* fix: address review feedback and fix e2e test timeouts
- Fix UNIQUE constraint error when associatePRFromPush was called with
an existing watch (update pr_number instead of creating new watch)
- Add UpdatePRWatchPRNumber to GitHubService interface
- Fix e2e test timeouts: increase budget to 180s, remove unnecessary
clickTab("Changes"), replace 35s hard wait with polling assertion
* fix(e2e): accept both /t/ and /s/ URL patterns in PR detection tests
Task cards in the Done column navigate to /t/<task-id> (task view),
not /s/<session-id> (session view). The toHaveURL assertion must
accept both URL patterns.