Skip to content

fix: add markdown rendering to chat UI and update CUJ2 documentation#159

Merged
mchmarny merged 3 commits intoNVIDIA:mainfrom
yuanchen8911:feat/chat-ui-markdown-rendering
Feb 20, 2026
Merged

fix: add markdown rendering to chat UI and update CUJ2 documentation#159
mchmarny merged 3 commits intoNVIDIA:mainfrom
yuanchen8911:feat/chat-ui-markdown-rendering

Conversation

@yuanchen8911
Copy link
Contributor

Summary

Add markdown rendering to the Dynamo chat UI so model responses display formatted headings, bold text, lists, and code blocks instead of raw markdown. Also add the Dynamo inference architecture diagram to CUJ2.

Motivation / Context

The chat UI at http://127.0.0.1:9090/chat.html was displaying raw markdown syntax (e.g., ### **Heading**, - **item**) from model responses as plain text, making responses hard to read.

Fixes: N/A
Related: N/A

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • Documentation update

Component(s) Affected

  • CLI (cmd/eidos, pkg/cli)
  • API server (cmd/eidosd, pkg/api, pkg/server)
  • Recipe engine / data (pkg/recipe)
  • Bundlers (pkg/bundler, pkg/component/*)
  • Collectors / snapshotter (pkg/collector, pkg/snapshotter)
  • Validator (pkg/validator)
  • Core libraries (pkg/errors, pkg/k8s)
  • Docs/examples (docs/, examples/)
  • Other: demos/workloads/inference chat UI

Implementation Notes

  • Replaced textContent with innerHTML + a self-contained markdown-to-HTML renderer (no CDN dependencies)
  • Renderer handles: headings, bold/italic, inline code, code blocks, lists, horizontal rules
  • <think>...</think> blocks from reasoning models are still stripped and shown in a styled "thinking" box
  • Server now re-reads chat.html on each request for easier development iteration
  • Added Dynamo inference architecture diagram (Client → Frontend → NATS → Worker) to CUJ2

Testing

# Tested manually by running chat-server.sh against a live Dynamo deployment
./demos/workloads/inference/chat-server.sh
# Verified markdown renders correctly in browser at http://127.0.0.1:9090/chat.html

Risk Assessment

  • Low — Isolated change, well-tested, easy to revert

Rollout notes: N/A

Checklist

  • Tests pass locally (make test with -race)
  • Linter passes (make lint)
  • I did not skip/disable tests to make CI green
  • I added/updated tests for new functionality
  • I updated docs if user-facing behavior changed
  • Changes follow existing patterns in the codebase
  • Commits are cryptographically signed (git commit -S) — GPG signing info

The chat UI was displaying raw markdown from model responses. Add a
self-contained markdown-to-HTML renderer that handles headings,
bold/italic, lists, code blocks, and horizontal rules. Also make the
server re-read chat.html on each request for easier development.

Add Dynamo inference architecture diagram to CUJ2 showing the
Client → Frontend → NATS → VllmDecodeWorker request flow.

Signed-off-by: Yuan Chen <'"$EMAIL"'>
@yuanchen8911 yuanchen8911 requested a review from a team as a code owner February 20, 2026 00:41
@yuanchen8911 yuanchen8911 added bug Something isn't working area/docs labels Feb 20, 2026
@yuanchen8911 yuanchen8911 changed the title fix: add markdown rendering to chat UI fix: add markdown rendering to chat UI and update CUJ2 documentation Feb 20, 2026
@mchmarny mchmarny merged commit 490aa0f into NVIDIA:main Feb 20, 2026
12 checks passed
@mchmarny mchmarny deleted the feat/chat-ui-markdown-rendering branch February 20, 2026 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants