Add survival modes, inventory, and crafting progression - #23
Conversation
|
All verification complete. Here is the review. 📋 SummaryNo linked issues ("Fixes #N"/"Closes #N") are referenced in the PR body. This PR lands the survival layer roadmap items: creation-only Creative/Survival modes persisted in world metadata (session schema v2 with legacy migration), timed tiered mining with tool durability, a 40-slot stack inventory with drag/drop/keyboard transfers, chests/furnaces/crafting tables, physical item drops, survival vitals with death/respawn, crouch/third-person/block-pick verbs, and worldgen v14 (cave-independent ores) plus the flat-world flooding fix. Implementation quality is high: model/UI separation is clean, crafting is atomic and capacity-safe, the seven new verifiers plus updated regression verifiers are wired into CI, and AGENTS/ROADMAP/CRAFTING.md are updated consistently. I found no worker-thread, determinism, duplication, or data-loss defects; the issues below are a convention violation and small gameplay/cosmetic edges. 📌 Review Metadata
🔴 Critical Issues (Must Fix - Blocks Merge)None identified. Worker safety (all new gameplay code is main-thread;
|
| Principle | Score | Notes |
|---|---|---|
| Single Responsibility | 8 | Player owns vitals/mining, Main owns inventory/drops/stations, SurvivalUI presentation, ItemInventory/CraftingRecipes/InventoryTransfer/BlockContainers are focused models |
| Open/Closed | 7 | Data-driven recipes, tool tiers, and appended BLOCK_DEFS columns; recipe table lookup has one fragile keying (capitalize) |
| Liskov Substitution | 7 | No meaningful inheritance; test doubles subclass VoxelWorld/Player without contract breaks |
| Interface Segregation | 7 | Narrow callable contracts (can_place_check, interact_check, _accepts) and small slot/drag APIs |
| Dependency Inversion | 6 | Good injected callables, but Player/Main depend on VoxelWorld/Player concrete internals (_burning, _loaded_chunk_for, _cancel_mining) |
| Average | 7.0 |
🎯 Final Assessment
Overall Confidence Score: 82%
Confidence Breakdown:
- Code Quality: 85% (clean, typed, well-commented; a few cross-boundary private accesses)
- Completeness: 88% (implements seven ROADMAP items with honest documented limitations; no mode switching as specified)
- Risk Level: 78% (large surface area touching save migration and player loop, but conservation/determinism invariants hold and coverage is strong)
- Verification: 75% (excellent verifier suite included and CI-wired, but not executed in this environment)
Merge Readiness:
- All critical issues resolved
- SOLID average score >= 6.0
- Overall confidence >= 60%
- No security concerns
- No unresolved worker-thread, determinism, or data-loss risk
Verdict:
MERGE WITH FIXES
One medium convention violation (cross-module private access) plus a small fire-block harvest leak should be addressed, but the survival layer is functionally sound, well-verified, and ready once those are cleaned up.
Machine Readable Verdict
{
"reviewed_sha": "fc3d24375ef933088227e2d944e6a592244eef01",
"critical_issues": 0,
"high_priority_issues": 0,
"medium_priority_issues": 1,
"overall_confidence_score": 82,
"recommendation": "MERGE_WITH_FIXES"
}|
Addressed the actionable review findings in 73c97e9: public fire/residency queries and mining cancellation replace cross-module private access; extinguished fire produces no collectible drop; empty-hand right-click is silent while station interaction still works. Added regressions for each. The CI LOD failure is also fixed: v14 compact columns now sample the same ordered ore stamps at exposed top/sub cells without allocating full voxel data. The flat occlusion fixture now isolates lighting from biome tint and asserts level, dry terrain; existing shading thresholds remain unchanged. Local LOD, ore fingerprints, worldgen, survival progression, gameplay integration, fire, inventory, targeting and editor checks passed. Optional review dispositions: current recipe categories are single-word matching keys (no current mismatch); the death modal intentionally blocks unhandled gameplay input; held-tool allocation is selection-only and left for later optimization. The all-version dry-flat fix is intentional and documented, while v13-and-older ore eligibility remains preserved. No third-party texture assets were imported. |
|
All verification complete. Here is the review. 📋 SummaryNo linked issues ("Fixes #N"/"Closes #N") are referenced in the PR body. This commit ( 📌 Review Metadata
🔴 Critical Issues (Must Fix - Blocks Merge)✅ All previously reported critical issues have been resolved (none were reported). None identified. The new compact ore stamping is deterministic (same
|
| Principle | Score | Notes |
|---|---|---|
| Single Responsibility | 8 | Unchanged; compact stamping lives inside the existing ore stage rather than a parallel path |
| Open/Closed | 8 | Ore stamps extended via optional compact-array parameters without touching the full-volume contract |
| Liskov Substitution | 7 | No meaningful inheritance; verifier doubles unchanged |
| Interface Segregation | 8 | New public surface is two narrow queries (is_burning_at, is_full_chunk_resident_at) plus one verb (cancel_mining) |
| Dependency Inversion | 7 | Improved: Player/Main now depend on public VoxelWorld/Player contracts instead of private internals |
| Average | 7.6 |
🎯 Final Assessment
Overall Confidence Score: 88%
Confidence Breakdown:
- Code Quality: 88% (surgical fixes matching the suggested shapes; exhaustive new parity verifier)
- Completeness: 92% (all actionable findings addressed with regressions; dispositions documented for the rest)
- Risk Level: 85% (compact ore path is deterministic and bounds-exact; small well-contained diff)
- Verification: 82% (strong verifier suite, CI-wired and locally green per the author, but not executed in this environment)
Merge Readiness:
- All critical issues resolved
- SOLID average score >= 6.0
- Overall confidence >= 60%
- No security concerns
- No unresolved worker-thread, determinism, or data-loss risk
Verdict:
MERGE
All previously reported actionable issues are fixed with regression coverage, and the new compact ore stamping is deterministic, order-consistent, and parity-exact against the full volume.
Machine Readable Verdict
{
"reviewed_sha": "73c97e9bdc78790bda0c509e81ef70121cac3f36",
"critical_issues": 0,
"high_priority_issues": 0,
"medium_priority_issues": 0,
"overall_confidence_score": 88,
"recommendation": "MERGE"
}

Summary
Verification
Compatibility and limitations