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

commitc94e85cc089477d6af61a5f5c182199f23e89490
parentfa7d8558d5
authorLucas Galante <[email protected]>
date2026-08-25 15:19
rfc: Phase 7 complete — CSD packaging and spec-emission questions answered by cce-files@805be06

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

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

diff --git a/docs/rfc-core-rebuild.md b/docs/rfc-core-rebuild.md
index 2b26519..c6c9a4a 100644
--- a/docs/rfc-core-rebuild.md
+++ b/docs/rfc-core-rebuild.md
@@ -2563,16 +2563,38 @@ Constraint respected: **each crate still builds standalone** — the new core is
         routed-widget path consumes left PRESSES before the `Application` hook (only
         releases reliably arrive there), a per-app dispatch reality any adopter must
         check first. The designer's release-opened menu means the two feel identical.
-      - The detached-window CSD packaging question REMAINS OPEN (files has no detach
-        model; `standard_menu` is called with `can_detach = false` and the rows never
-        appear). It lands with the first non-designer detach implementation, as does the
-        cce-cloud overlay-silhouette question from 7b-2.
-
-  All numbered stages DONE (2026-08-25); the cce-cloud overlay-silhouette question is
-  CLOSED (shares the silhouette — see 7b-2). Still open, both gated on the first
-  non-designer detach implementation: detached-window CSD packaging, and designer pane
-  spec-OBJECT emission (focus tint / widget-driven bevel styling are not yet spec fields —
-  detach dictates whether the spec grows them or the widget hooks stay authoritative).
+      - The detached-window CSD packaging question is ANSWERED (2026-08-25,
+        cce-files@805be06 — the preview pane detaches for real now): **no new
+        toolkit packaging was needed.** A detached window is an ordinary
+        `Application` whose root plate carries the detached role (all window
+        corners); the compositor's decoration IS the CSD in this DE (border =
+        grab surface, no titlebars), and plate_dock's existing pieces —
+        `corner_center`/`corner_hit`/`draw_corner_dot`/`standard_menu` — cover
+        the control. What the second implementation DID establish as the
+        convention worth naming: **the child's Reattach is process exit** — the
+        parent `try_wait`s and reclaims the pane, so every way a detached
+        window can die reattaches it; and the child exits itself when its sync
+        file or parent pid disappears, so orphans (crash, stale session
+        restore) self-collect. The sync-file idiom generalizes: parent pid
+        then payload, written before the spawn, unlinked on reattach.
+        One packaging gap surfaced and stands as app policy for now: the
+        toolkit context menu dispatches through a widget tree a minimal
+        detached window does not have, so the child draws its one-row menu
+        itself — a third consumer hitting this earns a widget-tree-free menu
+        helper.
+      - The designer pane spec-OBJECT emission question got its answer from the
+        same implementation: detach dictated NO new spec fields — the files
+        pane detached with `PlateSpec` as it stands, so focus tint and
+        widget-driven bevel styling stay widget-hook territory and the spec
+        stays lean. The designer's emission migration remains optional and
+        unblocked.
+
+  All numbered stages DONE (2026-08-25), and all three open questions CLOSED the same
+  day: cce-cloud overlays share the silhouette (7b-2); the first non-designer detach
+  (cce-files' preview pane, 7c-2) answered CSD packaging — nothing new was needed, the
+  conventions are recorded there — and established that detach dictates no new
+  `PlateSpec` fields, leaving the designer's spec-OBJECT emission optional and
+  unblocked. Phase 7 is COMPLETE.
 
 Order rationale: each phase is independently valuable and reversible, and no phase requires the
 next to compile. Phase 0 can land immediately regardless of the rest.