From cbb0b53de1d06918c142171fd084f14f03798bc1 Mon Sep 17 00:00:00 2001
From: Peter Stone <thepeterstone@gmail.com>
Date: Sat, 31 Jan 2026 20:16:12 -1000
Subject: Add feature toggles system with settings UI (#74)

- Add feature_toggles table (migration 012)
- Add source_config table for future source selection (migration 013)
- Create settings page at /settings with:
  - Feature toggle management (enable/disable/create/delete)
  - Data source configuration (sync and toggle boards/calendars)
- Add store methods for feature toggles and source config
- Add GetCalendarList and GetTaskLists to Google API clients
- Document feature toggle workflow in DESIGN.md

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---
 migrations/012_feature_toggles.sql | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 migrations/012_feature_toggles.sql

(limited to 'migrations/012_feature_toggles.sql')

diff --git a/migrations/012_feature_toggles.sql b/migrations/012_feature_toggles.sql
new file mode 100644
index 0000000..db74588
--- /dev/null
+++ b/migrations/012_feature_toggles.sql
@@ -0,0 +1,15 @@
+-- Feature toggles for gradual rollout and experimentation
+CREATE TABLE IF NOT EXISTS feature_toggles (
+    id INTEGER PRIMARY KEY AUTOINCREMENT,
+    name TEXT NOT NULL UNIQUE,
+    description TEXT,
+    enabled INTEGER NOT NULL DEFAULT 0,
+    created_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime')),
+    updated_at TEXT NOT NULL DEFAULT (datetime('now', 'localtime'))
+);
+
+-- Insert some initial toggles
+INSERT OR IGNORE INTO feature_toggles (name, description, enabled) VALUES
+    ('source_config', 'Configure which boards/lists/calendars to fetch from each source', 0),
+    ('calendar_timeline', 'Show timeline as a calendar view with time slots', 0),
+    ('completed_log', 'Track and display completed tasks log', 1);
-- 
cgit v1.2.3

