Skip to content

SSH-remote daemon is unmaintained — fix ~/.cmux→~/.programa relay split-brain before relying on it #15

Description

@arzafran

Status: The SSH-remote feature (programad-remote, ~6,800 lines of Go in daemon/remote/ + the remote-ssh surface in Sources/Workspace.swift/RemoteRelayZshBootstrap.swift/CLI/cmux.swift) is kept but currently unexercised/unmaintained in the Programa fork — nobody uses SSH-remote sessions today. The code and the release daemon assets are retained so the feature can be revived later without re-porting from upstream.

Before anyone relies on SSH-remote again, fix these:

1. ~/.cmux~/.programa relay-path split-brain (would break a live session)

The local CLI bootstrap writes/reads ~/.cmux/... while the Go daemon writes/reads ~/.programa/... — they no longer agree, so the reverse-relay auth handshake would fail.

  • CLI side (still ~/.cmux): CLI/cmux.swift — relay auth ~/.cmux/relay/<port>.auth (~line 1065); bootstrap ~/.cmux/relay/<port>.{bootstrap.sh,tty,shell} (~4431, 4439–4440, 4473, 4558, 4635, 4763–4764); CLI install path ~/.cmux/bin/cmux (~4480, 4524–4525, 4757).
  • Daemon side (already ~/.programa): daemon/remote/cmd/programad-remote/cli.go~/.programa/socket_addr (~489, 496), ~/.programa/relay/<port>.auth (~513).
  • Fix: align both on ~/.programa, and the CLI install path on ~/.programa/bin/programa (the bundled binary is now programa, not cmux).

2. Verify the relay/bootstrap end-to-end

The tests_v2/test_ssh_remote_*.py suite exercises this over Docker/SSH on the VM — run it once the paths are aligned.

Related deferred brand items

com.cmux.* dispatch-queue labels and the ~/.cmux references are part of the broader brand cleanup; this issue is the functional blocker specifically for SSH-remote.

Metadata

Metadata

Assignees

No one assigned

    Labels

    deferredDecision made: backlog, no work scheduled nowremote-daemonSSH-remote daemon (programad-remote)tech-debtKnown latent issue / maintenance debt

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions