fix(lxc102): sbt nu mai lansează agent implicit + fix warning docker hub lock

- fără agent implicit: ambele pane-uri sunt shell în sandbox, agentul se
  pornește manual; argumentul 3 rămâne pentru lansare explicită
- al doilea pane intră în sandbox cu 4s întârziere (SBT_PANE_DELAY):
  două `sbx exec` simultane se calcă pe lock-ul de refresh Docker Hub și
  scot "could not acquire docker hub refresh lock"

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Agent
2026-07-31 11:35:55 +00:00
parent 6ff2c6ee2c
commit 0729010284
2 changed files with 37 additions and 15 deletions

View File

@@ -5,15 +5,16 @@
# prin `sbx exec -it`. În sandbox nu există tmux, deci sesiunea supraviețuiește
# oricărei reporniri a agentului.
#
# sbt sesiune 1, /home/workspace, claude în pane-ul stâng
# sbt 2 proiect-a sesiune 2, /home/workspace/proiect-a
# sbt 1 proiect-a opencode lansează opencode
# sbt 1 proiect-a shell doar shell în sandbox, fără agent
# NU lansează niciun agent — deschide shell-uri în sandbox, agentul îl pornești tu.
#
# sbt sesiune 1, shell în /home/workspace
# sbt 2 proiect-a sesiune 2, shell în /home/workspace/proiect-a
# sbt 1 proiect-a opencode opțional: lansează explicit un agent în pane-ul stâng
# sbt list listează sesiunile tmux
# sbt kill [N] omoară sesiunea N
# sbt detach [N] detașează clienții de la sesiunea N
#
# Variabile: SANDBOX (implicit claude-workspace)
# Variabile: SANDBOX (implicit claude-workspace), SBT_PANE_DELAY (implicit 4s)
set -euo pipefail
SANDBOX="${SANDBOX:-claude-workspace}"
@@ -33,7 +34,7 @@ session_name() {
}
# ---- Parsare argumente ----
ACTION="start"; NUM="1"; PROJ=""; AGENT="claude"
ACTION="start"; NUM="1"; PROJ=""; AGENT="shell"
case "${1:-}" in
list)
@@ -47,7 +48,7 @@ case "${1:-}" in
usage
;;
1|2|3)
NUM="$1"; PROJ="${2:-}"; AGENT="${3:-claude}"
NUM="$1"; PROJ="${2:-}"; AGENT="${3:-shell}"
;;
"")
: # implicite
@@ -117,6 +118,11 @@ echo "Sesiune nouă: $SESSION (sandbox=$SANDBOX dir=$DIR agent=${AGENT:-shell
tmux new-session -d -s "$SESSION" -c "$ROOT" "$(sandbox_pane "$INNER")"
tmux set-option -t "$SESSION" -g mouse on
tmux split-window -h -t "$SESSION:0" -c "$ROOT" "$(sandbox_pane "")"
# Al doilea pane intră în sandbox cu întârziere: două `sbx exec` pornite simultan
# se calcă pe lock-ul de refresh Docker Hub al lui sbx și scot
# „could not acquire docker hub refresh lock". Warning inofensiv, dar zgomotos.
tmux split-window -h -t "$SESSION:0" -c "$ROOT" \
"sh -c $(printf '%q' "sleep ${SBT_PANE_DELAY:-4}; exec $(sandbox_pane "")")"
tmux select-pane -t "$SESSION:0.0"
exec tmux attach-session -t "$SESSION"