- ProjectEditor gained two collapsed-by-default sections: Members (add/
remove viewer/editor via the UserPicker lookup) and Status pipeline (same
add/rename/hold/done pattern as Settings' global one, scoped to the
project via the new per-project status endpoints).
- TaskDetail now resolves status pills against the task's project pipeline
(useProjectStatuses) instead of always the global one, gained a Pin
button (pinned_today), and a non-owner project 'editor' can now actually
edit a task's content/status in the drawer (checked via a project-members
lookup, since the task payload alone can't say who's an editor) --
list/project/assignment stay owner-only, matching the backend's 403s.
- TodayView now fetches every open task (not just due-dated ones) and
buckets into Overdue/Today(or pinned)/Next 7 days/Other, with "Other"
collapsed by default -- so an empty agenda reads as "nothing due" instead
of "nothing to do".
- Extracted BoardView's column rendering into a reusable TaskBoard
component (done columns collapse by default there too), and added a
List/Board view-mode toggle to both ListView and ProjectDetailView
instead of Board only existing as a separate global page you filter down
to one list/project.
- ListView and ProjectDetailView's Completed sections also collapse by
default now, same reasoning as Board's done columns.
tsc --noEmit and vite build both clean.