7 Commits

Author SHA1 Message Date
f3d1b6d5c5 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>
2026-06-12 09:06:44 +03:00
fe439fd4a6 feat: автодобавление Claude-аккаунта через /add-account
- новый хук add-account-hook.sh: сохраняет текущий аккаунт по реальному
  email (claude auth status), запускает OAuth-логин в фоне и после успеха
  сам сохраняет новый аккаунт в ~/.claude/accounts + делает его current
- switch-account-hook.sh: активный аккаунт определяется через
  claude auth status, а не через хрупкий файл current - защита от порчи
  сохранённых credentials при рассинхроне токена
- скилл add-account: краткая инструкция после срабатывания хука
- ai-setup.sh: деплой add-account-hook + регистрация в UserPromptSubmit

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 08:19:46 +03:00
Виталий Никитенко
23256d9579 feat: аккаунт между веткой и моделью, exit 0 в switch-account хуке
- statusline: [account] выводится между [branch] и model, тот же оранжевый цвет
- switch-account-hook: exit 0 вместо exit 2, чтобы Claude ответил и перерисовал статусбар
- switch-account skill: инструкция отвечать одним символом ✓

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-10 08:55:05 +03:00
71ef0f76f3 fix: switch-account - скилл-заглушка + exit 2 для блокировки LLM
Без скилла Claude Code выдаёт "Unknown command" до запуска хука.
Скилл нужен как регистрация команды, но тело пустое - хук перехватывает
через exit 2 (stderr) до вызова LLM. Откат изменения в ai-setup.sh
которое скрывало скилл от деплоя.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 21:03:20 +03:00
c6161c3332 feat: переключение аккаунтов через хук без токенов LLM
- UserPromptSubmit хук перехватывает /switch-account до LLM, переключает
  credentials по кругу и возвращает decision:block - нулевой расход токенов
- Статусная строка: effort и имя аккаунта в квадратных скобках [high·work]
- ai-setup.sh деплоит хук switch-account-hook.sh и прописывает его в settings.json
- Скилл switch-account оставлен как fallback-документация для setup

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 20:58:06 +03:00
6120f34199 feat: добавить TZ и документацию для skill'ов el-review
- Установить часовую зону Europe/Helsinki в ai-api-helpers.sh
- Добавить примеры вызова обоих skill'ов
- Документировать обработку ошибок (отсутствие веток, пустой дифф)

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-06 08:45:36 +03:00
Виталий Никитенко
81a7b024ee feat: add home-configs with auto-deployed Claude skills
- Move GLOBAL_RULES.md to home-configs/ as single source of truth
- Add el-review and el-review-heavy skills for GitLab-style branch diff review
- Update ai-setup.sh to deploy skills to ~/.claude/skills/
- Update README and tests for new paths
2026-06-04 19:02:37 +07:00