test(xray-proxy): добавлена полная проверка Python 3.8
- Зачем: - требовалось подтвердить нижнюю версию Python и исключить переполнение /tmp тестовыми данными. - Что: - добавлен полный прогон под системным Python и CPython 3.8 через uv. - исправлены переносимость тестового Xray, уборка временных файлов и документация задачи 05. - добавлен список локальных навыков, исключаемых из Git. - Проверка: - bash tests/test_xray_proxy_full.sh.
This commit is contained in:
1 parent
92cf3397da
commit
fd8210db71
10 files changed
+234
-127
No files matched your search
@@ -1,74 +0,0 @@
|
||||
# Handoff: headless-xray-proxy — после задачи 04, перед 05
|
||||
|
||||
Дата: 2026-07-21. Одноразовый документ (правило AGENTS.md): следующая
|
||||
сессия читает, продолжает, по завершении вехи удаляет и пишет новый.
|
||||
|
||||
## Состояние конвейера
|
||||
|
||||
- Порядок прогона: 06 (done, baseline high) → 03 (done) → 04 (done) →
|
||||
**следующая — 05**.
|
||||
- 04 закрыта полным конвейером и закоммичена:
|
||||
`0432c4a feat(xray-proxy): добавлена проверяемая установка Xray командой install`.
|
||||
Резолюция и детали — в
|
||||
`.scratch/headless-xray-proxy/issues/04-verified-xray-installation.md`
|
||||
(Status: done). Тесты после 04: **79 OK + 8 PASS**
|
||||
(`PYTHONDONTWRITEBYTECODE=1 python3 -m unittest discover -s tests`,
|
||||
`bash tests/test_proxy_launchers.sh`).
|
||||
- Эксперимент «реализация на medium» завершён и зафиксирован (см. ниже);
|
||||
затраты по этапам — `.scratch/headless-xray-proxy/token-ledger.md`
|
||||
(итоги 03/04, сводка 06/03/04, наблюдения).
|
||||
|
||||
## Решения пользователя 2026-07-21 (обязательны для 05)
|
||||
|
||||
Зафиксированы в `~/.claude/skills/claude-subagent-playbook/`
|
||||
(SKILL.md — эффорт-карта Claude-субагентов; references/codex-exec.md —
|
||||
уточнение к правилу эффорта 2026-07-19; references/lessons.md — эмпирика
|
||||
прогонов 03/04) и в памяти `codex-effort-calibration.md`. Кратко:
|
||||
|
||||
- Codex: реализация по отревьюированному тикету → medium допустима;
|
||||
экономию эффорта считать по конвейеру целиком.
|
||||
- Claude-субагентам effort задавать ЯВНО при спавне: xhigh — ревью
|
||||
постановок/планов; high — слепое TASK-ревью (ниже не опускать);
|
||||
medium/default — узкие перепроверки. Внутри одного агента effort между
|
||||
резюмами не менять.
|
||||
- Высокий effort не страхует от выдумки внешних фактов (казус `.dgst` в
|
||||
04) — форматы артефактов/версии проверять первоисточником или фикстурой.
|
||||
|
||||
## Следующий шаг: задача 05
|
||||
|
||||
`.scratch/headless-xray-proxy/issues/05-package-delivery-and-acceptance.md`
|
||||
— доставка пакета и приёмка. Особенность: включает РУЧНЫЕ приёмочные
|
||||
прогоны пользователя на Ubuntu / РЕД ОС / Astra / Alt (по доступности) —
|
||||
планируй конвейер с точками ожидания пользователя. Старт — по команде
|
||||
пользователя («поехали по 5»): постановка → Codex spec-review (high) →
|
||||
переписывание тикета оркестратором → реализация (medium, если типовая) →
|
||||
саморевью (resume, medium) → два слепых ревью (Opus TASK high + Codex
|
||||
CODE high свежим тредом) → триаж (resume) → узкие перепроверки (medium) →
|
||||
приёмка → conventional commit (русский, Зачем/Что/Проверка).
|
||||
|
||||
## Механика и грабли (проверено в 03/04)
|
||||
|
||||
- Codex-вызовы, шаблоны промптов, правила resume — playbook
|
||||
references/codex-exec.md. Критично: `codex exec resume <id>` принимает
|
||||
ТОЛЬКО `-c`-оверрайды; thread_id забирать из первой строки stdout-JSONL
|
||||
сразу после старта; usage убитого хода теряется (нет `turn.completed`).
|
||||
- Смена `model_reasoning_effort` при resume кэш Codex-треда не сбрасывает.
|
||||
- Леджер: Codex — `grep '"usage"' stdout*.jsonl` (последняя строка хода),
|
||||
Claude-субагенты — `subagent_tokens` из task-notification; сравнивать по
|
||||
«свежий input + output».
|
||||
- Scratch прогонов 03/04: `/tmp/xray-lifecycle-OZHc`, `/tmp/xray-04-H156`
|
||||
(архив, для 05 создать свой каталог).
|
||||
- Секреты: реальные VLESS/UUID/ключи — никогда в репо/выводы; чужие
|
||||
untracked-артефакты (`zed/.config/*`, `agents/.agents/skills/*`,
|
||||
`scripts/setup-xray-proxy.sh`) не трогать и не коммитить; git add — только
|
||||
адресно или `-u`.
|
||||
|
||||
## Suggested skills
|
||||
|
||||
- `codex-subagent-playbook` — оптика делегирования; конвейер и механика
|
||||
Codex — в `~/.claude/skills/claude-subagent-playbook/` (SKILL.md +
|
||||
references), читать перед стартом 05.
|
||||
- `conventional-commits` — для коммитов (русский, совершенный вид,
|
||||
Зачем/Что/Проверка).
|
||||
- `handoff` — по завершении 05 обновить этот документ (удалить, создать
|
||||
новый по той же схеме).
|
||||
@@ -0,0 +1,62 @@
|
||||
# Handoff: headless-xray-proxy — задача 05 готова к ручной приёмке
|
||||
|
||||
Дата: 2026-07-21 07:43 EDT. Заменяет прежние handoff задачи 05.
|
||||
|
||||
## Состояние
|
||||
|
||||
Тикет `.scratch/headless-xray-proxy/issues/05-package-delivery-and-acceptance.md`
|
||||
переведён в `ready-for-human`. Автоматическая часть выполнена; продуктовый CLI
|
||||
менять не потребовалось.
|
||||
|
||||
## Что изменено
|
||||
|
||||
- Корневой `README.md` описывает готовый управляемый Xray и отдельное
|
||||
подключение через `stow xray-proxy`.
|
||||
- `xray-proxy/README.md` явно фиксирует отсутствие systemd, автозапуска и
|
||||
автоматического перехода между прокси.
|
||||
- `tests/test_xray_proxy_full.sh` запускает полный набор под системным Python и
|
||||
CPython 3.8 через `uv`, а также Bash-тесты и проверку установки.
|
||||
- Поддельный Xray в `tests/test_xray_proxy_managed.py` сохраняет отдельный
|
||||
исполняемый файл и получает доступ к библиотекам исходного Python. Это
|
||||
устраняет ложные падения переносимой сборки `uv`, не ломая тест удалённого
|
||||
исполняемого файла.
|
||||
- `tests/test_install.sh` создаёт тестовые деревья только из отслеживаемых
|
||||
Git-файлов внутри одного временного каталога и удаляет его при выходе.
|
||||
|
||||
## Проверка
|
||||
|
||||
`bash tests/test_xray_proxy_full.sh` завершился с кодом 0:
|
||||
|
||||
- системный Python 3.14: 79 тестов, `OK`;
|
||||
- Bash-интеграция: 8 проверок, `PASS`;
|
||||
- установка: `All install tests passed`, остатков `dotfiles-install-test.*` в
|
||||
`/tmp` нет;
|
||||
- CPython 3.8.20 через `uv`: 79 тестов, `OK`.
|
||||
|
||||
Двухосевое ревью относительно `92cf339`:
|
||||
|
||||
- Standards: 3 документационных замечания исправлены, повторная проверка PASS;
|
||||
- Spec: 2 документационных замечания исправлены, повторная проверка PASS;
|
||||
- запахов кода и незапрошенного расширения области не найдено.
|
||||
|
||||
## Что осталось пользователю
|
||||
|
||||
Выполнить ручные команды из раздела `## Comments` тикета 05:
|
||||
|
||||
1. На доступной Ubuntu с Python 3.10 — установка, жизненный цикл,
|
||||
`xray run -test`, HTTP и SOCKS через один локальный вход.
|
||||
2. На РЕД ОС, Astra Linux или Alt Linux по доступности — тот же сценарий после
|
||||
проверки версии Python.
|
||||
|
||||
В отчёт не копировать VLESS-ссылку, UUID, ключи, `shortId`, `path` и
|
||||
сгенерированный JSON. Достаточно версии системы/Python, кодов возврата и итога
|
||||
HTTP/SOCKS. Недоступную систему отметить как неподтверждённую.
|
||||
|
||||
## После ручного результата
|
||||
|
||||
1. Отметить только фактически выполненные пункты тикета 05.
|
||||
2. Обновить статус исходного дизайна и заявления о поддержке.
|
||||
3. Обновить или удалить этот handoff.
|
||||
4. По навыку `implement` выполнить итоговую проверку и conventional commit.
|
||||
|
||||
До ручной приёмки коммита задачи 05 нет.
|
||||
Reference in new issue
Block a user