Parent
Part of #414
Problem
VirtualResultGrid virtualizes rows (ListView.builder + itemExtent) but each row still builds a full Row of all columns. Wide result sets (100+ cols) still build O(visibleRows × cols) cells. Horizontal scroll wraps the entire vertical list.
Evidence
lib/shared/widgets/result_grid_view.dart (or equivalent VirtualResultGrid path)
Acceptance
Suggested fix
Two-axis viewport / TableView / recycle cells; optional freeze first column.
Parent
Part of #414
Problem
VirtualResultGridvirtualizes rows (ListView.builder+itemExtent) but each row still builds a fullRowof all columns. Wide result sets (100+ cols) still build O(visibleRows × cols) cells. Horizontal scroll wraps the entire vertical list.Evidence
lib/shared/widgets/result_grid_view.dart(or equivalent VirtualResultGrid path)Acceptance
Suggested fix
Two-axis viewport /
TableView/ recycle cells; optional freeze first column.