- Add Project model with owner-based access and cascade delete
- Restructure Category to belong to either Home (userId) or a Project (projectId), enforced by DB constraints and access filters
- Scope all board operations (create, update, delete, reorder) to the correct board context using `categoryAccessFilter` and `projectAccessFilter`
- Replace hardcoded `revalidatePath("/")` with dynamic `boardPath()` for proper cache invalidation
- Add `ProjectsProvider` and `ProjectsNavSection` for project sidebar navigation
- Make KanbanBoard accept `projectId` and `title` props to render Home or Project boards
- Extract `getBoard()` utility to centralize board data fetching
- Refactor group/todo/notes actions to derive board context from category membership rather than trusting caller input
|
||
|---|---|---|
| .. | ||
| add-category-lane.tsx | ||
| add-group-popover.tsx | ||
| board-context.tsx | ||
| category-lane.tsx | ||
| color-swatch-picker.tsx | ||
| edit-group-dialog.tsx | ||
| empty-state.tsx | ||
| group-card-overlay.tsx | ||
| group-card.tsx | ||
| hand-drawn-check.tsx | ||
| kanban-board.tsx | ||
| mouse-follow-tooltip.tsx | ||
| notes-dialog.tsx | ||
| todo-checkbox.tsx | ||
| todo-create-popover.tsx | ||
| todo-edit-dialog.tsx | ||
| todo-progress-pie.tsx | ||