* fix(keymap): reduce Niri parser CPU usage * test(keymap): cover Niri parser scan budget * fix(keymap): keep Hyprland refreshes within CPU budget * chore(keymap): bump release to 1.3.4
1.7 KiB
1.7 KiB
Changelog
All notable changes to Keymap are documented in this file.
[1.3.4] - 2026-07-29
Fixed
- Prevented Niri startup CPU-budget failures on large, split configurations.
- Prevented Hyprland refreshes from exhausting the callback CPU budget and leaving the shortcut snapshot stuck in its loading state.
- Restored editing for literal native-Lua binds after the optimized refresh.
Changed
- Skipped the hidden-bind scan for files without Keymap hidden sentinels.
- Skipped character-level parsing for included files that cannot contain binds or nested includes.
- Added fast paths for common Hyprland Lua literals and dispatcher expressions.
- Switched active Hyprland source validation to exact snippet comparison while retaining legacy fingerprints for hidden blocks and older snapshots.
Tests
- Added a 127-bind split-config regression with a large unrelated include.
- Added a split native-Lua regression covering invalid Hyprland JSON fallback, callback instruction budgets, and editable source provenance.
[1.3.1] - 2026-07-21
Fixed
- Prevented startup timeouts while parsing larger Niri, Hyprland, and MangoWC configurations.
- Prevented intermittent callback timeouts when rapidly switching keyboard modifier layers.
Changed
- Accelerated stable fingerprints with Luau's native
bit32operations while retaining a plain-Lua fallback. - Avoided reading Niri's root configuration twice during a refresh.
- Made loading snapshots lightweight instead of serializing the previous bind tree again.
- Cached panel translations, settings, keyboard indexes, colors, and dynamic key callbacks between renders.
Tests
- Added 93-bind scale regressions for Niri, Hyprland, and MangoWC.