fix: определение Claude-аккаунта по токену вместо auth status
Корень багов с потерей токенов: claude auth status читает oauthAccount.emailAddress из ~/.claude.json, который рассинхронизирован с реальным токеном в .credentials.json. Из-за этого хуки определяли текущий аккаунт неверно и сохраняли активный токен под чужим именем, затирая credentials другого аккаунта. - account-email.sh (новый): определяет email по OAuth-токену — локальный матчинг с accounts/, затем API /api/oauth/profile - switch-account-hook.sh: current выводится из токена, а не из auth status/хрупкого файла current — порча файлов исключена. Перезапуск не нужен: на Linux Claude Code перечитывает .credentials.json на лету - add-account-hook.sh: email нового аккаунта тоже через хелпер - skill add-account: убрано упоминание перезапуска - ai-setup.sh: деплой account-email.sh (секция 6.7.05) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -717,6 +717,17 @@ if isinstance(stop, list):
|
||||
PYEOF
|
||||
success "Старый хук effort-save удалён"
|
||||
|
||||
# ── 6.7.05. Хелпер account-email (определение email по токену) ──
|
||||
# Вспомогательный скрипт для хуков switch-account/add-account.
|
||||
# Не регистрируется в settings.json — вызывается из хуков напрямую.
|
||||
EMAIL_HELPER_SRC="$SCRIPT_DIR/home-configs/claude/hooks/account-email.sh"
|
||||
EMAIL_HELPER_DST="$HOME/.claude/hooks/account-email.sh"
|
||||
mkdir -p "$HOME/.claude/hooks"
|
||||
if [ -f "$EMAIL_HELPER_SRC" ]; then
|
||||
cp "$EMAIL_HELPER_SRC" "$EMAIL_HELPER_DST"
|
||||
chmod +x "$EMAIL_HELPER_DST"
|
||||
fi
|
||||
|
||||
# ── 6.7.1. Хук switch-account ───────────────────────────────────
|
||||
info "Деплою хук switch-account..."
|
||||
SWITCH_HOOK_SRC="$SCRIPT_DIR/home-configs/claude/hooks/switch-account-hook.sh"
|
||||
|
||||
Reference in New Issue
Block a user