feat(ui): submit task composers with Enter by default (#19272)

Use Enter to submit task replies and new tasks, with Shift+Enter for a new line. Add an experimental preference to require Command/Ctrl+Enter.

Preserve autocomplete selection and IME confirmation, and retain the modifier shortcut until saved settings load.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip authored and GitHub committed 2026-11-05 11:40:18 -06:00
1 parent b4e7b76635
commit b400f76647
19 files changed
+309 -9

No files matched your search

@@ -6,6 +6,14 @@ import {
} from "./instance.js";
describe("instance experimental settings validators", () => {
it("defaults legacy composer submission off and accepts only explicit boolean patches", () => {
expect(instanceExperimentalSettingsSchema.parse({}).enableLegacyComposerSubmit).toBe(false);
expect(patchInstanceExperimentalSettingsSchema.parse({})).not.toHaveProperty("enableLegacyComposerSubmit");
for (const enabled of [true, false]) {
expect(patchInstanceExperimentalSettingsSchema.parse({ enableLegacyComposerSubmit: enabled })).toEqual({ enableLegacyComposerSubmit: enabled });
}
expect(patchInstanceExperimentalSettingsSchema.safeParse({ enableLegacyComposerSubmit: "true" }).success).toBe(false);
});
it("keeps Notebook disabled by default and accepts only explicit boolean rollout values", () => {
expect(instanceExperimentalSettingsSchema.parse({ enableApps: true, enableMemoryConnectors: true }).enablePaperclipNotebook).toBe(false);
expect(patchInstanceExperimentalSettingsSchema.parse({})).toEqual({});
@@ -69,6 +69,7 @@ export const instanceExperimentalSettingsSchema = z.object({
enableArtifactsV1: z.boolean().default(true),
enableConferenceRoomChat: z.boolean().default(false),
enableClassicTaskInterface: z.boolean().default(false),
enableLegacyComposerSubmit: z.boolean().default(false),
enableIssuePlanDecompositions: z.boolean().default(false),
enableExperimentalFileViewer: z.boolean().default(false),
enableExternalObjects: z.boolean().default(false),