From 55c8e87a878ad3f213a965b709804646ba424782 Mon Sep 17 00:00:00 2001 From: "sentry[bot]" <39604003+sentry[bot]@users.noreply.github.com> Date: Fri, 14 Aug 2026 10:43:20 +0000 Subject: [PATCH] fix(cli): Guard markdown rendering against undefined input --- packages/cli/src/commands/project/list.ts | 2 +- packages/cli/src/lib/formatters/markdown.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/commands/project/list.ts b/packages/cli/src/commands/project/list.ts index c52cbe49f8..1a0c76e64e 100644 --- a/packages/cli/src/commands/project/list.ts +++ b/packages/cli/src/commands/project/list.ts @@ -233,7 +233,7 @@ async function resolveOrgsForAutoDetect(cwd: string): Promise { /** Column definitions for the project table. */ const PROJECT_COLUMNS: Column[] = [ { header: "ORG", value: (p) => p.orgSlug || "" }, - { header: "PROJECT", value: (p) => p.slug }, + { header: "PROJECT", value: (p) => p.slug || "" }, { header: "NAME", value: (p) => escapeMarkdownCell(p.name) }, { header: "PLATFORM", value: (p) => p.platform || "" }, ]; diff --git a/packages/cli/src/lib/formatters/markdown.ts b/packages/cli/src/lib/formatters/markdown.ts index cddc104a50..09d7ea93c3 100644 --- a/packages/cli/src/lib/formatters/markdown.ts +++ b/packages/cli/src/lib/formatters/markdown.ts @@ -550,10 +550,10 @@ export function renderMarkdown(md: string): string { // Parse and render to get structural formatting (headings, tables, lists), // then strip ANSI codes. This produces human-readable output with aligned // tables and proper heading emphasis, without ANSI escape sequences. - const tokens = marked.lexer(md); + const tokens = marked.lexer(md ?? ""); return stripAnsi(renderBlocks(tokens)).trimEnd(); } - const tokens = marked.lexer(md); + const tokens = marked.lexer(md ?? ""); return renderBlocks(tokens).trimEnd(); } @@ -570,7 +570,7 @@ export function renderMarkdown(md: string): string { * @returns Styled string (TTY) or plain text (non-TTY / plain mode) */ export function renderInlineMarkdown(md: string): string { - const tokens = marked.lexer(md); + const tokens = marked.lexer(md ?? ""); const rendered = renderInline(tokens.flatMap(flattenInline)); return isPlainOutput() ? stripAnsi(rendered) : rendered; }