Skip to content

Commit 8b91ceb

Browse files
macOS: preserve custom SSH usernames (#2046)
Co-authored-by: Alexis Gallagher <[email protected]>
1 parent 7e4e244 commit 8b91ceb

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Status: unreleased.
2323
- Telegram: keep topic IDs in restart sentinel notifications. (#1807) Thanks @hsrvc.
2424
- Config: apply config.env before ${VAR} substitution. (#1813) Thanks @spanishflu-est1918.
2525
- Slack: clear ack reaction after streamed replies. (#2044) Thanks @fancyboi999.
26+
- macOS: keep custom SSH usernames in remote target. (#2046) Thanks @algal.
2627

2728
## 2026.1.24-3
2829

apps/macos/Sources/Clawdbot/AppState.swift

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -413,10 +413,17 @@ final class AppState {
413413
}
414414

415415
private func updateRemoteTarget(host: String) {
416-
let parsed = CommandResolver.parseSSHTarget(self.remoteTarget)
417-
let user = parsed?.user ?? NSUserName()
418-
let port = parsed?.port ?? 22
419-
let assembled = port == 22 ? "\(user)@\(host)" : "\(user)@\(host):\(port)"
416+
let trimmed = self.remoteTarget.trimmingCharacters(in: .whitespacesAndNewlines)
417+
guard let parsed = CommandResolver.parseSSHTarget(trimmed) else { return }
418+
let trimmedUser = parsed.user?.trimmingCharacters(in: .whitespacesAndNewlines)
419+
let user = (trimmedUser?.isEmpty ?? true) ? nil : trimmedUser
420+
let port = parsed.port
421+
let assembled: String
422+
if let user {
423+
assembled = port == 22 ? "\(user)@\(host)" : "\(user)@\(host):\(port)"
424+
} else {
425+
assembled = port == 22 ? host : "\(host):\(port)"
426+
}
420427
if assembled != self.remoteTarget {
421428
self.remoteTarget = assembled
422429
}

0 commit comments

Comments
 (0)