Andrey Epifancev 521182d4a4 spec: archive headless-panel change (#4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-18 22:59:24 +04:00

3.8 KiB
Raw Blame History

Proposal

Why

Панель «Claude» сейчас живёт только внутри iTerm2: её HTTP-сервер на 127.0.0.1:8766 поднимает скрипт AutoLaunch, и когда iTerm2 закрыт, страницы нет. Пользователь смотрит панель с iPad — Termius держит SSH-туннель к 127.0.0.1:8766 на Mac, страница открыта в Safari, а сами сессии Claude Code крутятся в tmux, которому iTerm2 не нужен. Панель должна быть доступна, пока Mac включён и пользователь вошёл в систему, независимо от iTerm2. Заодно тема по умолчанию (Solarized dark) в Safari на iPad «мозолит глаза», и её нужно менять прямо на странице.

What Changes

  • Новый фоновый режим панели (--headless): HTTP-сервер, дерево сессий, лимиты и баланс без iTerm2. Запускается LaunchAgent'ом при входе в систему, перезапускается при падении.
  • Порт 8766 всегда занимает только фоновый сервер. Скрипт AutoLaunch в iTerm2 больше не поднимает сервер, а только регистрирует web view «Claude» в Toolbelt на тот же адрес.
  • BREAKING: подстройка цветов и шрифта под профиль iTerm2 убрана; ключи use_profile_theme и theme_variant в config.json больше ничего не делают.
  • BREAKING: возможности, которым нужна живая связь с iTerm2, уходят: названия вкладок iTerm2 для сессий вне tmux, переход во вкладку iTerm2 для сессий вне tmux, переключение панелей tmux -CC, открытие lf в разделённой панели iTerm2 для сессий вне tmux. Сессии в обычном tmux работают как раньше (имена, переход, lf — через tmux).
  • Новая настройка фона на клиенте: шестерёнка ⚙ в нижней строке панели раскрывает образцы фона, «свой цвет» и «сброс». Выбор хранится на устройстве (браузере/web view), текст подстраивается.
  • install.sh ставит и запускает LaunchAgent, uninstall.sh его останавливает и удаляет.

Capabilities

New Capabilities

  • panel-service: где и как работает сервер панели — фоновая служба без iTerm2, единственный владелец порта, регистрация в Toolbelt, установка/удаление.
  • panel-appearance: как пользователь меняет фон панели на своём устройстве.

Modified Capabilities

Impact

  • files/claude_agents.py: точка входа с двумя режимами (фоновый сервер / регистратор Toolbelt), удаление theme_poller и чтения профиля, клиентский JS/CSS для фона в render_page.
  • install.sh, uninstall.sh: LaunchAgent (~/Library/LaunchAgents/), лог службы.
  • files/config.example.json, README.md: убрать ключи темы, описать фоновую службу и шестерёнку.
  • Внешние зависимости не добавляются (только стандартная библиотека Python, launchctl).