Tests: Added bdd/features/grid/summary-columns.feature (14 tests), translating the summary-column scenarios of the TestTrack grid specs: every renderer item of Add > Summary Columns with its renderer read from the grid, the top-panel remove icon (GROK-18256), a Tags column whose source column is removed (GROK-19942), a renamed source column, the columns across a layout and a project, and what a Tags column draws (GROK-20888)
Summary columns: Fixed the autostart failing with "Cannot read properties of undefined (reading 'dataFrame')" when it landed while a table view was still being built
Summary columns: Fixed the source-column rename and remove handler skipping Tags columns — it looked the settings up under the grid's lower-case cell type, where the Tags renderer keeps them under Tags; a removed source column now leaves the Tags column's settings
Forms viewer: Fixed the viewer drawing no cards at all when the leading card has no row (after a grid-header sort clears the current row, or with Show Current Row off and nothing hovered): a card for no row now keeps a real card's size, so the record cards stay laid out
GROK-20888: Fixed the Tags and Bar summary columns painting the whole grid body in the chip color (a canvas path leak: roundRect without beginPath)
Tests: Added the bdd project with five Forms viewer features (30 scenarios) on the viewers tier, and gave the viewer its automation surface (isRenderPending, onRendered, getWidgetStatus with cards, fields, labels and sort indicators as hit areas)
GROK-20380: Fixed the Forms viewer ordering its cards by the spreadsheet's sort with Use Grid Sort off
#3765: Forms viewer: Added the ability to pin rows via the context menu; pinned forms stay in place when scrolling
Vlaaivis manager: Fixed the mpo-line-editor import path, which broke the build after the editor moved into mpo/editors/
Vlaaivis: Fixed the build against the MPO desirability union — Subsector is an intersection now (an interface cannot extend a union), and VlaaivisColumnMetadata is typed on the numerical member it has always been
Introduced SVG cell renderer with content-based LRU caching for canvas rendering
Added SVG semantic type auto-detector
Tags cell renderer: Tags are colored consistently with the Colors panel — explicitly assigned category colors apply, and default colors follow the categorical color editor's value order instead of first-seen order
Tags cell renderer: Fixed missing return in getColor that left first render of a new tag with an undefined color
Tags cell renderer: Fixed empty cells painting a zero-width chip (empty tokens are dropped after the split)
Pie chart sparkline: Filter null columns in hit-test so hovering with stale/missing column names no longer throws
Forms cell renderer: Scoped per-cell scene via WeakMap keyed on grid (removes cross-grid contamination) and debounced tooltip shows (no more flicker)
Vlaaivis manager: Migrated drop handler to the new doDrop(args) signature in ui.makeDroppable
#2117: Pinned columns are not displayed properly with some row source options for the table (MouseOverRow, FilteredSelected, Selected, SelectedOrCurrent).