Skip to content

feat(chat): LLM Markdown·코드 블록·Mermaid 응답 렌더링 #483

Description

@luke-n-alpha

문제

LLM은 일반 대화에서도 Markdown, 코드 블록, Mermaid 다이어그램을 직접 출력한다. 이를 평문으로 노출하면 응답 가독성이 무너지고 사용자가 코드를 활용하기 어렵다.

범위

  • 채팅 응답에서 안전한 Markdown을 렌더링한다.
  • fenced code block은 언어별 구문 강조, 복사, 접기/펼치기와 워크스페이스에서 열기를 제공한다.
  • mermaid fenced block은 다이어그램으로 렌더링하고, 실패하면 원문으로 안전하게 되돌린다.
  • 채팅에는 편집기 전체를 넣지 않고 읽기와 워크스페이스 전환에 필요한 기능만 둔다.
  • 워크스페이스 Mermaid 기반 #128과 렌더러 또는 파서 경계를 공유해 구현을 중복하지 않는다.

안전 및 수용 조건

  • 임의 HTML과 스크립트를 실행하지 않으며 Mermaid도 엄격한 보안 설정으로 렌더링한다.
  • 스트리밍 중 불완전한 fence가 화면을 깨뜨리지 않고 완료 후 정확히 렌더링된다.
  • 긴 코드와 좁은 화면에서도 대화 레이아웃이 유지된다.
  • Markdown 표식, 코드 블록 및 Mermaid 원문이 발화로 넘어가지 않는 규칙은 #480에서 단일 관리한다.
  • Markdown, 코드, Mermaid, 악성 입력 및 렌더 실패 경로를 자동 테스트로 고정한다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1-highHigh priorityenhancementNew feature or requestshellNextain Shell (Tauri + React)

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions