๐Ÿชช Session-Title Branch Pin

Bug: the prompt-bar title was re-derived from the live git branch every turn. With multiple Claude sessions sharing one working tree, another session's git checkout flips the branch under you โ€” so your title flip-flops and your /rename gets clobbered. The fix pins the title to the session's first-seen branch. Simulate it below.

Before live branch

โ€”

After pinned branch

โ€”
live branch: โ€” ยท pinned (session-branch.txt): โ€”
turn inputBefore โ†’ title sourceAfter โ†’ title source
buildSessionTitle(branch)getCachedBranch() โ€” live HEADgetPinnedBranch() โ€” first-seen
shouldEmitSessionTitle()computed โ‰  last โ†’ RE-EMITcomputed == last โ†’ stay silent

The pin makes the computed title stable across thrash, so the delta-skip keeps the bar silent and /rename survives. Trade-off: an in-session checkout by this session won't refresh the title (fine for the recommended one-worktree-per-session setup).

OrchestKit ยท fix/session-title-branch-pin ยท interactive playground