fix: install robustness: PATH python3, single registrar, bootstrap retry, SSH hint (#4, I-2, M-1, M-3, M-5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
ed159eadff
commit
ac330995fd
@ -67,7 +67,9 @@ cd claude-panel
|
||||
- `http://127.0.0.1:8766/raw` — что панель видит: логи хука, причины скрытия сессий,
|
||||
ошибки лимитов и баланса;
|
||||
- `~/Library/Logs/claude-agents/panel.log` — лог службы;
|
||||
- `launchctl print gui/$(id -u)/com.andrey.claude-agents` — состояние службы.
|
||||
- `launchctl print gui/$(id -u)/com.andrey.claude-agents` — состояние службы; ошибки запуска (например, «не найден python») видны только здесь, а не в `panel.log`;
|
||||
- после переустановки или обновления Python (в том числе `brew upgrade`/`brew cleanup`) запустите
|
||||
`./install.sh` заново — служба хранит путь к `python3`, и без этого launchd не сможет её запустить.
|
||||
|
||||
## Удаление
|
||||
|
||||
|
||||
12
install.sh
12
install.sh
@ -11,7 +11,7 @@ die() { printf '\033[31mОшибка:\033[0m %s\n' "$*" >&2; exit 1; }
|
||||
|
||||
# из SSH-сессии launchd (gui/<uid>) и iTerm2 не настроить, а прежний сервер уже был бы остановлен
|
||||
[ -z "${SSH_CONNECTION:-}${SSH_TTY:-}" ] \
|
||||
|| die "запустите за самим Mac, не по SSH — из SSH-сессии launchd и iTerm2 не настроить"
|
||||
|| die "запустите за самим Mac, не по SSH — из SSH-сессии launchd и iTerm2 не настроить. Если вы и так за Mac (например, в панели tmux, открытой раньше из SSH), запустите в обычной вкладке iTerm2 или после unset SSH_CONNECTION SSH_TTY"
|
||||
|
||||
HERE="$(cd "$(dirname "$0")" && pwd)"
|
||||
FILES="$HERE/files"
|
||||
@ -34,7 +34,7 @@ say "Проверяю окружение"
|
||||
[ "$(uname)" = "Darwin" ] || [ "${CLAUDE_PANEL_ANY_OS:-}" = 1 ] || die "нужен macOS с iTerm2"
|
||||
python3 -c 'import sys; assert sys.version_info >= (3, 8)' 2>/dev/null \
|
||||
|| die "нужен python3 ≥ 3.8 (xcode-select --install или brew install python)"
|
||||
PY="$(python3 -c 'import sys; print(sys.executable)')"
|
||||
PY="$(command -v python3)" # не sys.executable: версионный путь Homebrew исчезает после brew cleanup
|
||||
ok "python3: $(python3 -V 2>&1) ($PY)"
|
||||
if command -v jq >/dev/null; then ok "jq: $(command -v jq)"
|
||||
else warn "нет jq — хук без него молча ничего не пишет. Установите: brew install jq"; fi
|
||||
@ -81,7 +81,12 @@ if command -v lsof >/dev/null; then
|
||||
pids=$(lsof -ti "tcp:$PORT" -sTCP:LISTEN 2>/dev/null || true)
|
||||
if [ -n "$pids" ]; then kill $pids 2>/dev/null || true; sleep 1; ok "остановлена прежняя версия панели"; fi
|
||||
fi
|
||||
launchctl bootstrap "$GUI" "$PLIST" || die "launchd не принял службу — смотрите $SERVICE_LOG"
|
||||
# сразу после bootout bootstrap иногда падает с «Input/output error» — повторяем
|
||||
for attempt in 1 2 3 4 5; do
|
||||
launchctl bootstrap "$GUI" "$PLIST" && break
|
||||
[ "$attempt" = 5 ] && die "launchd не принял службу — смотрите launchctl print $GUI/$LABEL и $SERVICE_LOG"
|
||||
sleep 1
|
||||
done
|
||||
up=0
|
||||
for _ in 1 2 3 4 5 6 7 8 9 10; do
|
||||
if curl -s -o /dev/null --max-time 1 "http://127.0.0.1:$PORT/"; then up=1; break; fi
|
||||
@ -108,6 +113,7 @@ else
|
||||
fi
|
||||
|
||||
if [ $iterm_running = 1 ] && [ "$api" = 1 ]; then
|
||||
pkill -f "Scripts/AutoLaunch/claude_agents.py" || true # прежний регистратор, иначе их станет по одному на запуск
|
||||
if osascript -e 'tell application "iTerm2" to launch API script named "claude_agents"' >/dev/null 2>&1; then
|
||||
ok "панель зарегистрирована в Toolbelt"
|
||||
else
|
||||
|
||||
@ -6,7 +6,7 @@ ok() { printf ' \033[32m✓\033[0m %s\n' "$*"; }
|
||||
die() { printf '\033[31mОшибка:\033[0m %s\n' "$*" >&2; exit 1; }
|
||||
|
||||
[ -z "${SSH_CONNECTION:-}${SSH_TTY:-}" ] \
|
||||
|| die "запустите за самим Mac, не по SSH — из SSH-сессии launchd и iTerm2 не настроить"
|
||||
|| die "запустите за самим Mac, не по SSH — из SSH-сессии launchd и iTerm2 не настроить. Если вы и так за Mac (например, в панели tmux, открытой раньше из SSH), запустите в обычной вкладке iTerm2 или после unset SSH_CONNECTION SSH_TTY"
|
||||
|
||||
HERE="$(cd "$(dirname "$0")" && pwd)"
|
||||
AUTOLAUNCH="$HOME/Library/Application Support/iTerm2/Scripts/AutoLaunch"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user