문제
LLM은 일반 대화에서도 Markdown, 코드 블록, Mermaid 다이어그램을 직접 출력한다. 이를 평문으로 노출하면 응답 가독성이 무너지고 사용자가 코드를 활용하기 어렵다.
범위
- 채팅 응답에서 안전한 Markdown을 렌더링한다.
- fenced code block은 언어별 구문 강조, 복사, 접기/펼치기와 워크스페이스에서 열기를 제공한다.
- mermaid fenced block은 다이어그램으로 렌더링하고, 실패하면 원문으로 안전하게 되돌린다.
- 채팅에는 편집기 전체를 넣지 않고 읽기와 워크스페이스 전환에 필요한 기능만 둔다.
- 워크스페이스 Mermaid 기반 #128과 렌더러 또는 파서 경계를 공유해 구현을 중복하지 않는다.
안전 및 수용 조건
- 임의 HTML과 스크립트를 실행하지 않으며 Mermaid도 엄격한 보안 설정으로 렌더링한다.
- 스트리밍 중 불완전한 fence가 화면을 깨뜨리지 않고 완료 후 정확히 렌더링된다.
- 긴 코드와 좁은 화면에서도 대화 레이아웃이 유지된다.
- Markdown 표식, 코드 블록 및 Mermaid 원문이 발화로 넘어가지 않는 규칙은 #480에서 단일 관리한다.
- Markdown, 코드, Mermaid, 악성 입력 및 렌더 실패 경로를 자동 테스트로 고정한다.
문제
LLM은 일반 대화에서도 Markdown, 코드 블록, Mermaid 다이어그램을 직접 출력한다. 이를 평문으로 노출하면 응답 가독성이 무너지고 사용자가 코드를 활용하기 어렵다.
범위
안전 및 수용 조건