Debug menu: session controls and thinking/verbose
This commit is contained in:
@@ -15,6 +15,7 @@ struct MenuContent: View {
|
||||
@Environment(\.openSettings) private var openSettings
|
||||
@State private var availableMics: [AudioInputDevice] = []
|
||||
@State private var loadingMics = false
|
||||
@State private var sessionMenu: [SessionRow] = []
|
||||
|
||||
var body: some View {
|
||||
VStack(alignment: .leading, spacing: 8) {
|
||||
@@ -43,6 +44,49 @@ struct MenuContent: View {
|
||||
}
|
||||
if self.state.debugPaneEnabled {
|
||||
Menu("Debug") {
|
||||
Menu("Sessions") {
|
||||
ForEach(self.sessionMenu) { row in
|
||||
Menu(row.key) {
|
||||
Menu("Thinking") {
|
||||
ForEach(["low", "medium", "high", "default"], id: \.self) { level in
|
||||
let normalized = level == "default" ? nil : level
|
||||
Button {
|
||||
Task {
|
||||
try? await DebugActions.updateSession(
|
||||
key: row.key,
|
||||
thinking: normalized,
|
||||
verbose: row.verboseLevel)
|
||||
await self.reloadSessionMenu()
|
||||
}
|
||||
} label: {
|
||||
Label(level.capitalized, systemImage: row.thinkingLevel == normalized ? "checkmark" : "")
|
||||
}
|
||||
}
|
||||
}
|
||||
Menu("Verbose") {
|
||||
ForEach(["on", "off", "default"], id: \.self) { level in
|
||||
let normalized = level == "default" ? nil : level
|
||||
Button {
|
||||
Task {
|
||||
try? await DebugActions.updateSession(
|
||||
key: row.key,
|
||||
thinking: row.thinkingLevel,
|
||||
verbose: normalized)
|
||||
await self.reloadSessionMenu()
|
||||
}
|
||||
} label: {
|
||||
Label(level.capitalized, systemImage: row.verboseLevel == normalized ? "checkmark" : "")
|
||||
}
|
||||
}
|
||||
}
|
||||
Button {
|
||||
DebugActions.openSessionStoreInCode()
|
||||
} label: {
|
||||
Label("Open Session Log", systemImage: "doc.text")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Button {
|
||||
DebugActions.openConfigFolder()
|
||||
} label: {
|
||||
@@ -113,6 +157,9 @@ struct MenuContent: View {
|
||||
await self.loadMicrophones(force: true)
|
||||
}
|
||||
}
|
||||
.task {
|
||||
await self.reloadSessionMenu()
|
||||
}
|
||||
.task {
|
||||
VoicePushToTalkHotkey.shared.setEnabled(voiceWakeSupported && self.state.voicePushToTalkEnabled)
|
||||
}
|
||||
@@ -306,6 +353,11 @@ struct MenuContent: View {
|
||||
return "System default"
|
||||
}
|
||||
|
||||
@MainActor
|
||||
private func reloadSessionMenu() async {
|
||||
self.sessionMenu = await DebugActions.recentSessions()
|
||||
}
|
||||
|
||||
@MainActor
|
||||
private func loadMicrophones(force: Bool = false) async {
|
||||
guard self.showVoiceWakeMicPicker else {
|
||||
|
||||
Reference in New Issue
Block a user