45 lines
3.8 KiB
Markdown
45 lines
3.8 KiB
Markdown
# 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
|
||
<!-- openspec/specs/ пуст — изменяемых спек нет -->
|
||
|
||
## 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`).
|