Skip to content

v1.3.0 — tmux session jump

Latest

Choose a tag to compare

@cchitsiang cchitsiang released this 15 Apr 19:37

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):

  1. tmux session name == project name (avoids CWD collisions when multiple sessions share the same directory)
  2. Exact pane CWD match
  3. Ancestor CWD match (pane sitting at a parent directory of the session path)

Bug fixes

  • New Ghostty window on every jump — activateByBundleId was unconditionally calling NSWorkspace.openApplication even when the app was already running, causing a new window on each jump
  • CWD missing for long sessions — ClaudeProvider now falls back to reading CWD from the file head when the tail no longer contains user/assistant entries
  • Ghostty -e argument splitting — open -na Ghostty.app --args -e now passes each tmux argument separately instead of as a single string