What's New
Task Dependencies (DAG)
blocked_by/blocksrelationships between tasks- Database-level cycle detection via recursive CTE
- Atomic creation:
add_taskwithblocked_byparameter creates task + edges in one transaction get_tasksandget_top_tasksreturnblocked_byarray in compact output
Session-to-Task Linking
session_idcolumn tracks which Claude session worked on each task- Enables "what did this session accomplish?" queries and cross-session resume
Mobile PWA
- Web app manifest, service worker (Workbox), responsive mobile UI
- Task card view for mobile, full-screen modals, sticky mobile header
- IndexedDB-backed offline mutation queue with auto-sync on reconnect
- Install prompt banner and network status indicator
Context-Fence Skill Pair
- writbase-router (68 lines): lightweight intent classifier loaded in main context
- writbase-recipes (418 lines,
context:fork): dense API reference in isolated subagent - ~87% token savings vs loading worker + manager skills inline
/loop Skill
- Autonomous task processing: poll → claim → execute → complete → loop
- Circuit breaker (3 consecutive errors), version conflict retry
- Writes
.claude/current-task.jsonfor hook integration
Audit Trail Hook
- PostToolUse hook captures git commit SHAs and PR URLs as task provenance
- Reads active task from
.claude/current-task.json
Agent Teams Hook Sync
- SubagentStop hook auto-marks WritBase tasks done when subagents complete
- Parses response version from transcript (not input version)
Agent Stop Hook (via writbase init)
writbase initnow installs an agent-type Stop hook to~/.claude/settings.json- Blocks session end when WritBase tools were used but no tasks were tracked
- Idempotent — safe to re-run
Breaking Changes
- worker and manager skills removed (superseded by context-fence recipes)
- Plugin now registers 4 skills: extract-tasks, loop, writbase-router, writbase-recipes
Migrations
00029_session_id.sql— addssession_idcolumn to tasks00030_task_dependencies.sql— addstask_dependenciestable, cycle detection, updated RPCs
Run npx writbase init to upgrade.