1.21.3 (2026-02-25)
Bug Fixes
- accessibility: add pointer fast-path in Element.Equal to avoid CGo on cache hits (#438) (1a2a3f8)
- accessibility: use nil instead of empty slice for leaf node children (#437) (a422f9a)
- bridge: avoid temporary NSString allocation in prefix matching loops (#435) (32451f4)
- bridge: use NSSet for O(1) lookup in NeruDrawIncrementGrid removal pass (#436) (5fb5551)
- eventtap: replace dispatch_sync with os_unfair_lock for hotkey lookup (#433) (029b767)
- gc: replace runtime.ReadMemStats with runtime/metrics to avoid STW pause (#439) (3c97f48)
- grid: gate runtime.ReadMemStats behind debug log level in DrawGrid (#441) (d94227f)
- grid: reuse Grid.Index() in drawGridIncrementalStructural instead of rebuilding maps (#445) (0ea1493)
- hints: avoid map allocation in hintsAreStructurallyEqual on hot path (#442) (2b239bf)
- hints: remove element caching from HintService (#444) (cb45be1)
- hints: replace fmt.Sprintf map keys with image.Point in drawHintsIncrementalStructural (#443) (b495951)
- overlays: cache hint labels and add drawMu to prevent use-after-free across all overlays (#434) (30243d9)
- overlay: use dirty-rect partial redraw for match-prefix-only updates (#431) (2ca0373)
- overlay: use system font as default, cache NSFont, and improve font resolution (#446) (5f5c08a)
- tree: add sync.Pool for TreeNode to reduce GC pressure (#440) (b4e9290)