Expand description
Phase 1 of the floating-pane tear-off feature (issue #810 + spec
docs/specs/SPEC_FLOATING_PANE_TEAROFF_2026_05_11.md).
This module hosts the IPC command and Win32-native primitive that creates a subordinate floating window — a free-positioned palette- style window OWNED by the source AgentMux main window. Unlike the existing tab tear-off path (which spawns a full new AgentMux instance), a floating pane:
- has no taskbar entry (
WS_EX_TOOLWINDOW), - has no Alt-Tab entry (also
WS_EX_TOOLWINDOW), - minimizes / restores / destroys with its owner,
- shares the source instance’s sidecar, data dir, and reducer state.
Phase 1 ships only the windowing primitive. The browser embedded
in the floating window loads
<frontend>?floatingPaneId=<id>&windowLabel=floating-<n> and the
frontend renders a minimal placeholder shell that says “Floating
pane: <id>”. Wiring the drag-out gesture to this primitive is
Phase 3. Wiring the full <Block> renderer is Phase 2.
Non-Windows platforms are out of scope per spec §10. The macOS path
is NSWindow::addChildWindow; Linux varies by compositor. Both will
be addressed in a follow-up.
Structs§
Functions§
- open_
floating_ pane_ window - IPC handler — called when the frontend or an agent invokes
open_floating_pane_windowon the host. Validates input, allocates a stable label, and posts a UI-thread task to create the owned HWND and embed a CEF browser inside it.