From bbf8176cc86586fa702c8cac4a19f72c2339c8d5 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Thu, 13 Aug 2026 09:19:34 +0200 Subject: [PATCH] o new: use sname/aname syntax to create session+agent --- data/scripts/o | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/data/scripts/o b/data/scripts/o index d8f2f33..86be117 100755 --- a/data/scripts/o +++ b/data/scripts/o @@ -266,15 +266,28 @@ cmd_new() { printf 'name=%s\ncwd=%s\n' "$agent_name" "$agent_cwd" | ollie-9p write "${PREFIX}/agent/new" echo "created agent: $CTX_SESSION/$agent_name" else - # Create session at root + # Create session and agent: o new sname/aname [cwd] if [[ $# -lt 1 ]]; then - echo "usage: o new [cwd]" >&2 + echo "usage: o new / [cwd]" >&2 exit 1 fi - local session_name="$1" - local session_cwd="${2:-$PWD}" - printf 'name=%s\ncwd=%s\n' "$session_name" "$session_cwd" | ollie-9p write "session/new" - echo "created session: $session_name" + local spec="$1" + local cwd="${2:-$PWD}" + + if [[ "$spec" != */* ]]; then + echo "usage: o new / [cwd]" >&2 + echo "error: must specify session/agent (e.g., work/code)" >&2 + exit 1 + fi + + local session_name="${spec%%/*}" + local agent_name="${spec#*/}" + + # Create session + printf 'name=%s\ncwd=%s\n' "$session_name" "$cwd" | ollie-9p write "session/new" + # Create agent in that session + printf 'name=%s\ncwd=%s\n' "$agent_name" "$cwd" | ollie-9p write "session/$session_name/agent/new" + echo "created: $session_name/$agent_name" fi }