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>
This commit is contained in:
65
KNOWN_ISSUES.md
Normal file
65
KNOWN_ISSUES.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# 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-*`)
|
||||
Reference in New Issue
Block a user