From a2c6e40aee2cb8b276078e99d32542f2820fd3cd Mon Sep 17 00:00:00 2001 From: Simon He <674949287@qq.com> Date: Tue, 30 Jun 2026 16:29:54 +0800 Subject: [PATCH 1/5] feat(web): add Mermaid diagram rendering and off-thread KaTeX/Mermaid workers Enable Mermaid diagram support in the web chat via markstream-vue's enableMermaid(). Set up Web Workers for both KaTeX rendering and Mermaid parsing using markstream-vue's pre-built workers (katexRenderer.worker, mermaidParser.worker), keeping heavy computation off the main thread during live streaming. --- .changeset/web-mermaid-workers.md | 5 +++ apps/kimi-web/package.json | 1 + .../kimi-web/src/components/chat/Markdown.vue | 42 ++++++++++++++++++- apps/kimi-web/src/env.d.ts | 9 ++++ apps/kimi-web/vite.config.ts | 6 +++ pnpm-lock.yaml | 3 ++ 6 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 .changeset/web-mermaid-workers.md diff --git a/.changeset/web-mermaid-workers.md b/.changeset/web-mermaid-workers.md new file mode 100644 index 000000000..06cab20a8 --- /dev/null +++ b/.changeset/web-mermaid-workers.md @@ -0,0 +1,5 @@ +--- +"@moonshot-ai/kimi-code": minor +--- + +Add Mermaid diagram rendering to the web chat. Fenced `mermaid` blocks in assistant responses now render as diagrams. KaTeX math and Mermaid diagram parsing also run in Web Workers to keep the UI responsive during live streaming. diff --git a/apps/kimi-web/package.json b/apps/kimi-web/package.json index 0c9349592..61675f5fa 100644 --- a/apps/kimi-web/package.json +++ b/apps/kimi-web/package.json @@ -18,6 +18,7 @@ "@xterm/xterm": "^6.0.0", "katex": "^0.17.0", "markstream-vue": "^1.0.4", + "mermaid": "^11.15.0", "shiki": "^4.3.0", "stream-markdown": "^0.0.16", "vue": "^3.5.35", diff --git a/apps/kimi-web/src/components/chat/Markdown.vue b/apps/kimi-web/src/components/chat/Markdown.vue index dcafb4790..b6168e6f1 100644 --- a/apps/kimi-web/src/components/chat/Markdown.vue +++ b/apps/kimi-web/src/components/chat/Markdown.vue @@ -2,7 +2,15 @@