Skip to content

feat: integrate Windows/Linux desktop SDK and accepted platform fixes - #184

Merged
howdeploy merged 11 commits into
mainfrom
feat/windows-linux-desktop-sdk
Oct 31, 2026
Merged

howdeploy merged 11 commits into
mainfrom
feat/windows-linux-desktop-sdk

Conversation

@howdeploy

@howdeploy howdeploy commented Oct 31, 2026 •

Copy link
Copy Markdown
Owner

Integrates the accepted platform contributions while retaining the original contributor commits.

Changes

  • Extend @bbutterm's Windows desktop-window SDK from feat: add permissioned Windows desktop embedding for plugins #182 with the accepted Linux X11/XWayland implementation. The Windows native helper, service, IPC and reference plugin remain unchanged.
  • Reuse browser viewport normalization and clipping; parent Linux windows to CanvasTTY and respect canvas visibility, HUD occlusions, layer order and native click focus.
  • Include Linux permissions, packaging and the Linux Desktop reference plugin, with owner-bound single-use selections and restoration on detach and orderly shutdown.
  • Include the four remaining commits from @teo-nex's fix(macOS): preserve PTYs, finish shutdown and fit usage reports #171: packaged usage checks, resilient macOS shutdown, compressed large usage-history snapshots with a downgrade exporter, and usage-report layout fixes.
  • Include @bbutterm's fix: preserve Windows Codex screenshot paste with Ctrl+V #183: Windows Codex screenshot paste with Ctrl+V and configured paste shortcuts, preserving text and stale-session guards.
  • Update the three existing browser/plugin fixtures for the shared visibility gate, separate desktop IPC registrars and renderer platform API. Keep all existing assertions.

Attribution and merge method

Merge with a merge commit, not squash or rebase. Original heads from #171 (038d73cb), #182 (7c9e6bca) and #183 (a10e6ee3) are ancestors of this branch; their authors and licenses remain in history. #172 was already included in main through 817ca7c5; its original PR has now been merged into its original beta2 target to record its accepted status.

Validation

  • The repository owner manually accepted the Linux/XWayland attachment, movement and HUD layering behavior in DEV.
  • Focused local browser/plugin/desktop, macOS history/shutdown, browser persistence and terminal shortcut checks pass.
  • Local full root suite on Node 22: 2,646 tests, 2,636 passed, 10 skipped, zero failures. TypeScript checks, production build, benchmark contract checks and Even G2 companion tests pass.
  • Automatic GitHub CI passes on this combined head: Linux verification and installers, Windows tests/typecheck/packaging, macOS tests/packaging/smokes, both mascot jobs, native macOS PTY resources and CanvasLink Android. See CI run 41251942369.
  • The initial local sandbox run could not open test sockets; the successful full run used the normal host permissions.
  • Settings-search styling is saved separately and is outside this PR.

Known limits

Linux requires X11/XWayland and XFixes 2; native Wayland surfaces and macOS desktop embedding are unsupported. Abrupt destruction of Electron can destroy foreign child windows and lose unsaved application data. Foreign GPU surfaces/dialogs and mixed DPI remain compatibility limits; Chromium-only captures may omit foreign pixels, and sampled native click focus can miss exceptionally short clicks. Windows native embedding and real Codex screenshot attachment were not manually retested here.

Teo and others added 11 commits October 31, 2026 12:45
Introduce desktop:embed for canvas-app contributions and keep native window handles in the main process. Bind expiring selections to their canvas card, synchronize the trusted iframe viewport, hide native surfaces under overlays, and restore original windows on detach or host shutdown.

Ship a standalone Codex Desktop reference plugin, SDK declarations, compatibility documentation, capability tests and real Win32/Electron smoke tests. Refuse mismatched DPI modes before reparenting and keep process launch/termination outside this API.
Check the native image clipboard for every configured terminal paste chord and forward literal Ctrl+V for Windows Codex before xterm extended-key encoding. Preserve configured text paste, unbound literal-key behavior, and stale-session guards. Cover Windows screenshots, text, modifiers, other CLIs and restart races in the actual keyboard handler tests.
Extend the desktop:embed SDK introduced by bbutterm in PR #182 with an independent Linux X11/XWayland backend, native child clipping and workspace HUD/input integration. Preserve the original Windows implementation and contributor commit history.
@howdeploy howdeploy changed the title feat: integrate desktop embedding for Windows and Linux feat: integrate Windows/Linux desktop SDK and accepted platform fixes Oct 31, 2026
@howdeploy
howdeploy merged commit b1bd0c9 into main Oct 31, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants