[Feat]: Render Markdown in AI crash analysis

Closed
#1,371 2 comments 0 reactions 1 assignee View on GitHub

Maintainers usually reply within 1 day

@Asymtode712 is already working on this.

Since Nov 3, 2026.

  • #1375 by @Asymtode712 — merged

Assessment

This issue has not been assessed yet.

Description

feature request
Prerequisites
  • I have written a descriptive issue title.
  • I have searched existing issues to ensure the feature has not already been requested.
🚀 Feature Proposal

Render Markdown in the response shown by Analyze with AI on the editor crash screen.

Follow-up to #1369 and #1360. During desktop verification of #1369, OpenRouter returned numbered recovery steps with bold titles even though the system prompt asks for plain text. CrashAiAnalysis currently renders the response as text inside a paragraph, so Markdown markers are displayed literally.

Support common Markdown formatting in this analysis panel: paragraphs, headings, emphasis, ordered and unordered lists, inline code, fenced code blocks, and links. Keep plain-text responses readable too.

Motivation

Crash analysis often contains recovery steps, file names, commands, and error fragments. Rendering their formatting makes the advice easier to scan and follow. The display should handle Markdown returned by a provider rather than depending on the provider following the plain-text instruction exactly.

Example

An AI response such as:

The editor could not render a component.

1. **Restart Tabularis** and reopen the connection.
2. Check the error mentioning `ReviewFixture`.

If the problem persists, include the following excerpt in a report:

```text
Error: component failed to render
```

should display bold step titles, a numbered list, inline code, and a code block instead of literal Markdown markers.

Acceptance criteria
  • The crash analysis panel renders the supported Markdown elements, including the numbered steps and bold titles in the example.
  • Plain-text responses and line breaks remain readable.
  • Long text and code blocks stay within the existing scrollable panel, with code scrolling horizontally when needed.
  • Formatting uses theme tokens and remains readable in light and dark themes.
  • Provider output cannot execute raw HTML or scripts; links reject unsafe URL schemes and use the application's platform-aware external-link handling.
  • Loading, provider errors, retrying the analysis, and the existing editor recovery buttons continue to work.
  • Component tests cover Markdown, plain text, long code blocks, and unsafe markup/links. Verify the shared panel in desktop and web.
Where to start

Verified implementation pointers:

Contributor notes
  • Follow the repo rules in .rules/, including React, TypeScript, design tokens, accessibility, and testing conventions.
  • Add any new UI strings to every locale under packages/web-ui/src/i18n/locales/.
  • Keep the renderer usable by the shared desktop and web frontend, including platform-aware links.
  • Run the relevant component tests, pnpm lint, and pnpm typecheck. If changing the Rust prompt, run its relevant tests and cargo check --no-default-features from src-tauri/; keep shared logic outside the desktop transport.
  • Questions? Ask here or on Discord.
Dominant language
TypeScript
Stars
5.1k
Forks
335
Avg merge
1d 11h
Merged PRs (30d)
289

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from TabularisDB/tabularis

All issues in TabularisDB/tabularis

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.