PAR-198
Subtasks / epics — parent-child issue hierarchy
Child of PAR-190. Parent-child hierarchy on issues (subtasks under an epic).
Scope:
- Schema:
issue.parent_id uuid references issue(id)(same-tenant, guard against cycles + self-parent). - Backend: set/clear parent on create/update (TaskModels + PostgresTaskSystem, with an activity event); expose children + parent on the detail read; MCP create/update accept a parent ref.
- UI: a parent picker on create/edit, a children/subtask list + progress (e.g. 2/5 done) on the detail, and parent breadcrumb. Gate behind a
subtasksfeature toggle (PAR-189 substrate). - Search/filter by parent ties into PAR-191.
Resources
- commitfb32fb3 Expose subtasks on detail (PAR-198) + enforce sprints feature toggle (PAR-199)ParadauxIO/tesks
- commitbf7bab0 Add parent-child issue hierarchy (subtasks) through the stack (PAR-198)ParadauxIO/tesks
Comments
tesks · Jun 16, 2026, 8:11 PM
Verification: mostly live but not complete — keeping open. Done: issue.parent_id (V22), set/clear on create+update with self-parent + cycle guards (validateParent, 100-hop), activity events, MCP create/update accept a parent ref, parent breadcrumb on detail. Gap vs acceptance: the detail read surfaces only parent_ref — the children/subtask list + roll-up progress (e.g. 2/5 done) is NOT exposed on the parent's detail. That remaining piece is needed before this is Done.
tesks · Jun 16, 2026, 8:25 PM
Completed on develop (fb32fb3). The UI was already done — the issue detail page renders a Subtasks (done/total) list gated on settings.subtasks (issues/[ref]/page.tsx, via lib/sql/issues.listChildren) plus the parent breadcrumb. The remaining gap was the backend detail read: TaskDetail now carries children (SubTask: ref/title/status/done) — getTaskDetail fetches non-archived children in order with a terminal-state done flag, so MCP tesks_get_task exposes subtasks too. List reads keep children empty (no N+1). Tests added (children + done rollup). Acceptance met.
Activity
- 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 bf7bab0 — Add parent-child issue hierarchy (subtasks) through the stack (PAR-198)
- tesks changed status to Status → Pending Release
- tesks created the issue