Skip to content

Commit d1fa0f9

Browse files
committed
fix(macos): keep settings sidebar visible
1 parent edd9736 commit d1fa0f9

2 files changed

Lines changed: 6 additions & 22 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,10 @@ Docs: https://docs.openclaw.ai
7171
- Core/plugins: harden clawpatch-reported edge cases across gateway auth cleanup, Claude session id paths, plugin activation policy, apply-patch hunk handling, diagnostic redaction, and plugin metadata validation.
7272
- UI: show reasoning choices as plain labels instead of leaking internal override wording in session and chat pickers.
7373
- Mac app: avoid repeating the Configuration heading inside channel quick settings.
74+
- Mac app: keep the Settings sidebar always visible and remove the redundant titlebar hide/show control.
7475
- Mac app: prefer explicit private/Tailscale/LAN Gateway endpoints over SSH tunnels, preserve legacy loopback tunnel configs, persist transport choices, and show captured SSH stderr when tunneling really fails.
7576
- Gateway/sessions: keep ACP/acpx and runtime child sessions visible in configured-only session lists when their owner or parent session belongs to a configured agent.
76-
- Mac app: keep app-level menu commands and Dashboard failure states reachable when the remote Gateway is disconnected, and keep the Settings sidebar toggle in the leading titlebar area.
77+
- Mac app: keep app-level menu commands and Dashboard failure states reachable when the remote Gateway is disconnected.
7778
- Mac app: allow longer Gateway and Context errors to wrap in the menu instead of truncating the useful failure detail.
7879
- Mac app: tighten remote Gateway fields in Settings so the Connection pane keeps readable labels and full action button text.
7980
- Mac app: keep custom Settings card rows left-aligned and full-width so Discovery and status sections no longer appear centered or detached.

apps/macos/Sources/OpenClaw/SettingsRootView.swift

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ struct SettingsRootView: View {
88
@State private var monitoringPermissions = false
99
@State private var selectedTab: SettingsTab = .general
1010
@State private var cachedTabs: Set<SettingsTab>
11-
@State private var sidebarVisible = true
1211
@State private var snapshotPaths: (configPath: String?, stateDir: String?) = (nil, nil)
1312
let updater: UpdaterProviding?
1413
private let isPreview = ProcessInfo.processInfo.isPreview
@@ -24,36 +23,20 @@ struct SettingsRootView: View {
2423

2524
var body: some View {
2625
HStack(spacing: 0) {
27-
if self.sidebarVisible {
28-
SettingsSidebar(
29-
groups: self.visibleGroups,
30-
selectedTab: self.$selectedTab)
31-
.frame(width: SettingsLayout.sidebarWidth)
32-
.transition(.move(edge: .leading).combined(with: .opacity))
33-
}
26+
SettingsSidebar(
27+
groups: self.visibleGroups,
28+
selectedTab: self.$selectedTab)
29+
.frame(width: SettingsLayout.sidebarWidth)
3430

3531
self.detailContainer
3632
}
3733
.frame(width: SettingsTab.windowWidth, height: SettingsTab.windowHeight, alignment: .topLeading)
3834
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .topLeading)
3935
.background(SettingsWindowChromeConfigurator())
40-
.toolbar {
41-
ToolbarItem(placement: .navigation) {
42-
Button {
43-
withAnimation(.spring(response: 0.28, dampingFraction: 0.86)) {
44-
self.sidebarVisible.toggle()
45-
}
46-
} label: {
47-
Image(systemName: "sidebar.leading")
48-
}
49-
.help(self.sidebarVisible ? "Hide Sidebar" : "Show Sidebar")
50-
}
51-
}
5236
.onReceive(NotificationCenter.default.publisher(for: .openclawSelectSettingsTab)) { note in
5337
if let tab = note.object as? SettingsTab {
5438
withAnimation(.spring(response: 0.32, dampingFraction: 0.85)) {
5539
self.selectedTab = self.validTab(for: tab)
56-
self.sidebarVisible = true
5740
}
5841
}
5942
}

0 commit comments

Comments
 (0)