Project

General

Profile

Feature #40

Updated by Redmine Admin about 2 months ago

## Spec — Parent/child ticket relationships (ticketing module) 

 Frontend-only. The board payload already returns every task with parent_id + status (TaskSummary), so parent→children grouping is derived **client-side** (Map<parentId, TaskSummary[]>) — **no backend change**. 

 **List view:** a parent task shows an expand/collapse arrow (▶/▼); expanding reveals subtickets indented (title, StatusPill, 1-line preview = subject), sorted by status; clicking a subticket opens its detail + "Back to parent". One level of nesting only. 
 **Detail view:** if parent_id set → clickable "Parent Ticket" section (status from board) navigating to parent; if it's a parent → collapsible "Subtickets" section (title/status/preview), clicking replaces view + "Back to parent". 
 **Reuse** existing StatusPill (stageKey/statusLabel) — no new status color logic. i18n keys in en.ts only. Designer appends a design-system section first. 

 **AC:** expand/reveal indented subtickets; subticket click → detail + back; parent section navigates; subtickets section + replace-view; sort by status; one level; back-to-parent only on subticket; visual match; vitest/tsc/eslint/build green + TDD on the grouping/sort/nav logic. Guard orphan parent_ids (render as top-level). conversation:27

Back