Repository navigation
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Roost agents can use a Mac through an Electron companion connected to the existing server. The app reuses the web workspace and adds local controls for one selected agent, selected Messages conversations, and ten-minute computer sessions with visible stop controls. Mac window controls share the app's draggable header.
Connect to exe.dev discovers running VMs through the user's existing SSH login and provisions separate Roost device and VM-scoped HTTPS credentials. Normal traffic uses HTTPS without a tunnel or pasted keys. Credentials stay encrypted in the main process, renew through SSH, and are revoked on disconnect or failed setup. The remote workspace gets proxy authentication only for its exact origin and secure WebSockets, with no device token or local IPC. Manual connections remain available. The server CLI adds owner-only JSON create/renew commands; renewal cannot recreate a revoked device.
Requests are bound to the device, selected agent, active run, request UUID, and deadline. Local and server scope checks enforce permissions and cancellation. Restricted Feed, handoff, and reflection runs cannot use these capabilities. Input consumes its screenshot and requires a new capture after failure. Native typing preserves Unicode scalars. Tool-catalog migration preserves conversation history.
Validation: 431 server tests, 7 docs tests, and 20 desktop tests pass, along with lint, workspace typechecks, server/Mac builds, native helper checks, and production auth/mobile smoke tests. Source and packaged Electron fixtures exercise manual and exe.dev setup, reconnect, permission controls, isolation, and disconnect. The native discovery and HTTPS authentication code also reaches the real exe.dev instance; temporary probe keys were revoked. Fixtures simulate Keychain and OS consent. Real Messages reads and input injection remain untested.
The Mac package targets macOS 14+ on the build machine's architecture and is ad-hoc signed. Messages requires separately installed imsg. Developer ID signing, notarization, automatic updates, other-platform local adapters, and a virtual desktop are outside this prototype. The live server must receive this build before automatic pairing works.