Conflating launch and resume was wrong: tmux already provides 'reattach to
the live conversation' (named session keyed by dir). Adding --continue to
the launch path also caused surprise replays of stale conversations and
clashed with other claude processes holding the same on-disk session.
- launch (rclaude HOST DIR): plain 'claude' — fresh session
- transport-drop reattach: tmux session reattach (automatic, same command)
- explicit on-disk resume: 'rclaude resume <pattern>' — sets RCLAUDE_RESUME=1
when re-execing, which adds --continue to the launch invocation
Wraps the inner claude invocation so a fast (under 2s) or nonzero exit shows
'[rclaude] claude exited in Ns with code N' and waits for enter, instead of
silently dying and dragging the whole tmux session + ssh transport down with
it (surfaces to user as bare 'Connection closed.'). Normal interactive exits
still close cleanly.
Catches typos and Claude-instruction-style aliases (@proj/@apps/@pkg) that
look like paths but only resolve in the assistant's mental model, not in any
shell. Without the check the cd inside the tmux command failed silently, the
pane died, the session closed, ssh exited — surfaced to the user as a bare
'Connection to <host> closed.'
- new bin/_claude-projects helper: prints tab-sep mtime/cwd/count for every
~/.claude/projects/ dir (parses .jsonl entries for cwd field)
- list_tmux_on / list_disk_on / list_all_on: unified enumeration with KIND col
- rclaude list [all|tmux|disk]: filterable view, sorted by recency
- rclaude resume <pattern>: matches against tmux + disk; tmux match attaches,
disk match re-execs self to spawn fresh tmux + claude --continue at the cwd
- helper streamed to remote via 'ssh host python3 -' so no install required
on the remote side beyond python3
list: tabular view of active claude-* tmux sessions across local + RCLAUDE_HOSTS
resume [pattern]: substring match → unique attach, multi → list+exit, none → error
also: graceful fallback when local tmux is missing