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

commitc790b50c7567527a52d532e36563607fc36a32b6
parenta78f0b2d6a
authorLucas Galante <[email protected]>
date2026-07-12 18:45
docs(rfc): record the second 6bd shrink batch — Element 73->69

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

 docs/rfc-core-rebuild.md | 34 +++++++++++++++++++++++++++++-----
 1 file changed, 29 insertions(+), 5 deletions(-)

diff --git a/docs/rfc-core-rebuild.md b/docs/rfc-core-rebuild.md
index 605b4ca..1753e78 100644
--- a/docs/rfc-core-rebuild.md
+++ b/docs/rfc-core-rebuild.md
@@ -1931,12 +1931,36 @@ Constraint respected: **each crate still builds standalone** — the new core is
        uncalled `layout_widgets`/`layout_widget_ptors`. Census
        lesson: grep BOTH `.method(` and UFCS `::method(` forms — the
        fonts/graph `Element::intrinsic_size(&x)` callers only
-       surfaced at compile. Remaining non-blueprint candidates:
-       `clear_children`, `corner_radius`/`rounded_corners`
-       (consolidate into `corner_radii`), `hovered`/`set_hovered`,
+       surfaced at compile. **Second shrink batch (DONE 2026-07-12,
+       73→69):** `hovered`/`set_hovered` deleted — the state is the
+       base `Widget::hovered` flag, read/written directly by the
+       `cursor_moved`/`on_cursor_moved`/`highlight_quad` defaults and
+       `serialize.rs`; Button/Checkbox keep inherent accessors for
+       immediate-mode hosts (cloud's json_layout downcasts to
+       concrete `Checkbox`, so it already resolved to those).
+       `corner_radius` + `rounded_corners` replaced by ONE
+       `corner_style() -> (f32, (bool,bool,bool,bool))` mirroring the
+       narrow `Paint::corner_style` — NOT folded into `corner_radii`,
+       which is lossy: the radius is meaningful with every corner off
+       (Menu/StatusBar report their parent's radius to children
+       through the flags-off channel; breadcrumb can be
+       flags-true/radius-0, whose legacy radius-0 rounded bg quad
+       would vanish). `clear_children` moved to an inherent
+       `Adapted<W>` method (every caller is a concrete Adapted field
+       in cce-files). Consumer commits: settings renderer,
+       TI ControlPanel aggregates, cloud json_layout. Verified:
+       settings audio render stream byte-identical, files A/B AE=0,
+       TI gallery empty 8% amplitude mask, 163 tests.
+       Census facts for the leftovers: `preferred_height` has DYN
+       consumers (container_layout.rs child-ptr walks + layout.rs
+       machinery on `&dyn` children) — blueprint-adjacent, rides the
+       flip, not inherent-movable; `value` has a live dyn consumer
+       (`serialize.rs` over designer's `dyn_refs()`) — rides the
+       flip. Remaining non-blueprint candidates:
        `on_cursor_moved` (belongs in the direct-dispatch block —
-       blueprint addition, not a deletion), `preferred_height`
-       (generic render machinery), `set_parent`, `value`.
+       blueprint addition, not a deletion), `set_parent` (flip
+       material, with the parent-ptr snapshot change), `value`,
+       `preferred_height`.
     Former slices 4/5 fold in: the app `as_ptr_mut` dispatch sites
     are rewritten by whichever of routed-events (per app) or the
     phase-4 flip reaches them first; no standalone pointer-to-id