Skip to content

Machines: create and edit Projects on another Machine from the app #68

Closed

Description

@marcellosso

Follow-up to #66 (PR #67). #66 shows another Machine's Projects and controls their Services. This issue covers creating and editing Projects on a Machine from the app, so a developer never needs to sit at it.

What it looks like

Add Project › Runs on: This Mac | devbox. When a Machine is picked:

  • The folder picker becomes a remote folder browser. It starts in the Machine's home folder, with breadcrumbs and a path field that autocompletes. It only reads.
  • The scan runs on the Machine. Its core has the detectors, so the review sheet and its pre-checked Suggestions work as they do for a local folder.
  • The Project is saved on the Machine, in its own Project Configuration. Agents there (localhost mcp) see it at once, which keeps one truth.
  • Editing Services, Dependencies, variables, Environment Profiles and Removing all work as they do for this computer's Projects.
  • Secrets typed in the app go to the Machine's secret store over the SSH connection. Their values never come back.

Words: "Machine" and "Runs on", never "environment", which already means variables and Environment Profiles.

How

  • New Machine protocol requests, additive only, behind MACHINE_PROTOCOL_VERSION 2:
    • list a folder
    • scan a folder
    • add, update and remove a Project or Service
    • set and remove a Secret
  • Every change is made as Origin::Machine.
  • An older Machine answers Unsupported, and the app says that Machine's localhost needs updating.
  • The app hides editing for Machines on protocol 1.

Risks

  • Headless Machines often have no Secret Service running, or it's locked. Setting a Secret must then fail with a clear LocalhostError that says what to do, never fall back to storing it in plain text.
  • Two people or agents may edit the same Project at once. The Machine's ProjectLibrary decides, and every viewer gets the result through the existing Projects message.

Done when

  • Protocol requests and relay handlers, with tests over a duplex and over the private-sshd tests
  • FFI, and the macOS UI: the Runs on picker, the remote folder browser, the scan review, and editing
  • The same in the Tauri app
  • Docs: configuration docs, AGENTS.md Vocabulary (Machine, Forward) and Decisions
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions