[Feat]: Render Markdown in AI crash analysis
Maintainers usually reply within 1 day
Assessment
This issue has not been assessed yet.
Description
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:
packages/web-ui/src/components/ui/CrashAiAnalysis.tsx: the successful response currently renders{state.text}inside a<p>withwhitespace-pre-wrap. A Markdown renderer needs an appropriate block container.packages/web-ui/tests/components/ui/EditorErrorBoundary.test.tsx: existing coverage for analysis success, provider failures, recovery, and report redaction.src-tauri/src/ai.rs:CRASH_ANALYSIS_SYSTEM_PROMPTcurrently requests plain text with no Markdown headings. Review that wording alongside the supported response formatting.
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, andpnpm typecheck. If changing the Rust prompt, run its relevant tests andcargo check --no-default-featuresfromsrc-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
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from TabularisDB/tabularis
-
feature request good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
TabularisDB/tabularis#1395 ·
Maintainers usually reply within 1 day
-
feature request help wanted
Difficulty 5/5 Over a week Newbie friendliness 38/100
TabularisDB/tabularis#1418 ·
Maintainers usually reply within 1 day
-
feature request help wanted
Difficulty 5/5 Over a week Newbie friendliness 35/100
TabularisDB/tabularis#1417 ·
Maintainers usually reply within 1 day
-
[Feat]: Visual EXPLAIN: save plan snapshots and compare against a baselinePossibly taken @markankamaransheogarat-sys claimed this 1 day ago. Openfeature request help wanted
TabularisDB/tabularis#1416 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
feature request help wanted
Difficulty 5/5 Over a week Newbie friendliness 45/100
TabularisDB/tabularis#1415 ·
Maintainers usually reply within 1 day
All issues in TabularisDB/tabularis
Similar issues
-
bug needs-triage potential-regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
aws/aws-sdk-js-v3#8408 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
colinhacks/zod#6743 ·
Maintainers usually reply within 1 day
-
[BUG] Packing list: the weight field drops digits on a slow connection and saves the wrong weightOpen
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
openai/openai-node#3124 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
anthropics/anthropic-sdk-typescript#1296 ·
Maintainers usually reply within 8 days