- KNOWN_ISSUES.md: dev-only vite/esbuild moderate CVEs с impact analysis (production бандл не затронут), mitigation, плановый vite 5→8 + vitest 1→3 апгрейд перед Phase 5; AI distinguishability caveat с ссылкой на playtest. - playtest-protocol.md: 20-матчевая blind-attribution методика для закрытия Phase 2 DoD «тестер различает 4 личности»; рубрика per-match, expected tells (для оценщика, не тестера), randomization protocol, failure-mode follow-ups, report template, codex-automation roadmap. - README.md: новый раздел «Operational docs» с cross-ref на оба файла. Не код — операционная документация для closure Phase 2 и трекинга backlog. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
3.6 KiB
Known Issues
Каталог известных проблем и плановых работ. Обновляется при каждом codex/external review.
Toolchain (build-time, dev-only — НЕ попадает в production bundle)
npm audit: 4 moderate vulnerabilities в цепочке vite@5.4.21
Дата фиксации: 2026-05-24 (codex review #3, HEAD bb9f720).
Затронуто: esbuild ≤ 0.24.2, транзитивно через vite@5.x и vitest@1.x.
CVE / advisories:
- GHSA-67mh-4wv8-2f99 — esbuild dev-server CORS:
встроенный esbuild dev-server отражает произвольный
Origin, что позволяет cross-origin чтение source-кода во время разработки.
Impact analysis:
- Production bundle: не затронут. Vite/Rollup собирают финальный бандл во время
npm run build; esbuild-код не отгружается клиенту. На YG/RuStore/Play загружается толькоdist/(см.vite.config.ts,buildsection). - Dev-server: уязвим только при запуске
npm run devИ биндинге на доступный по сети адрес. Vite по умолчанию слушает127.0.0.1.
Mitigation (текущий):
- НЕ запускать dev-server с флагом
--host 0.0.0.0или--hostв untrusted сетях. Командаnpm run devдефолтно safe. - В CI и production builds esbuild dev-server не запускается вовсе.
Resolution plan: Контролируемый апгрейд toolchain перед Phase 5 (YG SDK integration), когда build chain в любом случае пересматривается:
vite 5.x → 8.x— major upgrade, ломает API:build.rollupOptions.output— изменён shape- Plugin lifecycle hooks (
buildStart,transform) — сигнатуры - Возможны проблемы с
base: './'на YG (требует проверки)
vitest 1.x → 3.x— major upgrade, ломает API:- Test runner v3 API (
setupFiles,globals) - Coverage provider config (
@vitest/coverage-v8обязателен)
- Test runner v3 API (
Текущий ETA: ~ конец июня 2026 (вместе с Phase 5 prep). Не блокирует Phase 3-4.
Phase 2 — game-side
AI personality distinguishability — codified, требует внешней валидации
Дата фиксации: 2026-05-24 (codex review #3).
Поведенческие отличия 4 личностей реализованы (PersonalityModifier в
src/ai/AIPlayer.ts, специальные хуки в DefensiveAI/AggressiveAI/GhostAI/TricksterAI).
Однако Phase 2 DoD #X — «тестер различает 4 личности после 5 матчей» —
не доказуем code-only проверкой; требует blind playtest.
Resolution plan:
Прогон по playtest-protocol.md с внешним тестером
(не разработчик) до закрытия Phase 2. Pass-bar: ≥75% blind-attribution accuracy.
Cross-references
- Phase roadmap:
README.md#фазовый-план - Concept docs:
~/Knowledge/Projects/pinball-duel/ - Audit history:
~/Knowledge/Projects/pinball-duel/index.md(10 раундов доdc53623, затем codex rounds #1-3 в git log с тегомPost-codex-review-*)