fix(editor): shortcut profiles tell the truth — EOF keyboard port, drift-proof registry, fidelity pills - #346
Conversation
|
Warning Review limit reached
Next review available in: 24 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (7)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
… registry, fidelity pills Three agent audits (charter priorities, a manual-verified Logic/Live pass, a DAW-precedent framework) converged on one ratified policy (EOF-PROFILE-POLICY.md): faithfulness is owed to trained reflexes, and no panel row may advertise a key that runs something else. This PR is the keyboard half of that policy. The EOF port (self-contained to the Legacy profile): F1 = help; Ctrl+digit fret aliases (Ctrl+1-9 / Ctrl+0 / Ctrl+`) beside plain digits; numpad bookmarks (goto / Ctrl = set) with the Alt+digit chords kept as laptop aliases; Shift+L = select-like (EOF's precise select-like — follow keeps its transport button, EOF itself has no follow key); plain T freed (EOF's T is Crazy status, which we do not have — Tap stays on its authentic Ctrl+T); time-signature displays Shift+I (EOF's Shift+T is Midi Tones). The whole reference keyset is encoded line-by-line in tests/eof_reference.test.mjs with a verdict per key (match / adapt / ours / omit / global), pinned against the live resolver — drift or key-squatting now fails CI. The interception display-drift fix (the bug the audits ranked first): input.js grabs three plain keys before the resolvers (T palette; Logical G = Tempo Map; Cableton B = Draw Mode), but the registry still displayed them for their old commands. Tempo Map now shows T,T (G in Logical); Cableton bend relocates to Ctrl+B — not the audit's suggested Shift+B, which would violate the pinned override/tempo-map-overlay disjointness invariant (Shift+B taps tempo there), and Ctrl+B is EOF's bend chord anyway; Logical snap relocates to Shift+G. The keybind_profiles suite now treats intercepted keys as claimed, closing the test blind spot that let the drift sail green. Cableton also gains Live's Ctrl+E for the existing split-at-playhead command, and its Ctrl+L comment names Live's actual command (Toggle Loop Brace). Fidelity surfacing (derived, never hand-tagged): rows carry a computed fidelity against the profile's reference app from one small PROFILE_DIVERGENCES map — amber "Adapted" pills (reference key in the tooltip + aria-label), muted "Editor-only" pills, a derived bucket-count subtitle, and a "Show differences" filter that lists only the exceptions. Faithful bindings need no annotation. Runtime-verified through the real host (isolated preview on :8002): 18/18 checks — pills, filter, per-profile displays, and F1 live end-to-end. Suites: 306 tests, the only 2 failures (mixer_meter_teardown, song_fit) already fail on main. Lint 0 errors. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0178CGdtptemWd4tUbjkYDhH Signed-off-by: ChrisBeWithYou <chris@rifflarr.local>
b5bab07 to
5dbafcc
Compare
What
PR 1 of the shortcut-profile accuracy effort under the ratified profile policy (
EOF-PROFILE-POLICY.md, from a three-agent review: charter-priority tiers, a manual-verified Logic/Live audit, and a DAW-precedent framework). The governing rule: faithfulness is owed to trained reflexes — and no panel row may advertise a key that runs something else.1 · The EOF keyboard port (self-contained to Legacy (EOF))
F1opens helpCtrl+1-9/Ctrl+0/Ctrl+`set frets (beside plain digits)Ctrl+Numpad= set (Alt+digit chords kept)Shift+L→ select-like; follow keeps its transport buttonTfreed; Tap stays onCtrl+TShift+IThe whole reference keyset is now encoded line-by-line in
tests/eof_reference.test.mjswith a per-key verdict (match / adapt / ours / omit / global) asserted against the live resolver — future drift or key-squatting fails CI instead of shipping.2 · Interception display-drift (the bug both audits ranked first)
input.jsgrabs three plain keys before the resolvers (Tpalette · LogicalG= Tempo Map · CabletonB= Draw Mode), but the panel/menus still displayed them for their old commands ("Bend — B" while B drew notes). Now:T,T(Gin Logical).Ctrl+B— not the audit's suggested Shift+B, which would break the pinned override/tempo-map-overlay disjointness invariant (Shift+B taps tempo there); Ctrl+B is also EOF's bend chord.Shift+G(free in the FeedBack resolver).keybind_profilessuite now treats intercepted keys as claimed — closing the blind spot that let this drift sit green.Ctrl+E→ Split (command existed, keyless), and theCtrl+Lcomment names Live's actual "Toggle Loop Brace".3 · Fidelity surfacing (derived, never hand-tagged)
Shortcut-panel rows compute a fidelity bucket against the profile's reference app from one small
PROFILE_DIVERGENCESmap: amber Adapted pills (reference key in tooltip + aria-label), muted Editor-only pills, a derived subtitle ("Unmarked keys match EOF — 5 adapted, 25 editor-only"), and a Show differences filter. Faithful bindings need zero annotation.Verification
mixer_meter_teardown,song_fit) already fail onmainat this base and are untouched.npm run lint: 0 errors.Not in this PR
PR 2 — the EOF mouse note-entry grammar (scroll = sustain, Ctrl+scroll = fret, right-click = add/remove): the policy's highest-value faithfulness item, landing separately with the reference table's mouse lines.
🤖 Generated with Claude Code
https://claude.ai/code/session_0178CGdtptemWd4tUbjkYDhH