Expand description
Task hierarchy indexing and navigation based on parent_id.
Responsibilities:
- Index tasks by parent_id for efficient child lookups.
- Provide safe traversal of parent/child relationships with cycle detection.
- Treat missing-parent tasks as “roots” and mark them as orphans during rendering.
Not handled here:
- Queue persistence (see
crate::queue). - Validation logic (see
crate::queue::validation).
Invariants/assumptions:
- Task IDs are unique across active + done files.
- Ordering is deterministic: active tasks first (file order), then done tasks (file order).
- Cycles are detected and reported but do not cause infinite recursion.