Context
T3.5 of the harness pillar (#13349), against the merged chat-creation SSOT's materialized state. Created widgets currently mount bare into the stage. The SSOT draws pane chrome: a title bar (the registry record's title), a dispose affordance, and the promote affordance (pop the panel into its own OS window — which the shared-app-worker topology gives for free: windows are render targets; instances and their state never move. The chrome is UI, not a state mechanism — the recorded premise-corrected framing).
The Fix
- A
CreatedPane wrapper component (view/create/, class-based, core-idiom clean): wraps the stage-inserted instance, binds its title from the registry via the provider's exposed stores.createdInstances (reactive — markMutated retitles flow to the chrome for free).
- Dispose affordance → the controller's existing dispose path (
disposeInstance: component destroy via the core instance manager + registry flip) → provider flow event → the SSOT's post-dispose state.
- Promote affordance → the dock/window seam (
Neo.worker window APIs per the shipped multi-window demos — read a sibling first): moves the RENDER TARGET; the registry record and instance state are untouched by construction. paneRef on the registry record fills at mount (the field the registry reserved).
- The insert-registrar's provenance stamp is the wrapper's mount key — external
create_component inserts (no stamp) render WITHOUT chrome in v1 (honest boundary: chrome is for keeper-created instances; the parity question is a recorded follow-up, not silent scope creep).
Acceptance Criteria
Out of Scope
Chrome for external/NL-created instances (recorded follow-up) · dock-layout integration (pillar-3's lane — the promote seam is the handshake point) · persistence (T4.1).
Related
Parent #13349 (T3.5) · the merged SSOT · the registry (merged; paneRef reserved) · the accept path (PR #14710, merged) · the topology premise-correction (recorded on the epic) · pillar-3 dock lane (the promote handshake).
Claimable — non-Fable implementable.
Origin Session ID: b9b95ac6-42f5-47a3-b58f-6071f79657e8
Retrieval Hint: "keeper pane chrome title bar dispose promote affordance paneRef registry bound materialized"
Context
T3.5 of the harness pillar (#13349), against the merged chat-creation SSOT's materialized state. Created widgets currently mount bare into the stage. The SSOT draws pane chrome: a title bar (the registry record's title), a dispose affordance, and the promote affordance (pop the panel into its own OS window — which the shared-app-worker topology gives for free: windows are render targets; instances and their state never move. The chrome is UI, not a state mechanism — the recorded premise-corrected framing).
The Fix
CreatedPanewrapper component (view/create/, class-based, core-idiom clean): wraps the stage-inserted instance, binds its title from the registry via the provider's exposedstores.createdInstances(reactive —markMutatedretitles flow to the chrome for free).disposeInstance: component destroy via the core instance manager + registry flip) → provider flow event → the SSOT's post-dispose state.Neo.workerwindow APIs per the shipped multi-window demos — read a sibling first): moves the RENDER TARGET; the registry record and instance state are untouched by construction.paneRefon the registry record fills at mount (the field the registry reserved).create_componentinserts (no stamp) render WITHOUT chrome in v1 (honest boundary: chrome is for keeper-created instances; the parity question is a recorded follow-up, not silent scope creep).Acceptance Criteria
disposed→ flow state per SSOT (unit-pinned on the established rig).paneReffills at mount;resolveTargetbehavior unchanged.Out of Scope
Chrome for external/NL-created instances (recorded follow-up) · dock-layout integration (pillar-3's lane — the promote seam is the handshake point) · persistence (T4.1).
Related
Parent #13349 (T3.5) · the merged SSOT · the registry (merged;
paneRefreserved) · the accept path (PR #14710, merged) · the topology premise-correction (recorded on the epic) · pillar-3 dock lane (the promote handshake).Claimable — non-Fable implementable.
Origin Session ID: b9b95ac6-42f5-47a3-b58f-6071f79657e8 Retrieval Hint: "keeper pane chrome title bar dispose promote affordance paneRef registry bound materialized"