fix(cmd): fix frecency/adaptive sorting in command palette
Three bugs caused frequently-used commands to rank below rarely-used ones:
1. Threshold-based sort cascade: The sort used adaptive score with a > 0.01
threshold, falling back to matchCounts only when scores tied. A command
selected once for query "ta" (score 0.25) would beat a command selected
100x total but never for "ta" specifically (score 0). Fixed by combining
adaptive score and frecency into a unified weighted ranking.
2. Missing cross-query adaptive feedback: Selecting "open tags" after typing
"open" only recorded feedback for "open" and its prefixes, not for "ta"
or "tags" which also match the command via substring search. Fixed by also
recording quarter-weight feedback for prefixes of each word in the command
name (excluding words already covered by the typed text).
3. Settings save race condition: saveAdaptiveData used a read-modify-write
pattern (get all settings, merge, set all) which could race with concurrent
saves. Fixed by using api.settings.setKey for independent key writes.
Also added getFrecencyScore() using asymptotic formula (count / (count + k))
with k=10 so frecency grows more slowly than adaptive score, giving query-
specific adaptive data 3x more influence while still letting heavily-used
commands rank well for any matching query.