Skip to content

fix: threads keep working after their worktree is removed - #1304

Merged
donjor merged 6 commits into
hyprwsfrom
t3code/thread-worktree-self-nuke
Sep 27, 2026
Merged

donjor merged 6 commits into
hyprwsfrom
t3code/thread-worktree-self-nuke

Conversation

@donjor-agent

@donjor-agent donjor-agent Bot commented Sep 26, 2026 •

Copy link
Copy Markdown

🤖 claude/anthropic claude-opus-5-5 (high) · host
with worker claude/anthropic claude-opus-5-5 (low)

Supersedes #1303.

What Changed

A thread whose worktree and branch are removed under it keeps working.

Send

  1. Turn start keeps the socket up
  2. Thread moves to the project root
  3. Activity row: dead path, new checkout
  4. Pending turn continues at the root
  5. Footer: Worktree removed · moved to …
  6. No Undo on a recovery move
  7. Failed move: turn error, no Retry

Branch pick

  • No worktree yet: branch gets its own worktree
  • Existing worktree: thread rebinds to it
  • Project root: never switched

Why

ghb pr merge removes a thread's worktree and branch; the thread strands.

Closes #1047

UI Changes

Before

v1-before-cut.mp4

After

v4-1304-cut.mp4

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

Fork trailers

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no

@donjor
donjor force-pushed the t3code/thread-worktree-self-nuke branch from 7dafdc4 to a58e875 Compare September 26, 2026 21:00
@rsi-software-agent rsi-software-agent Bot added size:XL 500-999 effective changed lines (test files excluded in mixed PRs). and removed size:L labels Sep 26, 2026
@donjor
donjor force-pushed the t3code/thread-worktree-self-nuke branch 3 times, most recently from 5df392c to 5a6c2d4 Compare September 27, 2026 00:47
@donjor-agent donjor-agent Bot changed the title feat(server): move a thread to the project root when its worktree is gone fix: threads keep working after their worktree is removed Sep 27, 2026
donjor added a commit that referenced this pull request Sep 27, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
The turn-start checkout lease resolved the thread's worktree with orDie, so a
removed worktree became an RPC defect that closed the client websocket.

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
…r a checkout move

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
…e, not the root

Fork-Domain: zmux-estate
Fork-Tier: bugfix
Fork-Upstreamable: no
…gone

When the worktree and its branch are both removed, turn start runs a checkout
move back to the project root checkout, records a recovery activity, and
continues the turn there; a failed move falls back to the turn-stop error.

Fork-Domain: zmux-estate
Fork-Tier: qol
…ued-turn guard is live

Fork-Domain: zmux-estate
Fork-Tier: qol
Fork-Upstreamable: no
Fork-Domain: zmux-estate
Fork-Tier: qol
Fork-Upstreamable: no
@donjor
donjor force-pushed the t3code/thread-worktree-self-nuke branch from 5a6c2d4 to 7b3c276 Compare September 27, 2026 02:22
@rsi-software-agent rsi-software-agent Bot added size:L and removed size:XL 500-999 effective changed lines (test files excluded in mixed PRs). labels Sep 27, 2026
@donjor
donjor marked this pull request as ready for review September 27, 2026 02:23
@donjor
donjor merged commit 6910a8a into hyprws Sep 27, 2026
16 checks passed
@donjor
donjor deleted the t3code/thread-worktree-self-nuke branch September 27, 2026 02:28
donjor added a commit that referenced this pull request Sep 27, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Sep 28, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Sep 28, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Sep 29, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Sep 29, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 4, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 4, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 6, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 6, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 8, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 10, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 10, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 10, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 11, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 11, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 12, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 12, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 13, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 15, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 15, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 16, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 16, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 18, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 18, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 18, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 19, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 19, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 19, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 20, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 20, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 20, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 20, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 20, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 21, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
donjor added a commit that referenced this pull request Oct 21, 2026
## What Changed

Port of upstream `pingdotgg#9852`, nothing else:

- **Selector:** shown when the worktree is gone
- **Refs:** loaded from the project root
- **Turn start:** stops with an error
- **Test:** upstream failure/rebind test, ported

Still broken on the fork, fixed in #1304:

- **Send:** socket drops, message bounces
- **Branch pick:** checks the branch out in the project root

## Why

A thread whose worktree and branch were deleted loses its branch selector.

Refs #1047

## UI Changes

**Before**

https://github.com/user-attachments/assets/7fe77aa0-6a8c-41be-b691-89fd92e572c1

**After**

https://github.com/user-attachments/assets/b648337a-9d84-4922-aafe-0708a98a38b6

## Checklist

- [x] This PR is small and focused
- [x] I explained what changed and why
- [ ] I included before/after screenshots for any UI changes
- [x] I included a video for animation/interaction changes

Claude Opus 5.5 via Claude Code in T3 Code.

## Fork trailers

Fork-Domain: upstream-fixes
Fork-Tier: bugfix
Fork-Upstreamable: yes
Co-authored-by: donjor <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Deleting a thread's worktree and branch strands the thread with no branch selector [📥]

1 participant