tasks/backend
jtricerolph 2a75c7060e Backend: project membership, per-project status pipelines, pin-to-today
- project_members (viewer/editor) makes a project + everything in it visible
  to someone before they own anything there; editors can edit any task's
  content/status in the project (not its list/project/assignment, which stay
  owner/cap-gated) via a new loadEditable() alongside the existing
  loadOwned/loadVisible.
- project_statuses lets a project define its own status pipeline instead of
  the shared global one. Dropped the FK tasks.status had to the global
  statuses table (a project-only value would violate it) and added a
  task_statuses view that resolves each task's status against its project's
  pipeline if it has one, else the global one -- this is also why new tasks
  in a custom-pipeline project now default to that project's own first
  non-done status instead of the hardcoded 'todo'.
- pinned_today column + GET /api/tasks?view=today no longer requires a due
  date, so the frontend can show pinned/undated tasks there too.

Verified against a throwaway Postgres: 20 assertions covering nullable
list_id, pin, broadened today view, custom status default/resolution/
cross-project leakage, and the full viewer/editor/owner/stranger permission
matrix on a shared project.
2026-10-12 14:47:36 +00:00
..
src Backend: project membership, per-project status pipelines, pin-to-today 2026-10-12 14:47:36 +00:00
Dockerfile Initial commit: personal task planner with categories, projects, and tiered assignment 2026-09-17 08:07:00 +00:00
package-lock.json Initial commit: personal task planner with categories, projects, and tiered assignment 2026-09-17 08:07:00 +00:00
package.json Initial commit: personal task planner with categories, projects, and tiered assignment 2026-09-17 08:07:00 +00:00