ralph/queue/hierarchy.rs
1//! Purpose: Expose task-hierarchy indexing, cycle detection, and tree rendering through a thin facade.
2//!
3//! Responsibilities:
4//! - Re-export the crate-visible `queue::hierarchy` API from focused companion modules.
5//! - Keep indexing, cycle analysis, and rendering concerns split without changing caller imports.
6//! - Preserve deterministic active/done hierarchy behavior across queue consumers.
7//!
8//! Scope:
9//! - Facade-only module wiring for hierarchy helpers used by queue validation and CLI flows.
10//!
11//! Usage:
12//! - Imported via `crate::queue::hierarchy` by CLI, validation, and task-decomposition helpers.
13//!
14//! Invariants/Assumptions:
15//! - Task IDs are unique across active + done files.
16//! - Ordering remains deterministic: active tasks first, then done tasks.
17//! - Cycle detection and rendering semantics stay behavior-compatible with the pre-split module.
18
19mod cycles;
20mod index;
21mod render;
22
23pub(crate) use cycles::detect_parent_cycles;
24pub(crate) use index::{HierarchyIndex, TaskSource};
25pub(crate) use render::render_tree;
26
27#[cfg(test)]
28mod tests;