feat(cli,registry): introduce --herdr-workspace option and decouple socket fallback chains

This commit is contained in:
2026-08-24 12:50:09 +09:00
parent 320f036575
commit e6e70dbb21
17 changed files with 1670 additions and 47 deletions
@@ -50,6 +50,10 @@ Arguments:
(falls back to the registry record: agent field ->
session-name suffix -> pane.cmd)
--herdr-session <name> — specify isolated herdr session name (alias: --herdr-server)
--herdr-workspace <name> — recorded label only; never selects a socket
(use --herdr-session for that). Note: stop has no
--workspace flag — the session's own workspace is
read from its registry row, not from where you stand.
--reason <reason> — stop_reason field (default: manual_stop)
--purge-conversation — also delete on-disk conversation artifacts;
status becomes terminated and resume is impossible
@@ -63,6 +67,7 @@ EOF
SESSION_NAME=""
AGENT=""
HERDR_SERVER_OPT=""
HERDR_WORKSPACE_OPT=""
PURGE=0
YES=0
CAPTURE_ID=1
@@ -75,6 +80,7 @@ while [ $# -gt 0 ]; do
--session) SESSION_NAME="$2"; shift 2 ;;
--agent) AGENT="$2"; shift 2 ;;
--herdr-session|--herdr-server) HERDR_SERVER_OPT="$2"; shift 2 ;;
--herdr-workspace) HERDR_WORKSPACE_OPT="$2"; shift 2 ;;
--purge-conversation) PURGE=1; shift ;;
--yes) YES=1; shift ;;
--reason) REASON="$2"; shift 2 ;;
@@ -104,7 +110,7 @@ fi
if [ -n "$HERDR_SERVER_OPT" ]; then
export HERDR_SESSION_NAME="$HERDR_SERVER_OPT"
else
HERDR_SESSION_NAME="$(resolve_herdr_workspace "$SESSION_NAME" "${WORKSPACE:-$WORKSPACE_ROOT}")"
HERDR_SESSION_NAME="$(resolve_herdr_session "$SESSION_NAME" "${WORKSPACE:-$WORKSPACE_ROOT}")"
export HERDR_SESSION_NAME
fi