diff --git a/ios/Packages/Sybil/Sources/Sybil/SybilWorkspaceView.swift b/ios/Packages/Sybil/Sources/Sybil/SybilWorkspaceView.swift index 2a37ea3..7ff45ec 100644 --- a/ios/Packages/Sybil/Sources/Sybil/SybilWorkspaceView.swift +++ b/ios/Packages/Sybil/Sources/Sybil/SybilWorkspaceView.swift @@ -232,13 +232,7 @@ struct SybilWorkspaceView: View { HStack(spacing: 14) { workspaceNavigationLeadingControl - Text(viewModel.selectedTitle) - .font(.sybil(size: 16, weight: .semibold)) - .foregroundStyle(SybilTheme.text) - .lineLimit(1) - .minimumScaleFactor(0.78) - .frame(maxWidth: .infinity, alignment: .leading) - .multilineTextAlignment(.leading) + customWorkspaceNavigationTitle workspaceNavigationTrailingControl } @@ -251,6 +245,32 @@ struct SybilWorkspaceView: View { } } + private var selectedProviderModelSubtitle: String { + let selectedModel = viewModel.model.trimmingCharacters(in: .whitespacesAndNewlines) + guard !selectedModel.isEmpty else { + return viewModel.provider.displayName + } + return "\(viewModel.provider.displayName) • \(selectedModel)" + } + + private var customWorkspaceNavigationTitle: some View { + VStack(alignment: .leading, spacing: 2) { + Text(viewModel.selectedTitle) + .font(.sybil(size: 16, weight: .semibold)) + .foregroundStyle(SybilTheme.text) + .lineLimit(1) + .minimumScaleFactor(0.78) + + Text(selectedProviderModelSubtitle) + .font(.sybil(size: 10, weight: .medium)) + .foregroundStyle(SybilTheme.textMuted) + .lineLimit(1) + .minimumScaleFactor(0.82) + } + .frame(maxWidth: .infinity, alignment: .leading) + .multilineTextAlignment(.leading) + } + @ViewBuilder private var workspaceNavigationLeadingControl: some View { switch navigationLeadingControl {