chore(hotkeys): remove sloppak-convert library hotkey (#594)

* chore(hotkeys): remove sloppak-convert library hotkey

Removes the 'c' keyboard shortcut for converting library entries to
.sloppak. The shortcut was defined in two places:

- The no-op registerShortcut() entry that only existed to show in the
  ? help panel (the Sloppak Converter plugin handles conversion and
  can register its own shortcut via window.registerShortcut).
- The c dispatch in the library-entry keydown handler
  ({ c: 'button.sloppak-convert-btn', ... }) that triggered the
  plugin button.

* test+docs: update tests & CHANGELOG for removed `c` convert hotkey

The previous commit removed the `c` library hotkey but left three
assertions in tests/browser/keyboard-shortcuts.spec.ts that require it,
which fail deterministically (the two registry tests read window._panels
directly, independent of environment):
- should list all registered shortcuts (required {key:'c',scope:'library'})
- should have correct shortcut scopes (expected library::c)
- should show library shortcuts in help modal (Convert library entry / c)

Drop those assertions and record the removal under CHANGELOG
[Unreleased] -> Removed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: byrongamatos <xasiklas@gmail.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
OmikronApex
2026-06-24 21:24:31 +02:00
committed by GitHub
co-authored by Claude Opus 4.8 byrongamatos
parent 64801d5735
commit 82db8e56b1
3 changed files with 6 additions and 18 deletions
+2 -13
View File
@@ -923,15 +923,13 @@ document.addEventListener('keydown', (e) => {
// library entry — works on both grid cards and tree rows. Each
// dispatches to a button class that the entry markup already
// exposes, so plugins can keep owning the actual behavior:
// c → .sloppak-convert-btn (Sloppak Converter plugin)
// f → .fav-btn (favorite heart toggle)
// e → .edit-btn (edit metadata modal)
// No-op when no entry is currently focused / selected, when the
// entry doesn't expose the requested button (e.g. a sloppak
// entry has no convert button), or when the button is disabled.
// entry doesn't expose the requested button, or when the button is disabled.
// Bails on text input / drawer focus so single-letter typing in
// inputs still works.
const entryShortcut = { c: 'button.sloppak-convert-btn', f: 'button.fav-btn', e: 'button.edit-btn' }[e.key.toLowerCase()];
const entryShortcut = { f: 'button.fav-btn', e: 'button.edit-btn' }[e.key.toLowerCase()];
if (entryShortcut) {
if (_isInsideInteractiveControl(document.activeElement)) return;
const ae = document.activeElement;
@@ -9435,15 +9433,6 @@ registerShortcut({
}
});
registerShortcut({
key: 'c',
description: 'Convert library entry to .sloppak',
scope: 'library',
handler: () => {
// Handled by library navigation - this is for documentation only
}
});
registerShortcut({
key: 'f',
description: 'Toggle favorite',