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: resolve high CPU usage and memory leaks at idle (#368) (#369)
* perf: fix high CPU usage and memory leaks at idle (#368)
- Guard updateSession against no-op writes using isContentViewEquivalent
- Skip onStateChanged callback for routine healthy↔checking ping cycles
- Move lastActiveAt updates through guarded updateSession (no-op when only timestamp changes)
- Track all driver operations in queriesInFlight to prevent health monitor TOCTOU races
- Fix activeCoordinators memory leak by moving registerForPersistence to markActivated
- Replace loadConnections() disk I/O in ContentView.init with in-memory lookup
- Change WindowLifecycleMonitor to weak NSWindow references with purgeStaleEntries
- Guard redundant .connecting status writes during reconnect attempts
- Add [weak self] to nested DispatchQueue.main.async in SQLEditorCoordinator
- Move prefetch DB fetch off MainActor with tracked task and dedup guard
- Move Keychain migration to Task.detached for non-blocking startup
- Move plugin bundle.load() off MainActor via nonisolated static method
- Use targeted reloadData for FK columns instead of full table reload
- Debounce JSON syntax highlighting with 100ms DispatchWorkItem
- Replace O(n²) undo batch index shift with O(n log n) binary search
* perf: scope observation to per-connection version counters (HIGH-1)
Add connectionStatusVersions dictionary with per-connection counters.
ContentView and MainContentView now observe only their connection's
counter instead of the global connectionStatusVersion, eliminating
cross-connection re-render overhead when multiple connections are open.
* fix: address PR review feedback from CodeRabbit
- Fix FK column reload to use display-order indices (respects user column reordering)
- Remove force-unwrap in JSON highlight debounce (use local variable)
- Add purgeStaleEntries to connectionId(for:) and window(for:) in WindowLifecycleMonitor
- Fix audit doc date typo and inconsistent checkbox states
* chore: exclude performance audit doc from PR
* perf: mark internal bookkeeping properties with @ObservationIgnored
0 commit comments