git.lucas.co / cce-ui
GPU-accelerated UI toolkit (Vulkan)
git clone https://git.lucas.co/cce-ui.git

commit46e6a58b8f87edea055d85dc8bac64e49729d3c3
parentbdf1823d77
authorLucas Galante <[email protected]>
date2026-07-12 19:12
docs(rfc): record 6bd batch 4 — tree-link methods landed pre-flip, Element 69->67

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_018u7qTwzX95dd5ysAkaSCLk

 docs/rfc-core-rebuild.md | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/docs/rfc-core-rebuild.md b/docs/rfc-core-rebuild.md
index 1ec426a..ef77dca 100644
--- a/docs/rfc-core-rebuild.md
+++ b/docs/rfc-core-rebuild.md
@@ -1873,16 +1873,24 @@ Constraint respected: **each crate still builds standalone** — the new core is
        render_widget/Column/Section, settings'
        `collect_window_child`, dm/cloud's local tessellator copies
        with concrete receivers) simply re-bind at the flip.
-    3. **Tree-link methods — DISSOLVED into the flip.** `children`/
-       `parent` are core machinery walk methods (propagate, painter,
-       navigate) — host-trait material, not removable beforehand.
-       `add_child`/`set_parent`/`clear_children` have dyn callers
-       (TI's roster `add_child`, dm's `link_parent_child`) worth ~5
-       methods at most — not worth a standalone pass; they convert
-       with the flip. Note Paginator both serves `container_children`
-       AND `link_ids`-registers its strip — the ctx-less walks
-       (popover_rect/prepare_text/render_popover) are why the
-       field-derived form must stay.
+    3. **Tree-link methods — landed pre-flip after all (2026-07-12).**
+       `children`/`parent` are core machinery walk methods (propagate,
+       painter, navigate) — host-trait material, they stay.
+       `clear_children` left in batch 2; **`set_parent`/`add_child`
+       left in batch 4**: both are inherent `Adapted<W>` methods now
+       (files' concrete sites resolve unchanged); the dyn callers
+       were only three — `focus::link_parent_child`'s body (rewritten
+       as the register + `tree.link` + `tree.set_parent` ops the pair
+       always was), TI's page-selector/StatusBar roster pair (now one
+       `link_parent_child` call), and TI ControlPanel's per-arrange
+       dummy-ctx child re-parent (deleted — every effect was
+       discarded with the dummy ctx, the same inert-ritual class as
+       Ramp's tick re-parents). A/B: TI gallery (flat-walk `parent()`
+       skip intact — no page-selector double-draw) + dm greeter, both
+       empty 8% masks. Note Paginator both serves
+       `container_children` AND `link_ids`-registers its strip — the
+       ctx-less walks (popover_rect/prepare_text/render_popover) are
+       why the field-derived form must stay.
     4. **The flip**: define `WidgetHost`, blanket-impl for
        `Adapted<W>`, retype the registry/context/painter/
        window_runner from `dyn Element` to `dyn WidgetHost`, delete