You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* fix: reduce memory retention after closing tabs
- Clear changeManager state and pluginDriver reference in teardown
- Cancel redisDatabaseSwitchTask in teardown
- Clear cachedTableColumnTypes/Names, tableMetadata, filterState in teardown
- Release editor closures and heavy state (tree-sitter, highlighter) on destroy
- Add releaseHeavyState() to TextViewController for early resource cleanup
- Make InMemoryRowProvider.rowBuffer weak with safe fallback
- Add releaseData() to InMemoryRowProvider for explicit cleanup
- Clear tabProviderCache, sortCache, cachedChangeManager in onTeardown
- Hint malloc to return freed pages after disconnect
- Add deinit logging for RowBuffer and QueryTabManager
* fix: set isKeyWindow when WindowAccessor captures window
WindowAccessor.viewDidMoveToWindow fires after didBecomeKeyNotification,
so isKeyWindow was never set to true. This blocked sidebar table clicks
(guarded by isKeyWindow) and caused new tabs to open as separate windows
instead of attaching to the connection's tab group.
* fix: explicitly attach new windows to existing tab group
openWindow creates the window before tabbingIdentifier is set, so macOS
automatic tabbing doesn't group them. Use addTabbedWindow to explicitly
attach new windows to the connection's existing tab group.
* fix: add diagnostic logging for tab grouping
* fix: add NSLog diagnostic for windowDidBecomeKey
* fix: match SwiftUI window identifiers with hasPrefix instead of exact match
SwiftUI appends -AppWindow-N to the WindowGroup id, so window.identifier
is "main-AppWindow-1" not "main". The exact match from PR #441 broke
isMainWindow, preventing tab grouping and window lifecycle handling.
* fix: use prefix matching for window identifiers across all call sites
SwiftUI appends -AppWindow-N to WindowGroup IDs. Fixed remaining spots
that used .contains("main") or exact match:
- closeRestoredMainWindows: use isMainWindow helper
- closeWindows(withId:): prefix match instead of contains
- ContentView notification filter: prefix match instead of contains
* fix: address code review feedback
- Use queue: .main instead of assumeIsolated in DataGridView teardown observer
- Apply hasPrefix matching to isWelcomeWindow and isConnectionFormWindow
- Gate RowBuffer/QueryTabManager deinit logging behind #if DEBUG
- Add CHANGELOG entries for memory, tab grouping, and sidebar fixes
* fix: guard buffer writes against nil to avoid mutating shared emptyBuffer
* docs: simplify changelog entries
0 commit comments