feat: cmd+shift+delete deletes the highlighted conversation #11

Merged
adrianbonpin merged 1 commits from feat/delete-shortcut into prod 2026-10-03 21:45:11 +00:00
Owner

Change

The delete action in the chat view had no shortcut, so removing a conversation meant opening the action panel with cmd+K. It now takes cmd+shift+delete.

Chat Sessions uses the same combination so one shortcut means one thing across both commands (it was cmd+delete there).

Why the key string is backspace

The key macOS labels delete is backspace, and Vicinae's keyboard.cpp key map has:

{"backspace",  Qt::Key_Backspace},   // rendered as the delete token
{"delete",     Qt::Key_Delete},      // the forward-delete key
{"deleteForward", Qt::Key_Backspace} // alias, confusingly

So "backspace" is the correct value for the key you press, and "delete" would have bound forward-delete instead.

Not verified by running it

I could not confirm the shortcut fires. I tried to verify the rendering by temporarily promoting the action to primary so the bottom action bar would display it — but an A/B test with cmd+shift+c (a combo Vicinae renders as three tokens elsewhere) showed the action bar only ever renders the primary action's implicit Return, never a custom shortcut. Both rendered as a lone return glyph.

Firing a shortcut needs a real keystroke and this machine cannot send one (osascript has no Accessibility permission). The reasoning above is read from Vicinae's source, not observed.

Please try cmd+shift+delete on a conversation you do not mind losing.

Verification

  • tsc --noEmit clean, eslint . clean
  • 156 tests passing, vici build succeeds
  • No test covers this: it is a JSX prop, and the harness has no component renderer
## Change The delete action in the chat view had no shortcut, so removing a conversation meant opening the action panel with `cmd+K`. It now takes **`cmd+shift+delete`**. **Chat Sessions** uses the same combination so one shortcut means one thing across both commands (it was `cmd+delete` there). ## Why the key string is `backspace` The key macOS labels **delete** is backspace, and Vicinae's `keyboard.cpp` key map has: ```cpp {"backspace", Qt::Key_Backspace}, // rendered as the delete token {"delete", Qt::Key_Delete}, // the forward-delete key {"deleteForward", Qt::Key_Backspace} // alias, confusingly ``` So `"backspace"` is the correct value for the key you press, and `"delete"` would have bound forward-delete instead. ## Not verified by running it **I could not confirm the shortcut fires.** I tried to verify the rendering by temporarily promoting the action to primary so the bottom action bar would display it — but an A/B test with `cmd+shift+c` (a combo Vicinae renders as three tokens elsewhere) showed the action bar **only ever renders the primary action's implicit Return**, never a custom shortcut. Both rendered as a lone return glyph. Firing a shortcut needs a real keystroke and this machine cannot send one (`osascript` has no Accessibility permission). The reasoning above is read from Vicinae's source, not observed. Please try `cmd+shift+delete` on a conversation you do not mind losing. ## Verification - `tsc --noEmit` clean, `eslint .` clean - 156 tests passing, `vici build` succeeds - No test covers this: it is a JSX prop, and the harness has no component renderer
adrianbonpin added 1 commit 2026-10-03 21:44:53 +00:00
The delete action in the chat view had no shortcut, so removing a
conversation meant opening the action panel. It now takes cmd+shift+delete,
and Chat Sessions uses the same combination so one shortcut means one
thing across both commands (it was cmd+delete there).

The key macOS labels "delete" is backspace, and Vicinae's key map has
`"backspace" -> Qt::Key_Backspace`, rendered as the delete token. That
mapping is why the shortcut string is "backspace" rather than "delete":
`"delete"` maps to Qt::Key_Delete, which is the forward-delete key, and
`"deleteForward"` aliases backspace too.

Not verified by running it. I tried to confirm the shortcut renders by
temporarily promoting the action to primary so the bottom bar would show
it, but an A/B test with cmd+shift+c proved the action bar only ever
renders the primary action's implicit Return, never a custom shortcut:
both rendered as a lone return glyph. Firing a shortcut needs a real
keystroke, and this machine cannot send one. The reasoning above is from
Vicinae's keyboard.cpp key map, not from observation.

typecheck, eslint, 156 tests and vici build all pass.
adrianbonpin merged commit 75fc914eca into prod 2026-10-03 21:45:11 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adrianbonpin/lam-agent-vicinae#11