Выделить CorpseManager
This commit is contained in:
@@ -179,10 +179,12 @@ baseline-задачи также имели явного владельца по
|
||||
- принят `goon-game-milestone-production`.
|
||||
|
||||
Статус на 19 августа 2026: Stage 6 начат в изолированном production stream.
|
||||
Первый foundation slice `goon-game-character-states` завершён: явные
|
||||
Idle/Run/Turn/Jump/Fall/Land/Interact/Stunned/Death transitions, configured
|
||||
timings и отдельные non-color animation poses прошли 81 JVM-тест и финальную
|
||||
Android 16 matrix `36/36`. Следующий foundation slice — `CorpseManager`.
|
||||
Завершены первые два foundation slice. `goon-game-character-states` добавил
|
||||
явные Idle/Run/Turn/Jump/Fall/Land/Interact/Stunned/Death transitions.
|
||||
`goon-game-corpse-manager` перенёс регистрацию, transforms, FIFO budget, reset,
|
||||
save/restore и diagnostics тел в отдельного владельца без изменения физики и
|
||||
геометрии. Последний gate: 84 JVM-теста и Android 16 matrix `37/37`.
|
||||
Следующий foundation slice — event-driven `PuzzleSystem`.
|
||||
|
||||
### Этап 7. Техническая стабилизация и release engineering — P0, 4–8 дней
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
# Stage 6 CorpseManager
|
||||
|
||||
Date: 19 August 2026
|
||||
|
||||
Beads task: `goon-game-corpse-manager`
|
||||
|
||||
## Contract
|
||||
|
||||
`CorpseManager` is the single owner of bodies in one active level. It provides:
|
||||
|
||||
- bounded registration with stable IDs and deterministic FIFO eviction;
|
||||
- explicit remove and level-reset lifecycle operations;
|
||||
- composable `PINNED`, `FROZEN`, and `CONDUCTIVE` transformations;
|
||||
- body physics facts needed by collision, moving-platform, save, and restore code;
|
||||
- immutable lifecycle diagnostics for automation and regression tests.
|
||||
|
||||
`GameView` remains the high-frequency physics adapter, but it no longer creates,
|
||||
owns, evicts, resets, or restores bodies through an internal collection. The
|
||||
manager exposes an unmodifiable live view, so callers can update owned body facts
|
||||
without being able to change collection membership.
|
||||
|
||||
The body budget and FIFO policy preserve the accepted Vertical Slice behavior.
|
||||
Restart and level changes clear active bodies through the manager; save/restore
|
||||
re-registers bodies and then reapplies their stored transformations. No level
|
||||
geometry, movement, collision constant, or death signature changed.
|
||||
|
||||
## TDD evidence
|
||||
|
||||
Separate RED cycles covered the missing manager contract, removal/reset
|
||||
diagnostics, mutable physics facts plus composable transformations, rejection of
|
||||
foreign bodies, and the missing `GameView` automation hook. Each RED was followed
|
||||
by its focused GREEN before the next behavior was introduced.
|
||||
|
||||
The Android integration test creates a real level-10 saw body through production
|
||||
input, verifies manager registration, restarts the level through the public game
|
||||
surface, and verifies that manager reset owns the cleanup.
|
||||
|
||||
## Final gates
|
||||
|
||||
- JSON validator: `10/10`, format `1`, physics `1`.
|
||||
- JVM: `84`, failures `0`, errors `0`, skipped `0`.
|
||||
- `lintDebug`, `assembleDebug`, `assembleDebugAndroidTest`: GREEN.
|
||||
- focused Android 16 lifecycle: `1/1` GREEN.
|
||||
- final unfiltered Android 16 matrix: `37/37`, failures `0`, errors `0`,
|
||||
skipped `0`, `427.237 s`, on the exact final APK/test APK.
|
||||
- debug APK ZIP integrity: `unzip -t` GREEN.
|
||||
- debug APK SHA-256:
|
||||
`982fcf312f10bf23feb3a8794b708b61002012a3706c94ebb4320fefb36fb889`.
|
||||
|
||||
The dedicated AVD was stopped after the final gate.
|
||||
Reference in New Issue
Block a user