diff --git a/CHANGELOG.md b/CHANGELOG.md index 82fa01b29..1c6d1128b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -62,6 +62,8 @@ - Nodes now expose consistent inline details with per-node submenus for quick copy of key fields. - Node rows now show compact app versions (build numbers moved to submenus) and offer SSH launch from Bonjour when available. - Menu actions are grouped below toggles; Open Canvas hides when disabled and Voice Wake now anchors the mic picker. +- Connections now include Discord provider status + configuration UI. +- Menu bar gains an Allow Camera toggle alongside Canvas. - Session list polish: sleeping/disconnected/error states, usage bar restored, padding + bar sizing tuned, syncing menu removed, header hidden when disconnected. - Chat UI polish: tool call cards + merged tool results, glass background, tighter composer spacing, visual effect host tweaks. - OAuth storage moved; legacy session syncing metadata removed. diff --git a/apps/macos/Sources/Clawdis/MenuContentView.swift b/apps/macos/Sources/Clawdis/MenuContentView.swift index 49ef13d2e..6a5dc1e89 100644 --- a/apps/macos/Sources/Clawdis/MenuContentView.swift +++ b/apps/macos/Sources/Clawdis/MenuContentView.swift @@ -18,6 +18,7 @@ struct MenuContent: View { @State private var availableMics: [AudioInputDevice] = [] @State private var loadingMics = false @State private var browserControlEnabled = true + @AppStorage(cameraEnabledKey) private var cameraEnabled: Bool = false init(state: AppState, updater: UpdaterProviding?) { self._state = Bindable(wrappedValue: state) @@ -52,6 +53,9 @@ struct MenuContent: View { })) { Label("Browser Control", systemImage: "globe") } + Toggle(isOn: self.$cameraEnabled) { + Label("Allow Camera", systemImage: "camera") + } Toggle(isOn: Binding(get: { self.state.canvasEnabled }, set: { self.state.canvasEnabled = $0 })) { Label("Allow Canvas", systemImage: "rectangle.and.pencil.and.ellipsis") }