Repository navigation
chore(release): Querya Desktop 0.4.19 #1483
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
767 commits
Select commit
Hold shift + click to select a range
166cc10
Merge pull request #1300 from QueryaHub/fix/erd-group-gather
ZhuchkaTriplesix 54fd227
fix(erd): interface review polish - plain notes, keys after a note, v…
ZhuchkaTriplesix a63d4e8
Merge pull request #1301 from QueryaHub/fix/erd-ui-review-2
ZhuchkaTriplesix 250f8a4
fix(db): a failed reconnect gives its lease back in the PostgreSQL, M…
ZhuchkaTriplesix 38cf416
fix(connections): Test Connection of an edited connection uses the sa…
ZhuchkaTriplesix 0ad087b
fix(redis): connect timeout, no socket left after a failed AUTH, sing…
ZhuchkaTriplesix 2d1b7c3
Merge pull request #1317 from QueryaHub/fix/1306-pool-lease-leak
ZhuchkaTriplesix cfdecd4
fix(connections): a saved password with URI special characters no lon…
ZhuchkaTriplesix 4169d0a
fix(storage): an unreadable keyring is an error, not an empty passwor…
ZhuchkaTriplesix 0fe0070
fix(redis): connect limit is a seam so widget tests do not leave a ti…
ZhuchkaTriplesix 4a78e0d
fix(ssh): host key fingerprints are in the OpenSSH format (#1304)
ZhuchkaTriplesix 9ec82c9
fix(errors): SSH tunnel failures are not reported as a database authe…
ZhuchkaTriplesix 2dfb834
fix(connections): Test Connection says why it failed (#1308)
ZhuchkaTriplesix f0535fd
fix(errors): a missing column is not reported as a missing table (#1310)
ZhuchkaTriplesix 5066a94
Merge pull request #1318 from QueryaHub/fix/1302-test-connection-stor…
ZhuchkaTriplesix a01bbd4
Merge pull request #1319 from QueryaHub/fix/1307-redis-connect
ZhuchkaTriplesix 525ae58
Merge pull request #1320 from QueryaHub/fix/1303-secret-store-read-er…
ZhuchkaTriplesix e4ec54b
Merge pull request #1321 from QueryaHub/fix/1304-ssh-fingerprint-format
ZhuchkaTriplesix 5ebee53
fix(mongodb): connection strings with several hosts work (#1309)
ZhuchkaTriplesix 45f438c
fix(mysql): forceClose and disconnect during connect end the attempt …
ZhuchkaTriplesix 50ffd9a
fix(connections): editing a connection of a missing extension or driv…
ZhuchkaTriplesix 8ac8d21
fix(errors): pool exhaustion, lost sessions and TLS failures read as …
ZhuchkaTriplesix 89cdd84
fix(connections): URL import edge cases: raw special characters, Wind…
ZhuchkaTriplesix af8c40b
fix(connections): the user info of a raw URL ends at the last @ (#1315)
ZhuchkaTriplesix d23c393
fix(storage): secrets can be removed on edit, SSH secrets go with the…
ZhuchkaTriplesix e215199
Merge pull request #1325 from QueryaHub/fix/1309-mongodb-multi-host
ZhuchkaTriplesix a4c88eb
Merge pull request #1324 from QueryaHub/fix/1310-column-not-found
ZhuchkaTriplesix 196f046
test(db): the pool exhaustion tests expect the typed exception (#1316)
ZhuchkaTriplesix 0d0dbd9
Merge pull request #1326 from QueryaHub/fix/1313-mysql-forceclose-con…
ZhuchkaTriplesix 094cfda
Merge pull request #1327 from QueryaHub/fix/1314-edit-extension-conne…
ZhuchkaTriplesix f957901
merge dev into fix/1316
ZhuchkaTriplesix 40b7ed8
merge dev into fix/1315
ZhuchkaTriplesix dbfa8b2
merge dev into fix/1305
ZhuchkaTriplesix 177a637
merge dev into fix/1308
ZhuchkaTriplesix acc2233
fix(connections): the remove-password option is not a const widget (#…
ZhuchkaTriplesix 24be31c
Merge pull request #1328 from QueryaHub/fix/1316-error-mapping-gaps
ZhuchkaTriplesix a7f87ec
Merge pull request #1323 from QueryaHub/fix/1308-test-connection-reason
ZhuchkaTriplesix 3ea3e29
Merge pull request #1330 from QueryaHub/fix/1311-secret-clearing
ZhuchkaTriplesix a84fb0c
Merge pull request #1329 from QueryaHub/fix/1315-url-import-edge-cases
ZhuchkaTriplesix a8f544e
merge dev into fix/1305
ZhuchkaTriplesix 5a93892
Merge pull request #1322 from QueryaHub/fix/1305-ssh-errors-not-db-auth
ZhuchkaTriplesix ca849cd
docs(changelog): what has been merged to dev since the ER epic
ZhuchkaTriplesix c7fc968
Merge pull request #1361 from QueryaHub/docs/changelog-since-1298
ZhuchkaTriplesix 54e48c4
fix(db): reflect underlying driver socket state in isConnected and ma…
ZhuchkaTriplesix 692d440
fix(ssh): close zombie local port forwarder on SSH keep-alive ping fa…
ZhuchkaTriplesix fc349c5
fix(db): import the mapped exception types in the drivers, await-lint…
ZhuchkaTriplesix eea81bb
fix(security): prevent host credential exfiltration in bwrap and Seat…
ZhuchkaTriplesix b407ba9
Merge pull request #1379 from QueryaHub/fix/1373-reflect-driver-socke…
ZhuchkaTriplesix f974d79
fix(ssh): drop unnecessary null assertions on tunnel session
ZhuchkaTriplesix 18b53e4
Merge pull request #1381 from QueryaHub/issue/1376-prevent-sandbox-cr…
ZhuchkaTriplesix 552071b
fix(storage): add disaster recovery fallback UI when LocalDb fails to…
ZhuchkaTriplesix 667b5fd
Merge pull request #1380 from QueryaHub/issue/1374-close-zombie-ssh-p…
ZhuchkaTriplesix 52c1bf9
fix(updater): use robocopy mirror on Windows to remove obsolete DLLs …
ZhuchkaTriplesix 36c2ab9
fix(packaging): add bubblewrap to Recommends in Linux deb and rpm pac…
ZhuchkaTriplesix eb0c067
Merge pull request #1383 from QueryaHub/issue/1377-windows-updater-ro…
ZhuchkaTriplesix 7c609d0
fix(data-grid): distinguish literal string 'NULL' from SQL NULL in Ta…
ZhuchkaTriplesix 789071e
Merge pull request #1384 from QueryaHub/issue/1378-add-bubblewrap-to-…
ZhuchkaTriplesix e61dd47
fix(storage): resolve analyzer issues in startup recovery UI
ZhuchkaTriplesix 35f4f9d
fix(data-grid): use columnMeta types when building WHERE clause
ZhuchkaTriplesix fcd2dc9
Merge pull request #1385 from QueryaHub/issue/1368-distinguish-null-l…
ZhuchkaTriplesix 4893eb7
Merge pull request #1382 from QueryaHub/issue/1375-localdb-disaster-r…
ZhuchkaTriplesix 170cc05
fix(security): enforce root CA verification and expose TLS sslmode fo…
ZhuchkaTriplesix e1d67eb
refactor(app): remove non-idempotent side effects and async loads fro…
ZhuchkaTriplesix 931d5ea
fix(postgresql): upgrade sslmode to verify-full when root CA is set
ZhuchkaTriplesix e238c00
test(app): remove unused widgets import
ZhuchkaTriplesix c4eb679
fix(ssh): openTunnel leaks sockets on its failure paths, ignores a mi…
ZhuchkaTriplesix 770eda6
fix(postgresql): stop SSL mode dropdown from overflowing in the form
ZhuchkaTriplesix 166ec85
fix(ssh): resolve key before dialing and destroy jump socket on failure
ZhuchkaTriplesix 21344f5
test(recovery): run real DB I/O in runAsync so retry test does not hang
ZhuchkaTriplesix 1aeb1c6
Merge pull request #1389 from QueryaHub/fix/recovery-test-real-io-hang
ZhuchkaTriplesix 198f9b8
refactor(connections): compose connection forms from reusable network…
ZhuchkaTriplesix 12945c2
Merge dev into issue/1367-postgres-sslmode-ca-verification
ZhuchkaTriplesix 00f8910
Merge dev into issue/1345-querya-app-idempotent-build
ZhuchkaTriplesix 26ae0d2
Merge dev into issue/1312-ssh-opentunnel-leaks-singleflight
ZhuchkaTriplesix a893671
Merge dev into issue/1364-reusable-connection-form-sections
ZhuchkaTriplesix d6e9ac8
Merge pull request #1386 from QueryaHub/issue/1367-postgres-sslmode-c…
ZhuchkaTriplesix ec292a3
refactor(editor): decouple QueryaCodeEditor from highlight controller…
ZhuchkaTriplesix 12aba62
test(app): disable native window chrome in QueryaApp build test
ZhuchkaTriplesix 675e498
refactor(workspace): extract SqlWorkspaceToolbar and introduce BaseSq…
ZhuchkaTriplesix b05b62a
Merge pull request #1388 from QueryaHub/issue/1312-ssh-opentunnel-lea…
ZhuchkaTriplesix 26cae97
Merge pull request #1387 from QueryaHub/issue/1345-querya-app-idempot…
ZhuchkaTriplesix 60d72dc
fix(connections): align form section API and restore imports
ZhuchkaTriplesix 12d1120
fix(workspace): fix toolbar test compile error and analyzer warnings
ZhuchkaTriplesix 3796941
test(connections): fix expectations in connection form sections test
ZhuchkaTriplesix 497f6e0
fix(editor): import QueryaHighlightController in SyntaxHighlightService
ZhuchkaTriplesix 2d1c55b
Merge pull request #1390 from QueryaHub/issue/1364-reusable-connectio…
ZhuchkaTriplesix a40bbcb
test(workspace): use const ThemeData.dark() in toolbar test
ZhuchkaTriplesix cd44ba6
refactor(erd): extract ErdTableCard and ErdRelationPainter from erd_view
ZhuchkaTriplesix 3b080a4
Merge pull request #1391 from QueryaHub/issue/1366-editor-controller-…
ZhuchkaTriplesix ddb3c3e
Merge pull request #1392 from QueryaHub/issue/1363-extract-sql-worksp…
ZhuchkaTriplesix 636f4cb
refactor(erd): move layout, router and geometry to core and add ErdLa…
ZhuchkaTriplesix 3e48e2d
test(erd): unit-test ErdLayoutEngine without a widget tester
ZhuchkaTriplesix ce4e7d3
refactor(erd): satisfy analyzer in extracted card and engine test
ZhuchkaTriplesix 091efa8
refactor(erd): extract export data builders and toolbar/search/group …
ZhuchkaTriplesix 20920cf
refactor(erd): drop search field import now used by ErdSearchPanel
ZhuchkaTriplesix d467f96
refactor(erd): extract export menu, table context menu and status bodies
ZhuchkaTriplesix 18ebd6d
refactor(erd): move group operations into ErdGroupOps
ZhuchkaTriplesix 242282c
Merge pull request #1393 from QueryaHub/issue/1362-decompose-erd-view
ZhuchkaTriplesix 7088c4c
refactor(erd): extract ErdNoteCard and ErdNoteOps from the view state
ZhuchkaTriplesix 099ac8b
test(erd): make the note ops test schema const
ZhuchkaTriplesix e4ed816
Merge pull request #1394 from QueryaHub/issue/1362-erd-note-and-canvas
ZhuchkaTriplesix a3307b5
fix(a11y): focus ring and state semantics for QueryaIconButton and Qu…
ZhuchkaTriplesix d657338
Merge pull request #1395 from QueryaHub/issue/1370-icon-button-focus-…
ZhuchkaTriplesix b376b2f
fix(a11y): expose QueryaDropdown trigger and items to screen readers
ZhuchkaTriplesix 9ddc2fd
Merge pull request #1396 from QueryaHub/issue/1371-dropdown-semantics
ZhuchkaTriplesix d5658a0
fix(a11y): keep the selected row visible in Command Palette and Quick…
ZhuchkaTriplesix e216d1f
test(command_palette): drop unused motion import
ZhuchkaTriplesix f0cf857
Merge pull request #1397 from QueryaHub/issue/1369-palette-scroll-sel…
ZhuchkaTriplesix a30e340
fix(a11y): close tabs from the keyboard and enlarge the close target
ZhuchkaTriplesix 5ab1a38
Merge pull request #1398 from QueryaHub/issue/1372-tab-strip-keyboard…
ZhuchkaTriplesix e32bc11
perf(editor): single-pass line numbers and one RegExp in SqlStatement…
ZhuchkaTriplesix 333c5cf
Merge pull request #1399 from QueryaHub/issue/1350-statement-splitter…
ZhuchkaTriplesix d0fbc34
perf(theme): scan JSONC string literals once and copy them as a slice
ZhuchkaTriplesix edae090
Merge pull request #1400 from QueryaHub/issue/1360-jsonc-single-pass-…
ZhuchkaTriplesix 9ea12cd
perf(theme): cache the hash of QueryaTheme token colours
ZhuchkaTriplesix 48e92a0
Merge pull request #1401 from QueryaHub/issue/1353-cache-token-colors…
ZhuchkaTriplesix c238ad2
perf(editor): sync syntax highlighters once when a theme transition ends
ZhuchkaTriplesix d170c9e
Merge pull request #1402 from QueryaHub/issue/1358-theme-transition-h…
ZhuchkaTriplesix 2f88931
docs(ui): the Querya button and control standard
ZhuchkaTriplesix e5dbf74
Merge pull request #1403 from QueryaHub/issue/1332-button-control-sta…
ZhuchkaTriplesix 5c398bc
feat(ui): control metrics and tokens shared by the kit's controls
ZhuchkaTriplesix 6a61af3
test(ui): simplify the control row height test
ZhuchkaTriplesix e3f9a50
perf(sdui): cache visible row list and eliminate rows.any linear scan…
ZhuchkaTriplesix a37847d
test(ui): const search field in the scope row test
ZhuchkaTriplesix fabac2c
Merge pull request #1405 from QueryaHub/issue/1359-cache-sdui-tree-vi…
ZhuchkaTriplesix ed05792
Merge pull request #1404 from QueryaHub/issue/1333-control-metrics-to…
ZhuchkaTriplesix 73bd3e9
feat(ui): QueryaButton on Flutter primitives, no shadcn
ZhuchkaTriplesix c94f403
perf(sqlite): eliminate redundant double string conversion pass in Sq…
ZhuchkaTriplesix fcb90f8
test(guards): lib/shared must not import shadcn_flutter (ratchet)
ZhuchkaTriplesix 37ee82d
Merge pull request #1407 from QueryaHub/issue/1354-sqlite-single-pass…
ZhuchkaTriplesix 26f9b21
fix(ui): use material.Key in QueryaButton constructors
ZhuchkaTriplesix 4a004cc
test(guards): drop data_export_service from the shadcn allow-list
ZhuchkaTriplesix b54ccd7
perf(mysql): add StringInternPool to MySqlSqlExecutionDelegate row co…
ZhuchkaTriplesix 142c635
perf(grid): eliminate duplicate 40-row sampling in computeResultGridC…
ZhuchkaTriplesix 9d5f58b
Merge pull request #1409 from QueryaHub/issue/1365-shared-shadcn-guard
ZhuchkaTriplesix dde34da
Merge pull request #1410 from QueryaHub/issue/1356-mysql-string-inter…
ZhuchkaTriplesix 907b81e
Merge pull request #1411 from QueryaHub/issue/1349-grid-sampling-spar…
ZhuchkaTriplesix 7253e76
test(ui): the button guard checks imports, not the word in a comment
ZhuchkaTriplesix 76a516d
refactor(ui): QueryaSpinner, QueryaBadge and the tree loading row no …
ZhuchkaTriplesix a970eb2
Merge pull request #1408 from QueryaHub/issue/1334-querya-button
ZhuchkaTriplesix c7a043c
perf(grid): eliminate eager List<String> allocation on every pointer-…
ZhuchkaTriplesix c8bfd4b
refactor(ui): QueryaIconButton, QueryaSearchField and QueryaTabStrip …
ZhuchkaTriplesix 59f8663
refactor(ui): QueryaDropdown and QueryaDialogCard no longer import sh…
ZhuchkaTriplesix 8269121
perf(connections): eliminate blocking File.existsSync() filesystem ca…
ZhuchkaTriplesix 1f8af8d
Merge pull request #1412 from QueryaHub/issue/1365-spinner-badge-load…
ZhuchkaTriplesix 84e49dd
fix(ui): icon button gap is a SizedBox, not shadcn's Gap
ZhuchkaTriplesix 5afe95c
Merge dev into issue/1365-icon-search-tabs-off-shadcn
ZhuchkaTriplesix f882574
Merge pull request #1414 from QueryaHub/issue/1348-grid-drag-selectio…
ZhuchkaTriplesix 604d666
fix(ui): material.KeyEventResult in the dropdown, const radius in the…
ZhuchkaTriplesix 3046b7b
Merge dev into issue/1365-dropdown-dialogcard-off-shadcn
ZhuchkaTriplesix 4f9443e
Merge pull request #1416 from QueryaHub/issue/1344-driver-icon-async-io
ZhuchkaTriplesix 181657b
fix(ui): read the colour scheme with context.colors, which needs no Q…
ZhuchkaTriplesix 2aabdfb
fix(ui): read the colour scheme with context.colors, which needs no Q…
ZhuchkaTriplesix de035ed
Merge pull request #1415 from QueryaHub/issue/1365-dropdown-dialogcar…
ZhuchkaTriplesix f1e0abf
Merge pull request #1413 from QueryaHub/issue/1365-icon-search-tabs-o…
ZhuchkaTriplesix 35e4350
feat(ui): QueryaMenuButton, QueryaSplitButton and QueryaDialogActions
ZhuchkaTriplesix e7cf47c
refactor(ui): QueryaModalDialog and QueryaConfirmDialog on QueryaButt…
ZhuchkaTriplesix 430834c
refactor(ui): QueryaEmptyState on QueryaButton, off shadcn
ZhuchkaTriplesix 7be09c7
test(ui): material.SingleActivator and no settle while a spinner runs
ZhuchkaTriplesix e76e9f5
Merge pull request #1419 from QueryaHub/issue/1365-empty-state-off-sh…
ZhuchkaTriplesix 74b2e5f
fix(ui): kit buttons read the workbench with a default when there is …
ZhuchkaTriplesix 0f2c6ee
fix(ui): kit buttons read the workbench with a default when there is …
ZhuchkaTriplesix 5f52ee2
Merge dev into issue/1338-confirm-dialog-querya-button
ZhuchkaTriplesix 94288a3
Merge pull request #1417 from QueryaHub/issue/1335-split-menu-dialog-…
ZhuchkaTriplesix 5ca77a7
refactor(ui): update and welcome tour dialogs use QueryaButton
ZhuchkaTriplesix 5af23e8
Merge pull request #1418 from QueryaHub/issue/1338-confirm-dialog-que…
ZhuchkaTriplesix 6b7c754
Merge pull request #1420 from QueryaHub/issue/1338-updater-onboarding…
ZhuchkaTriplesix b615373
refactor(ui): connection forms and dialogs use QueryaButton
ZhuchkaTriplesix aff751b
test: Create Index in the dialog is a QueryaButton now
ZhuchkaTriplesix dbca112
Merge pull request #1421 from QueryaHub/issue/1338-forms-dialogs-quer…
ZhuchkaTriplesix c9a1bea
refactor(ui): Mongo and Redis panels use QueryaButton
ZhuchkaTriplesix 4afe564
refactor(ui): tables, grid inspector, extensions and settings use Que…
ZhuchkaTriplesix 7d90c8c
Merge pull request #1422 from QueryaHub/issue/1337-nosql-panels-query…
ZhuchkaTriplesix a6f3940
test: drop the shadcn import the readonly save test no longer needs
ZhuchkaTriplesix a9937bc
Merge pull request #1423 from QueryaHub/issue/1337-tables-extensions-…
ZhuchkaTriplesix e5cc1e1
refactor(ui): QueryaActionButton is a QueryaButton.secondary wrapper,…
ZhuchkaTriplesix 3c204b0
Merge pull request #1424 from QueryaHub/issue/1337-action-button-menu
ZhuchkaTriplesix 0f41ac6
refactor(ui): menus are QueryaMenuButton, Execute is a QueryaSplitButton
ZhuchkaTriplesix 6368dd5
refactor(ui): drop action menu imports now exported by widgets.dart
ZhuchkaTriplesix df05034
Merge pull request #1425 from QueryaHub/issue/1335-action-menu-to-men…
ZhuchkaTriplesix 2ea510f
perf(commands): eliminate redundant search calls and double setState …
ZhuchkaTriplesix 46ca356
refactor(ui): the last shadcn buttons in lib become QueryaButton
ZhuchkaTriplesix f9602a9
perf(ui): eliminate speculative layout overhead from IntrinsicWidth i…
ZhuchkaTriplesix 745b303
perf(ui): eliminate per-frame ImageFilter.blur sigma animation in sho…
ZhuchkaTriplesix 0c80ed5
Merge pull request #1426 from QueryaHub/issue/1343-command-palette-ho…
ZhuchkaTriplesix 92111ec
Merge pull request #1427 from QueryaHub/issue/1338-remaining-dialogs-…
ZhuchkaTriplesix 009c5b0
Merge pull request #1428 from QueryaHub/issue/1342-querya-tab-strip-i…
ZhuchkaTriplesix 2764ba5
Merge pull request #1429 from QueryaHub/issue/1341-dialog-backdrop-co…
ZhuchkaTriplesix bc13a1a
fix(connections): confirm before removing a connection and leave its …
ZhuchkaTriplesix 4597d63
fix(workspace): the status bar does not keep 'Running query…' after a…
ZhuchkaTriplesix 28a6f7d
fix(workspace): a long query error scrolls instead of overflowing the…
ZhuchkaTriplesix 9fbb357
fix(ui): export and copy menu buttons have one chevron
ZhuchkaTriplesix cb4d0e1
fix(editor): prevent duplicate onChanged, cursor false positives, and…
ZhuchkaTriplesix adef5ea
Merge pull request #1446 from QueryaHub/issue/1430-code-editor-events…
ZhuchkaTriplesix d5eb30e
fix(editor): a filling code editor starts its text at the top
ZhuchkaTriplesix 6f7062f
fix(connections): Remove connection is drawn as a destructive menu item
ZhuchkaTriplesix bb0c349
Merge pull request #1434 from QueryaHub/fix/remove-connection-confirm
ZhuchkaTriplesix e3bb5f0
Merge pull request #1435 from QueryaHub/fix/status-bar-after-query-error
ZhuchkaTriplesix 1d2c06e
Merge pull request #1436 from QueryaHub/fix/results-error-overflow
ZhuchkaTriplesix a997a76
fix(grid): eliminate redundant debounce timer and duplicate validatio…
ZhuchkaTriplesix 00d325c
Merge pull request #1449 from QueryaHub/issue/1431-datagrid-value-pan…
ZhuchkaTriplesix 63731a1
Merge pull request #1447 from QueryaHub/fix/sql-editor-top-aligned
ZhuchkaTriplesix b2d74d4
fix(mongo): enable JSON syntax highlighting in MongoDocumentsJsonView…
ZhuchkaTriplesix 3dbcce4
Merge pull request #1437 from QueryaHub/fix/export-menu-double-chevron
ZhuchkaTriplesix 9d7db3d
Merge pull request #1450 from QueryaHub/issue/1432-mongo-json-view-bu…
ZhuchkaTriplesix f1c071e
Merge pull request #1448 from QueryaHub/fix/remove-connection-destruc…
ZhuchkaTriplesix 35f09a8
test(core): skip live MySQL test on auth failure and update outdated …
ZhuchkaTriplesix aa9c7c2
Merge pull request #1451 from QueryaHub/issue/1433-test-stabilization…
ZhuchkaTriplesix 60f4d07
fix(ui): align Preferences button labels, icons and Close variant
ZhuchkaTriplesix cc3fedb
Merge pull request #1452 from QueryaHub/issue/ui-review-preferences-b…
ZhuchkaTriplesix 0731340
perf(editor): eliminate quadratic line counting and substring allocat…
ZhuchkaTriplesix 77a8d60
Merge pull request #1453 from QueryaHub/issue/1350-sql-splitter-perf
ZhuchkaTriplesix f410668
refactor(ui): finish the control scale and button family leftovers
ZhuchkaTriplesix 9dedcb4
fix(ui): QueryaTabStrip draws its focus ring only for keyboard focus
ZhuchkaTriplesix cfaaf1d
test(ui): drop the import left unused by the density test removal
ZhuchkaTriplesix 284d51b
Merge pull request #1455 from QueryaHub/issue/1438-tab-strip-focus-ring
ZhuchkaTriplesix fc3fc2e
fix(ui): the dropdown menu is at least as wide as its trigger
ZhuchkaTriplesix fa157c9
fix(ui): rules use the workbench border colour through QueryaDivider
ZhuchkaTriplesix 533e6fb
perf(editor): eliminate syntax highlight flicker on documents >= 8KB …
ZhuchkaTriplesix 8c4440b
Merge pull request #1454 from QueryaHub/issue/1333-1335-kit-leftovers
ZhuchkaTriplesix a2dfe8c
Merge pull request #1458 from QueryaHub/issue/1351-highlight-flicker-…
ZhuchkaTriplesix 5ed10fc
Merge pull request #1456 from QueryaHub/issue/1444-dropdown-menu-width
ZhuchkaTriplesix e5f800a
fix(ui): the new-connection wizard search is a QueryaSearchField
ZhuchkaTriplesix f73b7d8
fix(ui): dialogs whose only action is Close use a ghost Close in Quer…
ZhuchkaTriplesix 79f1126
Merge pull request #1457 from QueryaHub/issue/1443-theme-dividers
ZhuchkaTriplesix 7aedb79
fix(ui): toolbar rows set one control size through QueryaControlScope
ZhuchkaTriplesix 43eb3f8
Merge pull request #1459 from QueryaHub/issue/1442-wizard-search-field
ZhuchkaTriplesix 53cbd94
refactor(ui): name dialogs use QueryaDialogActions for their footer
ZhuchkaTriplesix 934fc39
Merge pull request #1460 from QueryaHub/issue/1441-dialog-close-cance…
ZhuchkaTriplesix 1bb3f1f
refactor(ui): connection forms use QueryaDialogActions for their footer
ZhuchkaTriplesix 3eca520
Merge pull request #1461 from QueryaHub/issue/1439-toolbar-row-height
ZhuchkaTriplesix 4503e32
Merge pull request #1462 from QueryaHub/issue/1441-dialog-footers
ZhuchkaTriplesix 0b8304f
Merge pull request #1463 from QueryaHub/issue/1441-connection-form-fo…
ZhuchkaTriplesix 0f75f95
perf(database): integrate CompactResultDataset into SQL drivers to el…
ZhuchkaTriplesix 030091b
perf(editor): eliminate full-string comparisons and redundant listene…
ZhuchkaTriplesix 3d7c724
refactor(ui): app toast on our own overlay, off shadcn (#1466)
ZhuchkaTriplesix 886cb30
perf(grid): offload GridFilterEngine to background isolate and deboun…
ZhuchkaTriplesix edbb109
refactor(ui): text styles from QueryaTextStyles, shadcn TextExtension…
ZhuchkaTriplesix 39b4bdc
fix(ui): SQL toolbar row states its control size, test one height (#1…
ZhuchkaTriplesix dc3d361
perf(grid): hoist secondary click (context menu) and tooltip handling…
ZhuchkaTriplesix 642f63a
refactor(ui): QueryaIconButton is a thin wrapper over QueryaButton (#…
ZhuchkaTriplesix af392d2
fix(grid): restore ExcludeSemantics in _GridCell to preserve row sema…
ZhuchkaTriplesix 72a86fb
docs(changelog): what has been merged to dev since the ER refactor (#…
ZhuchkaTriplesix dc4ab4f
refactor(erd): export flows move out of ErdView into ErdExporter (#1472)
ZhuchkaTriplesix 5a27665
feat(packaging): add standalone Flathub manifest and bundle icon (#10…
ZhuchkaTriplesix f8e1827
refactor(ui): private and raw Material buttons leave lib, button guar…
ZhuchkaTriplesix 88e16f1
fix(sql-workspace): Run on an empty editor says so, the status bar fo…
ZhuchkaTriplesix ea74feb
fix(ui): disabled primary chip, transaction badge, MCP sizes, ERD too…
ZhuchkaTriplesix d6fc53d
chore(release): prepare Querya Desktop 0.4.19
ZhuchkaTriplesix 9af6ae6
Merge origin/main into release/0.4.19
ZhuchkaTriplesix File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| FROM ghcr.io/cirruslabs/flutter:3.41.6 | ||
|
|
||
| # Linux desktop toolchain + libs the app links against. | ||
| RUN apt-get update \ | ||
| && apt-get install -y --no-install-recommends \ | ||
| clang cmake ninja-build pkg-config libgtk-3-dev libsecret-1-dev \ | ||
| libsqlite3-dev libglu1-mesa xvfb git curl ca-certificates \ | ||
| && rm -rf /var/lib/apt/lists/* | ||
|
|
||
| # Docker CLI so the dev stack (docker/docker-compose.yml) can be started from inside the container. | ||
| COPY --from=docker:27-cli /usr/local/bin/docker /usr/local/bin/docker | ||
| COPY --from=docker:27-cli /usr/local/libexec/docker/cli-plugins/docker-compose /usr/local/libexec/docker/cli-plugins/docker-compose | ||
|
|
||
| ENV DISPLAY=:99 | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,23 @@ | ||
| { | ||
| "name": "Querya Desktop", | ||
| "build": { "dockerfile": "Dockerfile" }, | ||
| "features": { | ||
| "ghcr.io/devcontainers/features/docker-outside-of-docker:1": {} | ||
| }, | ||
| "postCreateCommand": "flutter config --enable-linux-desktop && flutter pub get", | ||
| "postStartCommand": "docker compose -f docker/docker-compose.yml up -d || echo 'Docker stack not started (run it manually: cd docker && docker compose up -d)'", | ||
| "forwardPorts": [5432, 3306, 6379, 27017, 8123, 9000], | ||
| "portsAttributes": { | ||
| "5432": { "label": "PostgreSQL" }, | ||
| "3306": { "label": "MySQL" }, | ||
| "6379": { "label": "Redis" }, | ||
| "27017": { "label": "MongoDB" }, | ||
| "8123": { "label": "ClickHouse HTTP" } | ||
| }, | ||
| "customizations": { | ||
| "vscode": { | ||
| "extensions": ["Dart-Code.dart-code", "Dart-Code.flutter"] | ||
| } | ||
| }, | ||
| "hostRequirements": { "cpus": 4, "memory": "8gb" } | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,128 @@ | ||
| name: Test Querya extension | ||
| description: >- | ||
| Downloads a released querya-ext-tester and checks a Querya database-driver | ||
| extension (manifest and JSON-RPC lifecycle) headlessly, with no Flutter | ||
| install. Publish a copy of this directory as QueryaHub/action-test-extension | ||
| to use it as `uses: QueryaHub/action-test-extension@v1`. | ||
|
|
||
| inputs: | ||
| querya-version: | ||
| description: Querya Desktop release to take the tester from (e.g. 0.4.18) or "latest". | ||
| required: false | ||
| default: latest | ||
| target-version: | ||
| description: Host version to emulate (--target-version). Defaults to querya-version. | ||
| required: false | ||
| default: '' | ||
| extension-dir: | ||
| description: Directory containing manifest.json and the driver entry point. | ||
| required: false | ||
| default: . | ||
| connect: | ||
| description: db.connect parameters as inline JSON or a path to a JSON file. | ||
| required: false | ||
| default: '' | ||
| query: | ||
| description: Statement for the db.query check. | ||
| required: false | ||
| default: SELECT 1 | ||
| table: | ||
| description: Table name for the db.getTableSchema check (skipped when empty). | ||
| required: false | ||
| default: '' | ||
| sandbox: | ||
| description: Run the plugin inside the OS sandbox when available ("true" / "false"). | ||
| required: false | ||
| default: 'false' | ||
| junit-path: | ||
| description: Where to write the JUnit XML report. | ||
| required: false | ||
| default: querya-ext-test-junit.xml | ||
| tap-path: | ||
| description: Where to write the TAP report (skipped when empty). | ||
| required: false | ||
| default: '' | ||
|
|
||
| outputs: | ||
| tester-version: | ||
| description: Querya Desktop release the tester binary came from. | ||
| value: ${{ steps.fetch.outputs.version }} | ||
|
|
||
| runs: | ||
| using: composite | ||
| steps: | ||
| - name: Download querya-ext-tester | ||
| id: fetch | ||
| shell: bash | ||
| env: | ||
| GH_TOKEN: ${{ github.token }} | ||
| REQUESTED: ${{ inputs.querya-version }} | ||
| REPO: QueryaHub/Querya-Desktop | ||
| run: | | ||
| set -euo pipefail | ||
| case "${RUNNER_OS}-${RUNNER_ARCH}" in | ||
| Linux-X64) TARGET=linux-x64; EXT=tar.gz ;; | ||
| macOS-ARM64) TARGET=macos-arm64; EXT=tar.gz ;; | ||
| macOS-X64) TARGET=macos-x64; EXT=tar.gz ;; | ||
| Windows-X64) TARGET=windows-x64; EXT=zip ;; | ||
| *) echo "::error::Unsupported runner ${RUNNER_OS}-${RUNNER_ARCH}"; exit 1 ;; | ||
| esac | ||
|
|
||
| if [ "$REQUESTED" = "latest" ]; then | ||
| TAG=$(gh api "repos/${REPO}/releases/latest" --jq .tag_name) | ||
| else | ||
| TAG="$REQUESTED" | ||
| fi | ||
| VERSION="${TAG#v}" | ||
| ASSET="querya-ext-tester-v${VERSION}-${TARGET}.${EXT}" | ||
|
|
||
| DEST="${RUNNER_TEMP}/querya-ext-tester" | ||
| rm -rf "$DEST" && mkdir -p "$DEST" | ||
| gh release download "$TAG" --repo "$REPO" --dir "$DEST" \ | ||
| --pattern "$ASSET" --pattern SHA256SUMS.txt | ||
|
|
||
| cd "$DEST" | ||
| EXPECTED=$(grep " ${ASSET}\$" SHA256SUMS.txt | cut -d' ' -f1) | ||
| if [ -z "$EXPECTED" ]; then | ||
| echo "::error::${ASSET} is not listed in SHA256SUMS.txt of release ${TAG}" | ||
| exit 1 | ||
| fi | ||
| if command -v sha256sum >/dev/null; then | ||
| ACTUAL=$(sha256sum "$ASSET" | cut -d' ' -f1) | ||
| else | ||
| ACTUAL=$(shasum -a 256 "$ASSET" | cut -d' ' -f1) | ||
| fi | ||
| if [ "$EXPECTED" != "$ACTUAL" ]; then | ||
| echo "::error::Checksum mismatch for ${ASSET}" | ||
| exit 1 | ||
| fi | ||
|
|
||
| if [ "$EXT" = "zip" ]; then 7z x -y "$ASSET" >/dev/null; else tar -xzf "$ASSET"; fi | ||
| echo "dir=${DEST}" >> "$GITHUB_OUTPUT" | ||
| echo "version=${VERSION}" >> "$GITHUB_OUTPUT" | ||
|
|
||
| - name: Run querya-ext-tester | ||
| shell: bash | ||
| env: | ||
| TESTER_DIR: ${{ steps.fetch.outputs.dir }} | ||
| TARGET_VERSION: ${{ inputs.target-version != '' && inputs.target-version || steps.fetch.outputs.version }} | ||
| EXTENSION_DIR: ${{ inputs.extension-dir }} | ||
| CONNECT: ${{ inputs.connect }} | ||
| QUERY: ${{ inputs.query }} | ||
| TABLE: ${{ inputs.table }} | ||
| SANDBOX: ${{ inputs.sandbox }} | ||
| JUNIT_PATH: ${{ inputs.junit-path }} | ||
| TAP_PATH: ${{ inputs.tap-path }} | ||
| run: | | ||
| set -euo pipefail | ||
| EXE="${TESTER_DIR}/querya-ext-tester" | ||
| if [ "${RUNNER_OS}" = "Windows" ]; then EXE="${EXE}.exe"; fi | ||
|
|
||
| ARGS=("$EXTENSION_DIR" --target-version "$TARGET_VERSION" --query "$QUERY" --no-color) | ||
| if [ -n "$CONNECT" ]; then ARGS+=(--connect "$CONNECT"); fi | ||
| if [ -n "$TABLE" ]; then ARGS+=(--table "$TABLE"); fi | ||
| if [ "$SANDBOX" = "true" ]; then ARGS+=(--sandbox); fi | ||
| if [ -n "$JUNIT_PATH" ]; then ARGS+=(--junit "$JUNIT_PATH"); fi | ||
| if [ -n "$TAP_PATH" ]; then ARGS+=(--tap "$TAP_PATH"); fi | ||
|
|
||
| "$EXE" "${ARGS[@]}" |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,139 @@ | ||
| name: Benchmark | ||
|
|
||
| # Informational: compares frame timings of benchmark/grid_perf_bench.dart on the | ||
| # PR against its base branch, three interleaved runs per side, and comments when | ||
| # the Dart build time is slower in every pair (scripts/ci/bench_compare.py). | ||
| # Never blocks a merge. | ||
|
|
||
| on: | ||
| pull_request: | ||
| branches: [ dev, main ] | ||
| paths: | ||
| - 'lib/features/workspace/**' | ||
| - 'lib/core/database/**' | ||
| - 'lib/core/csv/**' | ||
| - 'lib/features/erd/**' | ||
| - 'lib/features/results/**' | ||
| - 'benchmark/**' | ||
| - 'scripts/ci/bench_compare.py' | ||
| - 'scripts/ci/app_bench_report.py' | ||
| - '.github/workflows/benchmark.yml' | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: read | ||
| pull-requests: write | ||
|
|
||
| concurrency: | ||
| group: benchmark-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| grid-bench: | ||
| name: Grid performance | ||
| # Forks get no write token and must never reach any self-hosted runner. | ||
| if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 75 | ||
| continue-on-error: true | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
| fetch-depth: 0 | ||
|
|
||
| - name: Install Linux dependencies | ||
| timeout-minutes: 8 | ||
| run: | | ||
| sudo apt-get -o Acquire::Retries=3 update | ||
| sudo apt-get -o Acquire::Retries=3 install -y clang cmake ninja-build pkg-config libgtk-3-dev libsecret-1-dev libsqlite3-dev xvfb libgl1-mesa-dri | ||
|
|
||
| - uses: subosito/flutter-action@v2 | ||
| with: | ||
| flutter-version: '3.47.1' | ||
| channel: 'stable' | ||
| cache: true | ||
|
|
||
| - name: Prepare the PR and the base checkouts | ||
| run: | | ||
| flutter pub get | ||
| if [ "${{ github.event_name }}" = "pull_request" ]; then | ||
| git worktree add "$RUNNER_TEMP/base" "origin/${{ github.base_ref }}" | ||
| # The base runs the PR's benchmark, so both sides measure the same thing. | ||
| rm -rf "$RUNNER_TEMP/base/benchmark" | ||
| cp -r benchmark "$RUNNER_TEMP/base/benchmark" | ||
| (cd "$RUNNER_TEMP/base" && flutter pub get) | ||
| fi | ||
|
|
||
| # Base and PR alternate (base, PR, base, PR, base, PR), so a slow | ||
| # stretch of the shared runner lands on both sides. | ||
| - name: Run the benchmark, 3 interleaved runs per side | ||
| timeout-minutes: 40 | ||
| run: | | ||
| bench() { | ||
| (cd "$1" && xvfb-run -a -s '-screen 0 1920x1080x24' flutter run --profile -d linux \ | ||
| -t benchmark/grid_perf_bench.dart --dart-define=MODE=scroll \ | ||
| 2>&1 | tee "$2") || true | ||
| } | ||
| for i in 1 2 3; do | ||
| if [ "${{ github.event_name }}" = "pull_request" ]; then | ||
| bench "$RUNNER_TEMP/base" "$RUNNER_TEMP/base$i.log" | ||
| fi | ||
| bench "$GITHUB_WORKSPACE" "$RUNNER_TEMP/head$i.log" | ||
| done | ||
|
|
||
| - name: Compare | ||
| id: compare | ||
| run: | | ||
| python3 scripts/ci/bench_compare.py \ | ||
| --base "$RUNNER_TEMP"/base*.log --head "$RUNNER_TEMP"/head*.log \ | ||
| > "$RUNNER_TEMP/report.txt" | ||
| cat "$RUNNER_TEMP/report.txt" | ||
| echo "regression=$(head -1 "$RUNNER_TEMP/report.txt" | cut -d= -f2)" >> "$GITHUB_OUTPUT" | ||
| tail -n +2 "$RUNNER_TEMP/report.txt" > "$RUNNER_TEMP/report.md" | ||
| cat "$RUNNER_TEMP/report.md" >> "$GITHUB_STEP_SUMMARY" | ||
|
|
||
| - name: Comment on regression | ||
| if: github.event_name == 'pull_request' && steps.compare.outputs.regression == '1' | ||
| env: | ||
| GH_TOKEN: ${{ github.token }} | ||
| run: gh pr comment "${{ github.event.pull_request.number }}" --body-file "$RUNNER_TEMP/report.md" | ||
|
|
||
| # #1173: ERD, charts / groupings and multi-tab SQL scenarios of the real app | ||
| # (benchmark/app_perf_bench.dart, Demo Playground, no database server), | ||
| # checked against per-scenario limits. Informational, like the grid bench. | ||
| app-bench: | ||
| name: App scenarios performance | ||
| if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository | ||
| runs-on: ubuntu-latest | ||
| timeout-minutes: 30 | ||
| continue-on-error: true | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Install Linux dependencies | ||
| timeout-minutes: 8 | ||
| run: | | ||
| sudo apt-get -o Acquire::Retries=3 update | ||
| sudo apt-get -o Acquire::Retries=3 install -y clang cmake ninja-build pkg-config libgtk-3-dev libsecret-1-dev libsqlite3-dev xvfb libgl1-mesa-dri | ||
|
|
||
| - uses: subosito/flutter-action@v2 | ||
| with: | ||
| flutter-version: '3.47.1' | ||
| channel: 'stable' | ||
| cache: true | ||
|
|
||
| - name: Run the app scenarios | ||
| timeout-minutes: 20 | ||
| run: | | ||
| flutter pub get | ||
| xvfb-run -a -s '-screen 0 1920x1080x24' flutter run --profile -d linux \ | ||
| -t benchmark/app_perf_bench.dart \ | ||
| --dart-define=ONLY=charts_5000,groupings_5000,multi_tab_run,erd_open_200,erd_hover,erd_drag,erd_auto_layout \ | ||
| --dart-define=STREAMS= \ | ||
| 2>&1 | tee "$RUNNER_TEMP/app.log" || true | ||
|
|
||
| - name: Report | ||
| run: | | ||
| python3 scripts/ci/app_bench_report.py "$RUNNER_TEMP/app.log" > "$RUNNER_TEMP/app_report.txt" | ||
| cat "$RUNNER_TEMP/app_report.txt" | ||
| tail -n +2 "$RUNNER_TEMP/app_report.txt" >> "$GITHUB_STEP_SUMMARY" |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Магическое число и переменная