Repository navigation
v1.4.0 — игровые примеры и рабочие ссылки на PyPI
В 1.4.0 два игровых примера, которые показывают движок целиком: шахматы против Stockfish и аркада в духе Pac-Man. Обе игры наши, обе измеряются очками, а не разметкой.
Шахматы
Stockfish предлагает три лучших хода, а обученная голова need_deep решает, надёжен ли быстрый ответ, и только тогда включается глубокий просчёт. На отложенном сплите голова даёт AUC 0.819 при ECE 0.032. При пороге 0.3 каскад закрывает половину разрыва до «всегда глубоко», потратив 38% его цены.
Лабиринт
Своя среда: точки исчезают по мере съедания, призраки патрулируют карту, раз в 70 шагов появляется бонус. Голова предсказывает, что жадный шаг закончится потерей жизни. На 100 эпизодах каскад собирает 94% очков осторожной политики и вдвое больше, чем жадная, платя за осторожность на каждом третьем ходу.
Обе игры с записью в GIF (14–18 секунд), генератором данных, обучением штатным рецептом и тестами без сети. Ставятся отдельно: pip install "decision-cascade[games]", сам движок от этого не потяжелел.
Исправлено: ссылки в README на PyPI
На странице PyPI относительные ссылки (docs/..., LICENSE, pyproject.toml) превращались в 404, а картинки — в битые. Все внутренние ссылки теперь абсолютные, на GitHub и на PyPI ведут в одно место. Тест в CI не даст вернуть относительные.
Совместимость
Ломающих изменений нет: schema_version остаётся "1", переменные окружения и формат паков прежние. games — необязательная зависимость, без неё шахматный пример просто не запустится.
Проверки
ruff и shellcheck чистые, uv lock --check проходит, pytest — 838 passed, 14 skipped без GPU (842 и 10 с GPU), покрытие 94%, pip-audit без известных уязвимостей, twine check и smoke установленного wheel — в порядке.
Артефакты
wheel и sdist, v1.4.0-weights.tar.gz с манифестом (семь паков; русский и игровые паки не публикуются) и v1.4.0-benchmarks.tar.gz с 38 файлами прогонов. Контрольные числа паков не менялись: AG News 0.8800, RouterBench 0.5480, support 0.9258.