Merge branch 'main' into dev
Resolve 38 conflicts preserving both sides' work: - Server: DB-based registries (dev) + WorkspaceGitService/DaemonConfigStore (main) - App: script proxy/voice MCP (dev) + pin/hide tabs/bootstrap boundary (main) - Shared: WorkspaceScriptPayload (dev) + git/GitHub runtime schemas (main) - Deleted workspace-registry-bootstrap.ts (dev's DB approach supersedes)
This commit is contained in:
@@ -58,7 +58,9 @@ export function resolveKeyboardFocusScope(input: {
|
||||
return "command-center";
|
||||
}
|
||||
|
||||
if (candidates.some((element) => Boolean(element.closest("[data-testid='message-input-root']")))) {
|
||||
if (
|
||||
candidates.some((element) => Boolean(element.closest("[data-testid='message-input-root']")))
|
||||
) {
|
||||
return "message-input";
|
||||
}
|
||||
|
||||
|
||||
@@ -261,7 +261,7 @@ describe("keyboard-shortcuts", () => {
|
||||
action: "sidebar.toggle.left",
|
||||
},
|
||||
{
|
||||
name: "binds Mod+. to toggle both sidebars on non-mac",
|
||||
name: "routes Mod+. to toggle both sidebars on non-mac",
|
||||
event: { key: ".", code: "Period", ctrlKey: true },
|
||||
context: { isMac: false },
|
||||
action: "sidebar.toggle.both",
|
||||
@@ -344,6 +344,11 @@ describe("keyboard-shortcuts", () => {
|
||||
event: { key: "k", code: "KeyK", ctrlKey: true },
|
||||
context: { isMac: false, focusScope: "terminal" },
|
||||
},
|
||||
{
|
||||
name: "does not bind Ctrl+B on non-mac while terminal is focused",
|
||||
event: { key: "b", code: "KeyB", ctrlKey: true },
|
||||
context: { isMac: false, focusScope: "terminal" },
|
||||
},
|
||||
{
|
||||
name: "does not route message-input actions when terminal is focused",
|
||||
event: { key: "d", code: "KeyD", metaKey: true },
|
||||
|
||||
@@ -33,12 +33,7 @@ export type KeyboardShortcutHelpRow = {
|
||||
note?: string;
|
||||
};
|
||||
|
||||
export type ShortcutSectionId =
|
||||
| "navigation"
|
||||
| "tabs-panes"
|
||||
| "projects"
|
||||
| "panels"
|
||||
| "agent-input";
|
||||
export type ShortcutSectionId = "navigation" | "tabs-panes" | "projects" | "panels" | "agent-input";
|
||||
|
||||
export type KeyboardShortcutHelpSection = {
|
||||
id: ShortcutSectionId;
|
||||
@@ -53,7 +48,6 @@ type KeyboardShortcutPlatformContext = {
|
||||
isDesktop: boolean;
|
||||
};
|
||||
|
||||
|
||||
interface ShortcutWhen {
|
||||
/** true = mac only, false = non-mac only */
|
||||
mac?: boolean;
|
||||
@@ -924,9 +918,7 @@ function parseBinding(binding: ShortcutBinding): ParsedShortcutBinding {
|
||||
export const DEFAULT_BINDINGS: readonly ParsedShortcutBinding[] =
|
||||
SHORTCUT_BINDINGS.map(parseBinding);
|
||||
|
||||
export function buildEffectiveBindings(
|
||||
overrides: Record<string, string>,
|
||||
): ParsedShortcutBinding[] {
|
||||
export function buildEffectiveBindings(overrides: Record<string, string>): ParsedShortcutBinding[] {
|
||||
return DEFAULT_BINDINGS.map(function (binding) {
|
||||
const override = overrides[binding.id];
|
||||
if (override === undefined) {
|
||||
@@ -1252,7 +1244,13 @@ export function buildKeyboardShortcutHelpSections(
|
||||
});
|
||||
}
|
||||
|
||||
const sectionOrder: ShortcutSectionId[] = ["navigation", "tabs-panes", "projects", "panels", "agent-input"];
|
||||
const sectionOrder: ShortcutSectionId[] = [
|
||||
"navigation",
|
||||
"tabs-panes",
|
||||
"projects",
|
||||
"panels",
|
||||
"agent-input",
|
||||
];
|
||||
|
||||
return sectionOrder.flatMap((sectionId) => {
|
||||
const rows = rowsBySection.get(sectionId) ?? [];
|
||||
|
||||
Reference in New Issue
Block a user