From 9fe0998436488537a8a2e8ffeefb0c4424b41c60 Mon Sep 17 00:00:00 2001
From: Peter Stone <thepeterstone@gmail.com>
Date: Mon, 12 Jan 2026 09:27:16 -1000
Subject: Initial commit: Personal Consolidation Dashboard (Phase 1 Complete)

Implemented a unified web dashboard aggregating tasks, notes, and meal planning:

Core Features:
- Trello integration (PRIMARY feature - boards, cards, lists)
- Todoist integration (tasks and projects)
- Obsidian integration (20 most recent notes)
- PlanToEat integration (optional - 7-day meal planning)
- Mobile-responsive web UI with auto-refresh (5 min)
- SQLite caching with 5-minute TTL
- AI agent endpoint with Bearer token authentication

Technical Implementation:
- Go 1.21+ backend with chi router
- Interface-based API client design for testability
- Parallel data fetching with goroutines
- Graceful degradation (partial data on API failures)
- .env file loading with godotenv
- Comprehensive test coverage (9/9 tests passing)

Bug Fixes:
- Fixed .env file not being loaded at startup
- Fixed nil pointer dereference with optional API clients (typed nil interface gotcha)

Documentation:
- START_HERE.md - Quick 5-minute setup guide
- QUICKSTART.md - Fast track setup
- SETUP_GUIDE.md - Detailed step-by-step instructions
- PROJECT_SUMMARY.md - Complete project overview
- CLAUDE.md - Guide for Claude Code instances
- AI_AGENT_ACCESS.md - AI agent design document
- AI_AGENT_SETUP.md - Claude.ai integration guide
- TRELLO_AUTH_UPDATE.md - New Power-Up auth process

Statistics:
- Binary: 17MB
- Code: 2,667 lines
- Tests: 5 unit + 4 acceptance tests (all passing)
- Dependencies: chi, sqlite3, godotenv

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
---
 migrations/002_add_cache_metadata.sql | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
 create mode 100644 migrations/002_add_cache_metadata.sql

(limited to 'migrations/002_add_cache_metadata.sql')

diff --git a/migrations/002_add_cache_metadata.sql b/migrations/002_add_cache_metadata.sql
new file mode 100644
index 0000000..da6c0ce
--- /dev/null
+++ b/migrations/002_add_cache_metadata.sql
@@ -0,0 +1,17 @@
+-- Cache metadata table for tracking API fetch times and TTL
+
+CREATE TABLE IF NOT EXISTS cache_metadata (
+    key TEXT PRIMARY KEY,
+    last_fetch DATETIME NOT NULL,
+    ttl_minutes INTEGER NOT NULL DEFAULT 5,
+    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+
+-- Pre-populate with cache keys
+INSERT OR IGNORE INTO cache_metadata (key, last_fetch, ttl_minutes) VALUES
+    ('todoist_tasks', '2000-01-01 00:00:00', 5),
+    ('todoist_projects', '2000-01-01 00:00:00', 5),
+    ('obsidian_notes', '2000-01-01 00:00:00', 5),
+    ('plantoeat_meals', '2000-01-01 00:00:00', 5),
+    ('trello_boards', '2000-01-01 00:00:00', 5),
+    ('trello_cards', '2000-01-01 00:00:00', 5);
-- 
cgit v1.2.3

