- switch-account-hook.sh: сохранять обновлённые OAuth-токены обратно в файл
аккаунта перед переключением — предотвращает 401 после обратного свитча
- statusline-command.sh:
- effort.level из stdin (сессия), а не из общего settings.json —
ai-claude и ai-deepseek больше не пересекаются
- автоопределение аккаунта по access-токену в .credentials.json
- фолбек: если аккаунт не найден — запрос к haiku напрямую через
Anthropic (в обход DeepSeek) для определения email
- показ аккаунта только для claude-* моделей
- 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>
Claude Code не предоставляет API для обновления статусной строки в idle.
SIGWINCH, TIOCSWINSZ, запись в TTY, write в stdin - ничего не работает.
Статусная строка обновится при следующем LLM запросе автоматически.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SIGWINCH и TIOCSWINSZ не заставляют Claude Code обновить статусную строку.
Запускаем statusline-command.sh с кешем и пишем результат напрямую
в TTY claude через \0337 (save cursor) / \033[999B / \033[2K / \0338.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SIGWINCH напрямую игнорируется. TIOCSWINSZ на TTY claude посылает
SIGWINCH через kernel к foreground process group.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
SIGWINCH до exit 2 игнорируется - claude ещё рисует блокировку.
Запускаем sleep+kill в фоне, они живут после завершения хука.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Посылаем SIGWINCH родительскому процессу claude после переключения -
это заставляет TUI перерисовать UI включая статусную строку.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Документация врала: реальный UserPromptSubmit шлёт поле prompt, а не user_prompt.
Хук получал пустую строку и выходил с exit 0, пропуская блокировку.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Без скилла Claude Code выдаёт "Unknown command" до запуска хука.
Скилл нужен как регистрация команды, но тело пустое - хук перехватывает
через exit 2 (stderr) до вызова LLM. Откат изменения в ai-setup.sh
которое скрывало скилл от деплоя.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>