self-heal Claude panes stuck on an unconnectable session (T-147)
test / unit + widget + golden + a11y (push) Failing after 27s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / dart doc (lib API) (push) Failing after 28s
test / unit + widget + golden + a11y (push) Failing after 27s
test / integration_test (xvfb) (push) Has been skipped
test / bundle smoke (xvfb 5s) (push) Has been skipped
test / daemon subprocess + web WASM smoke (push) Has been skipped
test / dart doc (lib API) (push) Failing after 28s
After session-id binding (T-146), a pane that attached (via new-session -A) to a session created before the change — which has no --session-id, so its transcript is under a different id — would wait forever for a transcript that never appears. Same on any unconnectable session. Before spawning, if no transcript exists for our deterministic session id, kill the clide tmux session of that exact name so new-session creates a clean one with our --session-id. This self-heals the stuck state on next launch and makes clean-install/first-run robust. Safe by construction: only clide's own session is killed — by its exact clide-claude-<slug> name on the private -L clide socket (a terminal claude never runs there) — and no transcript file is ever deleted. A healthy session's transcript already exists, so re-attach continuity (D-41) is preserved. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -120,6 +120,11 @@ heading, and (b) bumping `pubspec.yaml` `version:` in the same commit.
|
||||
|
||||
### Fixed
|
||||
|
||||
- Claude pane no longer gets stuck on "Waiting for Claude…" when its
|
||||
session can't be bound (T-147) — e.g. a session left over from before
|
||||
session-id binding, or a fresh machine. It now retires that stale
|
||||
clide session and starts a clean one. Only clide's own `-L clide`
|
||||
sessions are touched (never a terminal Claude, never transcript files).
|
||||
- Secondary Claude tabs showed the primary's conversation instead of
|
||||
their own (T-146). Each pane now binds to its own session via
|
||||
`claude --session-id`, so concurrent sessions in one workspace stop
|
||||
|
||||
Reference in New Issue
Block a user