Default Claude Code integration to off
This commit is contained in:
parent
573cec4a75
commit
eb6caa5ce5
3 changed files with 47 additions and 3 deletions
|
|
@ -1354,7 +1354,7 @@ final class TerminalSurface: Identifiable, ObservableObject {
|
|||
env["CMUX_PORT_RANGE"] = String(Self.sessionPortRangeSize)
|
||||
}
|
||||
|
||||
let claudeHooksEnabled = UserDefaults.standard.object(forKey: "claudeCodeHooksEnabled") as? Bool ?? true
|
||||
let claudeHooksEnabled = ClaudeCodeIntegrationSettings.hooksEnabled()
|
||||
if !claudeHooksEnabled {
|
||||
env["CMUX_CLAUDE_HOOKS_DISABLED"] = "1"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2263,13 +2263,26 @@ enum AppearanceSettings {
|
|||
}
|
||||
}
|
||||
|
||||
enum ClaudeCodeIntegrationSettings {
|
||||
static let hooksEnabledKey = "claudeCodeHooksEnabled"
|
||||
static let defaultHooksEnabled = false
|
||||
|
||||
static func hooksEnabled(defaults: UserDefaults = .standard) -> Bool {
|
||||
if defaults.object(forKey: hooksEnabledKey) == nil {
|
||||
return defaultHooksEnabled
|
||||
}
|
||||
return defaults.bool(forKey: hooksEnabledKey)
|
||||
}
|
||||
}
|
||||
|
||||
struct SettingsView: View {
|
||||
private let contentTopInset: CGFloat = 8
|
||||
private let pickerColumnWidth: CGFloat = 196
|
||||
|
||||
@AppStorage(AppearanceSettings.appearanceModeKey) private var appearanceMode = AppearanceSettings.defaultMode.rawValue
|
||||
@AppStorage(SocketControlSettings.appStorageKey) private var socketControlMode = SocketControlSettings.defaultMode.rawValue
|
||||
@AppStorage("claudeCodeHooksEnabled") private var claudeCodeHooksEnabled = true
|
||||
@AppStorage(ClaudeCodeIntegrationSettings.hooksEnabledKey)
|
||||
private var claudeCodeHooksEnabled = ClaudeCodeIntegrationSettings.defaultHooksEnabled
|
||||
@AppStorage("cmuxPortBase") private var cmuxPortBase = 9100
|
||||
@AppStorage("cmuxPortRange") private var cmuxPortRange = 10
|
||||
@AppStorage(BrowserSearchSettings.searchEngineKey) private var browserSearchEngine = BrowserSearchSettings.defaultSearchEngine.rawValue
|
||||
|
|
@ -2595,7 +2608,7 @@ struct SettingsView: View {
|
|||
private func resetAllSettings() {
|
||||
appearanceMode = AppearanceSettings.defaultMode.rawValue
|
||||
socketControlMode = SocketControlSettings.defaultMode.rawValue
|
||||
claudeCodeHooksEnabled = true
|
||||
claudeCodeHooksEnabled = ClaudeCodeIntegrationSettings.defaultHooksEnabled
|
||||
browserSearchEngine = BrowserSearchSettings.defaultSearchEngine.rawValue
|
||||
browserSearchSuggestionsEnabled = BrowserSearchSettings.defaultSearchSuggestionsEnabled
|
||||
openTerminalLinksInCmuxBrowser = BrowserLinkOpenSettings.defaultOpenTerminalLinksInCmuxBrowser
|
||||
|
|
|
|||
|
|
@ -162,6 +162,37 @@ final class GhosttyConfigTests: XCTestCase {
|
|||
)
|
||||
}
|
||||
|
||||
func testClaudeCodeIntegrationDefaultsToDisabledWhenUnset() {
|
||||
let suiteName = "cmux.tests.claude-hooks.\(UUID().uuidString)"
|
||||
guard let defaults = UserDefaults(suiteName: suiteName) else {
|
||||
XCTFail("Failed to create isolated user defaults suite")
|
||||
return
|
||||
}
|
||||
defer {
|
||||
defaults.removePersistentDomain(forName: suiteName)
|
||||
}
|
||||
|
||||
defaults.removeObject(forKey: ClaudeCodeIntegrationSettings.hooksEnabledKey)
|
||||
XCTAssertFalse(ClaudeCodeIntegrationSettings.hooksEnabled(defaults: defaults))
|
||||
}
|
||||
|
||||
func testClaudeCodeIntegrationRespectsStoredPreference() {
|
||||
let suiteName = "cmux.tests.claude-hooks.\(UUID().uuidString)"
|
||||
guard let defaults = UserDefaults(suiteName: suiteName) else {
|
||||
XCTFail("Failed to create isolated user defaults suite")
|
||||
return
|
||||
}
|
||||
defer {
|
||||
defaults.removePersistentDomain(forName: suiteName)
|
||||
}
|
||||
|
||||
defaults.set(true, forKey: ClaudeCodeIntegrationSettings.hooksEnabledKey)
|
||||
XCTAssertTrue(ClaudeCodeIntegrationSettings.hooksEnabled(defaults: defaults))
|
||||
|
||||
defaults.set(false, forKey: ClaudeCodeIntegrationSettings.hooksEnabledKey)
|
||||
XCTAssertFalse(ClaudeCodeIntegrationSettings.hooksEnabled(defaults: defaults))
|
||||
}
|
||||
|
||||
private func rgb255(_ color: NSColor) -> RGB {
|
||||
let srgb = color.usingColorSpace(.sRGB)!
|
||||
var red: CGFloat = 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue