From 1f25e38c2d4e72e30212502bbbba87bd20d83fc5 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 26 Dec 2025 22:27:24 +0100 Subject: [PATCH] fix(macos): keep menu width stable while open --- CHANGELOG.md | 1 + .../macos/Sources/Clawdis/MenuSessionsInjector.swift | 12 +----------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a1005cc3..5440c5998 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -66,6 +66,7 @@ - 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. - Remote SSH tunnels now get health checks; Debug → Ports highlights unhealthy tunnels and offers Reset SSH tunnel. +- Menu bar session/node sections no longer reflow while open, keeping hover highlights aligned. ### Nodes & Canvas - Debug status overlay gated and toggleable on macOS/iOS/Android nodes. diff --git a/apps/macos/Sources/Clawdis/MenuSessionsInjector.swift b/apps/macos/Sources/Clawdis/MenuSessionsInjector.swift index f61d2e727..b2563d239 100644 --- a/apps/macos/Sources/Clawdis/MenuSessionsInjector.swift +++ b/apps/macos/Sources/Clawdis/MenuSessionsInjector.swift @@ -52,27 +52,17 @@ final class MenuSessionsInjector: NSObject, NSMenuDelegate { self.inject(into: menu) self.injectNodes(into: menu) - // Refresh in background for the next open (but only when connected). + // Refresh in background for the next open (but do not re-inject while open). self.loadTask?.cancel() self.loadTask = Task { [weak self] in guard let self else { return } await self.refreshCache(force: false) - await MainActor.run { - guard self.isMenuOpen else { return } - // SwiftUI might have refreshed menu items; re-inject once. - self.inject(into: menu) - self.injectNodes(into: menu) - } } self.nodesLoadTask?.cancel() self.nodesLoadTask = Task { [weak self] in guard let self else { return } await self.nodesStore.refresh() - await MainActor.run { - guard self.isMenuOpen else { return } - self.injectNodes(into: menu) - } } }