Skip to content

v0.3.0 — Task Management + Notion Replacement

Choose a tag to compare

@RMANOV RMANOV released this 02 Mar 12:07
· 578 commits to main since this release

sqlite-memory-mcp now includes full task management — replacing Notion as Single Source of Truth for tasks.


What's new

Task Management Tools (13-18)

Six new tools for structured task CRUD, queries, and automation:

Tool Description
create_task(title, description?, ...) Create task with UUID, unlimited description, priority/section/due_date
update_task(task_id, **fields) Partial update — only provided fields change
query_tasks(section?, status?, ...) Filtered SQL queries with markdown table output
task_digest(sections?, ...) Formatted session-start digest grouped by section + overdue
archive_done_tasks(older_than_days=7) Bulk archive completed tasks by age
bump_overdue_priority(target="high") Auto-escalate overdue task priority

Tasks Schema

CREATE TABLE tasks (
    id          TEXT PRIMARY KEY,     -- UUID
    title       TEXT NOT NULL,
    description TEXT,                 -- unlimited length
    status      TEXT DEFAULT 'not_started',
    priority    TEXT DEFAULT 'medium',
    section     TEXT DEFAULT 'inbox', -- inbox|today|next|someday|waiting
    due_date    TEXT,                 -- YYYY-MM-DD
    project     TEXT,
    parent_id   TEXT REFERENCES tasks(id),
    notes       TEXT,
    recurring   TEXT,                 -- JSON config
    created_at  TEXT NOT NULL,
    updated_at  TEXT NOT NULL
);
-- 5 B-tree indexes for fast queries

Bridge v2 — Task Sync

  • shared.json payload version bumped 1 → 2
  • bridge_push() now exports all non-archived tasks
  • bridge_pull() imports tasks with last-write-wins (updated_at comparison)
  • Backward compatible: v1 payloads without tasks key → empty list

Kanban Board (GitHub Pages)

New task_report.py generates a self-contained index.html Kanban board:

  • Columns by section (Today, Inbox, Next, Waiting, Someday)
  • Priority color-coding (critical/high/medium/low)
  • Overdue highlighting with red badges
  • Business professional style — dark navy/charcoal/white palette
  • Responsive design, zero JS dependencies

Auto-Migration

Existing databases get new columns automatically via _MIGRATIONS list in _init_db(). No manual SQL needed — just update and restart.


Design decisions

  • UUID task IDs — guarantees uniqueness across machines without coordination (vs auto-increment which would collide during bridge sync)
  • Last-write-wins sync — tasks have mutable state (status, priority), so bridge uses updated_at comparison instead of INSERT OR IGNORE
  • Unlimited description — TEXT in SQLite has no practical length limit, supports full task specs
  • Section-based workflow — inbox/today/next/someday/waiting maps naturally to GTD methodology
  • Markdown table output — query_tasks returns both JSON and pre-formatted markdown for direct display

Migration from Notion

Companion scripts rewritten from Notion API to SQLite (in notion_automations/):

Script Before After
daily_digest.py 220 lines + Notion API 105 lines, pure SQL
auto_archive.py 103 lines + Notion API 42 lines, pure SQL
overdue_bump.py 107 lines + Notion API 34 lines, pure SQL
recurring_tasks.py 187 lines + Notion API 152 lines, pure SQL

Task Scheduler Automation (Phase 7)

Daily task management is now fully automated via a single master orchestrator batch file
registered with Windows Task Scheduler.

Approach: 1 scheduler entry → 1 batch file → 5 scripts in order.
This avoids drift between separate scheduled tasks and ensures correct execution sequence.

Execution Order

# Script Action
1 recurring_tasks.py Creates new recurring tasks from JSON config
2 overdue_bump.py Escalates overdue tasks to priority high
3 auto_archive.py --days 7 Archives completed tasks older than 7 days
4 daily_digest.py Prints daily task summary to log
5 task_report.py Regenerates Kanban HTML board

Scheduler Configuration

  • Task name: \Claude\DailyTaskAutomation
  • Schedule: Daily at 08:00, StartWhenAvailable=True (catches missed runs on wake)
  • Timeout: 5 minutes (total runtime < 3 seconds in practice)
  • Privileges: User-level (no elevation required)
  • Log: ~/.claude/memory/logs/task_automation.log (append-only, ~1 KB/day)

All 5 scripts use pure stdlib Python — zero external dependencies beyond fastmcp.


Full changelog

  • feat: create_task() — UUID-based task creation with validation
  • feat: update_task() — partial field updates with explicit MCP parameters
  • feat: query_tasks() — filtered SQL queries + markdown table output
  • feat: task_digest() — session-start formatted digest
  • feat: archive_done_tasks() — bulk archive by age
  • feat: bump_overdue_priority() — auto-escalate overdue tasks
  • feat: tasks table schema with 5 indexes + description column
  • feat: bridge v2 payload with task sync (last-write-wins)
  • feat: task_report.py — Kanban HTML generator for GitHub Pages
  • feat: auto-migration system (_MIGRATIONS list)
  • chore: version bump 0.2.0 → 0.3.0
  • chore: run_daily_tasks.bat — Windows Task Scheduler orchestrator
  • docs: README updated for v0.3.0 (21 tools, task management, kanban)

Total tools: 21 (9 drop-in compatible + 12 extended)

Python 3.10+, MIT license.