PAR-199
Sprints / cycles — time-boxed iterations
Child of PAR-190. Team/project-level time-boxed iterations.
Scope:
- Schema:
sprint(tenant-scoped: id, name, team_id or project_id, start/end dates, state active/closed) +issue.sprint_id. - Backend: sprint CRUD (gated on settings.manage), tag/untag an issue to a sprint on create/update; expose on detail + filterable.
- UI: a sprints screen (create/manage), a sprint picker on the issue form, sprint badge/grouping; gate behind a
sprintsfeature toggle (PAR-189). - The biggest planning piece (new entity). Burndown/velocity reporting ties into PAR-192 analytics.
Resources
- commitbc3f244 Enforce subtasks + due-date feature toggles server-side (PAR-190/PAR-189)ParadauxIO/tesks
- commitfb32fb3 Expose subtasks on detail (PAR-198) + enforce sprints feature toggle (PAR-199)ParadauxIO/tesks
- commit005f732 Add sprints/cycles entity + issue tagging through the stack (PAR-199)ParadauxIO/tesks
Comments
tesks · Jun 16, 2026, 8:11 PM
Verification: partial — keeping open. Done: sprint table (V23) + issue.sprint_id, sprint CRUD gated on settings.manage, tag/untag on create/update, exposed on detail + filterable, MCP accepts a sprint. Gaps vs acceptance: (1) the sprints feature toggle (PAR-189 substrate) is not enforced — sprints are always surfaced; (2) there is no list-sprints (GET) endpoint — only create/patch/delete; (3) team/project scoping is deferred (table comment). Address these before Done.
tesks · Jun 16, 2026, 8:25 PM
Completed on develop (fb32fb3). The UI already gates all sprint affordances (picker on new/edit, sprint badge) on settings.sprints and reads sprints via lib/sql/sprints, so the "no list endpoint" point was moot (reads come from the mirror). The real gap was server-side enforcement: WorkspaceAdminService.createSprint now refuses when the workspace's sprints toggle is off (WorkspaceSettingsService.sprintsEnabled), and I aligned the backend default to off/opt-in to match the UI (lib/sql/settings.ts). Test added (sprint creation gated by the toggle). Team/project scoping remains deferred per the original ticket. Acceptance met.
Activity
- ParadauxIO linked a commit — Commit bc3f244 — Enforce subtasks + due-date feature toggles server-side (PAR-190/PAR-189)
- tesks changed status to Status → Done
- tesks commented
- ParadauxIO linked a commit — Commit fb32fb3 — Expose subtasks on detail (PAR-198) + enforce sprints feature toggle (PAR-199)
- tesks commented
- ParadauxIO linked a commit — Commit 005f732 — Add sprints/cycles entity + issue tagging through the stack (PAR-199)
- tesks changed status to Status → Pending Release
- tesks created the issue