You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by "pilichoumao (via GitHub)" <gi...@apache.org> on 2026/10/16 13:13:21 UTC

[PR] fix(ai): preserve complete Markdown fence info strings [rocketmq-dashboard]

pilichoumao opened a new pull request, #6880:
URL: https://github.com/apache/rocketmq-dashboard/pull/6880

   Fixes #6879.
   
   Valid AI Markdown such as a `shell` fence was rendered as `sh` code with `ell` inserted as the first line; `jsonc`, `json5` and language extensions had the same problem. Preserve fence info strings verbatim, while retaining code-body protection and the existing prose heading/list repairs. This applies to the common live/replayed text renderer.
   
   The compatibility choice is deliberate: remove the prefix heuristic that guessed a missing newline in strings such as `bashprintf`. Arbitrary info strings are valid Markdown, so an allowlist or a longer-first regex cannot reliably distinguish them from a command. The previous malformed-opener expectation now asserts preservation; its component fixture uses a properly separated command. The remaining code rendering assertions stay in place.
   
   Scope is three frontend files, with no dependencies, new UI strings or changes to stored answers. Related #6449 protects code bodies; #5730 addresses separate heading/thematic-break rules. Their source history (#5093 / #5089 / #5330) was reviewed; this fix covers info-string corruption left in the current normalizer.
   
   Validation:
   
   - Node 22 on macOS: 82 cases across the fence and actual AssistantBubble component suites passed. Restoring only the baseline normalizer made 35 of the same cases fail; the implementation was then restored.
   - Cases cover extended/unknown labels, metadata, case, LF/CRLF, idempotence of fenced text, unfinished streaming labels, and exact rendered code bytes in streaming and non-streaming modes.
   - ECS / Node 20.20.2: complete AI directory suite passed 305/305 across 21 files. Changed-file ESLint/formatting, all five license-tool tests, and `npm run build` passed (TypeScript, Vite and license gate: 132 actual components / 139 license files).
   - No live model, full frontend suite or browser session is claimed.
   
   AI assistance was used to investigate, implement and verify the change.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@rocketmq.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org