Skip to content

feat(desktop): add Tailscale endpoint add-on - #2363

Merged
juliusmarminge merged 19 commits into
t3code/advertised-endpointsfrom
t3code/tailscale-endpoint-addon
Apr 28, 2026
Merged

juliusmarminge merged 19 commits into
t3code/advertised-endpointsfrom
t3code/tailscale-endpoint-addon

docs(remote): document desktop ssh launch

c5c99a7
Select commit
Loading
Failed to load commit list.
MacroscopeApp / Macroscope - Correctness Check completed Apr 28, 2026 in 6m 33s

3 issues identified (186 code objects reviewed).

• Merge Base: 3009dd0
• Head: c5c99a7

Details

✅ File Path Comments Posted
✅ REMOTE.md 0
❌ apps/desktop/src/sshEnvironment.ts 2
➖ apps/desktop/src/sshEnvironment.test.ts
✅ apps/desktop/src/sshScripts/askpass-posix.sh 0
✅ apps/desktop/src/sshScripts/remote-launch.sh 0
✅ apps/desktop/src/sshScripts/remote-runner.sh 0
✅ apps/desktop/src/sshScripts/remote-pairing.sh 0
✅ apps/desktop/src/sshScripts/askpass-windows.cmd 0
✅ apps/desktop/src/sshScripts/askpass-windows.ps1 0
✅ apps/desktop/src/sshScripts/remote-pick-port.cjs 0
✅ apps/desktop/tsdown.config.ts 0
➖ apps/web/src/localApi.test.ts
✅ apps/desktop/src/preload.ts 0
✅ apps/web/src/components/desktop/SshPasswordPromptDialog.tsx 0
✅ apps/web/src/routes/__root.tsx 0
✅ apps/web/src/environments/remote/api.ts 0
➖ apps/desktop/src/clientPersistence.test.ts
✅ apps/web/src/environments/runtime/index.ts 0
➖ apps/web/src/clientPersistenceStorage.test.ts
✅ .docs/remote-architecture.md 0
✅ apps/web/src/components/ui/scroll-area.tsx 0
➖ apps/server/src/server.test.ts
✅ apps/web/src/components/ui/dialog.tsx 0
✅ packages/contracts/src/ipc.ts 0
✅ apps/web/src/environments/runtime/catalog.ts 0
✅ apps/desktop/src/clientPersistence.ts 0
✅ apps/web/src/clientPersistenceStorage.ts 0
✅ apps/web/src/components/settings/SettingsPanels.browser.tsx 0
✅ apps/desktop/src/main.ts 0
➖ apps/web/src/environments/runtime/service.addSavedEnvironment.test.ts
✅ apps/web/src/components/settings/ConnectionsSettings.tsx 0
❌ apps/web/src/environments/runtime/service.ts 1

Filtered Issues Details

apps/desktop/src/sshEnvironment.ts
  • line 476: The regex pattern uses [^)]+ which requires at least one character between the auth method and the closing parenthesis, but SSH can output messages like Permission denied (publickey). with only one method and no additional characters. The [^)]+ quantifier will fail to match this case, causing isSshAuthFailure to incorrectly return false for valid authentication failures. Should use [^)]* (zero or more) instead of [^)]+ (one or more). [ Out of scope (triage) ]
apps/desktop/src/sshScripts/askpass-windows.cmd
  • line 2: In askpass-windows.cmd line 2, the script references ssh-askpass.ps1 ("%~dp0ssh-askpass.ps1"), but the actual PowerShell file in the same directory is named askpass-windows.ps1. This means on Windows, when SSH invokes askpass, the CMD wrapper will fail to find the PS1 script and the SSH password authentication flow will always fail. The reference should be "%~dp0askpass-windows.ps1". [ Out of scope (triage) ]
apps/desktop/src/sshScripts/remote-pick-port.cjs
  • line 6: If process.argv[2] is undefined (script called without a file path argument), fs.existsSync(filePath) will throw TypeError: path must be a string or Buffer instead of gracefully falling back to the default port. Unlike process.argv[3] and process.argv[4] which use ?? "" to handle missing arguments, filePath has no such protection. [ Failed validation ]