# Handoff: владение `~/.config` исправлено, задача 05 готова к приёмке Обновлён: 2026-07-21 08:18 EDT. ## Состояние задачи 05 Автоматическая часть `headless-xray-proxy` зафиксирована коммитом `fd8210d`. Тикет `.scratch/headless-xray-proxy/issues/05-package-delivery-and-acceptance.md` находится в `ready-for-human`; результаты тестов и команды ручной приёмки уже записаны там. Дальше можно продолжать ручную приёмку по этому тикету. ## Исправленный дефект stow Корневая причина была в сворачивании GNU Stow: в пустом домашнем каталоге пакет `zed` создавал общую ссылку `~/.config -> ~/dotfiles/zed/.config`. После этого рабочие настройки приложений и закрытый профиль Xray физически попадали внутрь репозитория. `install.sh` теперь: - заранее создаёт настоящий каталог `~/.config`, поэтому свежая установка создаёт только ссылку `~/.config/zed`; - распознаёт старую ссылку лишь при точном совпадении с `$DOTFILES_DIR/zed/.config`; - оставляет управляемый каталог `zed` в пакете, а остальные верхнеуровневые элементы переносит в настоящий `~/.config`; - до первого переноса проверяет, что смог полностью перечислить данные; - при штатной ошибке переноса возвращает уже перемещённые элементы назад; - не раскрывает произвольные ссылки `~/.config`. В `tests/test_install.sh` добавлены проверки свежей установки, миграции с вымышленным секретом, сохранения прав `600`, отсутствия секрета в выводе, повторного запуска и неприкосновенности произвольной ссылки. ## Проверка и живое состояние Полный набор `bash tests/test_xray_proxy_full.sh` прошёл на системном Python и Python 3.8 через `uv`: по 79 Python-тестов, 8 проверок командной оболочки и тесты установщика. Синтаксис сценариев командной оболочки и `git diff --check` также прошли. Миграция применена к текущему домашнему каталогу: - `~/.config` — настоящий каталог; - `~/.config/zed` указывает на пакет Zed; - в `zed/.config` остался только каталог `zed`; - рабочие каталоги приложений находятся в `~/.config`; - `~/.config/xray-proxy/default.url` — обычный файл вне репозитория, сохранил права `600` и одну непустую строку. Содержимое профиля не выводилось. ## Текущее состояние Git Не включать в коммиты посторонние неотслеживаемые `agents/.agents/.skill-lock.json` и `scripts/setup-xray-proxy.sh`.