fix(stop): the exit-4 refusal names where the holder may be (Issue #31, Mac review)
The refusal pointed at ~/.claude/sessions/ for every agent, whatever CLAUDE_CONFIG_DIR said, and never mentioned a non-agent process naming the uuid on its command line. The in-use CLI now prints, on stderr while the conversation is in use, the adapter's in_use_hints: for every adapter `ps -axww | grep <uuid>`, and for claude its real sessions/ dir first. stop prints them under its refusal, and says "records preserved" instead of "no state was modified": the gate runs after the kill chain, so the session itself may already be down. SKILL.md's exit 4 row says the same; it is not a code block, so no inventory hash moves. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
af8ed397f6
commit
e156179822
6 files changed
+25
-6
No files matched your search
@@ -289,12 +289,12 @@ fi
|
||||
# registry lock. Any answer but "free" (0) keeps everything.
|
||||
if [ "$PURGE" = "1" ] && [ -n "$PURGE_UUID" ]; then
|
||||
inuse_rc=0
|
||||
"$(_delegate_py_bin)" -m lib_py.agents in-use "$AGENT" "$PURGE_UUID" "$TARGET_CWD" --wait 5 >/dev/null || inuse_rc=$?
|
||||
inuse_hints="$("$(_delegate_py_bin)" -m lib_py.agents in-use "$AGENT" "$PURGE_UUID" "$TARGET_CWD" --wait 5 2>&1 >/dev/null)" || inuse_rc=$?
|
||||
if [ "$inuse_rc" != "0" ]; then
|
||||
echo "ERROR: conversation $PURGE_UUID is still held by a live agent process (rc=$inuse_rc)." >&2
|
||||
echo " Refusing purge — records preserved (no state was modified)." >&2
|
||||
echo " For claude, see the session files naming it under ~/.claude/sessions/." >&2
|
||||
delegate_publish_event "$DELEGATE_JOB_ID" cancelled "purge aborted: conversation still in use; no state was modified" "$DELEGATE_JOB_TOKEN" "$DELEGATE_JOB_ATTEMPT"
|
||||
echo " Refusing purge — records preserved: the registry row and the conversation files are untouched (the session itself may already be down)." >&2
|
||||
[ -n "$inuse_hints" ] && printf '%s\n' "$inuse_hints" >&2
|
||||
delegate_publish_event "$DELEGATE_JOB_ID" cancelled "purge aborted: conversation still in use; records preserved" "$DELEGATE_JOB_TOKEN" "$DELEGATE_JOB_ATTEMPT"
|
||||
exit 4
|
||||
fi
|
||||
fi
|
||||
|
||||
Reference in new issue
Block a user