3dcdb758e7
Activates the v1.23-deferred 'ppid' future-use: parents render above their children with ASCII tree connectors. The default view is flat (no behavior change); the 'T' hotkey toggles tree mode and flashes the status line. Algorithm (in process::sort_tree): 1. Build pid -> index map 2. Group children by ppid (ppid -> Vec<index>) 3. Roots = ppid==0 or ppid not in pid set 4. Sort each sibling group by current SortMode (so e.g. RSS sort still shows top-RSS child first within a parent) 5. DFS from each root, emitting parent + descendants pre-order 6. Defensive: append unvisited procs at end (cycle fallback) Cycle protection: visited set; revisiting a PID stops recursion (its children are still emitted once). Render: tree_prefix(pid, ppid, all) returns '' (root) ' \u2514\u2500 ' (last child) ' \u251c\u2500 ' (non-last child) Walks ppid chain to compute depth (max 64 hops). Status line: 'view: tree' shown when on; help text mentions 'T'. Test count 101 -> 105 (+4): - sort_tree_emits_parents_before_children (4-proc tree) - sort_tree_handles_orphans (ppid not in list) - sort_tree_handles_cycles (1->2->1 cycle) - sort_tree_empty_input Redox stripped binary: 4,184,936 bytes (+16 KiB from v1.26). Compile warnings: 55 (unchanged). Notes: - vsize_kb still has #[allow(dead_code)]; will be activated in a future memory-detail panel release. - Tree is static (no fold/expand); defer to a v1.28 if needed. - ppid's #[allow(dead_code)] can be removed in a follow-up (now actively read by sort_tree and tree_prefix). Docs: local/docs/redbear-power-improvement-plan.md \xC2\xA751