From 3fc719b31b13e73ccabed1ae825daf52a9700729 Mon Sep 17 00:00:00 2001 From: Andrey Epifancev Date: Sun, 18 Oct 2026 22:53:33 +0400 Subject: [PATCH] docs: acceptance results for headless panel (#4) Co-Authored-By: Claude Opus 5.5 --- openspec/changes/headless-panel/design.md | 32 +++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/openspec/changes/headless-panel/design.md b/openspec/changes/headless-panel/design.md index 0da167c..379dc6d 100644 --- a/openspec/changes/headless-panel/design.md +++ b/openspec/changes/headless-panel/design.md @@ -178,3 +178,35 @@ tmux; фон выставлен под тему Termius и держится ме - 2026-10-18 (финальное ревью) — R-6 (design #17): тесты к исправлениям написаны без отдельного шага RED; вместо этого новые тесты прогнаны на коде до исправлений (2e8ab31) — все 6 новых тестов (I-1, I-3 ×2, I-4, M-2, M-12) там падают. Цена ошибки: нет. +- 2026-10-18 (приёмка) — R-7 (design #18): служба получает `PATH` той оболочки, из которой запущен + `install.sh` (`EnvironmentVariables.PATH` в plist). Обоснование: tmux отдаёт новой панели `PATH` + вызвавшего `split-window`, а у launchd `PATH=/usr/bin:/bin:/usr/sbin:/sbin` — `exec lf` не находился, + панель «⎇ папка» мигала и закрывалась (H-1). Так панели, открытые службой, видят то же, что и + терминал (редактор, превьюеры lf). Цена ошибки: если `install.sh` запущен из урезанного окружения, + `lf` снова не найдётся — README подсказывает перезапустить установщик из обычного терминала. + +## Результаты приёмки (Task 6, 2026-10-18) +Проверял человек с iPad (Termius, SSH + tmux) и контроллер из сессии Claude Code на том же Mac. +- Step 1 — ок: служба `com.andrey.claude-agents` запущена launchd (родитель PID 1, python из + `/opt/homebrew/bin/python3`), один слушатель `127.0.0.1:8766`; лимиты и баланс загрузились, + запроса доступа к Keychain не было. Чужой `Host` → 403. +- Step 2 — ок: iTerm2 закрыт (⌘Q через `osascript`), с iPad через туннель Termius видны дерево, + лимиты и баланс; tmux-сервер отвязан от iTerm2 (PPID 1) и пережил закрытие. +- Step 3 — «↗ вкладка» ок; «⎇ папка» сначала мигала разделителем и закрывалась (H-1, причина — + `PATH` службы), после c810f5a и переустановки — ок. +- Step 4 — ок: после `kill` служба снова отвечает 200 примерно через 2 с. +- Step 5 — частично: после `open -a iTerm` поднялся один процесс регистрации, порт держит служба; + вид Toolbelt глазами не проверен (человек не за Mac). +- Step 6 — ок: светлый образец, автоперезагрузка не закрывает строку образцов (I-4), «сброс», + «свой цвет» открывает палитру iPad. Размер областей нажатия (M-11) жалоб не вызвал. +- Step 7 — не проверен: сохраняется ли фон в Toolbelt после перезапуска iTerm2, видно только на + экране Mac. +- Step 8 — ок, три повторных запуска: одна служба, `bootstrap` без «Bootstrap failed» (M-5 не + проявился), один процесс регистрации (M-1), 9 хуков в `settings.json` без дублей. +- Step 9 — ок с `SSH_CONNECTION=test`: отказ «за самим Mac» до каких-либо действий. Наблюдение: + в окне tmux, открытом из Termius, `SSH_CONNECTION` пуст, и охрана не срабатывает (подтверждает + M-3); установка из такого окна проходит нормально, т. к. tmux-сервер живёт в GUI-сессии. +- Step 10 — не выполнялся (по желанию). +- Наблюдение O-3: во время приёмки `./install.sh` один раз запустили из основного checkout (main, + старая версия без охраны) — он перезаписал скрипт AutoLaunch старым сервером; launchd сразу + поднял службу. Исправлено повторным `install.sh` из ветки; после merge неактуально.