Parent
Part of #356 · Fluid perf audit F2 (P0)
Problem
QueryaSwitchingBody / QueryaCrossFadeStack apply AnimatedOpacity (and slide) over full workspace trees (empty hero ↔ connected SQL/editor) without RepaintBoundary per layer. Inactive keep-alive children stay mounted under opacity 0 and may keep tickers/work running.
Where:
lib/core/motion/querya_switching_body.dart
lib/core/motion/querya_cross_fade_stack.dart
- callers:
workspace_panel.dart, engine workspace homes
Expected
- Each morph layer wrapped in
RepaintBoundary
- Inactive layers use
TickerMode(enabled: active) (keep IgnorePointer / ExcludeFocus)
- No new hard-cut regressions for empty ↔ connected
Acceptance
Related
Parent
Part of #356 · Fluid perf audit F2 (P0)
Problem
QueryaSwitchingBody/QueryaCrossFadeStackapplyAnimatedOpacity(and slide) over full workspace trees (empty hero ↔ connected SQL/editor) withoutRepaintBoundaryper layer. Inactive keep-alive children stay mounted under opacity 0 and may keep tickers/work running.Where:
lib/core/motion/querya_switching_body.dartlib/core/motion/querya_cross_fade_stack.dartworkspace_panel.dart, engine workspace homesExpected
RepaintBoundaryTickerMode(enabled: active)(keep IgnorePointer / ExcludeFocus)Acceptance
Related
docs/perf-baseline.md§9 Empty ↔ connected