From ded4c290d84048262fdda28d111f33882e0a4b67 Mon Sep 17 00:00:00 2001 From: Craig Albrecht <31806992+craigalbrecht@users.noreply.github.com> Date: Wed, 4 Nov 2026 16:02:14 -0600 Subject: [PATCH] fix(app): shorten export filenames for long session titles (#60347) Co-authored-by: [owner] <[owner]@gmail.com> Co-authored-by: Daniel Smolsky --- packages/app/src/session/commands/export.test.ts | 4 ++++ packages/app/src/session/commands/export.ts | 1 + 2 files changed, 5 insertions(+) diff --git a/packages/app/src/session/commands/export.test.ts b/packages/app/src/session/commands/export.test.ts index 156cd825d87..4d94b5e76e1 100644 --- a/packages/app/src/session/commands/export.test.ts +++ b/packages/app/src/session/commands/export.test.ts @@ -14,6 +14,10 @@ describe("sessionExportFilename", () => { ])("names %o as %s", (session, filename) => { expect(sessionExportFilename(session)).toBe(filename) }) + + test("shortens long titles to fit the filename limit", () => { + expect(sessionExportFilename({ id: "ses_123", title: "a".repeat(300) })).toBe(`${"a".repeat(250)}.json`) + }) }) describe("fetchSessionExport", () => { diff --git a/packages/app/src/session/commands/export.ts b/packages/app/src/session/commands/export.ts index 52dc3037c34..88f21c47a8d 100644 --- a/packages/app/src/session/commands/export.ts +++ b/packages/app/src/session/commands/export.ts @@ -43,6 +43,7 @@ export function sessionExportFilename(session: { id: string; title?: string; slu const clean = name .toLowerCase() .replace(/[^a-z0-9_-]+/gi, "-") + .slice(0, 250) .replace(/^-+|-+$/g, "") return `${clean || session.id}.json`