From 02903f2db870a8fba8e7d6eadc48cfccb68754da Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Wed, 29 Apr 2026 17:09:00 -0700 Subject: [PATCH] [codex] fix terminal dimension validation (#2411) Co-authored-by: codex --- packages/contracts/src/terminal.test.ts | 13 ++++++++++++- packages/contracts/src/terminal.ts | 8 ++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/packages/contracts/src/terminal.test.ts b/packages/contracts/src/terminal.test.ts index 3feae67492429a8c7ca9bdf8dcef73d5b2181332..514320f6d4dea7ab1649a82d61beb37fdb2b8463 100644 --- a/packages/contracts/src/terminal.test.ts +++ b/packages/contracts/src/terminal.test.ts @@ -38,13 +38,24 @@ describe("TerminalOpenInput", () => { ).toBe(true); }); + it("accepts ultrawide terminal dimensions from xterm fit", () => { + expect( + decodes(TerminalOpenInput, { + threadId: "thread-1", + cwd: "/tmp/project", + cols: 423, + rows: 40, + }), + ).toBe(true); + }); + it("rejects invalid bounds", () => { expect( decodes(TerminalOpenInput, { threadId: "thread-1", cwd: "/tmp/project", cols: 10, - rows: 2, + rows: 0, }), ).toBe(false); }); diff --git a/packages/contracts/src/terminal.ts b/packages/contracts/src/terminal.ts index 21bd74a099907eeb3fa7471ce6b3f0cc6187cce4..c4d9972d8c3c2d7ac6e96bdd6ea75768f56f75cc 100644 --- a/packages/contracts/src/terminal.ts +++ b/packages/contracts/src/terminal.ts @@ -4,11 +4,11 @@ import { TrimmedNonEmptyString } from "./baseSchemas.ts"; export const DEFAULT_TERMINAL_ID = "default"; const TrimmedNonEmptyStringSchema = TrimmedNonEmptyString; -const TerminalColsSchema = Schema.Int.check(Schema.isGreaterThanOrEqualTo(20)).check( - Schema.isLessThanOrEqualTo(400), +const TerminalColsSchema = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1)).check( + Schema.isLessThanOrEqualTo(1000), ); -const TerminalRowsSchema = Schema.Int.check(Schema.isGreaterThanOrEqualTo(5)).check( - Schema.isLessThanOrEqualTo(200), +const TerminalRowsSchema = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1)).check( + Schema.isLessThanOrEqualTo(500), ); const TerminalIdSchema = TrimmedNonEmptyStringSchema.check(Schema.isMaxLength(128)); const TerminalEnvKeySchema = Schema.String.check( -- 2.54.0