What's New
tmux session jump
CodeBubble can now jump directly to Claude sessions running inside tmux.
Previously, sessions inside tmux had no detected terminal (terminalBundleId = nil) because Claude's parent process is the tmux server, making process-tree detection impossible. CodeBubble now handles this case explicitly:
- Ghostty client attached — switches the existing tmux client to the target pane and raises the Ghostty window
- No Ghostty client — opens a new Ghostty window via
tmux attach-session -t <session>
Matching logic
Pane resolution priority (most to least precise):
- tmux session name == project name (avoids CWD collisions when multiple sessions share the same directory)
- Exact pane CWD match
- Ancestor CWD match (pane sitting at a parent directory of the session path)
Bug fixes
- New Ghostty window on every jump —
activateByBundleIdwas unconditionally callingNSWorkspace.openApplicationeven when the app was already running, causing a new window on each jump - CWD missing for long sessions —
ClaudeProvidernow falls back to reading CWD from the file head when the tail no longer contains user/assistant entries - Ghostty
-eargument splitting —open -na Ghostty.app --args -enow passes each tmux argument separately instead of as a single string