Skip to content

Web client: "Share room" command in SOLARO #692

Description

@KrisSimon

Context

Child of #687. SOLARO's discoverability for the browser room: a menu item that boots `aro room` for the current project and offers the share URL.

UX

  • File menu → Share Room… (after Reveal in Finder, before Move to Trash).
  • Sheet: project path (read-only), interface (`localhost` / `Bonjour` / `Custom IP`), token kind (read-only / read-write), Start button.
  • After Start: the sheet shows the URL with a copy button + a "Stop" button. A persistent toolbar badge "Room: `http://…`" appears on the main window while the room is running.
  • Closing the SOLARO window terminates the room subprocess (the parent process death takes the room with it).

Wiring

  1. `Sources/SOLARO/RoomShareSheet.swift` — new SwiftUI sheet.
  2. `Sources/SOLARO/RoomController.swift` — owns the `Process` running `aro room`. Stream stdout to a Console pane (the same way `ConsoleProcess` already does it).
  3. Menu entry: extend the `SolaroMenuAction` enum in `SOLAROApp.swift` with `.fileShareRoom` + wire it into the File menu group.
  4. Toolbar badge: small "Room" pill next to the project breadcrumb in `Workspace.swift` toolbar; click reopens the share sheet.

Acceptance

  • Click File → Share Room… → click Start → SOLARO spawns `aro room ./`, captures stdout, parses the printed URL, displays it in the sheet with a copy button.
  • The room URL opens successfully in Safari / Chrome.
  • Closing SOLARO terminates the room process (verify with `ps aux | grep "aro room"`).
  • Re-opening Share Room while one is running shows the live URL instead of spawning a second process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions