Skip to content

Releases: cmjcode/tabular

v1.1.4

Choose a tag to compare

@Jayuda Jayuda released this 01 Oct 03:12

This release brings major architectural upgrades and new capabilities introduced between v1.0.0 and v1.1.4, expanding Tabular beyond SQL into an integrated database, diagramming, Git, and API development workspace.


🌟 Key Highlights

  • 🌿 Integrated Git Client & Visual Git Graph: Manage branches, commits, remotes, and inspect commit trees with an interactive visual Git Graph and native GitHub/GitLab merge review.
  • 🔌 Driver Plugin System (SDK & Sidecars): Extensible WebAssembly (wasmi) and sidecar plugin architecture for custom database engines (e.g., ClickHouse, DuckDB).
  • 🗺️ Advanced Diagramming & Business Process Flow: Level-of-Detail (LOD) zooming for large schemas, query data-flow animations, business process flow playback, and cloud/vault diagram synchronization with conflict resolution.
  • ⚡ Real-Time Query Profiler & Index Diagnostics: Statement-level index check badges in the SQL editor, task-local timing probes breakdown, and OS desktop alerts for long queries.
  • 🤖 AI Assistant & MCP 2.0: Full tool-calling support, multi-model routing, expanded Model Context Protocol (MCP) server endpoints, and semantic context matching.
  • 🌐 Modernized REST / HTTP Client: Redesigned HTTP request editor with AI assistance and floating endpoint drawer.
  • 📁 Project Workspaces: Group database connections, queries, and repositories under organized project folders with isolated contexts.

🚀 What's New

🌿 Git Client & Version Control

  • Sidebar Git Tab: Native Git client directly in the sidebar for inspecting working copy changes, staging, committing, and push/pull actions (docs/GIT_CLIENT.md).
  • Interactive Git Graph: Visual commit lanes, branch topology, split view inspection, and commit detail exploration.
  • Merge Review: Integrated PR/MR review workflows connecting directly to GitHub and GitLab REST APIs.
  • Multi-Repo Tracking: Automatic repo linking across projects, diagram groups, and API collections.

🗺️ Diagrams & Data-Flow Visualizations

  • Level-of-Detail (LOD): Adaptive rendering from detailed cards to compact column bars for ultra-smooth navigation in large databases.
  • Business Process Flows: Model, generate, auto-layout (landscape), and play back animated business flow sequences across tables.
  • Query Data-Flow: Visual flow of execution steps (filtering, grouping, projections) with interactive animations (docs/QUERY_DIAGRAM.md).
  • Smart Relations & Suggestions: Auto-detect join candidates with smart column matching and side-by-side relation pickers.
  • Diagram Sync & Merge Dialog: Collaborative diagram synchronization with overlap resolution, conflict handling, and background task management.

🔌 Driver Plugin System & Extensibility

  • Plugin SDK: Build custom engine drivers using Rust via WASM or native sidecar binaries (docs/PLUGIN_DEVELOPMENT.md).
  • Reference Implementations: Reference plugins included for ClickHouse and DuckDB sidecar integrations.

⚡ Performance, Profiling & SQL Diagnostics

  • Index Check Badges: Instant inline badges in the SQL editor highlighting unindexed predicates before running queries.
  • Task-Local Probes: Granular execution timing breakdowns (connect, execute, fetch, render) (docs/QUERY_PROFILER.md).
  • Desktop Notifications: Background OS alerts for completed long-running queries with detailed query stats.
  • Tab-Scoped Filters: Independent SQL and visual filters isolated to each active query tab.

🤖 AI Assistant & MCP 2.0

  • Model Context Protocol (MCP): Headless CLI (tabular mcp) with full tool calling, schema diagrams, safety checks, and auto-generated JsonSchema definitions (docs/MCP.md).
  • Vector History Search: Fast semantic query and history search backed by sqlite-vec.
  • HTTP Client AI: AI-assisted REST request generation and validation.

📁 Workspaces, UI & DB Operations

  • Projects Support: Organize connections, notes, queries, and repositories under unified workspace folders (docs/PROJECTS.md).
  • Unified DB Context Bar: Quick database context selector component (db_context_bar).
  • Database Management: Dedicated Safe Drop Database dialog with confirmation safeguards, improved Copy Database wizard, and backup/restore enhancements.
  • Data Grid Improvements: Export and copy operations now preserve formatted display values; improved column reordering and inline cell editing.
  • Platform Polish: Refined macOS application icons and native bundle assets.

🐛 Bug Fixes & Refinements

  • Fixed project dialog z-index ordering to prevent windows from opening in the background.
  • Fixed auto-sync retry behavior when network connection is dropped.
  • Fixed cell selection and context menu actions in data table grids.
  • Polished sidebar tab layout and streamlined tab labels (DBs, Team, Git).

Full Changelog: v1.0.0...v1.1.4 (50+ commits, 20,000+ LOC added)

v1.0.0

Choose a tag to compare

@Jayuda Jayuda released this 19 Sep 04:39
chore: bump version to 1.0.0 across project files

v0.14.3

Choose a tag to compare

@Jayuda Jayuda released this 28 Aug 11:06

v0.14.1

Choose a tag to compare

@Jayuda Jayuda released this 28 Aug 03:17

v0.13.0

Choose a tag to compare

@Jayuda Jayuda released this 21 Aug 10:23

We are excited to announce v0.13.0! This release introduces iPad & Touch Support, comprehensive Touch-friendly UI Ergonomics, User Profile & Avatar Management with custom mesh rendering, Idle Background Schema Sync, E2E Encrypted Query Sync, and a completely revamped Command Palette.


🌟 Highlights & Major Features

📱 iPad / iOS Support & Adaptive Touch UI

  • iPadOS / iOS Build Architecture: Added custom FFI bridge, XCFramework build scripts (build_runner_ipad.sh, Makefile), and native Xcode project integration (ios/Xcode/TabulariOS).
  • Adaptive Device Profiles: Added runtime device detection (device_profile.rs) that dynamically adjusts UI metrics, margins, spacing, and hit targets between Desktop and Touch/Tablet modes.
  • Touch-Friendly Ergonomics Across the App:
    • Autocomplete & Command Palette: Larger touch targets, padded lists, and adaptive sizing for touch interactions.
    • HTTP Client & Teams: Responsive sizing, bigger hitboxes for action buttons, tabs, and modals.
    • Data Table & Pagination: Refined touch target heights and padding on table headers and pagination controls.

👤 Profile Management & High-Performance Avatar Rendering

  • User Profile Support: Edit display name, manage avatar URLs, and preview profile changes directly in settings.
  • Direct Mesh-Based Avatar Painting: Custom circular UV mesh renderer in egui for crisp, hardware-accelerated avatar rendering with zero layout jitter.
  • Server-Side Profile Sync: Seamless sync of profile metadata with tabular-server.

⚡ Background Schema Sync & Async Performance

  • Idle Background Schema Sync: Tabular now automatically and quietly syncs database schemas during user idle periods without blocking or freezing the UI thread.
  • Non-Blocking Tree Loader: Removed all synchronous database roundtrips from the sidebar query tree loader for instant app startup and faster workspace switching.

🎨 Enhanced Command Palette & Toast UI

  • Revamped Command Palette: Added full modal backdrop dimming, execution pills, styled keyboard shortcut badges, and improved fuzzy search visual feedback.
  • Compact Toast Notifications: Redesigned message toasts with compact layouts, cleaner typography, and faster auto-dismiss timers.
  • Refined Data Table Footer: Consolidated pagination footer styling, item spacing, and exact height calculations.

🔐 E2E Encrypted Query & History Sync

  • E2E Encrypted Saved Queries & History: Saved queries and query execution histories now use end-to-end encryption with zero-knowledge vault keys before syncing to tabular-server.
  • Team Management Dialogs: Added confirmation dialogs for team deletion and refined collaboration header layouts.

📦 Detailed Changelog

✨ New Features

  • iOS / iPad Support:
    • Add XCFramework build automation and Xcode configuration (ios/Xcode/, build_runner_ipad.sh, build_ipad.md).
    • Add Objective-C entrypoint (main.m) to invoke Tabular Rust FFI.
  • Adaptive UI & Touch Controls:
    • Add DeviceProfile detection for desktop and touch ergonomics (src/window_egui/device_profile.rs, src/config.rs).
    • Add responsive metrics to HTTP Client, Team Management, and Autocomplete (src/http_client.rs, src/sync/ui_teams.rs, src/sync/ui_collab.rs, src/editor_autocomplete_new.rs).
  • Profile & Avatars:
    • Add profile management and remote image fetching for user avatars (src/sync/ui_login.rs, tabular-server/src/users/handler.rs).
    • Implement direct egui mesh painting for circular avatar rendering (src/sync/ui_login.rs).
  • Background Sync & Schema Refresh:
    • Implement background schema sync triggered during idle periods (src/window_egui/sync_tick.rs).
  • Command Palette:
    • Add modal backdrops, execution badges, and shortcut pills (src/editor.rs, src/window_egui/style.rs, src/window_egui/render_dialogs.rs).
  • E2E Sync:
    • Add E2E encrypted query and history sync pipelines (src/sync/sync_queries.rs, src/sync/sync_history.rs).

🐛 Improvements & Refactoring

  • Data Table: Consolidated pagination footer typography and fixed row spacing calculations (src/data_table/pagination.rs, src/data_table/render_data.rs).
  • Toast Notifications: Compact styling and removed redundant connection reachability checks (src/window_egui/notifications.rs).
  • Sidebar Tree Loader: Eliminated synchronous blocking fetches during navigation tree construction (src/sidebar_query.rs).
  • Teams & Collaboration: Added team deletion confirmation modals and refined button sizing (src/sync/ui_teams.rs).

v0.12.0

Choose a tag to compare

@Jayuda Jayuda released this 20 Aug 09:16

We are excited to announce v0.12.0, a security-focused release built around end-to-end encrypted Cloud Sync — connection credentials and HTTP client secrets are now encrypted on your device before they ever reach tabular-server. This release also ships several reliability fixes for query connections and the SQLite metadata cache.


🌟 Highlights & Major Features

🔐 End-to-End Encrypted Cloud Sync (Zero-Knowledge Vault)

  • Sync Passphrase: a new secret, separate from your OAuth login, set in Settings → Sync & Account. It derives a Key-Encryption-Key via Argon2id which unwraps a random per-account AccountKey; only that key can decrypt your synced connections and HTTP client secrets — the server never sees it.
  • AES-256-GCM everywhere: connection credentials and HTTP client secrets (bearer tokens, API keys, basic-auth passwords) are encrypted client-side with AES-256-GCM before upload. tabular-server stores ciphertext it cannot read.
  • Team-shared folders stay zero-knowledge too: each team gets its own TeamKey, sealed individually to every member's X25519 public key (anonymous "sealed box" encryption), so the server can relay key material without ever being able to open it.
  • Recovery code: shown once when your vault is created — the only way back in if you forget your Sync Passphrase, since the server has no way to recover it for you.
  • Local secrets untouched: on-device credential storage keeps its own separate device-local master key (backed by the OS keychain where available) and is unaffected by this change.
  • New vault setup / unlock UI (ui_vault_setup.rs) walks first-time users through creating a passphrase and displaying the recovery code, and returning users through unlocking their vault.
  • Server-side version gate: tabular-server now rejects sync requests (connections, HTTP requests, vault keys, teams) from clients older than a configurable MIN_CLIENT_VERSION, with a clear "please update" error instead of a silent failure — /health and login remain reachable from any client version.

🛠️ Reliability & Connection Handling

  • Query pool wait: cancel & timeout: waiting for a connection from the pool can now be cancelled cleanly (closing the wait dialog properly cancels the in-flight connection attempt) and now times out after 30 seconds instead of hanging indefinitely, surfacing a clear error in the query tab.
  • SQLite metadata cache self-healing: metadata commits now detect SQLite corruption/malformed-database errors, run a WAL checkpoint + REINDEX, and retry once automatically instead of failing outright.
  • Metadata cache conflict handling: database/table/column/index cache writes switched from INSERT OR REPLACE to explicit ON CONFLICT upserts, plus in-memory deduplication of tables, columns, and indexes before writing — avoiding duplicate rows and unnecessary primary-key churn.
  • App icon set synchronously during native window initialization instead of on a background thread, removing a class of icon-not-set race conditions on startup.

📦 Detailed Changelog

✨ New Features

  • Cloud Sync E2E Encryption:
    • Add zero-knowledge vault crypto module — Argon2id KDF, AES-256-GCM key wrapping, X25519 sealed-box team key sharing (src/sync/vault_crypto.rs).
    • Add Sync Passphrase setup, unlock, and recovery-code UI in Settings → Sync & Account (src/sync/ui_vault_setup.rs).
    • Add vault-key and key-envelope API client methods: get_vault_keys, put_vault_keys, list_public_keys, get_my_key_envelope, list_pending_key_grants, put_key_envelopes (src/sync/api_client.rs).
    • Encrypt/decrypt connection and HTTP request payloads in the sync pipeline before upload / after download (src/sync/sync_connections.rs, src/sync/sync_http_requests.rs, src/sync/vault_sync.rs).
    • Add legacy plaintext-compat decryption path for rows synced before this feature existed, migrated lazily on first unlock (src/sync/legacy_crypto.rs).
    • Wire vault unlock/lock state into the sync background loop and app init (src/window_egui/sync_tick.rs, src/window_egui/init.rs, src/window_egui/mod.rs).
    • Document the E2E threat model and known limitations in SECURITY.md.

🐛 Fixes & Polish

  • Query Pool Waiting: implement connection cancellation, a 30-second timeout, and proper error-state propagation while waiting for a pooled connection (fix: implement connection cancellation, timeout logic...).
  • SQLite Metadata Cache: add corruption self-healing (checkpoint + reindex + retry), ON CONFLICT upserts, and deduplication for tables/columns/indexes during MySQL metadata staging (fix: improve SQLite metadata caching robustness...).
  • App Icon: set the native app icon directly during window initialization instead of via an async background thread (refactor: remove asynchronous background thread for app icon...).

🔧 Server-Side (tabular-server, supporting this release)

  • Add MIN_CLIENT_VERSION config and require_min_client_version middleware to gate sync routes by client version (src/middleware/version_gate.rs, src/config.rs).
  • Add vault key storage/retrieval and team key-envelope endpoints (src/vault/, src/teams/handler.rs).
  • Add corresponding schema for wrapped account keys, X25519 public keys, and per-member team key envelopes (src/db/schema.sql).

Summary of Changes

v0.11.6  ──►  v0.12.0 (End-to-End Encrypted Cloud Sync, connection cancel/timeout, SQLite cache self-healing)

📥 Full Commit List

  • 8df21db ok E2E
  • 6c91024 refactor: remove asynchronous background thread for app icon and set directly during native options initialization
  • 30a3463 fix: implement connection cancellation, timeout logic, and error state handling for query pool waiting
  • c0c9c26 fix: improve SQLite metadata caching robustness with conflict handling, deduplication, and corruption self-healing.
  • ae75abf docs: add release notes for v0.11.6 covering async startup, team collaboration, and UI enhancements

⚠️ Upgrade Notes

  • After upgrading, you'll be prompted to set a Sync Passphrase the first time you open Settings → Sync & Account. Save the recovery code shown at that point — it is the only fallback if you forget the passphrase, and the server cannot recover it for you.
  • If your tabular-server deployment sets MIN_CLIENT_VERSION, older clients will be blocked from syncing (with a clear upgrade message) until they update.
  • Query URLs are not encrypted (only headers/body/auth are) — avoid placing secrets directly in query strings.

v0.11.6

Choose a tag to compare

@Jayuda Jayuda released this 19 Aug 15:39

We are thrilled to announce v0.11.6, a major update packed with blazing-fast asynchronous startup optimizations, comprehensive Teams & Collaboration Management, Drag-and-Drop organization for HTTP collections, multi-language Code Export ("Copy as Code"), and essential UI & reliability enhancements.


🌟 Highlights & Major Features

⚡ Blazing-Fast Startup & Non-Blocking Async Architecture

  • Asynchronous Database Bootstrap: Database initialization and schema migration now execute non-blockingly in a background thread pool, drastically slashing initial app freeze.
  • Parallel Background Loading: HTTP request collections, query trees, sync accounts, and connection icons load concurrently in background workers.
  • Instant Window Readiness: First interactive frame renders in ~180ms!
  • Optimized Tree Toggle Logic: Custom toggle state handling for sidebar folders replacing heavy state recalculations.
  • Built-in Startup Diagnostics: Fine-grained [STARTUP-TIMER] logging to trace subsystem launch benchmarks.

👥 Teams Management & Collaboration Overhaul

  • Teams & Collab Sidebar Sub-Tabs: Dedicated navigation tabs in the sidebar for switching smoothly between Teams and Collaboration.
  • Team & Member Management: Create teams, list rooms, and manage team members via dedicated modal dialogs and API integration.
  • Team Folder Sharing: Direct UI and API integration for sharing request folders and resources with specific teams.
  • Persistent Teams Cache: Fast local caching layer (sync_teams_cache.rs) to accelerate team list and room rendering without redundant network roundtrips.
  • HTTP Collection Cloud Sync: Background synchronization for local HTTP request collections via API client and worker routines.
  • CRDT Engine Upgrade: Collaboration protocol upgraded to yrs 0.27 with modern cryptographic crate updates.

🌐 HTTP Client: Drag-and-Drop & Multi-Language Code Export

  • Drag-and-Drop Support: Easily reorder and move HTTP requests and folders between workspaces and parent folders via drag-and-drop.
  • "Copy as Code" Export: Export any HTTP request into clean, syntax-highlighted code snippets in multiple languages (cURL, Python, JavaScript/Fetch, Rust, Go, PHP, etc.) via http_code_export.rs.
  • Smart Tab Switching: Intelligently switches to an already open tab for a request instead of opening unwanted duplicate tabs.
  • Output Scroll Improvements: Smooth scrolling behavior for response bodies in the HTTP client inspector.

🗄️ Database Sidebar & Structure Editor Improvements

  • Sidebar Databases Redesign: Polished visual aesthetics, typography, and spacing for the database connection tree.
  • Add Column & Index Fixes: Fixed dropdown combobox behavior when adding new columns or index definitions in the table structure editor.

📦 Detailed Changelog

✨ New Features & Enhancements

  • Async Startup Architecture:
    • Implement background database initialization with SQLite pool (d828b62).
    • Implement asynchronous HTTP collection loading and startup diagnostics (0be67db).
    • Migrate sync account loading to background bootstrap (6aeba46).
  • Teams & Collaboration:
    • Introduce sub-tab navigation for Teams and Collaboration in sidebar (f84725d, df18eaa).
    • Add support for managing teams and team members with dedicated modal dialog (50c3b14, d70d2fa).
    • Add API and UI integration for listing/creating team rooms and sharing folders (c470ca5, cb1f005).
    • Implement persistent teams cache (a949db4).
    • Implement background sync for local HTTP collections (a90c4bf).
    • Add login & authentication flow enhancements for team sync (c14be06).
  • HTTP Client:
    • Implement drag-and-drop for moving HTTP requests and folders (e85ea81).
    • Add "Copy as Code" code export supporting multiple programming languages with syntax colors (7057964, d84e026).
    • Streamline tab switching to prioritize existing active request tabs (f6bc28b).
  • Databases & Schema:
    • Improve design, styling, and dialog rendering for Databases sidebar (98da139).

🐛 Fixes & Polish

  • Folder Sidebar Toggle: Replace CollapsingHeader with lightweight custom toggle state management (7346b8f).
  • Add Room UX: Enable '+' button dynamically after typing a room name (be242a4, b1ea325).
  • Table Structure: Fix combobox selection when adding columns or indexes (6bd8ba3).
  • HTTP Client Output: Fix scroll output handling in response viewer (215db95).

🔧 Dependencies & Maintenance

  • Upgrade yrs to 0.27 and update cryptographic dependencies across collaboration and sync crates (3bc25d5).

Summary of Changes

v0.11.0  ──►  v0.11.6 (Async Startup ~180ms, Teams & Collab Overhaul, Drag-and-Drop, Code Export, yrs 0.27)

v0.11.0

Choose a tag to compare

@Jayuda Jayuda released this 11 Aug 08:57

🚀 Tabular Release Notes: v0.10.5 → v0.11.0

We are excited to announce v0.11.0, headlined by a major overhaul of the Built-in HTTP Client — now with a full request Collections workflow and one-click imports from Postman and Yaak — plus a rebuilt cross-platform auto-update pipeline with dedicated Windows CI builds.


🌟 Highlights & Major Features

🌐 HTTP Client Collections

  • Collections Sidebar: Brand-new sidebar tree (sidebar_collection.rs) for organizing HTTP requests into folders/collections, separate from the database connection tree.
  • Import from Postman: Import existing Postman collections directly into Tabular's HTTP Client.
  • Import from Yaak: Import existing Yaak workspaces/requests directly into Tabular.
  • Rename Requests: Rename saved HTTP requests via a dedicated modal dialog.
  • Connection & Tab Management: Create new HTTP request tabs bound to a workspace, save requests in place, and confirm before deleting.
  • Smarter Auto-Naming: New requests are now auto-named from their endpoint/URL instead of a generic placeholder.
  • Context Menu & Confirmation Fixes: Reworked right-click context menu behavior and delete/action confirmation popups for the collections tree.
  • UI Polish: Toast notification positioning updated, and the Databases sidebar tab layout was cleaned up and rebalanced alongside the new HTTP Client panel.

🔄 Cross-Platform Auto-Update

  • Rebuilt Update Engine: auto_updater.rs significantly expanded with more robust chunked download, staging, and apply logic across platforms.
  • Windows Update Reliability: Automatic cleanup of leftover .exe.old files from previous updates on startup.
  • Self-Update Overhaul: self_update.rs update-check/apply flow hardened and expanded.
  • Windows CI Build Workflow: New/updated GitHub Actions pipeline (build.yml) and build_windows.ps1 script for producing Windows release builds.

📦 Dependency Updates

  • redis: 1.4.1 → 1.5.0
  • async-trait: 0.1.91 → 0.1.92

📦 Detailed Changelog

✨ New Features & Enhancements

  • HTTP Collection Storage (http_collection.rs, new): Data model and persistence layer for HTTP request collections/workspaces.
  • Postman Import: Parse and import Postman collection files into the new collections sidebar.
  • Yaak Import: Parse and import Yaak workspace files into the new collections sidebar.
  • Request Rename Dialog: Rename any saved HTTP request in place via modal.
  • HTTP Tab Creation Helper: New create_new_http_tab in editor.rs to spin up a pre-configured HTTP Client tab bound to a connection.
  • Save/Update Flow for HTTP Tabs: save_current_tab now saves or updates the HTTP request state directly (via save_or_update_http_tab) and refreshes workspaces in place instead of always reopening a save dialog.
  • Query Sidebar Extraction (sidebar_query.rs, new): Query-related sidebar logic split out from sidebar_tree.rs/search.rs for a cleaner separation between the SQL and HTTP sidebars.
  • Delete Confirmation Popups: New confirmation dialogs before deleting HTTP requests/collections.

🐛 Fixes

  • Context Menu: Fixed incorrect/broken right-click context menu behavior in the collections sidebar.
  • Confirmation Popup: Fixed the delete/action confirmation popup not behaving correctly.
  • Request Naming: Fixed new requests not using the endpoint URL for their default name.
  • Databases Sidebar UI: Fixed layout/rendering issues in the Databases tab after introducing the HTTP Client panel alongside it.
  • Toast Position: Fixed toast notifications overlapping/misplaced after HTTP client changes.

💅 Refactoring & Code Quality

  • Split query-sidebar rendering out of sidebar_tree.rs and search.rs into a dedicated sidebar_query.rs.
  • Reworked app_impl.rs tab/panel rendering to accommodate the new Collections sidebar alongside the Databases sidebar.
  • Cleaned up .gitignore and dependency versions bumped in Cargo.toml/Cargo.lock.

Summary of Changes

v0.10.5  ──►  v0.11.0 (HTTP Client Collections, Postman/Yaak Import, Cross-Platform Auto-Update, Windows CI)

📥 Full Commit List

  • feat: add rename functionality for HTTP requests via modal dialog
  • fix: confirmation popup
  • fix: context menu
  • feat: implement HTTP connection management (tab creation, request saving, delete confirmation, toast positioning)
  • fix: request naming to use endpoint
  • fix: Databases sidebar UI
  • fix: Databases tab UI/layout
  • feat: import from Postman
  • feat: import from Yaak
  • feat: implement cross-platform auto-update logic and CI build workflow for Windows releases
  • chore: dependency version upgrades (redis, async-trait)

v0.10.5

Choose a tag to compare

@Jayuda Jayuda released this 07 Aug 12:13

Release Notes — Tabular Client v0.10.5

Released: 2026-08-07

🚀 What's New

✨ New Features

🔄 Safe macOS Auto-Update (commit 97fcd07)

Implemented a safe staging mechanism for macOS auto-updates to prevent code-signature invalidation during binary replacement. The updater now stages the new binary in a temporary location before swapping it in, ensuring the app signature remains intact throughout the update process.

🔁 Max Retry Logic for Token Refresh (commit b51b141)

Added a maximum retry cap on the automatic token refresh flow. Previously, a failed refresh could enter an infinite retry loop — this is now bounded, preventing application hangs and excessive network calls on authentication failures.

📜 Improved Query History Persistence (commit 041a515)

Overhauled the RAM and SQLite upsert logic for query history:

  • Timestamps are now correctly updated on duplicate entries
  • Duplicates are reordered so the most recent execution always appears at the top
  • History is more accurately preserved across sessions

🛠 Improvements & Refactors

🎨 Query History Sidebar Redesign (commit d311503)

The query history sidebar has been redesigned with:

  • A cleaner two-line layout for each history entry (query preview + metadata)
  • Improved search bar styling
  • Better visual hierarchy and readability

🪟 Windows Build Script Improvements (commit 3db905a)

build_windows.ps1 has been made smarter:

  • Auto-detects and installs required Rust targets on demand
  • Includes ARM64 build troubleshooting guidance
  • Cleans up noisy console output for a cleaner build experience

🐛 Bug Fixes

❄️ Database Connection Freeze & Timeout Fix (commit a52e4e0)

Fixed a critical bug where database connections could freeze indefinitely. Timeout handling has been improved to ensure connections fail fast and surface errors to the user instead of hanging silently.


⚙️ Build & CI

🏗 Cross-Compilation Workflow Update (commit c0ce9fa)

The GitHub Actions build workflow now supports cross-compilation for aarch64 (ARM64 Linux), expanding the list of supported build targets. This enables Tabular Client to be distributed for ARM64 Linux environments.


📦 Full Changelog

Commit Type Description
97fcd07 feat Safe macOS auto-update staging to avoid code-signature invalidation
b51b141 feat Max retry logic for automatic token refresh (prevents infinite loops)
041a515 feat RAM and SQLite upsert: update timestamps and reorder duplicates in history
d311503 refactor Redesign query history sidebar with two-line layout and improved search styling
3db905a refactor Improve build_windows.ps1 with smart target installation and ARM64 troubleshooting
a52e4e0 fix Database connection freeze dan timeout handling
c0ce9fa build Update cross-compilation workflow to support aarch64

⬆️ Upgrade Notes

No breaking changes or migration steps are required when upgrading from v0.10.2 to v0.10.5.

Simply download the latest binary for your platform and replace the existing installation.

macOS users: The new safe auto-update mechanism will handle the binary replacement correctly. If updating manually, you can replace the binary directly as usual.


Tabular Client is a cross-platform database GUI built with Rust + egui.

v0.10.2

Choose a tag to compare

@Jayuda Jayuda released this 30 Jul 09:13

🚀 Tabular Release Notes: v0.10.0 → v0.10.2

We are excited to announce v0.10.2, featuring major improvements to Cloud Sync, Collaboration Rooms, Connection Reliability (SSH & Fast-Fail), and a comprehensive UI Design System Redesign.


🌟 Highlights & Major Features

☁️ Cloud Sync & OAuth Authentication

  • Automated OAuth Authentication: Integrated seamless OAuth loopback authentication flow with centralized background sync execution.
  • Persistent Sync Server Config: Configurable cloud sync endpoint defaulting to api.tabular.id.
  • Account Management UI: User profile management displaying user avatars and wrapped API envelope response handling.

👥 Real-time Collaboration Enhancements

  • Collaboration UI Redesign: Modernized collaboration layout with active session expiration handling and status indicators.
  • Room Management: Added room deletion capability and automatic room list refreshing in the collaboration sidebar.

🔌 Database Connectivity & SSH Tunneling

  • SSH Tunnel Support: Full SSH-aware connection tunneling support with optimized connection timeouts.
  • TCP Fast-Fail Verification: Pre-flight TCP reachability checks before initiating full database connections to avoid long hangs on unreachable hosts.
  • Background Pool & Retry: Non-blocking background connection pool creation with retry options for failed database connections.
  • Structure Refresh: Automatic background structure refresh for active database connections.

🎨 Design System & Settings Redesign

  • Modernized Settings Dialog: Completely redesigned Settings menu featuring custom visual styling, icons, and keyboard shortcut indicators.
  • Custom Tab Bar Rendering: Redesigned tab bar rendering with smooth hover states, custom active tabs, and consistent tab switching logic.
  • Unified Button Helpers: Standardized button components across the application using new design system helpers (render_custom_tab).
  • Schema Visibility Control: Dynamic top bar schema selector that automatically hides for non-schema-supporting databases.

📦 Detailed Changelog by Release

🔹 Version 0.10.2

✨ New Features & Enhancements

  • Collaboration Room Deletion: Delete collaboration rooms directly from the sidebar UI and enjoy instant room list refreshes.
  • Collaboration Session Expiration: Gracefully handle expired collaboration sessions with status alerts and renewal actions.
  • Redesigned Settings Menu & Tabs: Brand new custom rendering for settings tabs and menus with polished styling, icons, and shortcuts.
  • Database Schema Support Checks: Restrict schema dropdown visibility to compatible engines (e.g., PostgreSQL/MSSQL) and adjust top-bar dimensions accordingly.
  • SSH Tunneling & Background Refresh: Integrated SSH tunnel management with background database structure sync.
  • TCP Reachability Pre-check: Fast-fail check prevents connection delays when target servers are unreachable.
  • Schema Drop & Data Type Helpers: Structure view support for database-specific data types and schema drop actions.
  • OAuth Loopback & Sync Runner: Standardized task spawning and loopback server for Cloud Sync OAuth flow.

💅 Refactoring & Code Quality

  • UI Design System Standardization: Replaced raw button components with unified custom design system helpers.
  • Modernized Rust Idioms: Cleaned up UI conditional rendering and updated documentation comments to inner attributes.

🔹 Version 0.10.1

🔌 Connections & Cache Reliability

  • Background Connection Pools: Connection pool creation runs asynchronously in background tasks to keep UI responsive.
  • Cache Safety: Deferred SQLite cache clearance until after pool creation succeeds, preventing cache loss during failed connections.
  • Retry Support: Added manual retry triggers for failed database connections.
  • Folder-Prefixed Display Names: Added display_name support in ConnectionConfig for cleaner folder path labeling in connection trees.

🎨 Sidebar & Navigation Improvements

  • Simplified Connection Rows: Removed text badges for a cleaner, unified sidebar look.
  • MSSQL Visibility: Updated MSSQL icon asset and increased icon sizes for improved visibility.
  • ApiHttp Expansion Fix: Fixed an issue where ApiHttp connection nodes auto-expanded unintentionally in the sidebar tree.

Summary of Changes

v0.10.0  ──►  v0.10.1 (Connection Pools, Cache Safety, UI Fixes)
         ──►  v0.10.2 (Cloud Sync, OAuth, Collaboration, SSH Tunnel, Settings Redesign)