From 160103a847510e9c2d66601a036eab9e47cc470c Mon Sep 17 00:00:00 2001 From: Matt Clarke Date: Wed, 11 Mar 2026 14:21:11 -0400 Subject: [PATCH] fix(core): maintain working directory --- switchboard/Services/TerminalService.swift | 1 + tests/TerminalServiceTests.swift | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/switchboard/Services/TerminalService.swift b/switchboard/Services/TerminalService.swift index 086bd87..fd7e89a 100644 --- a/switchboard/Services/TerminalService.swift +++ b/switchboard/Services/TerminalService.swift @@ -163,6 +163,7 @@ class TerminalService { let process = Process() process.executableURL = ghosttyURL process.arguments = args + process.currentDirectoryURL = URL(fileURLWithPath: NSHomeDirectory()) do { try process.run() diff --git a/tests/TerminalServiceTests.swift b/tests/TerminalServiceTests.swift index 539e055..66944d8 100644 --- a/tests/TerminalServiceTests.swift +++ b/tests/TerminalServiceTests.swift @@ -57,10 +57,11 @@ final class TerminalServiceTests: XCTestCase { XCTAssertFalse(service.requiresAccessibilityPermissions(.ghostty)) } - // MARK: - Warp and Ghostty AppleScript templates use System Events + // MARK: - Warp AppleScript template uses System Events - // These templates must use System Events keystrokes (the reason they need - // Accessibility permissions in the first place). + // Warp has no AppleScript dictionary, so its script drives input via System Events + // keystrokes (the reason it needs Accessibility permissions). + // Ghostty is launched via CLI Process, not AppleScript, so it has no System Events usage. func testWarpScript_UsesSystemEvents() { let script = AppleScriptTemplates.warp(profileName: "test")