From 80c9e37b77b0961bed146bc7ca69afbce1fcaba0 Mon Sep 17 00:00:00 2001 From: Godopu Date: Wed, 26 Aug 2026 10:59:36 +0900 Subject: [PATCH] fix(create): support --name alias, default workspace, and grok onboarding dispatch --- .agents/skills/lib.sh | 2 +- .../scripts/create_session.sh | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/.agents/skills/lib.sh b/.agents/skills/lib.sh index 91d5ff4..9dfc327 100644 --- a/.agents/skills/lib.sh +++ b/.agents/skills/lib.sh @@ -478,7 +478,7 @@ except Exception: pass " 2>/dev/null || echo "") else - if [ -n "$MAM_WS_LABEL" ]; then + if [ -n "${MAM_WS_LABEL:-}" ]; then _real_herdr workspace rename "$existing_ws" "$MAM_WS_LABEL" >/dev/null 2>&1 || true fi fi diff --git a/.agents/skills/multi-agent-mux-create/scripts/create_session.sh b/.agents/skills/multi-agent-mux-create/scripts/create_session.sh index a43f98d..ef9e0d7 100755 --- a/.agents/skills/multi-agent-mux-create/scripts/create_session.sh +++ b/.agents/skills/multi-agent-mux-create/scripts/create_session.sh @@ -66,7 +66,7 @@ while [ $# -gt 0 ]; do --workspace) WORKSPACE="$2"; shift 2 ;; --agent) AGENT="$2"; shift 2 ;; --role) ROLE="$2"; shift 2 ;; - --session) SESSION_NAME="$2"; shift 2 ;; + --session|--name) SESSION_NAME="$2"; shift 2 ;; --wrapper) USE_WRAPPER=1; shift ;; --dry-run) DRY_RUN=1; shift ;; --herdr-session|--herdr-server) HERDR_SERVER_OPT="$2"; shift 2 ;; @@ -85,6 +85,8 @@ if [ -n "$HERDR_SERVER_OPT" ]; then export HERDR_SESSION_NAME="$HERDR_SERVER_OPT" fi +WORKSPACE="${WORKSPACE:-${WORKSPACE_ROOT:-$PWD}}" + # Preflight [ -n "$WORKSPACE" ] || { echo "ERROR: --workspace required" >&2; usage; exit 2; } [ -n "$AGENT" ] || { echo "ERROR: --agent required" >&2; usage; exit 2; } @@ -153,7 +155,7 @@ ws_slug="$(derive_workspace_slug "$WORKSPACE")" # 플래그 > 환경변수 > 워크스페이스 슬러그 (C-3: HERDR_SESSION_NAME 과 대칭). # D5: resolve_herdr_workspace 를 쓰지 않는다 — 동명 terminated 행 위에 재생성할 때 # 낡은 pane.cwd 에서 파생된 라벨을 물려받기 때문 (create 는 사실을 세우는 쪽). -MAM_WS_LABEL="${HERDR_WORKSPACE_OPT:-${HERDR_WORKSPACE:-${ws_slug#mam-}}}" +export MAM_WS_LABEL="${HERDR_WORKSPACE_OPT:-${HERDR_WORKSPACE:-${ws_slug#mam-}}}" if [ -z "$HERDR_SERVER_OPT" ]; then if [ -z "${HERDR_SESSION_NAME:-}" ] || [ "$HERDR_SESSION_NAME" = "default" ]; then export HERDR_SESSION_NAME="$ws_slug" @@ -172,7 +174,7 @@ if [ "$(uname)" = "Darwin" ] && [ -f "$RESOLVED_BIN" ]; then fi SESSION_UUID="" -if [ "$AGENT" = "claude" ]; then +if [ "$AGENT" = "claude" ] || [ "$AGENT" = "grok" ]; then SESSION_UUID="$(mam_gen_uuid)" fi @@ -275,6 +277,7 @@ if [ -n "$SUBMIT_JOB_PROMPT" ]; then hermes) delegate_agent="hermes-agent" ;; cline) delegate_agent="cline-agent" ;; agy) delegate_agent="antigravity-cli" ;; + grok) delegate_agent="grok-build" ;; *) echo "ERROR: cannot resolve delegate agent key for '$AGENT'" >&2; exit 2 ;; esac fi @@ -380,6 +383,12 @@ elif agent == 'cline': entry['child_pid'] = int(cp) if cp.isdigit() else 0 entry['cline_conversation_id_own'] = None entry['last_visible_status'] = "unverified" +elif agent == 'grok': + assigned = os.environ.get('SESSION_UUID', '') or None + entry['grok_session_id_own'] = assigned + entry['session_id_source'] = 'assigned' if assigned else 'pending-discovery' + entry['session_id_verified'] = False + entry['last_visible_status'] = "assigned (awaiting first message)" if assigned else "unverified" sessions.append(entry)