Skip to content

Commit 6351c01

Browse files
committed
release: v0.26.0
1 parent 3acfc31 commit 6351c01

File tree

9 files changed

+480
-436
lines changed

9 files changed

+480
-436
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.26.0] - 2026-03-29
11+
1012
### Added
1113

1214
- Global toggle to disable all AI features (Settings > AI)
@@ -1090,7 +1092,8 @@ TablePro is a native macOS database client built with SwiftUI and AppKit, design
10901092
- Custom SQL query templates
10911093
- Performance optimized for large datasets
10921094

1093-
[Unreleased]: https://github.com/TableProApp/TablePro/compare/v0.25.0...HEAD
1095+
[Unreleased]: https://github.com/TableProApp/TablePro/compare/v0.26.0...HEAD
1096+
[0.26.0]: https://github.com/TableProApp/TablePro/compare/v0.25.0...v0.26.0
10941097
[0.25.0]: https://github.com/TableProApp/TablePro/compare/v0.24.2...v0.25.0
10951098
[0.24.2]: https://github.com/TableProApp/TablePro/compare/v0.24.1...v0.24.2
10961099
[0.24.1]: https://github.com/TableProApp/TablePro/compare/v0.24.0...v0.24.1

TablePro.xcodeproj/project.pbxproj

Lines changed: 105 additions & 105 deletions
Large diffs are not rendered by default.

TablePro/Core/Plugins/PluginMetadataRegistry+CloudDefaults.swift

Lines changed: 339 additions & 0 deletions
Large diffs are not rendered by default.

TablePro/Core/Plugins/PluginMetadataRegistry+RegistryDefaults.swift

Lines changed: 1 addition & 324 deletions
Large diffs are not rendered by default.

TablePro/Models/Connection/ConnectionGroupTree.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ func buildGroupTree(
3333
let levelGroups: [ConnectionGroup]
3434
if parentId == nil {
3535
levelGroups = groups
36-
.filter { $0.parentId == nil || !validGroupIds.contains($0.parentId!) }
36+
.filter { $0.parentId == nil || ($0.parentId.flatMap { validGroupIds.contains($0) } != true) }
3737
.sorted { $0.sortOrder != $1.sortOrder ? $0.sortOrder < $1.sortOrder : $0.name.localizedStandardCompare($1.name) == .orderedAscending }
3838
} else {
3939
levelGroups = groups
@@ -149,7 +149,7 @@ func depthOf(groupId: UUID?, groups: [ConnectionGroup], visited: Set<UUID> = [])
149149
func maxDescendantDepth(groupId: UUID, groups: [ConnectionGroup]) -> Int {
150150
let children = groups.filter { $0.parentId == groupId }
151151
if children.isEmpty { return 0 }
152-
return 1 + children.map { maxDescendantDepth(groupId: $0.id, groups: groups) }.max()!
152+
return 1 + (children.map { maxDescendantDepth(groupId: $0.id, groups: groups) }.max() ?? 0)
153153
}
154154

155155
func connectionCount(in groupId: UUID, connections: [DatabaseConnection], groups: [ConnectionGroup]) -> Int {

TablePro/Models/UI/FilterState.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,6 @@ final class FilterStateManager {
121121

122122
// Also remove from applied filters if it was applied
123123
appliedFilters.removeAll { $0.id == filter.id }
124-
125124
}
126125

127126
/// Update a filter

TablePro/Views/Connection/WelcomeContextMenus.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ func flattenGroupsForMenu(groups: [ConnectionGroup], parentId: UUID? = nil, dept
201201
let levelGroups: [ConnectionGroup]
202202
if parentId == nil {
203203
levelGroups = groups
204-
.filter { $0.parentId == nil || !validGroupIds.contains($0.parentId!) }
204+
.filter { $0.parentId == nil || ($0.parentId.flatMap { validGroupIds.contains($0) } != true) }
205205
.sorted {
206206
$0.sortOrder != $1.sortOrder
207207
? $0.sortOrder < $1.sortOrder

TablePro/Views/Main/MainContentView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ struct MainContentView: View {
331331
if needsLazyLoad && !hasPendingEdits && isConnected {
332332
coordinator.runQuery()
333333
}
334-
}
334+
}
335335
.onReceive(NotificationCenter.default.publisher(for: NSWindow.didResignKeyNotification))
336336
{ notification in
337337
guard let notificationWindow = notification.object as? NSWindow,
@@ -349,7 +349,7 @@ struct MainContentView: View {
349349
guard !Task.isCancelled else { return }
350350
coordinator.evictInactiveRowData()
351351
}
352-
}
352+
}
353353
.onChange(of: tables) { _, newTables in
354354
let syncAction = SidebarSyncAction.resolveOnTablesLoad(
355355
newTables: newTables,

docs/changelog.mdx

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

7+
<Update label="March 29, 2026" description="v0.26.0">
8+
### New Features
9+
10+
- **SQL File Management**: Open, save, and save-as for SQL files with native macOS title bar integration
11+
- **BigQuery Support**: Google BigQuery analytics database via REST API (plugin)
12+
- **AI Kill Switch**: Global toggle to disable all AI features (Settings > AI)
13+
- **Column Reordering**: Drag to reorder columns in the Structure tab (MySQL/MariaDB)
14+
- **Nested Groups**: Hierarchical connection groups up to 3 levels deep
15+
- **Safety Dialogs**: Confirmation prompts for deep link queries, connection imports, and pre-connect scripts
16+
17+
### Improvements
18+
19+
- JSON fields in Row Details sidebar now display in a scrollable monospaced text area
20+
- Removed query history sync from iCloud Sync (history stays local-only)
21+
22+
### Bug Fixes
23+
24+
- SQL editor not auto-focused on new tab and cursor missing after tab switch
25+
- Long lines not scrollable horizontally in the SQL editor
26+
- Home and End keys not moving cursor in the SQL editor
27+
- SSH profile lost after app restart when iCloud Sync enabled
28+
- MariaDB JSON columns showing as hex dumps instead of JSON text
29+
- MongoDB Atlas TLS certificate verification failure
30+
- ENUM/SET dropdown chevron buttons not showing on first table open
31+
</Update>
32+
733
<Update label="March 27, 2026" description="v0.25.0">
834
### New Features
935

0 commit comments

Comments
 (0)