Skip to content

Commit 4e54f7b

Browse files
committed
release: v0.32.0
1 parent bad2466 commit 4e54f7b

File tree

4 files changed

+42
-6
lines changed

4 files changed

+42
-6
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.32.0] - 2026-04-16
11+
1012
### Added
1113

1214
- In-app tab bar with instant switching, drag reorder, pinned tabs, and dirty indicators
@@ -1352,7 +1354,8 @@ TablePro is a native macOS database client built with SwiftUI and AppKit, design
13521354
- Custom SQL query templates
13531355
- Performance optimized for large datasets
13541356

1355-
[Unreleased]: https://github.com/TableProApp/TablePro/compare/v0.31.5...HEAD
1357+
[Unreleased]: https://github.com/TableProApp/TablePro/compare/v0.32.0...HEAD
1358+
[0.32.0]: https://github.com/TableProApp/TablePro/compare/v0.31.5...v0.32.0
13561359
[0.31.5]: https://github.com/TableProApp/TablePro/compare/v0.31.4...v0.31.5
13571360
[0.31.4]: https://github.com/TableProApp/TablePro/compare/v0.31.3...v0.31.4
13581361
[0.31.3]: https://github.com/TableProApp/TablePro/compare/v0.31.2...v0.31.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 = 69;
2094+
CURRENT_PROJECT_VERSION = 70;
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.31.5;
2119+
MARKETING_VERSION = 0.32.0;
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 = 69;
2166+
CURRENT_PROJECT_VERSION = 70;
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.31.5;
2192+
MARKETING_VERSION = 0.32.0;
21932193
OTHER_LDFLAGS = (
21942194
"-Wl,-w",
21952195
"-force_load",

TablePro/Views/Main/Child/MainEditorContentView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ struct MainEditorContentView: View {
204204
guard let tab = tabManager.selectedTab, newVersion != nil else { return }
205205
cacheRowProvider(for: tab)
206206
}
207-
.onChange(of: tabManager.selectedTab?.metadataVersion) { _, newVersion in
207+
.onChange(of: tabManager.selectedTab?.metadataVersion) { _, _ in
208208
guard let tab = tabManager.selectedTab else { return }
209209
cacheRowProvider(for: tab)
210210
}

docs/changelog.mdx

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

7+
<Update label="April 16, 2026" description="v0.32.0">
8+
### New Features
9+
10+
- **In-App Tab Bar**: Replace native macOS window tabs with a custom tab bar for instant switching (was 600ms+ per tab). Includes drag reorder, pinned tabs, dirty indicators, and context menus.
11+
- **Reopen Closed Tab**: Press Cmd+Shift+T to reopen the last closed tab (up to 20 in history). Shortcut is remappable in Settings.
12+
- **Pinned Tabs**: Pin important tabs to prevent accidental close. Pinned tabs always appear at the left side, survive Close Others and Close All.
13+
- **MRU Tab Selection**: Closing a tab now selects the most recently active tab, matching browser behavior.
14+
15+
### Improvements
16+
17+
- Tab content preserved across switches — no view destruction or recreation
18+
- Deeplinks and Handoff route to in-app tabs instead of creating duplicate windows
19+
- Connection state persisted incrementally on connect/disconnect (survives force quit)
20+
- OpenSSL updated to 3.4.3 (CVE-2025-9230, CVE-2025-9231)
21+
- Memory pressure monitoring now reactive via DispatchSource
22+
23+
### Bug Fixes
24+
25+
- Fix raw SQL injection via external URL scheme deeplinks — now requires user confirmation
26+
- Fix MySQL prepared statements silently truncating columns larger than 64KB
27+
- Fix MSSQL error messages misattributed when multiple connections open simultaneously
28+
- Fix BigQuery filter injection via unescaped column names and unvalidated operators
29+
- Fix app quitting without warning when tabs have unsaved edits
30+
- Fix connection list corruption risk from non-atomic UserDefaults writes
31+
- Fix stale user-installed plugins silently rejected with no UI feedback
32+
- Fix SSL mode picker showing misleading "Required" instead of "Required (skip verify)"
33+
- Fix plugin load blocking main thread on first connection after launch
34+
35+
### Security
36+
37+
- SHA-256 checksum verification added to FreeTDS, Cassandra, and DuckDB build scripts
38+
</Update>
39+
740
<Update label="April 14, 2026" description="v0.31.5">
841
### Improvements
942

0 commit comments

Comments
 (0)