Releases: QueryaHub/Querya-Desktop
Release list
Querya Desktop 0.4.18
[0.4.18] - 2026-09-28
Shell and motion performance (sidebar layout isolation and offstage rendering), data-loss guard rails, driver session correctness, and high-refresh grid reliability.
Added
- Redis key rename (#921) — Added key rename dialog with overwrite check and destructive action confirmation in key editor.
- MongoDB add document draft (#923) — Opened draft editor dialog on Add Document instead of inserting empty object.
Performance & Motion
- Sidebar toggle layout isolation & offstage rendering (#984, #1004) — Decoupled workspace layout from intermediate spring animation frames via
OverflowBoxandClipRect, keeping constraints stable at window width during toggle/snapping animation ticks to eliminate per-frame reflows and activeLayoutBuilderrebuilds (<0.5ms per frame build time). AddedLazyOffstageto skip re-laying out hidden workspace layers inQueryaSwitchingBody. - Sidebar spring optimization (#900) — Optimized sidebar spring animation and eliminated full-slot offscreen
Opacitycompositing when expanded. - Result grid row cache bounds (#1010) — Evicted and bounded
_rowWidgetsmemo cache on buffer swaps and vertical scroll to cap memory usage during heavy dataset exploration. - MongoDB field list virtualization (#925) — Replaced unvirtualized shrinkWrap ListView in
_FieldListwith Column / sliver to eliminate frame drops on large document schemas. - Lazy connection secrets loading (#916) — Resolved connection secrets lazily with graceful Keychain/Secret Service error handling.
Fixed
- Execute dirty guard (#867) — Prevented discarding dirty result-grid edits when clicking Execute without staging or saving.
- Extensions table dirty guard & PK requirement (#869) — Required primary key and guarded dirty edits in
ExtensionTableView. - MongoDB document editor dirty guard (#870) — Guarded document editor Refresh and navigation against discarding unsaved JSON edits.
- Redis string key refresh dirty guard (#873) — Guarded string key Refresh and crumb navigation against discarding unsaved edits.
- SQL tab unsaved text tracking (#910) — Tracked query text modifications in
SqlQueryTabSessionto prevent unsaved data loss on tab/app close. - SQL history overwrite confirmation (#912) — Added confirmation prompt before restoring a query from history over non-empty editor tabs.
- SQL workspace read-only save desync (#1007) — Immediately disabled Save button and staged edits when a dirty tab's connection turns read-only.
- SQLite multi-statement column inference & PK detection (#1005) — Handled multi-statement comments and preserved column schema for compound primary keys in SQLite Table Browser.
- SQLite zero-row column headers (#914) — Retained column headers when queries return zero rows in
SqliteSqlWorkspace. - SQL target extractor SELECT enforcement (#913) — Enforced SELECT statement requirement in
SqlTableTargetExtractor. - Primary key casing normalization (#907) — Normalized identifier casing when resolving primary keys across dialect backends in
TableMutationEngine. - Redis empty SCAN loop lockup (#920) — Looped
SCANuntil keys are found or cursor reaches zero, preventing empty result lockups on sparse keyspaces. - Redis list item edit & delete bounds (#922, #1009) — Enabled item deletion and inline editing in list key editor; guarded against concurrent list edit index out of bounds and lossy binary conversions.
- MongoDB unauthorized listDatabases fallback (#924) — Handled unauthorized
listDatabaseson the admin database by falling back gracefully to the connection database. - Grid cell editor focus & click-away (#905, #1006) — Prevented double commit and consumed Enter key events in
GridCellEditor; fixed staged cell editor click-away unselecting cell and losing focus. - Grid drag range selection (#904) — Supported mouse drag range selection across cells in
ResultGridView. - Grid filter quoted literals & identifiers (#903) — Supported quoted literals with spaces and quoted column identifiers in
GridFilterEngine. - Grid value panel validation & compact JSON (#906) — Enforced validation on save, prevented saving invalid JSON/XML, and preserved compact JSON formatting in
DataGridValuePanel. - Grid groupings CSV export (#908) — Included nested sub-groups when exporting pivot breakdowns to CSV in
GridGroupingsEngine. - Dropdown enter/exit animations (#902) — Ensured enter animation interpolates smoothly and unblocked trigger during exit delay in
QueryaDropdown. - Tab strip scrollable & global keys (#898) — Wrapped
QueryaTabStripin horizontal scrollable and preservedGlobalKeys on tab count change. - System brightness listener (#899) — Listened to
platformDispatcher.onPlatformBrightnessChangeddynamically forThemeMode.system. - Code editor duplicate listener & highlight assertion (#909, #911) — Eliminated duplicate text change listeners in
QueryaCodeEditor.didUpdateWidgetand prevented length mismatch assertion errors inQueryaHighlightControllerfor scripts > 8KB. - Context menu mode switch sync (#1011) — Synced
_childrenwhenContextMenuswitches between items and itemsBuilder to prevent layout overflow.
Security
- Archive entry path traversal guard (#919) — Detected Windows drive letters and reserved device names in
isArchiveEntryNameSafe. - Sandbox sanitizer quoted secrets (#918) — Sanitized quoted passwords and tokens containing spaces in
SandboxSanitizer. - System trusted root certificates (#917) — Enabled system trusted root certificates in
buildSecurityContext. - MongoDB TLS temp PEM cleanup & permissions (#915) — Restricted permissions and cleaned up temporary TLS PEM files for MongoDB.
- Legacy keyring secrets migration (#1008) — Lazily adopted legacy keyring secrets on read with write-through to secure storage.
Downloads
Portable (zip — run from folder, no installer)
- Linux:
Querya-Desktop-0.4.18-linux.zip - Windows:
Querya-Desktop-0.4.18-windows.zip - macOS:
Querya-Desktop-0.4.18-macos.zip(signed, notarized and stapled.appwhen Apple Developer secrets are configured; otherwise unsigned)
Optional USB-style profile: set QUERYA_PORTABLE=1 or create a QueryaData/ folder next to the binary (see docs/packaging.md).
Installable
- Linux AppImage:
Querya-Desktop-0.4.18-linux.AppImage(chmod +xthen run) - Linux .deb (Debian/Ubuntu):
Querya-Desktop-0.4.18-linux.deb—sudo apt install ./Querya-Desktop-0.4.18-linux.deb - Linux .rpm (Fedora/RHEL):
Querya-Desktop-0.4.18-linux.rpm—sudo dnf install ./Querya-Desktop-0.4.18-linux.rpm - Linux Flatpak:
Querya-Desktop-0.4.18-linux.flatpak—flatpak install --user ./Querya-Desktop-0.4.18-linux.flatpak - Windows setup:
Querya-Desktop-0.4.18-windows-setup.exe(Inno Setup)
Arch (AUR): querya-desktop — yay -S querya-desktop (auto-published when AUR_SSH_PRIVATE_KEY is configured).
Verify checksums: SHA256SUMS.txt
Build info
- pubspec: 0.4.18+1
- Commit: caeb015
Querya Desktop 0.4.17
[0.4.17] - 2026-09-20
Driver and grid correctness after 0.4.16: Table Browser schema vs missing PK, SQLite implicit rowid, Mongo write/filter/discard, and Postgres / MySQL / SQLite / Redis session, type, and Save fixes.
Fixed
- Table Browser schema load vs missing PK (#772) — A failed
getTableSchema(permissions, disconnect) is no longer shown as “Cannot edit: no primary key detected”. Status is “schema unavailable” plus the real error and Refresh retries schema. Editing stays off until schema loads. Genuine missing PKs still use the old copy. SQLite implicitrowidis applied only after a successful schema load. - SQLite implicit rowid Table Browser (#774) — Tables with no declared PRIMARY KEY (
CREATE TABLE t (name TEXT)) use implicitrowidas the DML key. BrowseSELECTprojects"rowid", *so Save canUPDATE … WHERE rowid. Status is no longer “no primary key”.WITHOUT ROWIDtables keep their declared PK. - Mongo 0-match write (#776) —
updateOne/replaceOne/deleteOnethrow whennMatched/nRemovedis 0 (wrong_idtype, deleted doc). Inspector and JSON editor surface Save Failed instead of a success toast. An identical$set(nModified == 0) still counts as a match. - Mongo full-document Save (#778) — JSON editor Save uses
replaceOne(whole document,_idlocked) instead of$set, so fields deleted in JSON — including nested keys — are removed on the server. - Mongo document editor Back (#782) — Dirty JSON in
MongoDocumentEditoris registered withUnsavedWorkRegistry. Breadcrumb Back, Home, Close, and tree navigation confirm before discarding; Cancel keeps the editor. - Mongo JSON filter ObjectId / DateTime (#783) — Document list filter parses Extended JSON (
$oid,$date) and wraps a 24-character hex_idasObjectId. A leftover string_idwith zero matches shows how to write{ "_id": { "$oid": "…" } }. - Postgres open-transaction probe (#787) —
BEGIN+SELECTdoes not assign an XID, sopg_current_xact_id_if_assignedstayed NULL (SQL-tab badge off; autocommit-off prepended a secondBEGIN). The session tracks BEGIN/COMMIT/ROLLBACK and otherwise probespg_stat_activity.xact_start(PG 9+). Implicit BEGIN when autocommit is off stays a separateexecute. - Postgres Table Browser paging (#788) — Browse stays on
PgSessionMode.readOnly.SELECTusesORDER BYprimary-key columns when a PK exists. Row totals come frompg_class.reltuplesinstead of a blockingCOUNT(*)before first paint (stale estimates below the current page are ignored so Next still works). Save / REFRESH stay ontableWrite. - Postgres timestamptz / bytea / jsonb / arrays (#789) — Table Browser and SQL results encode cells as PG literals (ISO timestamps,
\xhex for bytea, JSON text for jsonb,{1,2,3}for arrays) instead ofObject.toString. Schema usesudt_namesoARRAY/USER-DEFINEDround-trip throughformatLiteral. - Postgres host/port SSL (#790) — Host/port Use SSL/TLS stays
sslmode=require(encrypt, no CA check) unless a Root CA is set, thenverify-full. A URIsslmode=value still wins. The form documents the MITM tradeoff and writessslmode=verify-fullwhen saving a Root CA. - Postgres custom-SQL allowlist (#791) — Table Browser SQL dialog classifies the first statement after comments instead of substring
contains('insert ').SELECT inserted_atis allowed;SELECT 1; DELETE FROM tis rejected.WITH … INSERTis a write;TABLE/VALUES/(SELECT …)stay allowed. - SQLite getObjectDdl bind (#796) — DDL lookup uses
WHERE name = ?with a positional list.:nameplus[objectName]did not bind, so the dialog showed No definition found for tables that exist. - SQLite WITH / PRAGMA (#797) —
executeclassifies the first statement after comments:WITH … INSERTis a write (Dart read-only guard +executeinstead ofrawQuery). AssignmentPRAGMA name=valueis a write;PRAGMA busy_timeoutstays a query. SQL workspace injectsLIMITonly for read-only statements. - SQLite missing file (#798) — Test Connection and opening a saved connection no longer create an empty
.dbwhen the path is a typo. Errors distinguish file not found, permission, and corrupt. New-connection Save still creates the file if it does not exist. - SQLite Table Browser paging (#799) — Browse
SELECTusesORDER BYprimary-key columns, orrowidwhen the table has implicit rowid. First paint skips blockingCOUNT(*)(Next stays available when the page is full). SQL workspace has an optional statement timeout matching Postgres/MySQL. - SQLite BLOB / TEXT grid (#800) — Table Browser and SQL results show BLOB as
X'hex'(notUint8List.toString()) and persist the same. Declared TEXT stays a quoted string even when it looks numeric (00123). - MySQL Table Browser session lock (#803) — Browse stays on
MysqlSessionMode.readOnly. Title-bar lock is passed intoMysqlTableView: staging / Save stay off and Save does not acquiretableWrite.SET SESSION TRANSACTION READ ONLYis documented as a next-transaction hint (weaker than a read-only user; MariaDB vs MySQL 8). - MySQL ssl-mode (#805) —
ssl-mode=preferenables TLS (same asrequire) instead of turning it off.verify_ca/verify_identityfail closed withoutsslrootcertand ask the driver to check the CA (and hostname for identity). Form Use SSL stays encrypt-only. - MySQL BOOLEAN / BIT / BLOB / JSON grid (#806) — Schema uses
COLUMN_TYPEso BOOLEAN istinyint(1)(TRUE/FALSE on Save). BIT/BLOB/BINARY cells display as0xhex and persist asX'…'; JSON stays quoted text. The MySQL driver decodes charset-63 payloads as latin1 so invalid UTF-8 no longer throws. - MySQL Table Browser paging (#807) — Browse
SELECTusesORDER BYprimary-key columns when a PK exists. Row totals come frominformation_schema.TABLES.TABLE_ROWSinstead of a blockingCOUNT(*)before first paint (stale estimates that are below the current page are ignored so Next still works). - Redis URL paste (#819) — Paste
redis:///rediss://stores the raw URI onconnectionString(like Postgres/MySQL/Mongo), sosslrootcert/sslcert/sslkeyreachRedisConnection.connect. - Redis binary bulk (#818) — GET / SCAN / hash / list / set / zset decode bulk replies as bytes (
RedisParserBulkBinary). Invalid UTF-8 is shown as hex / base64; Save as text is off so SET cannot write replacement characters. - Redis stream/unknown GET-SET (#817) — Stream, module, and
unknownkeys are not opened withGETor saved withSET. Save stays onstringonly;unknownretriesTYPEbefore treating the value as a string. - SQL toolbar overflow — MySQL / Postgres Query + History + Execute wrap instead of overflowing at ~700px (widget tests treat RenderFlex overflow as failure).
- Redis collection paging (#816) — Hash / list / set / zset editors load the first 200 members (
HSCAN/LRANGE/SSCAN/ZRANGE) with Load more, instead ofHGETALL/LRANGE 0 -1/SMEMBERS/ZRANGE 0 -1. Keys with 10k+ members show a large-key warning. - Redis URI Test/sidebar (#815) — Test Connection and the sidebar keyspace probe parse
redis:///rediss://viafromConnectionRow(host, port, TLS, cert query params) instead of hitting localhost:6379. The probe keepsid: -1so it does not replace workspace sockets. - Redis DEL confirm (#814) — Deleting a key (browser or editor) and removing a hash field / set member / zset member opens the same destructive-operation dialog as SQL. Cancel / Escape does not send
DEL/HDEL/SREM/ZREM. - Mongo drop/delete confirm (#781) — Drop database, drop collection, document Del, and editor Delete open the same destructive-operation dialog as SQL. Cancel / Escape does not call
dropDatabase/dropCollection/deleteOne. - Redis title-bar read-only (#813) — Session lock is passed into the key browser and editor. Save, DEL, HSET/HDEL, RPUSH, SADD/SREM, ZADD/ZREM, and TTL apply stay hidden; the explorer socket also refuses those writes and sends
READONLYafter AUTH when locked (ignored on standalone / older servers). - SQLite Table Browser read-only (#793) — Connection-form Read only (
useSSL) opens the file withSQLITE_OPEN_READONLYeven for Save (tableWrite). Title-bar session lock is passed intoSqliteTableView: staging / Save stay off and the grid does not acquire a writable handle. - MySQL SQL tx toolbar (#809) — Begin / Commit / Rollback run
START TRANSACTION/COMMIT/ROLLBACKon the SQL socket without replacing the editor buffer. The toolbar shows Transaction open/none. Table Browser Save stays on thetableWritesocket from #802 (no nestedSTART TRANSACTION); opening a table still warns while SQL has an open transaction. - MySQL SQL-grid Save (#804) — Result-grid Save runs only for a simple single-table
SELECTwith a PK in the result (getTableSchema). JOIN, comma-FROM, and no-PK results stay read-only. DML uses the PK andcolumnDataTypes; applies still wrapSTART TRANSACTION/COMMIT/ROLLBACK(join an already-open SQL transaction). - SQLite SQL-grid Save (#795) — Result-grid Save runs only for a simple single-table
SELECTwith a PK in the result (getTableSchema). JOIN, comma-FROM, and no-PK results stay read-only. DML uses the PK andcolumnDataTypes; applies still wrapBEGIN TRANSACTION/COMMIT/ROLLBACK(join an already-openBEGIN). - Postgres SQL-grid Save (#786) — Result-grid Save runs only for a simple single-table
SELECTwith a PK present in the result (getTableSchema). JOIN, comma-FROM, subqueries, and VALUES stay read-only. DMLWHEREuses the PK andcolumnDataTypesinstead of every displayed column. - Redis Overview/Explorer sockets (#812) — Overview INFO and Explorer SCAN/GET/
SELECTuse separate pooled sockets (statsvsexplorer) so opening a DB no long...
Querya Desktop 0.4.16
[0.4.16] - 2026-09-20
In-place editing in Table Browser (same DML staging as SQL Workspace), Command Palette and Quick Switcher, workspace chrome parity across drivers, connections-tree visual + FPS work, MongoDB per-field Save to DB, and a hardened in-app updater.
Added
- Table Browser In-Place Editing (#759, PR #760) — Postgres, MySQL, and SQLite table views attach
DataGridStagingBufferandResultsTabso double-click edits a cell when a PRIMARY KEY is present. Views, materialized views, custom SQL, and tables without a PK stay read-only with an explicit status line. Toolbar Save / Revert + pending-change badge; pagination and Refresh confirm before discard; commit goes through DML preview and a transaction, then a success toast. - Command Palette & Quick Switcher (#742–#747, #754, PRs #749–#753, #757) —
QueryaCommandRegistryand a modal palette on Ctrl/Cmd+P (CP-01…02); Quick Switcher for database objects on Ctrl/Cmd+K (CP-03); palette wired to menus, SQL, grid, and connections (CP-04); extensioncontributes.commandsin the palette with RPC error toasts and reserved core ids (CP-05). - Workspace UI Parity (#714–#717, #729, PRs #728, #730) — Shared
QueryaTabStripon driver homes (Overview / SQL),QueryaStatusBarfor busy / duration / rows / cols, read-only badge moved out of the title bar, and Return to last MongoDB database / RedisdbNfrom stats. - Connections Tree Chrome (#718–#722, #740, PRs #731–#734, #748) — Shared
QueryaTreeTokens, collapsible Databases folder, SDUI/QueryaConnectionTreeRowparity, Extension Refresh / SQLite path subtitle / Redis DB menu polish, indent guides, and a compact SERVERS header. - MongoDB Field Inspector + Save to DB (#763, PR #764) — Expanded document cards list top-level fields; tapping a non-
_idfield opens the Cell Inspector with Save to DB ($setone field and reload). SQL inspector Apply is unchanged when the callback is not wired. - Grid Cell UX (#761, PR #762) — Text cursor on editable cells; hover tooltip
column · sql_type(long values still included); README Feature Matrix: Live In-Grid Editing + Staged Commit.
Changed & Performance
- Connections Tree FPS (#724–#727, PRs #735–#738) — Flatten nested shrinkWrap lists into a virtualized native tree, selection rebuilds only the selected slice, skip
AnimatedSizeon large expands and Motion Off, and a DevTools checklist for 120 Hz captures (QA tracked in #739 / epic #723). - Motion Token Cleanup (#741, PR #758) — Leftover welcome-tour, empty-hero, and sidebar durations use
QueryaMotiontokens.
Fixed
- In-App Updater Hardening (#755, PR #756) — Surface SHA-256 mismatches, refuse unsafe installs (dirty tree / managed / zip), and avoid using
BuildContextacross the restart-confirm await. - Extension Palette Invoke (#754, PR #757) — Toast RPC failures from extension commands and stop extensions from clobbering core command ids.
Downloads
Portable (zip — run from folder, no installer)
- Linux:
Querya-Desktop-0.4.16-linux.zip - Windows:
Querya-Desktop-0.4.16-windows.zip - macOS:
Querya-Desktop-0.4.16-macos.zip(signed, notarized and stapled.appwhen Apple Developer secrets are configured; otherwise unsigned)
Optional USB-style profile: set QUERYA_PORTABLE=1 or create a QueryaData/ folder next to the binary (see docs/packaging.md).
Installable
- Linux AppImage:
Querya-Desktop-0.4.16-linux.AppImage(chmod +xthen run) - Linux .deb (Debian/Ubuntu):
Querya-Desktop-0.4.16-linux.deb—sudo apt install ./Querya-Desktop-0.4.16-linux.deb - Linux .rpm (Fedora/RHEL):
Querya-Desktop-0.4.16-linux.rpm—sudo dnf install ./Querya-Desktop-0.4.16-linux.rpm - Linux Flatpak:
Querya-Desktop-0.4.16-linux.flatpak—flatpak install --user ./Querya-Desktop-0.4.16-linux.flatpak - Windows setup:
Querya-Desktop-0.4.16-windows-setup.exe(Inno Setup)
Arch (AUR): querya-desktop — yay -S querya-desktop (auto-published when AUR_SSH_PRIVATE_KEY is configured).
Verify checksums: SHA256SUMS.txt
Build info
- pubspec: 0.4.16+1
- Commit: 9bef686
Querya Desktop 0.4.15
[0.4.15] - 2026-09-07
Multi-tab SQL workspace sessions, fluid motion transitions, cohesive dialog UI system, content-aware adaptive column sizing and auto-fit in data grid, rich cell context menus, desktop file associations (.sql, .sqlite) with CLI open-with handling, categorized Master-Detail preferences with Keymap reference and theme editor modal, server-side column sorting in table views, connection tree quick search and pinning, and comprehensive UI freeze and isolate performance optimizations.
Added
- Fluid Motion Transitions & Micro-Interactions (#707, #708, #709) — Smooth cross-fade and scale tab switching in
SqlQueryTabBar, springy hover feedback on buttons, cards, and tree items, and refined modal dialog entry/exit animations. - Cohesive UI Dialog Card System (#710, #711, #712) — Standardized modal architecture across workspace and schema dialogs using
QueryaDialogCard, unifying header titles, action footers, and border radii. - Multi-Tab SQL Workspace (#679, PR #684) — Full support for multiple independent query sessions per connection with tab strip (
SqlQueryTabBar), separate editor state, split panel sizing, query history, result grids, and DML staging buffers withIndexedStackstate preservation and tab shortcuts (Ctrl+T,Ctrl+W,Ctrl+Tab,Ctrl+Shift+Tab). - Adaptive Content-Aware Column Sizing & Auto-Fit (#676, PR #681) — Dynamic header-based minimum column widths (56px) without inflating compact columns (
id,status), weighted distribution of excess viewport width in favor of long text fields (name,description), and double-click (onDoubleTap) on column header dividers for instantaneous content-aware auto-fit. - Data Grid Cell Context Menu & Non-Destructive Actions (#678, PR #683) — Native right-click context menu with TSV/JSON/CSV copy formats (
Copy Value,Copy with Headers,Copy as JSON/CSV), instant filter bridge (Filter by this value,Filter out this value), value inspector access (Ctrl+I), setting explicitNULL(Alt+N), and reverting cell changes. - Desktop File Associations & Open-With Handlers (#694, PR #695) — Native file associations and Open-With support for SQL scripts (
.sql) and SQLite databases (.db,.sqlite,.sqlite3) on Linux (.desktop,%F), macOS (Info.plist), and Windows (Inno Setup / Registry) viaFileLaunchService. - Master-Detail Categorized Preferences Dialog (#686, #687, #688, #689, PR #690, #691, #692, #693) — Modern two-pane Master-Detail preferences layout with sidebar categories (
General,Appearance,SQL & Editor,Data Grid,Extensions,Keymap,About & Storage), global search (Ctrl+F), deep-linking, unifiedPreferencesSwitchRowtoggles, update channel selector (Stable / Beta), interactive Keyboard Shortcuts (Keymap) reference matrix, and a dedicated visual Theme Editor modal window. - Connection Tree Quick Search, Filtering & Pinning (#680, PR #685) — Global quick search in sidebar connections tree (
Ctrl+F/Cmd+F) with auto-expanding matching folders, compact inlineTreeObjectFilterBarfor filtering tables/views/procedures in large schemas, and table/view pinning (⭐) with automatic top-of-list sorting. - Interactive Server-Side Column Sorting (#696, PR #697) — Tri-state interactive server-side sorting (ASC -> DESC -> Natural) in SQLite, PostgreSQL, and MySQL table views with model row index mapping preservation in
VirtualResultGrid. - UI/UX Polishing for Data Grid, Filter Bar & Staging (#700, PR #701) — Semantic theme color tokens for filter suggestions (
cs.popover,cs.popoverForeground,cs.border), disambiguatedExport ▾menu vsSave Changesbutton, keyboard shortcut tooltips (Ctrl+Insert,Ctrl+Delete,Ctrl+Z,Ctrl+S), and quick filter bar close button /Escapedismiss handling.
Changed & Performance
- Staging Buffer & Huge Result Performance Optimizations (#706) — Optimized staging diff resolution for large dataset modifications, avoiding unnecessary buffer cloning during high-throughput updates.
-
Elimination of UI Freezes & Isolate Performance Optimizations (#702, PR #703) — Adaptive background isolate offloading for large table sorting (
sortResultGridRowsWithIndicesAdaptive,$N \ge 3000$ ) with version tokenization, zero-allocation clean reads and caching inDataGridStagingBuffer.effectiveRows, caching of groupings tree inDataGridGroupingsViewoutside ofbuild(), and 150ms debounced JSON/XML validation inDataGridValuePanel. -
Universal Syntax Highlighting & Flicker-Free Editor (#694, PR #695) — Enhanced SQL tokenizer and eliminated visual flicker during typing in
QueryaCodeEditor.
Fixed
- Latent Bug Fixes & Stability (#677, #698, PR #682, #699) — Resolved layout overflows and bottom padding breaks across SQLite forms and database overview screens, fixed MySQL/MariaDB backslash escaping in DML generator, prevented memory leaks on Staging Buffer disposal and debounce timers, validated unclosed string literals in SQL filter AST parser, and sanitized pipe characters and quotes in Markdown and SQL INSERT export formats.
Downloads
Portable (zip — run from folder, no installer)
- Linux:
Querya-Desktop-0.4.15-linux.zip - Windows:
Querya-Desktop-0.4.15-windows.zip - macOS:
Querya-Desktop-0.4.15-macos.zip(signed, notarized and stapled.appwhen Apple Developer secrets are configured; otherwise unsigned)
Optional USB-style profile: set QUERYA_PORTABLE=1 or create a QueryaData/ folder next to the binary (see docs/packaging.md).
Installable
- Linux AppImage:
Querya-Desktop-0.4.15-linux.AppImage(chmod +xthen run) - Linux .deb (Debian/Ubuntu):
Querya-Desktop-0.4.15-linux.deb—sudo apt install ./Querya-Desktop-0.4.15-linux.deb - Linux .rpm (Fedora/RHEL):
Querya-Desktop-0.4.15-linux.rpm—sudo dnf install ./Querya-Desktop-0.4.15-linux.rpm - Linux Flatpak:
Querya-Desktop-0.4.15-linux.flatpak—flatpak install --user ./Querya-Desktop-0.4.15-linux.flatpak - Windows setup:
Querya-Desktop-0.4.15-windows-setup.exe(Inno Setup)
Arch (AUR): querya-desktop — yay -S querya-desktop (auto-published when AUR_SSH_PRIVATE_KEY is configured).
Verify checksums: SHA256SUMS.txt
Build info
- pubspec: 0.4.15+1
- Commit: 1a7833b
Querya Desktop 0.4.14
[0.4.14] - 2026-08-30
Near-instantaneous menubar dropdowns, native macOS PlatformMenuBar integration, destructive query confirmation safety modals, comprehensive memory optimizations (string interning, compact storage), grid keyboard navigation, rich cell inspector, and driver resilience hardening.
Added
- Instantaneous Menubar Dropdowns (#672, #673) — Accelerated dropdown open animation to 60ms with
Curves.easeOutCubic, eliminated initial pointer-down delay, unhindered titlebar dragging from gesture arena interference, and added toggle-close support. - Native macOS PlatformMenuBar Integration (#612, #626) — Full native macOS top system menu integration with standard application, file, edit, view, and window submenus.
- Destructive Query Confirmation Modal (#608, #622, #638, #641) — Safety confirmation dialog for high-risk DDL and DML operations (
DROP,TRUNCATE, bulkDELETE/UPDATEwithoutWHERE) with SQL preview, detected operations list, and explicit acknowledgement check for core and extension workspaces. - Full Data Grid Keyboard Navigation (#662, #664) — Seamless keyboard traversal across virtual grid cells using arrow keys, Tab/Shift+Tab, Enter to commit, and Escape to cancel.
- Rich Cell Inspector Dialog (#663, #665) — Dedicated multi-format modal inspector with tabbed views for raw text, JSON, XML/HTML, and binary/hex with word wrap toggle and copy actions.
- Binary & BLOB Support in DML (#658, #661) — Added full support for binary BLOB data in cell editing, DML staging buffer, and dialect-specific SQL generation (
X'...',\x...). - Extension Driver Crash Recovery & Restart UI (#667, #669) — Visual driver crash banner with automatic heartbeat monitoring and one-click manual driver restart button.
- Interactive Welcome Tour Expansion (#606, #624) — Expanded onboarding guide with 6 interactive steps, keyboard shortcuts reference matrix, and 1-click sample sandbox setup.
- Bi-Directional Navigation (#630, #635) — Quick navigation links between database overview statistics, home view, and active tables.
- Active Selection Sync to Tree (#633, #637) — Synchronized active table and view selection in tabs with the connections sidebar tree.
- Extension Driver SDUI Tree Selection Highlight (#639, #642) — Visual selection highlighting for SDUI trees rendered by extension drivers.
- Querya Extension Driver Mutation Standard (#563, #628) — Formalized mutation standard specification and test suite for extension drivers.
Changed & Performance
- String Interning Pool (#604, #625) — Deduplicated low-cardinality string allocations in query result grids, slashing heap allocations during large dataset exploration.
- Compact Typed Storage & Lazy Cell Stringification (#605, #627) — Compact memory representation for primitive column vectors, deferring string conversions until render.
- Schwartzian Transform Grid Sorting (#602, #615) — Precomputed sort keys in
sortResultGridRowsto eliminate redundant comparisons during column header sorts. - QuickSelect Median Calculation (#603, #616) — O(N) median computation in
GridSelectionCalcEngineinstead of O(N log N) sorting. - Background Selection Calculation Offloading (#652, #655) — Offloaded massive cell selection statistics calculations to background compute workers to keep the UI at 60 FPS.
- DataGrid Filter Bar Debouncing (#651, #654) — Debounced keystroke evaluation in the filter bar to avoid stutter during rapid filter typing.
- ResultsTab Filtering Memoization (#650, #653) — Cached filtered row indices when filter predicates and dataset rows remain unchanged across rebuilds.
- Modularized Shared SQL Editor & Workbench (#646, #649) — Clean modular decoupling of SQL editor tabs, query runners, and workbench state.
- Inverted Core Imports Cleanup (#644, #647) — Eliminated circular/inverted core-to-feature dependencies and cleanly extracted connection models to core.
- App Lifecycle & Dispose Resource Cleanup (#670, #671) — Hardened teardown of timer subscriptions, workers, and active sockets upon window closure.
- Connection Pool Delay Tuning (#597, #601) — Reduced idle connection disposal delay to 4 seconds for rapid tab switching.
Fixed
- In-Memory Secret Scrubbing (#607, #623) — Zeroed in-memory buffers for database passwords and sensitive connection parameters immediately after authentication.
- Redis Safe Disconnect & Socket Resilience (#657, #660) — Protected Redis clients against unhandled socket close exceptions and connection teardown race conditions.
- SQLite WAL Mode & Busy Timeout (#611, #617, #656, #659) — Enabled Write-Ahead Logging (WAL) and 5000ms busy timeout in LocalDb and SQLite workspaces to eliminate database lock errors.
- LocalDb Single-Flight Initialization (#645, #648) — Guarded
LocalDb._openagainst concurrent re-initialization race conditions. - Plugin JSON-RPC Bridge Resilience (#666, #668) — Added heartbeat ping-pong, buffered message queues, and graceful restart on extension pipe drops.
- SQL History Monotonic Ordering & Pruning (#629) — Guaranteed monotonic ordering by auto-incrementing ID in query history queries and batch prune operations.
- Literal 'NULL' vs Database NULL Differentiation (#595, #599) — Fixed DML preview and staging buffer improperly treating the literal text
'NULL'as SQLNULL. - DML Leading Zeroes Preservation (#594, #598) — Prevented numeric string values (such as postal codes or phone numbers with leading zeroes) from being coerced to integers in generated DML.
- Missing Primary Key Warning in DML (#596, #600) — Displayed explicit duplicate key warnings in the DML preview modal for tables lacking primary keys.
- Motion Wobble Harmonization (#631, #634) — Harmonized workspace transition curves to eliminate dual-axis wobble during connection switching.
- MongoDB & Redis Breadcrumbs (#632, #636) — Preserved persistent breadcrumbs and smooth transitions during NoSQL key and collection navigation.
- Focus Traversal in Connection Forms (#610, #621) — Configured explicit
FocusTraversalGroups across multi-field connection dialogs. - Light Theme Accent Contrast (#609, #619) — Enhanced light theme accent and ring contrast ratios for WCAG compliance.
- Monospace Font Stack (#613, #618) — Added Cascadia Code and Consolas to default monospace font fallback list.
- Linux GDK Log Spam (#614, #620) — Suppressed benign synthetic pointer and cursor theme GDK warnings in Linux console logs.
Downloads
Portable (zip — run from folder, no installer)
- Linux:
Querya-Desktop-0.4.14-linux.zip - Windows:
Querya-Desktop-0.4.14-windows.zip - macOS:
Querya-Desktop-0.4.14-macos.zip(signed, notarized and stapled.appwhen Apple Developer secrets are configured; otherwise unsigned)
Optional USB-style profile: set QUERYA_PORTABLE=1 or create a QueryaData/ folder next to the binary (see docs/packaging.md).
Installable
- Linux AppImage:
Querya-Desktop-0.4.14-linux.AppImage(chmod +xthen run) - Linux .deb (Debian/Ubuntu):
Querya-Desktop-0.4.14-linux.deb—sudo apt install ./Querya-Desktop-0.4.14-linux.deb - Linux .rpm (Fedora/RHEL):
Querya-Desktop-0.4.14-linux.rpm—sudo dnf install ./Querya-Desktop-0.4.14-linux.rpm - Linux Flatpak:
Querya-Desktop-0.4.14-linux.flatpak—flatpak install --user ./Querya-Desktop-0.4.14-linux.flatpak - Windows setup:
Querya-Desktop-0.4.14-windows-setup.exe(Inno Setup)
Arch (AUR): querya-desktop — yay -S querya-desktop (auto-published when AUR_SSH_PRIVATE_KEY is configured).
Verify checksums: SHA256SUMS.txt
Build info
- pubspec: 0.4.14
- Commit: d1ced50
Querya Desktop 0.4.13
[0.4.13] - 2026-08-25
Production-ready UI polish, complete interactive Data Grid editing suite, advanced query filtering, fluid collapsible navigation, and platform hardening.
Added
- In-Place Cell Editing & Staging Engine (#560, #561, #564, #565) — Double-click cell to edit in-place with type-aware inline editors, dirty state indicators, staging buffer for staged mutations (inserts/updates/deletions), and keyboard navigation (Tab/Shift+Tab, Enter, Escape).
- Atomic DML Preview & Multi-Dialect Generation (#562, #566) — Visual DML confirmation modal displaying compiled atomic
UPDATE,INSERT, andDELETEstatements with primary key resolution before committing to SQLite, PostgreSQL, and MySQL. - In-Cell Validation & Safety Guardrails (#567) — Real-time cell validation for integer, float, boolean, UUID, JSON, date, and timestamp data types with visual error cues.
- Advanced Query Filter Engine (#568, #569, #570) — Compound predicate filter bar with
AND,OR,NOT, parentheses,LIKE,ILIKE,IN,IS NULL,BETWEEN, escaped quotes, and intelligent popup autocomplete suggestions. - Syntax Highlighting & Value Inspector (#571, #572) — Dedicated inspector panel with syntax highlighting for JSON, XML, YAML, and automated XML/HTML formatting and validation.
- Selection Statistics & Quick Calc (#573) — Extended selection calculations in the status bar (Count, Distinct, Sum, Avg, Min, Max, Median, Standard Deviation) with one-click clipboard summary export.
- Multi-Column Grouping & Pivot View (#574, #575, #576) — Hierarchical multi-level grouping, custom aggregations (SUM, AVG, MIN, MAX, COUNT), sorting, and CSV export for grouped summaries.
- Column Drag-Resizing & 3-Phase Sorting (#548, #549) — Interactive column width drag-resizing with divider handles and 3-phase client-side sorting (
natural->asc->desc). - Multi-Cell Range Selection & Clipboard (#550) — Rectangular multi-cell selection (Shift+Click) with TSV/CSV clipboard copy for Excel/Google Sheets.
- Fluid Collapsible Sidebar (#557, #559) — Physics-driven animated sidebar toggle with
QueryaSpring, globalCmd+B/Ctrl+Bhotkey, titlebar toggle button, and width persistence. - Rich Object Context Menus (#551) — Right-click native context menus for database tables, views, procedures, and connections («Select TOP 100», «Copy SELECT statement», «Copy name», «Open in SQL»).
- Tree Keyboard Navigation (#552) — Full arrow-key navigation (Left/Right to expand/collapse, Up/Down, Enter/Space) across database trees.
- Interactive Welcome Tour & 1-Click Playground (#558) — Built-in onboarding tour and 1-click SQLite demo database playground.
- Global Shortcuts & Focus Polish (#579) — Added global shortcuts (
Ctrl+Ffor filter bar,Ctrl+Sfor staging commit,Ctrl+Gfor groupings panel) and enhanced focus accessibility.
Fixed
- Connection Dialogs Inline Validation (#553) — Real-time URI parser and validation with dynamic database driver and host badges.
- Toolbar Layout Responsive Scroll (#577) — Wrapped data grid action bars in horizontal scroll to eliminate overflow on compact viewports.
- macOS SPM Path (#555) — Corrected relative path to
refresh_rateplugin source inPackage.swiftfor Swift Package Manager builds. - macOS App Sandbox Entitlements (#556) — Added
network.clientandfiles.user-selected.read-writeentitlements for outbound TCP connections and local file access.
Downloads
Portable (zip — run from folder, no installer)
- Linux:
Querya-Desktop-0.4.13-linux.zip - Windows:
Querya-Desktop-0.4.13-windows.zip - macOS:
Querya-Desktop-0.4.13-macos.zip(signed, notarized and stapled.appwhen Apple Developer secrets are configured; otherwise unsigned)
Optional USB-style profile: set QUERYA_PORTABLE=1 or create a QueryaData/ folder next to the binary (see docs/packaging.md).
Installable
- Linux AppImage:
Querya-Desktop-0.4.13-linux.AppImage(chmod +xthen run) - Linux .deb (Debian/Ubuntu):
Querya-Desktop-0.4.13-linux.deb—sudo apt install ./Querya-Desktop-0.4.13-linux.deb - Linux .rpm (Fedora/RHEL):
Querya-Desktop-0.4.13-linux.rpm—sudo dnf install ./Querya-Desktop-0.4.13-linux.rpm - Linux Flatpak:
Querya-Desktop-0.4.13-linux.flatpak—flatpak install --user ./Querya-Desktop-0.4.13-linux.flatpak - Windows setup:
Querya-Desktop-0.4.13-windows-setup.exe(Inno Setup)
Arch (AUR): querya-desktop — yay -S querya-desktop (auto-published when AUR_SSH_PRIVATE_KEY is configured).
Verify checksums: SHA256SUMS.txt
Build info
- pubspec: 0.4.13
- Commit: fedb6d5
Querya Desktop 0.4.11-c
[0.4.11-c] - 2026-07-29
Flutter SDK & dependency compatibility update, image downsampling memory optimization, and UI polish.
Added
- Dependencies & SDK Constraints — Updated Flutter/Dart SDK constraints and major library dependencies.
Performance
- Image Downsampling (#539) — Reduced image memory consumption using
cacheWidthandcacheHeightconstraints on network and asset images. - Isolate Offloading (#538 / #522) — Offloaded heavy JSON parsing and large SQL result set decoding to background isolates.
- SQL History & Grid Optimization (#524 / #525) — Optimized VirtualResultGrid visible column window calculation with binary search and batched SQL history pruning.
UI & Polish
- Connection Management (#510 / #520) — Edit existing connection details from the sidebar context menu and migrated connection forms to QueryaDialogCard.
- Tree & Sidebar Hierarchy (#472 / #498) — Unified tree indentation and leaf styling across SQLite, Redis, and Mongo database trees.
- Motion & Shell Polish (#478 / #488 / #494) — Fluid motion transitions for workspace tab switches, connection switches, and extension manager.
Fixed
- Sandbox Watchdog (#526) — Prevented false-positive SIGKILL in SandboxWatchdog during heavy RPC execution.
- Flutter Compatibility — Maintained backward compatibility for Flutter SDKs.
Downloads
Portable (zip — run from folder, no installer)
- Linux:
Querya-Desktop-0.4.11-c-linux.zip - Windows:
Querya-Desktop-0.4.11-c-windows.zip - macOS:
Querya-Desktop-0.4.11-c-macos.zip(signed, notarized and stapled.appwhen Apple Developer secrets are configured; otherwise unsigned)
Optional USB-style profile: set QUERYA_PORTABLE=1 or create a QueryaData/ folder next to the binary (see docs/packaging.md).
Installable
- Linux AppImage:
Querya-Desktop-0.4.11-c-linux.AppImage(chmod +xthen run) - Linux .deb (Debian/Ubuntu):
Querya-Desktop-0.4.11-c-linux.deb—sudo apt install ./Querya-Desktop-0.4.11-c-linux.deb - Linux .rpm (Fedora/RHEL):
Querya-Desktop-0.4.11-c-linux.rpm—sudo dnf install ./Querya-Desktop-0.4.11-c-linux.rpm - Linux Flatpak:
Querya-Desktop-0.4.11-c-linux.flatpak—flatpak install --user ./Querya-Desktop-0.4.11-c-linux.flatpak - Windows setup:
Querya-Desktop-0.4.11-c-windows-setup.exe(Inno Setup)
Arch (AUR): querya-desktop — yay -S querya-desktop (auto-published when AUR_SSH_PRIVATE_KEY is configured).
Verify checksums: SHA256SUMS.txt
Build info
- pubspec: 0.4.11-c
- Commit: 51f0c5b
Querya Desktop 0.4.11-b
[0.4.11-b] - 2026-07-27
Post-0.4.11 patch that ships security + Linux distro packaging (intended for 0.4.11-a), plus performance bounds (#414), UI reliability (#445), and code-review correctness (#463).
Note: GitHub tag
0.4.11-awas mistakenly placed on the same commit as0.4.11, so those binaries did not include the 0.4.11-a changelog. Treat 0.4.11-b as the first patch after 0.4.11.
Added
- Linux distro packaging (#386) —
.rpm, Flatpak (.flatpakbundle + manifest), and AUR PKGBUILD; Release CI publishes rpm + Flatpak alongside existing.deb/ AppImage — see packaging.md.
Security
- Theme remote install localhost (#399) —
ThemeRemoteInstallServicedefaultsallowLocalhostInDebugtokDebugMode. - Archive path guard (#401) — zip extraction uses
p.isWithin()bounds checks (archive_path_guard.dart). - Marketplace SHA256 (#396) —
HttpMarketplaceRepositoryrequires manifest checksum before install. - Marketplace download URLs (#397) — HTTPS allowlist / SSRF policy (
MarketplaceDownloadPolicy). - Safe zip extraction (#398) — shared zip-bomb limits via
SafeZipExtractor(extensions, updater, themes). - Remote theme SHA256 (#400) — remote theme install requires checksum when provided by metadata.
- Sandbox OS consent (#395) — fail-closed unsandboxed driver launch without OS wrapper (bubblewrap / consent dialog).
- Sideload integrity UX (#402) — local
.zip/.qextinstall dialog with security notice and optional SHA256.
Performance
- SQL result caps (#415 / #416) — SQLite injects
LIMITbefore materializing rows; Postgres clamps oversizedLIMIT/FETCH. - Streaming I/O (#417 / #418) — export writes stream to disk; marketplace SHA256 + zip extract avoid dual full-buffer copies.
- RPC / SDUI bounds (#419 / #420) — NDJSON line size caps; virtualized
SduiTreeBuilder. - Hot-path yielding (#421 / #422) — result cell string conversion and MySQL table browse yield to the UI isolate.
- Editor / Redis / sandbox / storage (#424–#428) — syntax-highlight threshold, Redis TYPE/TTL pipeline, bounded stderr, SQL history index/prune, incremental theme mtime scan.
- VirtualResultGrid (#423) — 2D column virtualization for wide result sets.
Fixed
- UI reliability (#445 / #446–#457) — Escape on
showAppDialog; DDL overlay always pops; stats/table loading clears on early exit; tree error + Retry; empty table state; scrollable toolbars; SQL open/save toasts; title-bar scale; Redis/Mongo empty banners; mounted guards; ResultsTab invariants. - Correctness follow-ups (#463 / #464–#468) —
injectSqlLimitskips string/dollar quotes; delete partial export files on failure; PG tree clears stale children on error; theme watcher queues in-flight refresh; Redis keys error banner clears on success.
Downloads
Portable (zip — run from folder, no installer)
- Linux:
Querya-Desktop-0.4.11-b-linux.zip - Windows:
Querya-Desktop-0.4.11-b-windows.zip - macOS:
Querya-Desktop-0.4.11-b-macos.zip(signed, notarized and stapled.appwhen Apple Developer secrets are configured; otherwise unsigned)
Optional USB-style profile: set QUERYA_PORTABLE=1 or create a QueryaData/ folder next to the binary (see docs/packaging.md).
Installable
- Linux AppImage:
Querya-Desktop-0.4.11-b-linux.AppImage(chmod +xthen run) - Linux .deb (Debian/Ubuntu):
Querya-Desktop-0.4.11-b-linux.deb—sudo apt install ./Querya-Desktop-0.4.11-b-linux.deb - Linux .rpm (Fedora/RHEL):
Querya-Desktop-0.4.11-b-linux.rpm—sudo dnf install ./Querya-Desktop-0.4.11-b-linux.rpm - Linux Flatpak:
Querya-Desktop-0.4.11-b-linux.flatpak—flatpak install --user ./Querya-Desktop-0.4.11-b-linux.flatpak - Windows setup:
Querya-Desktop-0.4.11-b-windows-setup.exe(Inno Setup)
Arch (AUR): PKGBUILD in packaging/linux/aur/ (community-maintained).
Verify checksums: SHA256SUMS.txt
Build info
- pubspec: 0.4.11-b
- Commit: 32c263a
Querya Desktop 0.4.11
[0.4.11] - 2026-07-27
Universal UI standard for drivers/extensions, shell UX hardening, Fluid QueryaMotion morphing, virtual grid/pool reliability, performance follow-ups, and dual-channel packaging (portable + installable).
Added
- SDUI / extension RPC expand (#323) —
getCapabilities,getServerStats,getObjectMetadata, andcancelQueryon the plugin bridge for richer driver UIs. - ExtensionTableView (#324) — table toolbar, custom SQL filter, and async row-count for sandboxed drivers.
- Universal data export (#326) — CSV, JSON, Markdown, and SQL dump from ResultsTab / table toolbars.
- MySQL / SQLite UI parity (#325) — align workspace chrome and flows with the Obsidian UI standard.
- Shell UX (#339) — semantic palette, shared toast, keyboard-operable tab strip, empty-workspace hero + recent connections, resizable connections sidebar, shared dialogs/widgets.
- Fluid QueryaMotion (#342) — spring primitives, workspace empty↔connected morph, sliding tab indicator, hero/recent stagger, ResultsTab mode morph, dialog/dropdown fade-slide, theme morph gated by motion level, split drag-end settle + motion guardrails.
- Perf follow-ups (#356 / #357–#366) — isolate tab-strip rebuilds; SwitchingBody/CrossFade
RepaintBoundary+TickerMode; static dialog blur; vertical-split paint isolation; ticker-gated stats polling; badge pulse lifecycle; ResultsTab morph paint scope; document theme morph cost, stagger/badge duration constants, and Linux query-only refresh_rate. - Portable + installable packaging (#379–#385) — portable zip channel documented on Releases; Linux AppImage and
.deb; Windows Inno Setup (*-windows-setup.exe);QUERYA_PORTABLE/QueryaData/portable profile root; one-shot migration from legacycom.example.*support paths; updater prefers release asset matching install context (zip vs AppImage vs setup).
Fixed
- Virtual result grid (#331) — synchronize column width recalculation in
VirtualResultGrid. - Connection pools (#332) — eviction and exception wrapping in SQLite and MySQL pools.
- Query timeout (#333) — force-close connection on
TimeoutException. - Large result mapping (#334) — optimize SQL result set mapping and DDL rendering; RPC parse on compute isolate where applicable.
- Sidebar width persist (#354) — keyboard/semantics resize + dispose flush; dropdown exit delay for fade-slide.
- Linux build (#394) — silence Clang
-Wdeprecated-literal-operatorfromflutter_secure_storage_linux9.x. - Tests — skip legacy profile migration during
flutter testruns (isolated temp dirs).
Changed
- Bundle / application IDs (#385) —
com.queryahub.querya_desktop(Linux),com.queryahub.queryaDesktop(macOS),QueryaHub/Querya Desktop(Windows). - Dialog sizing (#394) — larger connection forms, database picker, and Preferences dialog via
WindowLayoutconstants. - CI / release hygiene — merge
mainintodev(#346); Release workflow publishes portable zips plus installable AppImage,.deb, and Windows setup;SHA256SUMS.txtcovers all artifacts — see packaging.md and tags-and-releases.md.
Downloads
Portable (zip — run from folder, no installer)
- Linux:
Querya-Desktop-0.4.11-linux.zip - Windows:
Querya-Desktop-0.4.11-windows.zip - macOS:
Querya-Desktop-0.4.11-macos.zip(signed, notarized and stapled.appwhen Apple Developer secrets are configured; otherwise unsigned)
Optional USB-style profile: set QUERYA_PORTABLE=1 or create a QueryaData/ folder next to the binary (see docs/packaging.md).
Installable
- Linux AppImage:
Querya-Desktop-0.4.11-linux.AppImage(chmod +xthen run) - Linux .deb (Debian/Ubuntu):
Querya-Desktop-0.4.11-linux.deb—sudo apt install ./Querya-Desktop-0.4.11-linux.deb - Windows setup:
Querya-Desktop-0.4.11-windows-setup.exe(Inno Setup)
RPM / Flatpak / AUR — follow-ups on #386.
Verify checksums: SHA256SUMS.txt
Build info
- pubspec: 0.4.11+2
- Commit: 2f75025
Querya Desktop 0.4.11
[0.4.11] - 2026-07-27
Universal UI standard for drivers/extensions, shell UX hardening, Fluid QueryaMotion morphing, virtual grid/pool reliability, performance follow-ups, and dual-channel packaging (portable + installable).
Added
- SDUI / extension RPC expand (#323) —
getCapabilities,getServerStats,getObjectMetadata, andcancelQueryon the plugin bridge for richer driver UIs. - ExtensionTableView (#324) — table toolbar, custom SQL filter, and async row-count for sandboxed drivers.
- Universal data export (#326) — CSV, JSON, Markdown, and SQL dump from ResultsTab / table toolbars.
- MySQL / SQLite UI parity (#325) — align workspace chrome and flows with the Obsidian UI standard.
- Shell UX (#339) — semantic palette, shared toast, keyboard-operable tab strip, empty-workspace hero + recent connections, resizable connections sidebar, shared dialogs/widgets.
- Fluid QueryaMotion (#342) — spring primitives, workspace empty↔connected morph, sliding tab indicator, hero/recent stagger, ResultsTab mode morph, dialog/dropdown fade-slide, theme morph gated by motion level, split drag-end settle + motion guardrails.
- Perf follow-ups (#356 / #357–#366) — isolate tab-strip rebuilds; SwitchingBody/CrossFade
RepaintBoundary+TickerMode; static dialog blur; vertical-split paint isolation; ticker-gated stats polling; badge pulse lifecycle; ResultsTab morph paint scope; document theme morph cost, stagger/badge duration constants, and Linux query-only refresh_rate. - Portable + installable packaging (#379–#385) — portable zip channel documented on Releases; Linux AppImage and
.deb; Windows Inno Setup (*-windows-setup.exe);QUERYA_PORTABLE/QueryaData/portable profile root; one-shot migration from legacycom.example.*support paths; updater prefers release asset matching install context (zip vs AppImage vs setup).
Fixed
- Virtual result grid (#331) — synchronize column width recalculation in
VirtualResultGrid. - Connection pools (#332) — eviction and exception wrapping in SQLite and MySQL pools.
- Query timeout (#333) — force-close connection on
TimeoutException. - Large result mapping (#334) — optimize SQL result set mapping and DDL rendering; RPC parse on compute isolate where applicable.
- Sidebar width persist (#354) — keyboard/semantics resize + dispose flush; dropdown exit delay for fade-slide.
- Linux build (#394) — silence Clang
-Wdeprecated-literal-operatorfromflutter_secure_storage_linux9.x. - Tests — skip legacy profile migration during
flutter testruns (isolated temp dirs).
Changed
- Bundle / application IDs (#385) —
com.queryahub.querya_desktop(Linux),com.queryahub.queryaDesktop(macOS),QueryaHub/Querya Desktop(Windows). - Dialog sizing (#394) — larger connection forms, database picker, and Preferences dialog via
WindowLayoutconstants. - CI / release hygiene — merge
mainintodev(#346); Release workflow publishes portable zips plus installable AppImage,.deb, and Windows setup;SHA256SUMS.txtcovers all artifacts — see packaging.md and tags-and-releases.md.
Downloads
Portable (zip — run from folder, no installer)
- Linux:
Querya-Desktop-0.4.11-linux.zip - Windows:
Querya-Desktop-0.4.11-windows.zip - macOS:
Querya-Desktop-0.4.11-macos.zip(signed, notarized and stapled.appwhen Apple Developer secrets are configured; otherwise unsigned)
Optional USB-style profile: set QUERYA_PORTABLE=1 or create a QueryaData/ folder next to the binary (see docs/packaging.md).
Installable
- Linux AppImage:
Querya-Desktop-0.4.11-linux.AppImage(chmod +xthen run) - Linux .deb (Debian/Ubuntu):
Querya-Desktop-0.4.11-linux.deb—sudo apt install ./Querya-Desktop-0.4.11-linux.deb - Windows setup:
Querya-Desktop-0.4.11-windows-setup.exe(Inno Setup)
RPM / Flatpak / AUR — follow-ups on #386.
Verify checksums: SHA256SUMS.txt
Build info
- pubspec: 0.4.11+2
- Commit: 2f75025