You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(tasks): per-project task lists with deadlines + a cross-project task board
The user runs 50+ projects and had only one free-text note per project (rolled up by the "Next"
view) — no checklist, no done state, no deadline. Now each project has a structured task list, and
the "Next" view becomes a cross-project task board grouped by due date.
- New pure src/shared/tasks.ts (TDD, 17 tests): Todo type, classifyDue (local-calendar-day
overdue/today/week/later/none — DST-safe), groupTasksByDue (incomplete-only, fixed order,
intra-group sort), taskCounts (card badge), immutable add/toggle/edit/setDue/remove reducers,
sanitizeTodos (drops junk, caps text + list length).
- StoreEntry.todos (default []), sanitized on read + write; getTodos/setTodos mirror setNote.
ProjectViewModel.todos flows through buildProjectList so listProjects() carries todos. New
project:setTodos IPC (sanitizes) + preload + global.d.ts.
- Next view = task board: add (project picker + text + optional date), check off, inline text edit,
a due chip that opens a date picker, delete, and open. Grouped 지연/오늘/이번 주/나중/날짜 없음
with a header count + overdue total. Supersedes the note/cue rollup (nextItems.ts removed; the
resume cue still shows on each card).
- Deck card / list row: a compact read-only badge "done/total · overdue" (hidden when no tasks, red
when overdue) → click jumps to the board. Todos are in projectSignature so the badge updates on
the in-place refresh.
- Locale keys x4 (157/locale); date-only deadlines (no clock time).
Scope: brainstorm chose "planning + deadlines" of three directions (a scheduling calendar and
per-project info management deferred to their own specs). QA: 358 tests (+16 net); a compiled
store->group end-to-end check green; Playwright harness 0 console/page errors across all views x4
locales incl. the new task board. Deferred: drag-reorder, priority, recurring, reminders, calendar
view, subtasks, tags.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0 commit comments