Fix composer send shortcut conflicts

This commit is contained in:
Mohamed Boudra
2026-06-12 13:29:51 +07:00
parent 9e9d0ee305
commit 426547bfcc
16 changed files with 152 additions and 101 deletions
@@ -2,6 +2,7 @@ import { describe, expect, it, vi } from "vitest";
import {
buildKeyboardShortcutHelpSections,
buildEffectiveBindings,
getBindingIdForAction,
resolveKeyboardShortcut,
type ChordState,
type KeyboardShortcutContext,
@@ -413,6 +414,16 @@ describe("keyboard-shortcuts", () => {
event: { key: "d", code: "KeyD", metaKey: true },
context: { isMac: true, focusScope: "terminal" },
},
{
name: "does not bind Cmd+Enter as a rebindable message queue shortcut",
event: { key: "Enter", code: "Enter", metaKey: true },
context: { isMac: true, focusScope: "message-input" },
},
{
name: "does not bind Ctrl+Enter as a rebindable message queue shortcut",
event: { key: "Enter", code: "Enter", ctrlKey: true },
context: { isMac: false, focusScope: "message-input" },
},
{
name: "does not interrupt agent when terminal is focused",
event: { key: "Escape", code: "Escape" },
@@ -600,4 +611,17 @@ describe("keyboard-shortcut help sections", () => {
expect(openProject?.label).toBe("Open project");
expect(showShortcuts?.noteKey).toBe("settings.shortcuts.helpNotes.showKeyboardShortcuts");
});
it("does not expose Enter send behavior as rebindable shortcut rows", () => {
const sections = buildKeyboardShortcutHelpSections({ isMac: true, isDesktop: true });
expect(findRow(sections, "message-input-send")).toBeNull();
expect(findRow(sections, "message-input-queue")).toBeNull();
expect(
getBindingIdForAction("message-input-send", { isMac: true, isDesktop: true }),
).toBeNull();
expect(
getBindingIdForAction("message-input-queue", { isMac: true, isDesktop: true }),
).toBeNull();
});
});