- Зачем:
- пользователь сжимает контекст сессии; состояние конвейера и решения
должны переживать сжатие в файле проекта, а не в разговоре.
- Что:
- создан .scratch/handoffs/20260720-0425-xray-proxy-after-06.md: состояние
после задачи 06, порядок 03→04→05, правила прогона
(medium-эксперимент, леджер, thread_id) и решения пользователя.
- в AGENTS.md закреплено правило размещения handoff-записок в
.scratch/handoffs/ (одноразовые, коммитятся, уборка best-effort).
- Проверка:
- git show --stat HEAD.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Зачем:
- CLI и спека были переусложнены относительно принятой модели угроз
(один пользователь, доверенная машина): лишняя ось версий Xray и
защита от входов, которые не возникают при ручном редактировании.
- Что:
- убрана поддержка Xray 25.12.8 — поддерживается только 26.3.27;
allowInsecure валидируется, но никогда не эмитится в JSON.
- удалена проверка владения сокетом через /proc/net/tcp; идентичность
процесса и сверка адрес/порт со state сохранены.
- валидация INI/профиля/адреса/query сведена к отказам на реальные
опечатки; scoped IPv6 отклоняется одинаково на Python 3.8 и 3.9+.
- удалены fsync/O_EXCL-церемония, SIGALRM-таймер, zombie-инспекция,
мёртвый отпечаток профиля и двойной разбор extra/alpn.
- shell.bash принимает вывод env без ре-валидации, сохранив атомарность;
спека и issue 01–05 приведены к новому объёму (тикет 06, леджер).
- Проверка:
- python3 -m unittest discover -s tests — 34 теста OK.
- bash tests/test_proxy_launchers.sh — 8 проверок PASS.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>