fix: replace CARemoteLayerServer with CAContext+CALayerHost for cross-process GUIβ
Sitar118
0548359
Three bugs killed the GUI:
1. CARemoteLayerServer does not capture a hidden NSWindow's content cross-process.
Replaced with CAContext (server) + CALayerHost (client) β the correct private-but-stable
macOS API for cross-process layer embedding, stable from 10.10 through Sequoia.
2. NSWindow was never orderFront: β WindowServer never composited its content.
Fixed: window positioned at (-32000,-32000) and orderFront: called.
3. NSMachBootstrapServer (deprecated on 13+) no longer needed.
contextId (uint32_t) is sent directly over the existing IPC socket.
New file: Source/Shared/PrivateCA.h β declares CAContext, CALayerHost, CGSMainConnectionID.
fix: send gui_ready notification after showGui β use callback from HelperPluginHost to IPCβ
HelperPluginHost now has onGuiCreated callback. HelperIPC sets it.
When showGui() finishes creating the editor + registering the layer,
it calls onGuiCreated which triggers sendGuiReady with port name + size.
fix: add setLayerPortName() public method (layerPortName is private)