diff --git a/openspec/changes/headless-panel/design.md b/openspec/changes/headless-panel/design.md index 2ae8455..0da167c 100644 --- a/openspec/changes/headless-panel/design.md +++ b/openspec/changes/headless-panel/design.md @@ -155,3 +155,26 @@ tmux; фон выставлен под тему Termius и держится ме (`__pycache__/` в `.gitignore`) из issue #3: оба файла и так меняются. Цена ошибки: нет. - 2026-10-18 (план) — Приёмка (Task 6) выполняется человеком, не сабагентами: она меняет launchd, `~/.claude/settings.json` и настройки iTerm2 на рабочем Mac. +- 2026-10-18 (исполнение) — R-1 (design #12): `test_old_theme_keys_ignored` и + `test_open_worktree_non_tmux_is_noop` прошли до реализации Task 1 (старые ключи и раньше не давали + ошибки, `_app` был `None`); оставлены как тесты-фиксаторы поведения после удаления. Цена ошибки: + нет — остальные тесты Task 1 падали корректно. +- 2026-10-18 (исполнение) — R-2 (design #13): `build_tree` оставлен с параметром `live` (вызывается с + `None`) и мёртвой веткой `tmux_twins`, потому что план требовал не менять `build_tree`. Цена ошибки: + мёртвый код; уборка отложена (M-9). +- 2026-10-18 (исполнение) — R-3 (design #14): RED для `test_install` показан временной порчей текста + сообщения охраны, а не запуском скриптов без охраны (это задело бы настоящий launchd и порт 8766). + Цена ошибки: тест защищён только проверяемой охраной — закрыто заглушками команд в PATH (M-7). +- 2026-10-18 (финальное ревью) — R-4 (design #15): из находок финального ревью исправлены в ветке + I-1…I-4, M-1, M-2, M-3, M-5, M-7, M-8, M-12; отложены в follow-up M-4 (порт из `config.json` в + `install.sh`/`uninstall.sh`), M-6 (ротация `panel.log`), M-9 (мёртвый код `build_tree`), M-11 + (область нажатия 44 pt — оценить на приёмке, Task 6 Step 6). I-3 (нет проверки Host/Sec-Fetch-Site) + существовал до ветки, но исправлен сразу: служба теперь работает постоянно и открывается из + браузера. Цена ошибки: отложенные пункты — мелкие неудобства, не потеря данных. +- 2026-10-18 (финальное ревью) — R-5 (design #16): запрос без заголовка `Host` или с `Host` без порта + получает 403 (сравнение строго с `127.0.0.1:<порт>` / `localhost:<порт>`, порт берётся из сокета). + Обоснование: браузеры, web view iTerm2 и туннель Termius всегда шлют `Host` с портом. Цена ошибки: + клиент без `Host` (голый HTTP/1.0) не откроет панель — ослабить проверку. +- 2026-10-18 (финальное ревью) — R-6 (design #17): тесты к исправлениям написаны без отдельного шага + RED; вместо этого новые тесты прогнаны на коде до исправлений (2e8ab31) — все 6 новых тестов + (I-1, I-3 ×2, I-4, M-2, M-12) там падают. Цена ошибки: нет.