Files
dotfiles/.scratch/handoffs/20260721-0743-xray-proxy-05-ready-for-human.md
T
ddadmin e5323284a8 fix(install): исправлено владение каталогом .config
Зачем:
- GNU Stow сворачивал весь ~/.config в пакет zed и помещал рабочие настройки в репозиторий.

Что:
- добавлена ограниченная миграция старой ссылки с возвратом данных в домашний каталог;
- предотвращено повторное сворачивание ~/.config на свежей установке;
- добавлены проверки сохранности профиля, повторного запуска и чужих ссылок.

Проверка:
- bash tests/test_install.sh
- bash -n install.sh tests/test_install.sh
- git diff --check
2026-07-21 08:29:52 -04:00

55 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`.