diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-17 22:22:37 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-17 22:22:37 +0000 |
| commit | b007fee8fb5b39a5f9b369c59af71ac9e795ceaf (patch) | |
| tree | a5b999b8f4c23a52ae9249675753a92a77993008 /internal/store/sqlite_test.go | |
| parent | 70e6dd75130e70f2db83096c23eaa75326b183a2 (diff) | |
Implement linear task chains and recurring maintenance buckets
Backend, web timeline, and Android widget wiring for the last two
unimplemented items from doot-future-task-scheduling-ideas.
Chains: task_chains table + chain_id/chain_position/chain_unlocked on
native_tasks (migration 026), WIP-limit-1 advancement hooked into
CompleteNativeTask, locked tasks excluded from all date-based queries,
5 new /api/widget/chains* endpoints, an N/M position badge on web and
Android widget rows.
Buckets: maintenance_buckets table + bucket_id/bucket_state/
bucket_last_active_at on native_tasks (migration 027),
staleness-then-priority selection scoring, a new RunBucketCycleCheck
scheduler loop, 5 new endpoints including the distinct Defer action, a
Defer button on web and Android widget rows.
Also corrected stale "not yet approved" status headers on the two
already-shipped specs this work depended on (labels/projects, budgets/
availability) -- their headers were never updated after implementation.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
Diffstat (limited to 'internal/store/sqlite_test.go')
| -rw-r--r-- | internal/store/sqlite_test.go | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/internal/store/sqlite_test.go b/internal/store/sqlite_test.go index 345b40e..7f7e56d 100644 --- a/internal/store/sqlite_test.go +++ b/internal/store/sqlite_test.go @@ -185,7 +185,13 @@ func setupTestStoreWithNativeTasks(t *testing.T) *Store { recurrence_weekdays TEXT DEFAULT '', recurrence_series_id TEXT DEFAULT '', next_occurrence_override TEXT DEFAULT '', - estimated_minutes INTEGER DEFAULT 0 + estimated_minutes INTEGER DEFAULT 0, + chain_id TEXT DEFAULT '', + chain_position INTEGER DEFAULT 0, + chain_unlocked BOOLEAN DEFAULT 0, + bucket_id TEXT DEFAULT '', + bucket_state TEXT DEFAULT '', + bucket_last_active_at DATETIME ); ` if _, err := db.Exec(schema); err != nil { |
