Skip to content

Commit b3fa0cc

Browse files
committed
release: v0.27.6
1 parent 76c6514 commit b3fa0cc

File tree

10 files changed

+26
-16
lines changed

10 files changed

+26
-16
lines changed

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.27.6] - 2026-04-07
11+
1012
### Fixed
1113

1214
- Fix excessive idle ping traffic (40-50 SELECT 1/sec) caused by AsyncStream iterator recreation and orphaned monitor tasks
@@ -1189,7 +1191,8 @@ TablePro is a native macOS database client built with SwiftUI and AppKit, design
11891191
- Custom SQL query templates
11901192
- Performance optimized for large datasets
11911193

1192-
[Unreleased]: https://github.com/TableProApp/TablePro/compare/v0.27.5...HEAD
1194+
[Unreleased]: https://github.com/TableProApp/TablePro/compare/v0.27.6...HEAD
1195+
[0.27.6]: https://github.com/TableProApp/TablePro/compare/v0.27.5...v0.27.6
11931196
[0.27.5]: https://github.com/TableProApp/TablePro/compare/v0.27.4...v0.27.5
11941197
[0.27.4]: https://github.com/TableProApp/TablePro/compare/v0.27.3...v0.27.4
11951198
[0.27.3]: https://github.com/TableProApp/TablePro/compare/v0.27.2...v0.27.3

TablePro.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2091,7 +2091,7 @@
20912091
CODE_SIGN_IDENTITY = "Apple Development";
20922092
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
20932093
CODE_SIGN_STYLE = Automatic;
2094-
CURRENT_PROJECT_VERSION = 58;
2094+
CURRENT_PROJECT_VERSION = 59;
20952095
DEAD_CODE_STRIPPING = YES;
20962096
DEVELOPMENT_TEAM = D7HJ5TFYCU;
20972097
ENABLE_APP_SANDBOX = NO;
@@ -2116,7 +2116,7 @@
21162116
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
21172117
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
21182118
MACOSX_DEPLOYMENT_TARGET = 14.0;
2119-
MARKETING_VERSION = 0.27.5;
2119+
MARKETING_VERSION = 0.27.6;
21202120
OTHER_LDFLAGS = (
21212121
"-Wl,-w",
21222122
"-force_load",
@@ -2163,7 +2163,7 @@
21632163
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
21642164
CODE_SIGN_STYLE = Automatic;
21652165
COPY_PHASE_STRIP = YES;
2166-
CURRENT_PROJECT_VERSION = 58;
2166+
CURRENT_PROJECT_VERSION = 59;
21672167
DEAD_CODE_STRIPPING = YES;
21682168
DEPLOYMENT_POSTPROCESSING = YES;
21692169
DEVELOPMENT_TEAM = D7HJ5TFYCU;
@@ -2189,7 +2189,7 @@
21892189
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
21902190
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
21912191
MACOSX_DEPLOYMENT_TARGET = 14.0;
2192-
MARKETING_VERSION = 0.27.5;
2192+
MARKETING_VERSION = 0.27.6;
21932193
OTHER_LDFLAGS = (
21942194
"-Wl,-w",
21952195
"-force_load",

TablePro.xcodeproj/xcshareddata/xcschemes/TablePro.xcscheme

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<Scheme
33
LastUpgradeVersion = "2640"
4-
version = "1.8">
4+
version = "1.7">
55
<BuildAction
66
parallelizeBuildables = "YES"
77
buildImplicitDependencies = "YES"

TablePro/ContentView.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,6 @@ struct ContentView: View {
144144
|| notificationWindow.subtitle == "\(name) — Preview"
145145
}()
146146
guard isOurWindow else { return }
147-
148147
}
149148
}
150149

TablePro/Core/Plugins/PluginManager+Lifecycle.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,6 @@ extension PluginManager {
191191
queryBuildingDriverCache.removeAll()
192192

193193
Self.logger.info("Uninstalled plugin '\(id)'")
194-
_needsRestart = true
194+
needsRestartStorage = true
195195
}
196196
}

TablePro/Core/Plugins/PluginManager.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,13 @@ final class PluginManager {
2525

2626
private static let needsRestartKey = "com.TablePro.needsRestart"
2727

28-
var _needsRestart: Bool = UserDefaults.standard.bool(
28+
var needsRestartStorage: Bool = UserDefaults.standard.bool(
2929
forKey: needsRestartKey
3030
) {
31-
didSet { UserDefaults.standard.set(_needsRestart, forKey: Self.needsRestartKey) }
31+
didSet { UserDefaults.standard.set(needsRestartStorage, forKey: Self.needsRestartKey) }
3232
}
3333

34-
var needsRestart: Bool { _needsRestart }
34+
var needsRestart: Bool { needsRestartStorage }
3535

3636
internal(set) var driverPlugins: [String: any DriverPlugin] = [:]
3737

@@ -126,7 +126,7 @@ final class PluginManager {
126126
Task {
127127
let loaded = await Self.loadBundlesOffMain(pending)
128128
self.pendingPluginURLs.removeAll()
129-
self._needsRestart = false
129+
self.needsRestartStorage = false
130130
self.registerLoadedPlugins(loaded)
131131
self.validateDependencies()
132132
self.hasFinishedInitialLoad = true
@@ -282,7 +282,7 @@ final class PluginManager {
282282
/// Normal startup uses `loadPlugins()` which loads bundles off the main thread.
283283
func loadPendingPlugins(clearRestartFlag: Bool = false) {
284284
if clearRestartFlag {
285-
_needsRestart = false
285+
needsRestartStorage = false
286286
}
287287
guard !pendingPluginURLs.isEmpty else { return }
288288
let pending = pendingPluginURLs

TablePro/Core/Storage/AIChatStorage.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,5 +125,4 @@ actor AIChatStorage {
125125
Self.logger.error("Failed to delete all conversations: \(error.localizedDescription)")
126126
}
127127
}
128-
129128
}

TablePro/Models/Connection/SSHTypes.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,4 +165,3 @@ extension SSHConfiguration {
165165
}
166166

167167
// MARK: - SSL Configuration
168-

TablePro/Views/Main/Extensions/MainContentView+EventHandlers.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ extension MainContentView {
127127
case .replacePreviewTab, .openNewPreviewTab:
128128
coordinator.openTableTab(tableName, isView: isView)
129129
}
130-
131130
}
132131

133132
/// Keep sidebar selection in sync with the current window's tab.

docs/changelog.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,17 @@ description: "Product updates and announcements for TablePro"
44
rss: true
55
---
66

7+
<Update label="April 7, 2026" description="v0.27.6">
8+
### Bug Fixes
9+
10+
- Fixed excessive idle ping traffic (40-50 SELECT 1/sec) from health monitor
11+
- Fixed Cmd+W save not persisting data grid changes
12+
- Show error feedback when connection fails from Connection Switcher
13+
- Moved theme, AI chat, and SSH config file loading off the main thread
14+
- Replaced fixed delays in deep link handling with event-driven waits
15+
- Fixed change-state background covering row selection highlight in data grid
16+
</Update>
17+
718
<Update label="April 6, 2026" description="v0.27.5">
819
### New Features
920

0 commit comments

Comments
 (0)