Goal
Keep the left Connections tree (and surrounding shell) within frame budget on high-Hz displays so expand/collapse and scroll stay smooth.
| Hz |
Budget (build + raster) |
| 60 |
≤ 16.6 ms |
| 120 |
≤ 8.3 ms |
| 144 |
≤ 6.9 ms |
Measure in profile/release per docs/perf-baseline.md (tree expand + heavy scroll scenarios). Overlay: --dart-define=QUERYA_REFRESH_OVERLAY=true.
Context
Algorithm/memory epic #414 shipped (incl. SDUI tree virtualization). Remaining risk is UI-thread layout/paint on native trees: nested ListView(shrinkWrap) + QueryaAnimatedExpand (AnimatedSize) under the outer SliverList.
Visual parity epic: #718 — implement chrome unify without reintroducing eager Columns.
Children
- Flatten / virtualize native tree (remove nested shrinkWrap lists)
- Narrow selection rebuild fan-out
- Gate or skip height morph on large expands
- Profile checklist + DevTools capture for regressions
Review
Canvas: connection-tree-fps-review
Goal
Keep the left Connections tree (and surrounding shell) within frame budget on high-Hz displays so expand/collapse and scroll stay smooth.
Measure in profile/release per
docs/perf-baseline.md(tree expand + heavy scroll scenarios). Overlay:--dart-define=QUERYA_REFRESH_OVERLAY=true.Context
Algorithm/memory epic #414 shipped (incl. SDUI tree virtualization). Remaining risk is UI-thread layout/paint on native trees: nested
ListView(shrinkWrap)+QueryaAnimatedExpand(AnimatedSize) under the outerSliverList.Visual parity epic: #718 — implement chrome unify without reintroducing eager Columns.
Children
Review
Canvas: connection-tree-fps-review