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

commit3bd095053b2c6ad0b15ed76c8dee5d4af612efce
parent48608bbc40
authorLucas Galante <[email protected]>
date2026-07-10 12:56
docs(rfc): record Phase 6ag — authenticator across; the flip fixed invisible text

Co-Authored-By: Claude Fable 5 <[email protected]>

 docs/rfc-core-rebuild.md | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/docs/rfc-core-rebuild.md b/docs/rfc-core-rebuild.md
index cea215b..0a83e9a 100644
--- a/docs/rfc-core-rebuild.md
+++ b/docs/rfc-core-rebuild.md
@@ -1255,7 +1255,22 @@ Constraint respected: **each crate still builds standalone** — the new core is
     any `text_areas` override (its extra areas become prims).
     `custom_vertices` stays. Remaining queue: authenticator (verify carefully —
     lock screen), display-manager, email, layout-interface, status-interface.
-  - **Still to do:** migrate the five remaining legacy-path apps, then delete
+  - **6ag — cce-authenticator across (2 of 6); the flip FIXED runtime-invisible
+    text. DONE (live-verified --standalone + CCE_AUTH_SIMULATE: full dialog text
+    renders, zero font-ID warnings — was hundreds per frame — fingerprint-scan
+    click drives the animated glow + hint).** It is an xdg-toplevel polkit auth
+    dialog (NOT a session lock — safe to run; needs `--standalone` +
+    `CCE_AUTH_SIMULATE=1` to show a window without a live polkit request, and it
+    auto-exits ~3s in simulate mode so capture fast). The single `view()` (both
+    geometry and text) → `display_list()`; the `text_items` assembly → prims;
+    app FontSystem / make_text_buffer / text_items field+getter deleted. The
+    6e face-ID class again, and worse here — the app used
+    `create_font_system_with_system_fonts()`, so EVERY label was invisible at
+    runtime; the migration is the fix. General lesson reinforced: any
+    legacy-path app with its own FontSystem is a latent-invisible-text
+    candidate — don't trust its baseline capture.
+  - **Still to do:** migrate the four remaining legacy-path apps
+    (display-manager, email, layout-interface, status-interface), then delete
     `view*`/`text_items` + the backend tuple-wrapping path, then the per-widget
     text getters, then `Element` + `Adapted`.