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

commita121d2ad4dde51ef6f727f1cab7f5651f9c3efdc
parent2f265000d1
authorLucas Galante <[email protected]>
date2026-07-12 19:04
docs(rfc): parent-pointer snapshot change landed early — all five were dead

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

 docs/rfc-core-rebuild.md | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/docs/rfc-core-rebuild.md b/docs/rfc-core-rebuild.md
index 1753e78..1ec426a 100644
--- a/docs/rfc-core-rebuild.md
+++ b/docs/rfc-core-rebuild.md
@@ -1886,8 +1886,26 @@ Constraint respected: **each crate still builds standalone** — the new core is
     4. **The flip**: define `WidgetHost`, blanket-impl for
        `Adapted<W>`, retype the registry/context/painter/
        window_runner from `dyn Element` to `dyn WidgetHost`, delete
-       `Element`. The MenuBar/StatusBar/Dropdown parent-pointer
-       snapshot change rides this phase. **Measured blueprint (~55
+       `Element`. ~~The MenuBar/StatusBar/Dropdown parent-pointer
+       snapshot change rides this phase.~~ **Landed early
+       (2026-07-12): the census showed all five stored widget-side
+       parent pointers production-DEAD** (nothing ever set_parent's
+       a MenuBar/StatusBar; ramp's per-tick re-parents fed a
+       write-only field through a dummy ctx — legacy behaved the
+       same). TextBox.parent deleted outright; Dropdown.parent
+       became `parent_snapshot` read-DATA (rect/is_ramp/color, same
+       direct-write activation, Ramp-clamp test adapted) and its
+       write-only `tracked_parent` died; MenuBar/StatusBar lost the
+       fields, their `parent_changed`/`tracked_parent` overrides,
+       MenuBar's never-firing `adjust_rect` clamp, and now report
+       the 0.0 corner radius production always read; the
+       `Layout::parent_changed`/`tracked_parent` hooks are deleted
+       (implementor-less), `Adapted::parent` is tree-only, and the
+       Ramp/ColorRamp tick_ctx re-parent rituals are gone. Stored
+       `*mut dyn Element` survives ONLY in the WidgetTree registry
+       payload, EventCtx's transient host ptr, and TI's
+       ControlPanel. A/B: text-editor + TI Ramp-child static AND
+       preset-popover-open frames all empty 8% masks; 163 tests. **Measured blueprint (~55
        methods, from the machinery's actual call sites):**
        identity/tree — id (guaranteed, no more `Option<&Widget>`),
        type_name, label, as_any/as_any_mut, as_ptr/as_ptr_mut