Skip to content

Commit 4b6dec6

Browse files
committed
release: v0.25.0
1 parent 2a33799 commit 4b6dec6

File tree

4 files changed

+20
-8
lines changed

4 files changed

+20
-8
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.25.0] - 2026-03-27
11+
1012
### Added
1113

1214
- Connection sharing: export/import connections as `.tablepro` files with import preview and duplicate detection (#466)
@@ -1064,7 +1066,8 @@ TablePro is a native macOS database client built with SwiftUI and AppKit, design
10641066
- Custom SQL query templates
10651067
- Performance optimized for large datasets
10661068

1067-
[Unreleased]: https://github.com/TableProApp/TablePro/compare/v0.24.2...HEAD
1069+
[Unreleased]: https://github.com/TableProApp/TablePro/compare/v0.25.0...HEAD
1070+
[0.25.0]: https://github.com/TableProApp/TablePro/compare/v0.24.2...v0.25.0
10681071
[0.24.2]: https://github.com/TableProApp/TablePro/compare/v0.24.1...v0.24.2
10691072
[0.24.1]: https://github.com/TableProApp/TablePro/compare/v0.24.0...v0.24.1
10701073
[0.24.0]: https://github.com/TableProApp/TablePro/compare/v0.23.2...v0.24.0

TablePro.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1997,7 +1997,7 @@
19971997
CODE_SIGN_IDENTITY = "Apple Development";
19981998
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
19991999
CODE_SIGN_STYLE = Automatic;
2000-
CURRENT_PROJECT_VERSION = 49;
2000+
CURRENT_PROJECT_VERSION = 50;
20012001
DEAD_CODE_STRIPPING = YES;
20022002
DEVELOPMENT_TEAM = D7HJ5TFYCU;
20032003
ENABLE_APP_SANDBOX = NO;
@@ -2022,7 +2022,7 @@
20222022
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
20232023
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
20242024
MACOSX_DEPLOYMENT_TARGET = 14.0;
2025-
MARKETING_VERSION = 0.24.2;
2025+
MARKETING_VERSION = 0.25.0;
20262026
OTHER_LDFLAGS = (
20272027
"-Wl,-w",
20282028
"-force_load",
@@ -2069,7 +2069,7 @@
20692069
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development";
20702070
CODE_SIGN_STYLE = Automatic;
20712071
COPY_PHASE_STRIP = YES;
2072-
CURRENT_PROJECT_VERSION = 49;
2072+
CURRENT_PROJECT_VERSION = 50;
20732073
DEAD_CODE_STRIPPING = YES;
20742074
DEPLOYMENT_POSTPROCESSING = YES;
20752075
DEVELOPMENT_TEAM = D7HJ5TFYCU;
@@ -2095,7 +2095,7 @@
20952095
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
20962096
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
20972097
MACOSX_DEPLOYMENT_TARGET = 14.0;
2098-
MARKETING_VERSION = 0.24.2;
2098+
MARKETING_VERSION = 0.25.0;
20992099
OTHER_LDFLAGS = (
21002100
"-Wl,-w",
21012101
"-force_load",

TablePro/Core/Services/Export/LinkedFolderWatcher.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,14 @@ final class LinkedFolderWatcher {
7171
}
7272

7373
/// Scans folders on a background thread to avoid blocking the main actor.
74-
private nonisolated static func scanFoldersAsync(_ folders: [LinkedFolder]) async -> [LinkedConnection] {
74+
nonisolated private static func scanFoldersAsync(_ folders: [LinkedFolder]) async -> [LinkedConnection] {
7575
await Task.detached(priority: .utility) {
7676
scanFolders(folders)
7777
}.value
7878
}
7979

8080
/// Pure scanning logic. Runs on any thread.
81-
private nonisolated static func scanFolders(_ folders: [LinkedFolder]) -> [LinkedConnection] {
81+
nonisolated private static func scanFolders(_ folders: [LinkedFolder]) -> [LinkedConnection] {
8282
var results: [LinkedConnection] = []
8383
let fm = FileManager.default
8484

@@ -160,7 +160,7 @@ final class LinkedFolderWatcher {
160160

161161
// MARK: - Stable IDs (SHA-256 based, deterministic across launches)
162162

163-
private nonisolated static func stableId(folderId: UUID, connection: ExportableConnection) -> UUID {
163+
nonisolated private static func stableId(folderId: UUID, connection: ExportableConnection) -> UUID {
164164
let key = "\(folderId.uuidString)|\(connection.name)|\(connection.host)|\(connection.port)|\(connection.type)"
165165
let digest = SHA256.hash(data: Data(key.utf8))
166166
var bytes = Array(digest.prefix(16))

docs/changelog.mdx

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

7+
<Update label="March 27, 2026" description="v0.25.0">
8+
### New Features
9+
10+
- **Connection Sharing**: Export and import connections as `.tablepro` files. Includes import preview with duplicate detection, status badges, and per-item resolution (#466)
11+
- **Encrypted Export** (Pro): Include passwords in exported files, protected by AES-256-GCM encryption with a passphrase
12+
- **Linked Folders** (Pro): Watch a shared directory for `.tablepro` files. Connections appear read-only in the sidebar with per-user passwords
13+
- **Environment Variables** (Pro): Use `$VAR` and `${VAR}` in `.tablepro` connection files, resolved at connection time
14+
</Update>
15+
716
<Update label="March 26, 2026" description="v0.24.2">
817
### New Features
918

0 commit comments

Comments
 (0)