Regression introduced in v0.3.1: resolveShortcut() bailed out as soon
as ANY saved shortcut map existed. So adding one custom binding (say
'g' → "Pulid for Flux 1") silently killed the 1..9 defaults entirely —
every other key returned null.
Fix: only return the custom mapping when there's an explicit entry for
the pressed key. Otherwise fall through to the 1..9 default. Net effect:
- Empty map → all defaults active (already correct from v0.3.4)
- Map with {g: ...} → 'g' jumps to the custom target; 1-9 still default
- Map with {1: "Skin repair"} → '1' overrides default, 2-9 still default