Rebrand Ultracode → Orchestra

Renames the orchestration mode's user-facing brand and all code identifiers
(UltracodeStyle→OrchestraStyle, isUltracode→isOrchestra, AppTheme.ultracode→
.orchestra, etc.). The canonical effort sentinel becomes "orchestra"; the legacy
"ultracode" token is still recognized so a persisted/in-flight session keeps
working. Comment referencing Claude Code's own ultracode mode kept accurate.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
Nucleic
2026-06-21 00:37:44 +00:00
co-authored by Claude Opus 4.8
parent f90ba73f0b
commit 1c9b120033
3 changed files with 22 additions and 22 deletions
@@ -40,7 +40,7 @@ struct StartChatComposer: View {
TextField("Describe a task…", text: $draft, axis: .vertical) TextField("Describe a task…", text: $draft, axis: .vertical)
.textFieldStyle(.roundedBorder) .textFieldStyle(.roundedBorder)
.lineLimit(1...5) .lineLimit(1...5)
.ultracodeGlow(active: MobileEfforts.isUltracode(effort)) .orchestraGlow(active: MobileEfforts.isOrchestra(effort))
Button { Button {
if let project = selected { if let project = selected {
store.startChat(in: project.id, message: draft, effort: effort, auto: auto) store.startChat(in: project.id, message: draft, effort: effort, auto: auto)
@@ -66,7 +66,7 @@ struct ProjectDetailView: View {
HStack(alignment: .bottom, spacing: 8) { HStack(alignment: .bottom, spacing: 8) {
TextField("Start a chat in \(project.name)…", text: $draft, axis: .vertical) TextField("Start a chat in \(project.name)…", text: $draft, axis: .vertical)
.textFieldStyle(.roundedBorder).lineLimit(1...4) .textFieldStyle(.roundedBorder).lineLimit(1...4)
.ultracodeGlow(active: MobileEfforts.isUltracode(effort)) .orchestraGlow(active: MobileEfforts.isOrchestra(effort))
Button { Button {
store.startChat(in: project.id, message: draft, effort: effort) store.startChat(in: project.id, message: draft, effort: effort)
draft = "" draft = ""
+20 -20
View File
@@ -13,10 +13,10 @@ enum Palette {
static let paused = Color(red: 0.62, green: 0.49, blue: 0.93) // purple static let paused = Color(red: 0.62, green: 0.49, blue: 0.93) // purple
static let danger = Color(red: 0.92, green: 0.34, blue: 0.34) // red static let danger = Color(red: 0.92, green: 0.34, blue: 0.34) // red
static let neutral = Color.secondary static let neutral = Color.secondary
/// The ultracode (orchestration mode) signature purple — mirrors the Mac's /// The orchestra (orchestration mode) signature purple — mirrors the Mac's
/// `AppTheme.ultracode`. Used for the effort picker's Ultracode option and the /// `AppTheme.orchestra`. Used for the effort picker's Orchestra option and the
/// composer's purple ring. /// composer's purple ring.
static let ultracode = Color(red: 0.55, green: 0.28, blue: 0.95) static let orchestra = Color(red: 0.55, green: 0.28, blue: 0.95)
/// Dot/accent color for a session's status, refined by the last turn's disposition — a /// Dot/accent color for a session's status, refined by the last turn's disposition — a
/// finished-the-work turn reads as "done" (success) rather than the calm "ready" accent. /// finished-the-work turn reads as "done" (success) rather than the calm "ready" accent.
@@ -117,27 +117,27 @@ extension View {
func card(padding: CGFloat = 14) -> some View { modifier(CardBackground(padding: padding)) } func card(padding: CGFloat = 14) -> some View { modifier(CardBackground(padding: padding)) }
/// Apply the teal accent app-wide. /// Apply the teal accent app-wide.
func nucleicTint() -> some View { tint(Palette.accent) } func nucleicTint() -> some View { tint(Palette.accent) }
/// Wrap a composer field in the ultracode purple ring while `active` (mirrors the Mac's /// Wrap a composer field in the orchestra purple ring while `active` (mirrors the Mac's
/// animated composer glow, lighter touch). /// animated composer glow, lighter touch).
func ultracodeGlow(active: Bool, cornerRadius: CGFloat = 8) -> some View { func orchestraGlow(active: Bool, cornerRadius: CGFloat = 8) -> some View {
modifier(UltracodeGlowModifier(active: active, cornerRadius: cornerRadius)) modifier(OrchestraGlowModifier(active: active, cornerRadius: cornerRadius))
} }
} }
/// The effort levels the remote offers, mirroring the Mac's `ModelCatalog.efforts` plus /// The effort levels the remote offers, mirroring the Mac's `ModelCatalog.efforts` plus
/// ultracode. `ultracodeSentinel` MUST stay equal to the host's `OrchestrationMode.effortSentinel` /// orchestra. `orchestraSentinel` MUST stay equal to the host's `OrchestrationMode.effortSentinel`
/// — it's sent verbatim over the sync wire and resolved on the host (to `xhigh` + standing /// — it's sent verbatim over the sync wire and resolved on the host (to `xhigh` + standing
/// consent), so a mismatch would silently disable the mode. /// consent), so a mismatch would silently disable the mode.
enum MobileEfforts { enum MobileEfforts {
static let levels = ["low", "medium", "high", "xhigh", "max"] static let levels = ["low", "medium", "high", "xhigh", "max"]
static let ultracodeSentinel = "ultracode" static let orchestraSentinel = "orchestra"
static let fallback = "high" static let fallback = "high"
static func isUltracode(_ effort: String) -> Bool { effort == ultracodeSentinel } static func isOrchestra(_ effort: String) -> Bool { effort == orchestraSentinel }
static func displayName(_ effort: String) -> String { isUltracode(effort) ? "Ultracode" : effort } static func displayName(_ effort: String) -> String { isOrchestra(effort) ? "Orchestra" : effort }
} }
/// A compact effort selector for the remote composers. Ultracode sits below the API levels, /// A compact effort selector for the remote composers. Orchestra sits below the API levels,
/// set apart with a sparkles glyph and the purple accent. /// set apart with a sparkles glyph and the purple accent.
struct EffortMenu: View { struct EffortMenu: View {
@Binding var effort: String @Binding var effort: String
@@ -150,23 +150,23 @@ struct EffortMenu: View {
} }
} }
Divider() Divider()
Button { effort = MobileEfforts.ultracodeSentinel } label: { Button { effort = MobileEfforts.orchestraSentinel } label: {
Label("Ultracode", systemImage: MobileEfforts.isUltracode(effort) ? "checkmark" : "sparkles") Label("Orchestra", systemImage: MobileEfforts.isOrchestra(effort) ? "checkmark" : "sparkles")
} }
} label: { } label: {
HStack(spacing: 4) { HStack(spacing: 4) {
Image(systemName: MobileEfforts.isUltracode(effort) ? "sparkles" : "slider.horizontal.3") Image(systemName: MobileEfforts.isOrchestra(effort) ? "sparkles" : "slider.horizontal.3")
Text(MobileEfforts.displayName(effort)) Text(MobileEfforts.displayName(effort))
} }
.font(.caption) .font(.caption)
.foregroundStyle(MobileEfforts.isUltracode(effort) ? Palette.ultracode : Palette.accent) .foregroundStyle(MobileEfforts.isOrchestra(effort) ? Palette.orchestra : Palette.accent)
} }
} }
} }
/// A gentle purple ring that breathes around a composer while ultracode is selected — the /// A gentle purple ring that breathes around a composer while orchestra is selected — the
/// remote echo of the Mac's `UltracodeGlow`. Honors Reduce Motion (holds steady). /// remote echo of the Mac's `OrchestraGlow`. Honors Reduce Motion (holds steady).
struct UltracodeGlowModifier: ViewModifier { struct OrchestraGlowModifier: ViewModifier {
var active: Bool var active: Bool
var cornerRadius: CGFloat var cornerRadius: CGFloat
@Environment(\.accessibilityReduceMotion) private var reduceMotion @Environment(\.accessibilityReduceMotion) private var reduceMotion
@@ -178,9 +178,9 @@ struct UltracodeGlowModifier: ViewModifier {
.overlay { .overlay {
if active { if active {
RoundedRectangle(cornerRadius: cornerRadius, style: .continuous) RoundedRectangle(cornerRadius: cornerRadius, style: .continuous)
.strokeBorder(Palette.ultracode.opacity(animating ? 0.9 : 0.5), .strokeBorder(Palette.orchestra.opacity(animating ? 0.9 : 0.5),
lineWidth: animating ? 1.6 : 1.2) lineWidth: animating ? 1.6 : 1.2)
.shadow(color: Palette.ultracode.opacity(animating ? 0.5 : 0.2), .shadow(color: Palette.orchestra.opacity(animating ? 0.5 : 0.2),
radius: animating ? 8 : 3) radius: animating ? 8 : 3)
.animation( .animation(
reduceMotion ? .default reduceMotion ? .default