Context
Follow-ups from Bugbot review of the Fluid morphing work (#342) after merge to dev.
Bugs
1. Keyboard sidebar resize not persisted (medium)
Where: lib/features/main_screen/main_screen.dart (connections panel width / QueryaSplitHandle)
Connections panel width is written to settings only from onDragEnd via _schedulePersistAfterSettle. Keyboard and semantics resize handlers call onDragDelta only, so accessible resizing never triggers persistence and the width reverts on restart.
Expected: Arrow-key / semantics resize persists like mouse drag-end.
2. Pending width save dropped on dispose (medium)
Where: lib/features/main_screen/main_screen.dart (_schedulePersistAfterSettle / dispose)
When the main split disposes while a post-settle persist listener is still registered, the listener is removed without flushing _leftPanelWidth to AppSettings. Closing or navigating away during spring settle can lose the user’s last resize.
Expected: Flush pending width on dispose (or cancel settle and persist current clamped value).
3. Dropdown exit animation cannot run (low)
Where: lib/shared/widgets/querya_dropdown.dart (_QueryaDropdownMenuEnter / MenuAnchor)
Menu close sets _menuOpen to false, but MenuAnchor removes the menu overlay when close() completes. The fade/slide exit driven by openNotifier is torn down with the menu, so the exit curve never plays and the menu disappears abruptly.
Expected: Either delay close() until exit animation finishes, or document that exit is best-effort / snap-only under MenuAnchor.
Acceptance
Related
Context
Follow-ups from Bugbot review of the Fluid morphing work (#342) after merge to
dev.Bugs
1. Keyboard sidebar resize not persisted (medium)
Where:
lib/features/main_screen/main_screen.dart(connections panel width /QueryaSplitHandle)Connections panel width is written to settings only from
onDragEndvia_schedulePersistAfterSettle. Keyboard and semantics resize handlers callonDragDeltaonly, so accessible resizing never triggers persistence and the width reverts on restart.Expected: Arrow-key / semantics resize persists like mouse drag-end.
2. Pending width save dropped on dispose (medium)
Where:
lib/features/main_screen/main_screen.dart(_schedulePersistAfterSettle/ dispose)When the main split disposes while a post-settle persist listener is still registered, the listener is removed without flushing
_leftPanelWidthtoAppSettings. Closing or navigating away during spring settle can lose the user’s last resize.Expected: Flush pending width on dispose (or cancel settle and persist current clamped value).
3. Dropdown exit animation cannot run (low)
Where:
lib/shared/widgets/querya_dropdown.dart(_QueryaDropdownMenuEnter/MenuAnchor)Menu close sets
_menuOpento false, butMenuAnchorremoves the menu overlay whenclose()completes. The fade/slide exit driven byopenNotifieris torn down with the menu, so the exit curve never plays and the menu disappears abruptly.Expected: Either delay
close()until exit animation finishes, or document that exit is best-effort / snap-only underMenuAnchor.Acceptance
Related