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

commite355970e4f28170b2ffebf5f515d323f2ea31b32
parent17b7311a14
authorLucas Galante <[email protected]>
date2026-07-12 14:08
docs(rfc): record 6bb part 2 — roster phase complete, no erased roster storage remains

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

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

diff --git a/docs/rfc-core-rebuild.md b/docs/rfc-core-rebuild.md
index 8b9c7d2..be96bfd 100644
--- a/docs/rfc-core-rebuild.md
+++ b/docs/rfc-core-rebuild.md
@@ -1734,8 +1734,18 @@ Constraint respected: **each crate still builds standalone** — the new core is
     per-slot `dyn_refs` view (`serialize_widgets` now takes
     `&[&dyn Element]`). Static A/B byte-identical; cross-build final
     after an identical menu/toggle/wheel/click sequence within 6 px.
-  - Remaining retype order: (1) TI's roster the same way, (2) the
-    containers' heterogeneous child Vecs, (3) the cce-ui machinery core
+    TI's two-mode gallery followed (part 2): 53 named concrete slots
+    for the gallery, typed enums for the child window's runtime-variant
+    slots, a `Roster` enum carrying whichever mode runs; the numeric
+    indexes keep addressing slots through `get_dyn`. **No app stores
+    widgets behind `Box<dyn Element>` anywhere — the roster phase is
+    complete.** Cross-build A/Bs: gallery empty masks static and after
+    an identical interaction sequence; Ramp child at noise level;
+    non-Ramp child arms hit the pre-existing unconditional
+    Ramp-downcast panic identically on both builds.
+  - Remaining retype order: (1) the containers' heterogeneous child
+    Vecs (`Vec<*mut dyn Element>` in menu/paginator/treelist in-tree,
+    ControlPanel/JsonLayout app-side), (2) the cce-ui machinery core
     (context.rs/window_runner), and `Element` + `Adapted` die last.
 
 Order rationale: each phase is independently valuable and reversible, and no phase requires the