diff --git a/bin/rclaude b/bin/rclaude index d2ec117..3630083 100755 --- a/bin/rclaude +++ b/bin/rclaude @@ -152,8 +152,10 @@ cmd_resume() { fi ;; disk) - # Spawn a fresh tmux + claude --continue at the recorded cwd. - exec "$0" "$_host" "$_target" + # Spawn tmux + claude --continue at the recorded cwd. The env var + # tells the launch path below to add --continue (it doesn't by + # default, since --continue is the explicit-resume behavior). + RCLAUDE_RESUME=1 exec "$0" "$_host" "$_target" ;; esac } @@ -216,8 +218,15 @@ esac build_inner() { # Single-line, single-quote-safe. Variables prefixed with rc_ to avoid # collision with anything in the user's shell. + # + # Note: launch path uses plain `claude` (fresh session). Reattach to a + # live conversation is handled by tmux (named session keyed on dir, so + # re-running rclaude in the same dir reattaches). Disk-resume is the + # explicit `rclaude resume ` subcommand. + _resume_flag="" + [ "${RCLAUDE_RESUME:-0}" = "1" ] && _resume_flag="--continue" printf '%s' \ - "cd ${1} && rc_t=\$(date +%s); claude --continue ${flag}; rc_ec=\$?; " \ + "cd ${1} && rc_t=\$(date +%s); claude ${_resume_flag} ${flag}; rc_ec=\$?; " \ "rc_e=\$(date +%s); rc_d=\$((rc_e - rc_t)); " \ "if [ \$rc_ec -ne 0 ] || [ \$rc_d -lt 2 ]; then " \ "printf '\\n[rclaude] claude exited in %ds with code %d\\n' \$rc_d \$rc_ec; " \