Drag & Drop Rebuilt, Nested Paths & Resilience
Drag and drop has been rebuilt from the ground up on a single new engine that powers both the list page and the detail page. Drag a todo sideways to nest it under a sibling, drop it into another group and it picks up that group’s status, priority, assignee, or due date on the way in. The ghost follows your pointer faithfully, stays styled at the window edges, and Escape cancels the whole move mid-flight. Grouping by due date even works kanban-style — drop a todo into “Next week” and its date updates itself.
Your Inbox, your views
Inbox is now a true virtual view with its own per-user preferences. Sort order, grouping, and filters are remembered per list and per person, follow you between devices, and Inbox always stays pinned first. Archiving also takes care of itself now — completed todos move out of the way on their own, so there’s no manual archive button to remember.
URLs that mirror your tree
Todo pages now use nested paths: the address bar reflects the full chain from list to parent to subtodo, however deep you go. The breadcrumb renders every ancestor along the way, and hovering an ancestor shows a card with its status, identifier, and full title — no more guessing what a truncated crumb says.
Fly through the workspace
Press ↑/↓ (or j/k) on a todo page to step to the previous or next todo in exactly the order you left the list — your sort, your filters. A position indicator (4 / 59) shows where you are, on both detail and list pages. Mod+F filters subtodos right on the detail page, a new shortcuts dialog in the avatar menu lists everything your keyboard can do, and on touch you can long-press a status checkbox to open the full status menu.
Built to ride out bad networks
This release puts serious work into local-first resilience. The description editor now works fully offline. If the API has an outage, queued writes recover on their own once it’s back, and a visible indicator tells you when changes are still waiting to sync. If the local database ever gets wedged, the app surfaces a recovery screen with a “Reset local data” escape hatch, and stale local databases from older schema versions are cleaned up automatically. Deleted todos are purged after a 30-day retention window.
A leaner MCP
The MCP server got a major cleanup, published as @createtodo/mcp v0.10.0. Responses are flat and compact, with human-readable identifiers instead of UUID noise, todos can be filtered by keyword and date, and get_todo can embed relations — so agents see your workspace the way you do.
Improvements
- Group by due date with preset and dynamic buckets, fully drag-and-drop enabled
- Subtodos on the detail page can be drag-sorted and have their own sort-order selector
- The “N hidden” count on the detail page is now clickable — reveal completed subtodos for one todo without touching your global setting
- Completed-todo visibility filters gained “This week” and “This month” options
- Canceled todos render with a line-through in lists and on the detail page
- Labels got their colors back, shown as tinted dots on todo chips
- Date chips show a calendar icon when a due date is urgent
- Selectors persist across “create more” in the create-todo dialog
- Comments can be added and deleted with undo/redo support
- The activity timeline groups entries by calendar day and merges rapid-fire edits
- Buttons, focus rings, and dark-mode input borders got a design refresh — outline buttons no longer sink into dark cards
- Hover colors were unified across menus, rows, and buttons under one token
- Dragging a group header is restricted to vertical movement, so groups can’t wander sideways
Fixes
- Escape during a drag now only cancels the drag — it no longer also closes the todo page
- The drag ghost keeps its rounded corners and shadow when dragged to the window edge
- Inbox stays pinned first when reordering lists
- New todos get their position assigned server-side, so simultaneous creates can’t collide
- Duplicate sibling positions are compacted automatically on drop
- Rapid status-icon clicks cycle from the optimistic state instead of skipping steps
- The description editor no longer round-trips its own content or mangles paragraphs that start with markdown syntax
- Dismissing the command palette with Escape keeps you on the todo page
- Trash flow hardened: deleting a list cascades correctly to its todos
- Copy as Prompt works on iOS
- Activity history and relations sync reliably again and are included in pending-sync checks
- Partial updates through the API no longer clear unspecified fields
- The loading overlay waits for your view preferences, so lists don’t flash the wrong sort order