feat(scope): implement workspace-scoped session isolation (A-1) and native Herdr session naming (A-5)
This commit is contained in:
@@ -44,8 +44,8 @@ if [ -z "$UUID" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
HERDR_SERVER_NAME="$(resolve_herdr_workspace "$SESSION_NAME")"
|
||||
export HERDR_SERVER_NAME
|
||||
HERDR_SESSION_NAME="$(resolve_herdr_session "$SESSION_NAME")"
|
||||
export HERDR_SESSION_NAME
|
||||
|
||||
# 2. If herdr is alive, print warning or attach.
|
||||
if herdr has-session -t "$SESSION_NAME" 2>/dev/null; then
|
||||
|
||||
@@ -37,8 +37,8 @@ done
|
||||
[ -n "$UUID" ] || { echo "ERROR: --uuid required" >&2; exit 2; }
|
||||
[ -f "$AGENT_SESSIONS_YAML" ] || { echo "ERROR: $AGENT_SESSIONS_YAML not found" >&2; exit 1; }
|
||||
|
||||
HERDR_SERVER_NAME="$(resolve_herdr_workspace "$SESSION_NAME")"
|
||||
export HERDR_SERVER_NAME
|
||||
HERDR_SESSION_NAME="$(resolve_herdr_session "$SESSION_NAME")"
|
||||
export HERDR_SESSION_NAME
|
||||
|
||||
# --agent 미지정 시 이름 suffix 로 fallback (P1-F: 가능하면 --agent 명시)
|
||||
if [ -z "$AGENT" ]; then
|
||||
@@ -101,19 +101,21 @@ for s in d.get('herdr_sessions', []):
|
||||
break
|
||||
|
||||
if target is None:
|
||||
server_name = os.environ.get('HERDR_SERVER_NAME', 'multi-agent-mux')
|
||||
pwd = os.path.abspath(ws_root)
|
||||
default_server = 'mam-' + os.path.basename(pwd).lower().replace('_', '-')
|
||||
server_name = os.environ.get('HERDR_SESSION_NAME', default_server)
|
||||
target = {
|
||||
'name': name,
|
||||
'status': 'running',
|
||||
'role': role,
|
||||
'herdr_session_created_at': now,
|
||||
'herdr_session_epoch': epoch,
|
||||
'herdr_server': server_name,
|
||||
'herdr_session': server_name,
|
||||
'delegate_job_id': None,
|
||||
'pane': {'index': 0, 'pid': int(pane_pid) if pane_pid.isdigit() else 0, 'cmd': agent, 'cwd': ws_root},
|
||||
'start_command': f'HERDR_SERVER_NAME={server_name} herdr agent attach {name}',
|
||||
'attach_command': f'HERDR_SERVER_NAME={server_name} herdr agent attach {name}',
|
||||
'kill_command': f'HERDR_SERVER_NAME={server_name} herdr kill-session -t {name}',
|
||||
'start_command': f'HERDR_SESSION_NAME={server_name} herdr agent attach {name}',
|
||||
'attach_command': f'HERDR_SESSION_NAME={server_name} herdr agent attach {name}',
|
||||
'kill_command': f'HERDR_SESSION_NAME={server_name} herdr kill-session -t {name}',
|
||||
}
|
||||
d.setdefault('herdr_sessions', []).append(target)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user