eaef52371f
Same class as the plugin-route bug: KeybindSettings subscribed to useContributions(KEYBINDS_AREA) but discarded the snapshot and called the impure allKeybindActions() in render, so the React Compiler memoized the action list without the subscription as a visible input. A plugin keybind registered after the tab mounted never appeared, despite the comment promising "appear/disappear live". allKeybindActions()/contributedKeybinds() take an optional contribution snapshot (default: registry read, so the store/imperative callers are unchanged) and the settings tab passes its subscription through. One test, red on origin/main.