- Scheduled to-dos: new ScheduledTodo + ScheduledTodoCompletion models
(owner-XOR-project ownership like Category, per-occurrence completion
so a recurring to-do tracks done state per calendar date), recurrence
built server-side from validated parts via rrule-utils, CRUD +
occurrence-toggle server actions, add/edit dialog, and a collapsible
Scheduled side panel (overdue / today / upcoming) with UTC-safe
date-key formatting.
- AI to-dos: group-level AI dialog (lib/actions/todo-ai.ts) that chats
then proposes a finalize list of to-dos; editable proposals and bulk
add via BoardProvider.addTodos; speech recognition gains better error
handling (network/firewall message, error logging).
- Building upgrades: new `upgradesFrom` rule — Nuclear Power Plant can
replace a friendly Energy Generator and Advanced Metal Generator a
Mass Generator (same tile + footprint, per TALogic.findUpgradeTarget),
crediting a 50% refund of the replaced building's OWN cost;
compileRules validates the references, topperFrame gets a generic
spinning-glyph fallback in TAArt.
- Movement rework: pushOutOfObstacles replaces the hard tile-snap with a
damped circle-vs-tile overlap push, and pathfinding routes at exact-fit
clearance instead of +1 padding (fixes corner grinding/stalling).
- New map m06 "Annihilation" (medium, snowfields, Klaxon skill 5, seed
90123 — pre-vetted for early-economy balance).
- Tests: upgrade placement (ownership, type match, exact footprint,
refund, army-less fallback), obstacle routing/settling, corridor
moves; sprites.md updated for upgradesFrom and toppers.
Introduce GroupAiDialog component allowing users to chat with an AI assistant to generate or refine group notes.
Add useSpeechRecognition hook wrapping the Web Speech API for microphone support.
Implement converseAboutGroup server action to handle the AI conversation loop, supporting iterative questioning and final note generation.
Extract joinApiUrl helper in lib/ai-settings.ts for consistent endpoint URL construction.