Lists of Your Own, Archive & a Softer Shell
Lists grew up. Every list now has its own settings page in Settings — General, Labels and Statuses, with the list’s labels, statuses and templates kept to that list — and a list can be private: only its members see it, enforced on sync, on every REST route and in the MCP alike. Each member picks a default list, from the list’s menu, Settings or the command palette, and that is where a new todo lands: the composer preselects it away from a list page, and ct create and save_todo file into it.
Archive, undoably
Archive a todo or a list from its menus, or press ⌘⇧⌫ on the open todo, list or selection, and undo it if you change your mind. The archive page restores instantly, undoably too, and Delete permanently asks first. Archive and Trash moved from the sidebar into the workspace menu.
A softer shell and a calmer dark theme
Surfaces round further and float on diffuse shadows; dialogs, the composer and a peeking sidebar share one corner, board cards a tighter one. The dark theme is rebuilt on neutral greys with a lighter page and rail and raised surfaces, and one grey ladder serves both themes. The sidebar is flat again — no edge line, no dividers — with a single hover tint everywhere a row lights up.
The rail, as one list of rows
The sidebar header drops its search field and Create todo row: the corner cluster always shows ⌘K and gains a +, and on a phone it shows Undo and Redo. The sync dot leads the workspace row and opens the workspace menu. Lists and Views are sections you fold flush, reorder by dragging their titles, and drag into the footer to pin over the account row. Every row — section titles included — sits on one 32px rhythm, and a dragged row shows where it lands as the row itself, at half opacity.
Tables survive the editor
A markdown table in a description is a table again, not a paragraph; cells show exactly what will be saved, one line each, and Tab and Shift+Tab move between them.
Improvements
- The website speaks in the maker’s voice, and its landing demo runs the app’s real components
- Paste a URL that walls off bots and the unfurl retries through a second fetcher
- A list’s settings page is an overview of grouped rows; the Members section carries the private toggle
- MCP clients can connect with OAuth: the server registers a client from its metadata document
ct claimkeeps its lease alive while the session lives and warns whom it took a todo over from;ct dismisswithdraws a questionnaire- Primary and destructive text reach AA contrast in both themes
- The list header’s Display and Filter buttons show on hover of the breadcrumb row, like the rail’s section buttons
- The composer card matches the todo dialog and keeps an 8px edge gap
Fixes
- Board columns keep their scroll offset when the tree re-renders
- A new list and a todo in it save in one batch; a status made in the same flush is accepted too
- An undo inside the sync echo window is no longer read as stale
- Adding or removing a favorite is one undo step
- “Create subtodo” from a row’s menu focuses the composer title
- The composer no longer grows the page by its own height while it slides in
- Shift+Tab leaves the description editor outside lists and tables
- A trash row’s glyph is scoped to its own list;
save_todoresolves a status against the todo’s list only - www.createtodo.com redirects to the apex instead of failing
- Colour picker swatches keep their name tooltip; scrollbar tracks are transparent
- The breadcrumb’s left padding fits the three-button cluster; the phone’s undo waits for a settled client