diff --git a/bin/rclaude b/bin/rclaude index 013576b..2b7a1bf 100755 --- a/bin/rclaude +++ b/bin/rclaude @@ -1599,8 +1599,11 @@ build_inner() { # we know a uuid had a name previously (from the durable index), pass # it back via `claude -n ` so the resumed pid is re-labeled. # Explicit RCLAUDE_RESUME_NAME overrides any index lookup. + # RCLAUDE_SESSION_NAME names a FRESH spawn (no resume) — supervisors (clare + # dispatch) set it so dispatched sessions are `claude -n`-labelled and + # addressable by name. _name_flag="" - _name_val=${RCLAUDE_RESUME_NAME:-} + _name_val=${RCLAUDE_RESUME_NAME:-${RCLAUDE_SESSION_NAME:-}} if [ -z "$_name_val" ] && [ -n "${RCLAUDE_RESUME_ID:-}" ] && [ -s "${_NAME_INDEX:-}" ]; then _name_val=$(awk -F'\t' -v u="$RCLAUDE_RESUME_ID" '$2 == u { print $3; exit }' "$_NAME_INDEX" 2>/dev/null) fi @@ -1632,7 +1635,7 @@ build_inner() { # so every `rclaude` invoked from inside it re-resumes that stale # session instead of starting fresh. Persistent prefs (RCLAUDE_TRIAGE*, # RCLAUDE_HOSTS, RCLAUDE_PERMS, ...) are deliberately left intact. - _unset_directives='unset RCLAUDE_RESUME_ID RCLAUDE_RESUME RCLAUDE_RESUME_NAME RCLAUDE_DETACHED RCLAUDE_MCP_CONFIG RCLAUDE_MIGRATE_FROM RCLAUDE_MIGRATE_FROM_CWD RCLAUDE_MIGRATE_SYNC; ' + _unset_directives='unset RCLAUDE_RESUME_ID RCLAUDE_RESUME RCLAUDE_RESUME_NAME RCLAUDE_SESSION_NAME RCLAUDE_DETACHED RCLAUDE_MCP_CONFIG RCLAUDE_MIGRATE_FROM RCLAUDE_MIGRATE_FROM_CWD RCLAUDE_MIGRATE_SYNC; ' printf '%s' \ "${_unset_directives}${_back_env}cd ${1} && rc_t=\$(date +%s); claude ${_resume_flag} ${_name_flag} ${_mcp_flag} ${flag}; rc_ec=\$?; " \ "rc_e=\$(date +%s); rc_d=\$((rc_e - rc_t)); " \