Replace log.Printf/Println with slog.Info/Error/Warn across the codebase.
Initialize slog with JSON handler in main.go. Add panic recovery defer
in SSH session handler. Add structured game event logging (room created,
player joined, game started, game over, player inactive removed).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add config package that loads game settings from YAML files with
sensible defaults for server, game, combat, dungeon, and backup
settings. Includes config.yaml with all defaults documented.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
13 tasks covering config package, server wiring, constant replacement,
structured logging, UI Screen interface extraction, and emote system.
All reviewed and corrected for module paths, signatures, and coverage.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Archfiend → Archlich (matches codebase)
- Clarify AoE pattern moves from Guardian to Archlich final boss
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fix critical issues from spec review:
- Correct model.go line count (712, not 19K) and adjust Phase 1-1 scope
- Acknowledge existing chat/freeze implementations, rescope accordingly
- Add data model definitions (structs, BoltDB schemas) for all new entities
- Move logging and config externalization to Phase 1 (foundation)
- Align floor themes with boss patterns
- Add testing strategy, data migration plan, and admin API contract
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comprehensive enhancement plan for Catacombs covering 4 phases:
UI refactoring, combat/dungeon expansion, retention systems, and
operational stability.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
WebSocket-to-SSH proxy on :8080. Browser connects via xterm.js,
server bridges to localhost:2222 SSH. Single HTML file, CDN deps.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace shallow struct copy with full deep copy of Players, Monsters,
Floor/Rooms, Inventory, Relics, ShopItems, and CombatLog slices so
concurrent readers via GetState never alias the combatLoop's live data.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Exploration uses Up/Down + Enter instead of number keys
- Adjacent rooms shown with cursor selection in HUD
- Neighboring rooms visible on fog of war map
- Room numbers displayed on tile map with type-colored markers
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace list-based room display with proper 2D tile map using Binary
Space Partitioning. Rooms are carved into a 60x20 grid, connected by
L-shaped corridors, and rendered with ANSI-colored ASCII art including
fog of war visibility.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>