Module floating_pane

Module floating_pane 

Source
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§

OpenFloatingPaneArgs
OpenFloatingPaneResponse

Functions§

open_floating_pane_window
IPC handler — called when the frontend or an agent invokes open_floating_pane_window on 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.