···7788## [Unreleased]
991010+## [0.9.0] — 2026-03-22
1111+1212+### Fixed
1313+- Fix XLSX export writing timestamps as Excel serial numbers instead of dates (#192)
1414+- Fix XLSX import losing Date type on formula results (#192)
1515+1616+### Added
1717+- **Toolbar redesign**: promoted underline, freeze panes, sort, and insert to main toolbar; freeze and insert are now dropdowns; overflow menu slimmed to less-common actions (#196)
1818+- **Column unhide indicator**: clickable teal bar on column headers with tooltip, matching the existing row unhide pattern (#193)
1919+- **Header hover states**: row and column headers highlight on hover (#195)
2020+- **Toast feedback**: freeze, merge, and unhide actions now show confirmation toasts (#197)
2121+2222+### Tests
2323+- 3113 unit tests across 103 test files
2424+1025## [0.8.1] — 2026-03-19
11261227### Fixed
2828+- Fix hiding rows and columns (#190)
2929+- Fix save/reload discarding cell contents (#189)
3030+- Fix dates losing type after save/reload and import (#188)
3131+- Fix freeze panes visual glitches during scrolling (#187)
3232+- Fix freeze panes z-index layering and missing frozen-corner class (#186)
1333- **Virtual scroll jumpiness**: fixed broken range cache (every scroll triggered full re-render), added scroll position preservation across innerHTML replacement, suppressed recursive scroll events (#177)
1434- **Virtual scroll not rendering past viewport**: `rh()` was scoped inside `renderGrid()` but referenced from module-level scroll handler — replaced with `getRowHeight()` (#177)
1535