fix(ui): md_status 'success'/'completed' 어휘 양립 (S1 API remap 대비) #29

Merged
hyungi merged 1 commits from fix/md-status-completed-compat into main 2026-06-08 15:27:46 +09:00
Owner

S1 backend(이미 main 머지, app/api/documents.py field_validator
_db_success_to_completed)가 직렬화 시 DB 'success'를 API 'completed'로 remap한다.
그런데 프론트 3곳이 raw 'success' 만 검사 → S1 backend 배포 시 침묵 회귀:

  • documents/[id]/+page.svelte canShowMarkdown: completed PDF가 markdown-first
    대신 raw PDF로 표시
  • documents/+page.svelte 인스펙터 칩 게이트: success 문서 칩 사라짐
  • MarkdownStatusBadge: 'completed'→default→null (성공 칩 사라짐)

DB↔API enum divergence guard: 두 어휘를 모두 성공으로 취급해야 S1 배포
전(API='success')·후(API='completed') 모두 안전. 단일 source 헬퍼로 수렴.

  • lib/utils/mdStatus.ts 신설: isMdSuccess / isMdStatusVisible (raw 비교 산재 금지)
  • [id] canShowMarkdown → isMdSuccess()
  • documents 인스펙터 게이트 → isMdStatusVisible()
  • MarkdownStatusBadge: case 'completed' 를 'success' 동의어로 추가

FE only, 백엔드/스키마/마이그레이션 무변. vite build + lint:tokens(신규 위반 0) PASS.

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

S1 backend(이미 main 머지, app/api/documents.py field_validator _db_success_to_completed)가 직렬화 시 DB 'success'를 API 'completed'로 remap한다. 그런데 프론트 3곳이 raw 'success' 만 검사 → S1 backend 배포 시 침묵 회귀: - documents/[id]/+page.svelte canShowMarkdown: completed PDF가 markdown-first 대신 raw PDF로 표시 - documents/+page.svelte 인스펙터 칩 게이트: success 문서 칩 사라짐 - MarkdownStatusBadge: 'completed'→default→null (성공 칩 사라짐) DB↔API enum divergence guard: 두 어휘를 모두 성공으로 취급해야 S1 배포 전(API='success')·후(API='completed') 모두 안전. 단일 source 헬퍼로 수렴. - lib/utils/mdStatus.ts 신설: isMdSuccess / isMdStatusVisible (raw 비교 산재 금지) - [id] canShowMarkdown → isMdSuccess() - documents 인스펙터 게이트 → isMdStatusVisible() - MarkdownStatusBadge: case 'completed' 를 'success' 동의어로 추가 FE only, 백엔드/스키마/마이그레이션 무변. vite build + lint:tokens(신규 위반 0) PASS. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
hyungi added 1 commit 2026-06-08 15:27:42 +09:00
S1 backend(이미 main 머지, app/api/documents.py field_validator
_db_success_to_completed)가 직렬화 시 DB 'success'를 API 'completed'로 remap한다.
그런데 프론트 3곳이 raw 'success' 만 검사 → S1 backend 배포 시 침묵 회귀:
  - documents/[id]/+page.svelte canShowMarkdown: completed PDF가 markdown-first
    대신 raw PDF로 표시
  - documents/+page.svelte 인스펙터 칩 게이트: success 문서 칩 사라짐
  - MarkdownStatusBadge: 'completed'→default→null (성공 칩 사라짐)

DB↔API enum divergence guard: 두 어휘를 모두 성공으로 취급해야 S1 배포
전(API='success')·후(API='completed') 모두 안전. 단일 source 헬퍼로 수렴.

- lib/utils/mdStatus.ts 신설: isMdSuccess / isMdStatusVisible (raw 비교 산재 금지)
- [id] canShowMarkdown → isMdSuccess()
- documents 인스펙터 게이트 → isMdStatusVisible()
- MarkdownStatusBadge: case 'completed' 를 'success' 동의어로 추가

FE only, 백엔드/스키마/마이그레이션 무변. vite build + lint:tokens(신규 위반 0) PASS.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
hyungi merged commit 0f37fe6492 into main 2026-06-08 15:27:46 +09:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: hyungi/hyungi_document_server#29