diff --git a/scripts/s/b b/scripts/s/b index d442e49..f3eba75 100755 --- a/scripts/s/b +++ b/scripts/s/b @@ -77,13 +77,17 @@ fn_run_one() { local id=$1 local B="$MOUNT/s/$id" - { - printf 'name=%s\n' "$id" - printf 'cwd=%s\n' "$cwd" - [ -n "$agent" ] && printf 'agent=%s\n' "$agent" - [ -n "$backend" ] && printf 'backend=%s\n' "$backend" - [ -n "$model" ] && printf 'model=%s\n' "$model" - } > "$MOUNT/s/new" || die "failed to create session" + # Build as a single string: bash's printf builtin issues one write() per call; + # the server processes each write independently, so partial KV would fail. + local kv="name=${id} +cwd=${cwd}" + [ -n "$agent" ] && kv="${kv} +agent=${agent}" + [ -n "$backend" ] && kv="${kv} +backend=${backend}" + [ -n "$model" ] && kv="${kv} +model=${model}" + printf '%s\n' "$kv" > "$MOUNT/s/new" || die "failed to create session" printf '%s\n' "$prompt" > "$B/prompt" || die "failed to submit prompt"