feat(lxc102): script tmux sbt pentru sandbox + statusline Claude Code
- sbt: sesiuni tmux (sbx1..3) care intră în sandbox și lansează agentul (claude/opencode/orice binar); tmux rulează pe host, panes prin sbx exec - statusline.sh + bootstrap-statusline.sh pe /home/workspace/.agent (virtiofs persistent), reinstalat la fiecare intrare fiindcă /home/agent din sandbox e overlay efemer - fix printf "--" -> printf -- "--" (eroare de usage când API-ul de cote nu răspunde) - copii versionate ale scripturilor agents/sb + documentație README Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
23
proxmox/lxc102-docker/scripts/bootstrap-statusline.sh
Normal file
23
proxmox/lxc102-docker/scripts/bootstrap-statusline.sh
Normal file
@@ -0,0 +1,23 @@
|
||||
# Se rulează cu `source` la intrarea în sandbox (din sbt).
|
||||
# Reinstalează statusline-ul în ~/.claude/settings.json — necesar pentru că
|
||||
# /home/agent stă pe overlay-ul efemer al sandbox-ului, în timp ce
|
||||
# /home/workspace e virtiofs persistent.
|
||||
# Idempotent, silențios, nu strică settings.json existent.
|
||||
|
||||
_sl_script="/home/workspace/.agent/statusline.sh"
|
||||
_sl_cfg="$HOME/.claude/settings.json"
|
||||
|
||||
if [ -x "$_sl_script" ] && command -v jq >/dev/null 2>&1; then
|
||||
[ -f "$_sl_cfg" ] || printf '{}\n' > "$_sl_cfg"
|
||||
if [ "$(jq -r '.statusLine.command // ""' "$_sl_cfg" 2>/dev/null)" != "$_sl_script" ]; then
|
||||
_sl_tmp=$(mktemp) || _sl_tmp=""
|
||||
if [ -n "$_sl_tmp" ] && jq --arg c "$_sl_script" \
|
||||
'.statusLine = {type: "command", command: $c}' "$_sl_cfg" > "$_sl_tmp" 2>/dev/null; then
|
||||
mv "$_sl_tmp" "$_sl_cfg"
|
||||
else
|
||||
rm -f "$_sl_tmp"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
unset _sl_script _sl_cfg _sl_tmp
|
||||
Reference in New Issue
Block a user