Loading issues
Domain migration plus a new model. Depends on D1. Backend for PAR-379, PAR-380 and the milestone half of PAR-381.
projects domain: project CRUD (lead, members, health, summary, repo link, icon colour) and project stats (open, PRs in flight, shipped this week, time since last deploy).milestones table (tenant_id, project_id, name, goal, health, sort order) plus issue.milestone_id, via a Flyway migration. Use cases cover CRUD and assigning issues.domains/projects/data. Replace the Kysely project reads.Tests pass, and the ArchUnit store and ESLint suppressions shrink.
PR open: https://github.com/ParadauxIO/taskl.ie/pull/52 (projects + milestones domain, V40 migration, REST/MCP, web domains/projects; ArchUnit store -72 lines, ESLint suppressions 61 -> 48). Sprints and shared views left in PlanningAdminService (not in this ticket's scope).
Merged into rebuild as #52 (fd80bd8).
What's in it
DeliveryStage.of.@GuestReadable and filtered by ctx.privateTeams().Ratchet: ArchUnit store −72 lines, nothing added. ESLint suppressions 61 → 48.
Follow-ups
Plan (branch par-418-projects-milestones):
projectsdomain behindProjectsFacade(model/persistence/usecase/api/mcp), copyinglabels/workspaces: project CRUD (lead, health, summary, icon colour, repo, docs, context), project stats, milestones (newmilestonetable +issue.milestone_id; CRUD, reorder, assign issues), delivery-stage rollup derived from issue status + PR dev links (TODO(PAR-419) for "live" from deployments).PlanningAdminServiceinto their own smallsprints/viewspackages if time allows, so PlanningAdminService/PlanningApiController shrink to zero.domains/projects(data/server.ts + hooks.ts); replace Kysely project reads.