From 0fd54eddc40f517cf491310d4f8a60b0d79dc937 Mon Sep 17 00:00:00 2001
From: Peter Stone <thepeterstone@gmail.com>
Date: Wed, 4 Mar 2026 11:12:44 -1000
Subject: feat: sync log, cache clear endpoint, Todoist projects from cached
 tasks

- migration 016: sync_log table
- store: AddSyncLogEntry, GetRecentSyncLog, InvalidateAllCaches, GetProjectsFromTasks
- settings: HandleClearCache (POST /settings/clear-cache), SyncLog in page data
- settings: use GetProjectsFromTasks instead of deprecated Todoist REST /projects
- handlers: populate atom projects from store
- agent: log warning on registration failure instead of silently swallowing
- google_tasks: simplify URL literal
- tests: sync log CRUD, clear cache handler, settings page includes sync log,
  sync sources adds log entry, incremental sync paths, task completion
  response/headers, calendar cache fallback

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---
 migrations/016_sync_log.sql | 6 ++++++
 1 file changed, 6 insertions(+)
 create mode 100644 migrations/016_sync_log.sql

(limited to 'migrations/016_sync_log.sql')

diff --git a/migrations/016_sync_log.sql b/migrations/016_sync_log.sql
new file mode 100644
index 0000000..a281fce
--- /dev/null
+++ b/migrations/016_sync_log.sql
@@ -0,0 +1,6 @@
+CREATE TABLE IF NOT EXISTS sync_log (
+    id INTEGER PRIMARY KEY AUTOINCREMENT,
+    event_type TEXT NOT NULL,
+    message TEXT NOT NULL,
+    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
+);
-- 
cgit v1.2.3

