Fix vertical line artifacts in nighttime overlay by using a single
rectangle for full night and a base+sweep approach for transitions.
Increase night darkness from 0.3 to 0.45 for more distinct nighttime.
Add a time indicator bar at top-center showing day/night progress
with sun/moon icons matching the EarthBound-inspired UI style.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The LlmService interface no longer exposes isDailyLimitReached — model
switching is handled internally. Remove all checks in thoughtSystem,
inventionSystem, narrationService, and thoughtGenerator. Update mocks
in test files to match the new interface and remove obsolete daily-limit
test cases.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add RateLimitInfo interface and CompletionResult type union so callers
can distinguish 429 rate limits from other errors. Includes isRateLimited
type guard and per-request model override in CompletionRequest.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Verifies complete save → close → reopen → load cycle with NPCs,
relationships, bonds, structures, and all event types (narration,
memory, stockpile, invention).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wire SaveManager into game startup/shutdown: constructor now checks for
existing save file and loads or creates new world accordingly. Add
autosave every 30s, final save on stop, and graceful shutdown signals.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add createEntityWithId to World for restoring entities with original IDs.
Implement saveEntities/loadEntities to persist NPCs, structures, relationships,
and bonds to SQLite, with proper Map serialization and transient state resets.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Save/load functions for all four event tables with proper JSON serialization,
chronological ordering, per-entity grouping, and optional field handling.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implements saveTiles/loadTiles for round-tripping terrain, decorations,
trunk decorations, resource tiles, obstacles, food and rest positions
via SQLite. Adds saveMetadata/loadMetadata for tick and timestamp.
Includes database.ts (previously only in main worktree).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add R(esources) tab to left panel showing stockpile totals and activity log
- Rework NPC panel tabs to vertical left-edge S/R/H/I style
- Add pickup system for NPCs to take materials from stockpiles for crafting
- Move inventory display to dedicated I(nventory) tab on NPC panel
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace horizontal Status/Relations/History tabs with vertical single-letter
tabs (S/R/H/I) on the left edge of the panel. Add dedicated Inventory tab,
removing inventory from the Status tab. Panel structure reworked to flex row
with tab column + panel body, matching the LeftPanel's tab styling but mirrored.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
NPCs can now retrieve crafting materials from stockpiles instead of
always gathering raw resources. The industry system checks if a
stockpile has needed materials before falling back to gathering.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mark all resource system phases (A, B, C, D.1-D.3) as complete in
the LLM integration roadmap and design docs. D.4 (structure
inspection) remains as future work.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- D.1: Inventory display in NPC info panel (two-column grid below stats)
- D.2: Activity labels for gather/craft/build/dropoff goals
- D.3: Gold color for invention events in feed, lightbulb icon in history
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>