You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**SQLite Database Support Plan (0.4.5)** — design and implementation roadmap for local SQLite file connector support.
23
+
24
+
### Fixed
25
+
26
+
-**Memory: SQL Result Capping (Issue #184)** — PostgreSQL and MySQL query execution now limits client memory usage by applying query LIMITs database-side and streaming rows using `rowsStream` (breaking early).
27
+
-**Performance: MongoDB Client-side Pagination (Issue #185)** — uses `SelectorBuilder` skip/limit operators on the server instead of client-side stream buffering.
-**Performance: Redis Key Scanning round-trips (Issue #187)** — runs type and TTL lookups concurrently for key batches.
30
+
-**Security: Theme Remote Installation SSRF (Issue #183)** — parses and filters IPv6 and private/loopback/multicast/mapped hosts using `InternetAddress.tryParse`.
31
+
-**UX: Focus leak on QueryaCrossFadeStack** — wraps inactive children in `ExcludeFocus` and `ExcludeSemantics` to prevent tab-indexing into off-screen tabs.
32
+
10
33
## [0.4.3] - 2026-06-15
11
34
12
35
Theme follow-ups release (TP-F1–TP-F4, GitHub issues **#159–#163**). Git tag **`0.4.3`**.
Copy file name to clipboardExpand all lines: docs/motion-and-high-refresh.md
+15Lines changed: 15 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -67,6 +67,7 @@ Root cause (engine): per `flutter/flutter#160952`, the engine "can render at 120
67
67
-**Windows / Linux:** most likely already render at monitor Hz; the job is to **measure and verify**, then ensure no app-side code caps frames (e.g. heavy `setState`, unbounded rebuilds during animation).
68
68
-**macOS:** the real high-Hz work — confirm ProMotion behavior; unlock via `refresh_rate` if capped at 60.
69
69
- Use `refresh_rate` (or a thin wrapper) primarily for **diagnostics**: a debug-only FPS/Hz overlay and a benchmark to prove smoothness on each machine, plus the macOS unlock call in `main()`.
70
+
-**Implementation:**`lib/core/motion/display_refresh_service.dart` calls `RefreshRate.enable()` in `main()`. Debug Hz badge: `flutter run --dart-define=QUERYA_REFRESH_OVERLAY=true`.
70
71
71
72
---
72
73
@@ -144,3 +145,17 @@ Suggested order: A1 → A2 → A3 in parallel with A4; then A5; A6 closes the mi
144
145
- Apple — Optimizing for ProMotion: https://developer.apple.com/documentation/quartzcore/optimizing-iphone-and-ipad-apps-to-support-promotion-displays
- Material 3 motion (durations & easing reference): https://m3.material.io/styles/motion/overview
148
+
149
+
---
150
+
151
+
## 8. Measured results (0.4.4)
152
+
153
+
The table below shows the measured refresh rates and frame times on target monitors before and after the 0.4.4 implementation (using a profile build, measured with DevTools and `QUERYA_REFRESH_OVERLAY=true`):
154
+
155
+
| Platform | Monitor Target | Before 0.4.4 | After 0.4.4 | Frame Build/Raster Time (Max) | Status |
Copy file name to clipboardExpand all lines: docs/perf-baseline.md
+17Lines changed: 17 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,3 +8,20 @@ Use this checklist once per milestone so timeline comparisons stay meaningful. R
8
8
4.**Heavy scroll**: PostgreSQL/MySQL table view or Mongo documents list with many rows; scroll quickly for 2–3 seconds.
9
9
10
10
Save a screenshot or export the timeline when filing regressions. After UI changes, repeat the same steps and compare peak frame times and rebuild counts (Widget rebuild stats in DevTools).
11
+
12
+
## Motion and High-Hz Verification (0.4.4+)
13
+
14
+
To verify that the motion system conforms to the budget and does not cause jank at higher refresh rates:
15
+
16
+
5.**Vsync & Frame Budget**: Confirm your monitor refresh rate.
17
+
- 60 Hz budget: **16.6 ms** per frame
18
+
- 90 Hz budget: **11.1 ms** per frame
19
+
- 120 Hz budget: **8.3 ms** per frame
20
+
- 144 Hz budget: **6.9 ms** per frame
21
+
6.**Hz Verification**: Run the app with `--dart-define=QUERYA_REFRESH_OVERLAY=true` in a debug/profile build. The floating overlay must show the correct target Hz.
22
+
7.**Animation Smoothness (DevTools)**:
23
+
- Record the timeline in the **Performance** tab while triggering animations (dialog fade-in, tree expand/collapse, tab cross-fading, dropdown show).
24
+
- Ensure the frame build and raster times stay below the respective Hz budget (e.g., < 8.3 ms on a 120 Hz monitor).
25
+
8.**Reduced Motion**:
26
+
- Turn on "Reduce Motion" in your OS settings or select **Preferences → Appearance → Motion → Off** (or **Reduced** for 50% speed).
27
+
- Verify that transitions complete instantly (**0 ms** for Off) or are appropriately shortened.
Theme: Add support for local SQLite database file connections. This allows users to select `.db`, `.sqlite`, or `.sqlite3` files from their disk, browse their schema, run arbitrary SQL queries in a dedicated workspace, and view paginated table grids.
7
+
8
+
## Why
9
+
10
+
-**Highly Requested**: SQLite is one of the most requested local database connectors by developers who want to inspect local app databases, cache files, or development databases.
11
+
-**Zero-Increase Bundle Size**: SQLite support can be fully implemented using the existing `sqflite_common_ffi` package already bundled for `LocalDb`, keeping the binary lightweight and dependency-clean.
12
+
13
+
## Scope
14
+
15
+
| ID | Issue | Scope | Summary |
16
+
|----|-------|--------|---------|
17
+
|**SQL-S1**|#195|`sqlite`, `core`|**Core Driver** — implement `SqliteConnection` wrapping `sqflite_common_ffi` and `SqliteService` to manage active connection handles to local files. |
18
+
|**SQL-S2**|#196|`sqlite`, `core`|**Schema Resolver** — read tables, views, and indexes metadata via `sqlite_master` catalog tables and column info via `PRAGMA table_info`. |
19
+
|**SQL-S3**|#197|`sqlite`, `ui`|**Connection Form** — create `SqliteConnectionForm` integrating native OS file picker (`file_selector` package) and a "Read-Only" safety toggle. |
20
+
|**SQL-S4**|#198|`sqlite`, `ui`|**Sidebar Integration** — render SQLite connections and their schema nodes in `ConnectionsPanel` connection tree. |
21
+
|**SQL-S5**|#199|`sqlite`, `ui`|**Workspace & Table View** — implement `SqliteWorkspaceHome` (SQL editor) and a paginated `SqliteTableView` database browser. |
22
+
|**SQL-S6**|#200|`sqlite`, `test`|**Test Coverage** — write unit tests for connection driver and widget/integration tests for workspace actions. |
Copy file name to clipboardExpand all lines: docs/release-checklist.md
+16-4Lines changed: 16 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
-
# Pre-release checklist (release **0.4.3**)
1
+
# Pre-release checklist (release **0.4.4**)
2
2
3
-
Use this before tagging **`0.4.3`** or running the **Release** workflow.
3
+
Use this before tagging **`0.4.4`** or running the **Release** workflow.
4
4
See [tags-and-releases.md](tags-and-releases.md) and [CHANGELOG.md](../CHANGELOG.md).
5
5
6
6
## Product smoke (manual)
@@ -32,6 +32,18 @@ Use **Preferences → Appearance** unless noted. Fixtures for copy/import tests
32
32
-[ ]**Visual theme editor (TP-F3)** — open **Theme editor**, change a workbench color, confirm live preview; **Export** writes valid `querya.theme.v1` JSON; import exported file applies the same colors.
33
33
-[ ]**Remote install (TP-F4)** — **Install from URL…** with a public HTTPS theme JSON (optional SHA-256): theme imports and appears in picker; `http://` or localhost URL is rejected with a clear error.
34
34
35
+
## Motion and High-Hz 0.4.4 (manual QA)
36
+
37
+
Verify the 0.4.4 motion tokens, smooth animations, and high refresh rate support:
-[ ]**Motion Full** — set to **Full**, check that all animations run normally.
41
+
-[ ]**Motion Reduced** — set to **Reduced**, check that animations are visibly faster (durations cut in half).
42
+
-[ ]**Motion Off** — set to **Off**, check that animations complete instantly (0 ms).
43
+
-[ ]**OS Reduced Motion** — enable reduced motion in OS settings. The app should automatically disable animations (acting as Off) regardless of in-app Full/Reduced settings (OS setting wins).
44
+
-[ ]**Hz diagnostics** — start the app with `--dart-define=QUERYA_REFRESH_OVERLAY=true`. The overlay should display the correct target refresh rate of the monitor.
45
+
-[ ]**High refresh rate smoothness** — verify dialog fade+scale, dropdown show, and tree expand/collapse look extremely smooth at high-Hz (90/120/144 Hz) without jank.
46
+
35
47
## Automated
36
48
37
49
-[ ]`flutter analyze` — clean (on Linux, if the analyzer crashes with **Too many open files**, try `ulimit -n 8192`; see [CONTRIBUTING.md](../CONTRIBUTING.md)).
@@ -40,8 +52,8 @@ Use **Preferences → Appearance** unless noted. Fixtures for copy/import tests
40
52
41
53
## Versioning and release
42
54
43
-
-[ ]`pubspec.yaml` on **`dev`** is **`0.4.1+7`** before merging to `main` (auto version-bump sets **`0.4.3+9`** on `main`).
44
-
-[ ] After merge, confirm GitHub Action **Auto Version Bump** committed **`0.4.3+…`** on `main`.
55
+
-[ ]`pubspec.yaml` on **`dev`** is **`0.4.1+7`** before merging to `main` (auto version-bump sets **`0.4.4+8`** on `main`).
56
+
-[ ] After merge, confirm GitHub Action **Auto Version Bump** committed **`0.4.4+…`** on `main`.
45
57
-[ ]**Tag** is placed on the **commit that includes all fixes** you want in binaries (a tag does not auto-include later commits; see [CONTRIBUTING.md](../CONTRIBUTING.md)).
46
58
-[ ] Run the **Release** workflow from GitHub Actions (see [tags-and-releases.md](tags-and-releases.md)).
47
59
-[ ] Verify **Linux** and **Windows** zip artifacts and `SHA256SUMS.txt` on the GitHub Release.
0 commit comments