Files
pinball-duel/KNOWN_ISSUES.md
aevgarik a1b0ae9e96 Post-codex-review-3 docs: KNOWN_ISSUES + playtest protocol
- 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>
2026-05-24 04:10:04 +03:00

66 lines
3.6 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.
# 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](https://github.com/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`, `build` section).
- **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` обязателен)
Текущий 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`](./playtest-protocol.md) с внешним тестером
(не разработчик) до закрытия Phase 2. Pass-bar: ≥75% blind-attribution accuracy.
---
## Cross-references
- Phase roadmap: [`README.md#фазовый-план`](./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-*`)