- Clear value history when node offsets change (insert/delete/resize/
manual offset edit) so stale values from old addresses don't show
false heat coloring
- Invalidate in-flight async reads (bump refreshGen) when tree layout
changes, preventing stale snapshot data from re-introducing heat
- Fix command bar hover cursor flicker: remove premature
applyHoverCursor() from applyDocument() — runs correctly via
applySelectionOverlays() after text is finalized
- Fix hover indicator survival: reorder refresh() so text-modifying
passes (updateCommandRow) run before overlay passes
- Guard synthetic Leave events during setText() to preserve hover state
- Remove primitives from type chooser when pointer modifier (* / **)
is active; remove primitives entirely in Root command bar mode
- Add test_editor and test_controller test coverage for heat clearing,
hover survival, and mixed hex/non-hex type scenarios
- Value history ring buffer (10 slots) tracks per-node change frequency
- Three-level heatmap: cold (blue), warm (amber), hot (red) via theme
- Heat persists indefinitely (no fade) — shows analysis history
- Calltip on hover shows previous values list
- Old themes auto-derive heat colors from existing palette
- Write failures no longer apply optimistic visual updates
- Crash handler: re-entrancy guard, context dump before risky APIs
- Replaced hardcoded theme factories with JSON files + CMake build step
- Shared ThemeFieldMeta table for DRY serialization and editor UI
- Fixed live preview (auto-triggers on color change, no toggle button)
- Fixed duplicate theme entries when editing built-in themes
- Moved title bar from icon to bold "Reclass" text with View > Show Icon toggle
- MDI tabs: 24px height, unicode close button styled like TypeSelectorPopup
- Added VS2022 Dark theme with purple accent colors
- Status bar padding, removed monospace font overrides on tabs/statusbar
- Default startup opens Ball demo + Unnamed hex64 tabs