Skip to content

feat(surface): switch CLI <-> Desktop on a shared backend (Phase 1) - #247

Merged
robdmac merged 1 commit into
mainfrom
feat/surface-switching
Jun 20, 2026
Merged

robdmac merged 1 commit into
mainfrom
feat/surface-switching

Conversation

@robdmac

@robdmac robdmac commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Three surfaces share one local backend (control plane + sandbox VM + frontend); the surface is just which front-end is attached. CLI<->Desktop is a GUI toggle on the already-running app — no backend restart.

Three surfaces share one local backend (control plane + sandbox VM + frontend);
the surface is just which front-end is attached. CLI<->Desktop is a GUI toggle on
the already-running app — no backend restart.

- desktop app: SIGUSR1 shows the GUI window (+ macOS Regular activation), SIGUSR2
  hides it (+ Accessory) — handled on the main thread via a signal-hook listener.
- orcabot CLI:
  - desktop : signal the running backend to show the GUI (SIGUSR1), or cold-launch
              the desktop binary in GUI mode if nothing is running.
  - cli     : signal it to hide the GUI (SIGUSR2), then open the TUI.
  - web     : stub — explains the session must be packaged/transferred to the cloud
              first (Phase 2); opens ORCABOT_WEB_URL if set.

Verified: SIGUSR1/SIGUSR2 received + handled, app stays alive
([surface] signal 30/31 logged). Window visuals verified manually.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@robdmac
robdmac merged commit 3647282 into main Jun 20, 2026
1 check passed
@robdmac
robdmac deleted the feat/surface-switching branch June 20, 2026 18:18
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.

1 participant