Goal
Add a generic GPUI primitive that removes or replaces key bindings by stable metadata identity.
Motivation
AppShell currently must snapshot, clear, split, and rebuild the complete keymap to replace one runtime command binding. The primitive belongs in the engine because it is not framework command policy.
Acceptance
- Targeted removal preserves unrelated component and user binding tiers.
- AppShell deletes its snapshot-clear-rebuild workaround.
- Regression tests cover replacement, ordering, and stale binding removal.
Goal
Add a generic GPUI primitive that removes or replaces key bindings by stable metadata identity.
Motivation
AppShell currently must snapshot, clear, split, and rebuild the complete keymap to replace one runtime command binding. The primitive belongs in the engine because it is not framework command policy.
Acceptance