Skip to content

Commit 1da37ee

Browse files
committed
refactor: rename remaining internal cmux identifiers → programa (Phase 6, cosmetic)
~90 cmuxXxx Swift identifiers + ~60 dotted cmux.* Notification/queue/error-domain literals across 30 Sources/CLI files → programa*. Verified with build-for-testing (app + programaTests + programaUITests compile). Deliberately preserved identifiers/strings hard-coded by the test targets and tests_v2 (e.g. SocketControlMode.cmuxOnly rawValue "cmuxonly", cmux*ForTesting helpers, "cmux.main"/"cmux.settings"/"cmux.about" test-asserted keys, cmux-ssh-startup-* asserted in test_ssh_remote_cli_metadata) — those need a coordinated app+test rename (follow-up). Also fixed the 'Bundled Programa CLI' error string. Analytics events + cmux-relay-auth untouched.
1 parent cc361de commit 1da37ee

30 files changed

Lines changed: 508 additions & 508 deletions

CLI/programa.swift

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ private final class CLISocketSentryTelemetry {
148148
for (key, value) in data {
149149
payload[key] = value
150150
}
151-
let crumb = Breadcrumb(level: .info, category: "cmux.cli")
151+
let crumb = Breadcrumb(level: .info, category: "programa.cli")
152152
crumb.message = message
153153
crumb.data = payload
154154
SentrySDK.addBreadcrumb(crumb)
@@ -8051,10 +8051,10 @@ struct CMUXCLI {
80518051
return true
80528052
}
80538053

8054-
private static let cmuxThemeOverrideBundleIdentifier = "com.darkroom.programa"
8055-
private static let cmuxThemesBlockStart = "# cmux themes start"
8056-
private static let cmuxThemesBlockEnd = "# cmux themes end"
8057-
private static let cmuxThemesReloadNotificationName = "com.darkroom.programa.themes.reload-config"
8054+
private static let programaThemeOverrideBundleIdentifier = "com.darkroom.programa"
8055+
private static let programaThemesBlockStart = "# cmux themes start"
8056+
private static let programaThemesBlockEnd = "# cmux themes end"
8057+
private static let programaThemesReloadNotificationName = "com.darkroom.programa.themes.reload-config"
80588058

80598059
private struct ThemeSelection {
80608060
let rawValue: String?
@@ -8086,8 +8086,8 @@ struct CMUXCLI {
80868086

80878087
let selection = currentThemeSelection()
80888088
var environment = ProcessInfo.processInfo.environment
8089-
environment["PROGRAMA_THEME_PICKER_CONFIG"] = try cmuxThemeOverrideConfigURL().path
8090-
environment["PROGRAMA_THEME_PICKER_BUNDLE_ID"] = currentProgramaAppBundleIdentifier() ?? Self.cmuxThemeOverrideBundleIdentifier
8089+
environment["PROGRAMA_THEME_PICKER_CONFIG"] = try programaThemeOverrideConfigURL().path
8090+
environment["PROGRAMA_THEME_PICKER_BUNDLE_ID"] = currentProgramaAppBundleIdentifier() ?? Self.programaThemeOverrideBundleIdentifier
80918091
environment["PROGRAMA_THEME_PICKER_TARGET"] = defaultThemePickerTargetMode(current: selection).rawValue
80928092
environment["PROGRAMA_THEME_PICKER_COLOR_SCHEME"] = defaultAppearancePrefersDarkThemes() ? "dark" : "light"
80938093
if let light = selection.light {
@@ -8264,7 +8264,7 @@ struct CMUXCLI {
82648264
private func printThemesList(jsonOutput: Bool) throws {
82658265
let themes = availableThemeNames()
82668266
let current = currentThemeSelection()
8267-
let configPath = try cmuxThemeOverrideConfigURL().path
8267+
let configPath = try programaThemeOverrideConfigURL().path
82688268

82698269
if jsonOutput {
82708270
let currentPayload: [String: Any] = [
@@ -8597,8 +8597,8 @@ struct CMUXCLI {
85978597
"~/.config/ghostty/config.ghostty",
85988598
"~/Library/Application Support/com.mitchellh.ghostty/config",
85998599
"~/Library/Application Support/com.mitchellh.ghostty/config.ghostty",
8600-
"~/Library/Application Support/\(Self.cmuxThemeOverrideBundleIdentifier)/config",
8601-
"~/Library/Application Support/\(Self.cmuxThemeOverrideBundleIdentifier)/config.ghostty",
8600+
"~/Library/Application Support/\(Self.programaThemeOverrideBundleIdentifier)/config",
8601+
"~/Library/Application Support/\(Self.programaThemeOverrideBundleIdentifier)/config.ghostty",
86028602
]
86038603

86048604
return rawPaths.map {
@@ -8630,28 +8630,28 @@ struct CMUXCLI {
86308630
return lastValue
86318631
}
86328632

8633-
private func cmuxThemeOverrideConfigURL() throws -> URL {
8633+
private func programaThemeOverrideConfigURL() throws -> URL {
86348634
guard let appSupport = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first else {
86358635
throw CLIError(message: "Unable to resolve Application Support directory")
86368636
}
86378637
return appSupport
8638-
.appendingPathComponent(Self.cmuxThemeOverrideBundleIdentifier, isDirectory: true)
8638+
.appendingPathComponent(Self.programaThemeOverrideBundleIdentifier, isDirectory: true)
86398639
.appendingPathComponent("config.ghostty", isDirectory: false)
86408640
}
86418641

86428642
private func writeManagedThemeOverride(rawThemeValue: String) throws -> URL {
86438643
let fileManager = FileManager.default
8644-
let configURL = try cmuxThemeOverrideConfigURL()
8644+
let configURL = try programaThemeOverrideConfigURL()
86458645
let directoryURL = configURL.deletingLastPathComponent()
86468646
try fileManager.createDirectory(at: directoryURL, withIntermediateDirectories: true, attributes: nil)
86478647

86488648
let existingContents = try readOptionalThemeOverrideContents(at: configURL) ?? ""
86498649
let strippedContents = removingManagedThemeOverride(from: existingContents)
86508650
.trimmingCharacters(in: .whitespacesAndNewlines)
86518651
let block = """
8652-
\(Self.cmuxThemesBlockStart)
8652+
\(Self.programaThemesBlockStart)
86538653
theme = \(rawThemeValue)
8654-
\(Self.cmuxThemesBlockEnd)
8654+
\(Self.programaThemesBlockEnd)
86558655
"""
86568656

86578657
let nextContents = strippedContents.isEmpty ? "\(block)\n" : "\(strippedContents)\n\n\(block)\n"
@@ -8661,7 +8661,7 @@ struct CMUXCLI {
86618661

86628662
private func clearManagedThemeOverride() throws -> URL {
86638663
let fileManager = FileManager.default
8664-
let configURL = try cmuxThemeOverrideConfigURL()
8664+
let configURL = try programaThemeOverrideConfigURL()
86658665
guard let existingContents = try readOptionalThemeOverrideContents(at: configURL) else {
86668666
return configURL
86678667
}
@@ -8717,9 +8717,9 @@ struct CMUXCLI {
87178717
}
87188718

87198719
private func reloadThemesIfPossible() -> ThemeReloadStatus {
8720-
let bundleIdentifier = currentProgramaAppBundleIdentifier() ?? Self.cmuxThemeOverrideBundleIdentifier
8720+
let bundleIdentifier = currentProgramaAppBundleIdentifier() ?? Self.programaThemeOverrideBundleIdentifier
87218721
DistributedNotificationCenter.default().post(
8722-
name: Notification.Name(Self.cmuxThemesReloadNotificationName),
8722+
name: Notification.Name(Self.programaThemesReloadNotificationName),
87238723
object: nil,
87248724
userInfo: ["bundleIdentifier": bundleIdentifier]
87258725
)
@@ -10297,7 +10297,7 @@ struct CMUXCLI {
1029710297
explicitPassword: String?,
1029810298
focusedContext: TmuxCompatFocusedContext?,
1029910299
tmuxPathPrefix: String,
10300-
cmuxBinEnvVar: String,
10300+
programaBinEnvVar: String,
1030110301
termOverrideEnvVar: String,
1030210302
extraEnvVars: [(key: String, value: String)] = []
1030310303
) {
@@ -10317,7 +10317,7 @@ struct CMUXCLI {
1031710317
?? "%1"
1031810318
let fakeTerm = processEnvironment[termOverrideEnvVar] ?? "screen-256color"
1031910319

10320-
setenv(cmuxBinEnvVar, executablePath, 1)
10320+
setenv(programaBinEnvVar, executablePath, 1)
1032110321
setenv("PATH", updatedPath, 1)
1032210322
setenv("TMUX", fakeTmuxValue, 1)
1032310323
setenv("TMUX_PANE", fakeTmuxPane, 1)
@@ -10367,7 +10367,7 @@ struct CMUXCLI {
1036710367
explicitPassword: explicitPassword,
1036810368
focusedContext: focusedContext,
1036910369
tmuxPathPrefix: "cmux-claude-teams",
10370-
cmuxBinEnvVar: "PROGRAMA_CLAUDE_TEAMS_PROGRAMA_BIN",
10370+
programaBinEnvVar: "PROGRAMA_CLAUDE_TEAMS_PROGRAMA_BIN",
1037110371
termOverrideEnvVar: "PROGRAMA_CLAUDE_TEAMS_TERM",
1037210372
extraEnvVars: [
1037310373
(key: "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS", value: "1"),
@@ -10945,7 +10945,7 @@ struct CMUXCLI {
1094510945
explicitPassword: explicitPassword,
1094610946
focusedContext: focusedContext,
1094710947
tmuxPathPrefix: "cmux-omo",
10948-
cmuxBinEnvVar: "PROGRAMA_OMO_PROGRAMA_BIN",
10948+
programaBinEnvVar: "PROGRAMA_OMO_PROGRAMA_BIN",
1094910949
termOverrideEnvVar: "PROGRAMA_OMO_TERM",
1095010950
extraEnvVars: [(key: "OPENCODE_PORT", value: openCodePort)]
1095110951
)
@@ -11067,7 +11067,7 @@ struct CMUXCLI {
1106711067
explicitPassword: explicitPassword,
1106811068
focusedContext: focusedContext,
1106911069
tmuxPathPrefix: "cmux-omx",
11070-
cmuxBinEnvVar: "PROGRAMA_OMX_PROGRAMA_BIN",
11070+
programaBinEnvVar: "PROGRAMA_OMX_PROGRAMA_BIN",
1107111071
termOverrideEnvVar: "PROGRAMA_OMX_TERM"
1107211072
)
1107311073
}
@@ -11170,7 +11170,7 @@ struct CMUXCLI {
1117011170
explicitPassword: explicitPassword,
1117111171
focusedContext: focusedContext,
1117211172
tmuxPathPrefix: "cmux-omc",
11173-
cmuxBinEnvVar: "PROGRAMA_OMC_PROGRAMA_BIN",
11173+
programaBinEnvVar: "PROGRAMA_OMC_PROGRAMA_BIN",
1117411174
termOverrideEnvVar: "PROGRAMA_OMC_TERM"
1117511175
)
1117611176
// omc wraps Claude Code, so it needs the same NODE_OPTIONS restore module
@@ -13406,17 +13406,17 @@ struct CMUXCLI {
1340613406
}
1340713407

1340813408
var hooks = existing["hooks"] as? [String: Any] ?? [:]
13409-
let cmuxHooks = Self.codexHooksJSON["hooks"] as! [String: Any]
13410-
for (eventName, cmuxGroups) in cmuxHooks {
13411-
guard let cmuxGroupArray = cmuxGroups as? [[String: Any]] else { continue }
13409+
let programaHooks = Self.codexHooksJSON["hooks"] as! [String: Any]
13410+
for (eventName, programaGroups) in programaHooks {
13411+
guard let programaGroupArray = programaGroups as? [[String: Any]] else { continue }
1341213412
var eventGroups = hooks[eventName] as? [[String: Any]] ?? []
1341313413
eventGroups.removeAll { group in
1341413414
guard let groupHooks = group["hooks"] as? [[String: Any]] else { return false }
1341513415
return groupHooks.allSatisfy { hook in
1341613416
(hook["command"] as? String)?.contains(Self.codexHookCommandMarker) == true
1341713417
}
1341813418
}
13419-
eventGroups.append(contentsOf: cmuxGroupArray)
13419+
eventGroups.append(contentsOf: programaGroupArray)
1342013420
hooks[eventName] = eventGroups
1342113421
}
1342213422
existing["hooks"] = hooks

0 commit comments

Comments
 (0)