fix(ui): md_status 'success'/'completed' 어휘 양립 (S1 API remap 대비) #29
Reference in New Issue
Block a user
Delete Branch "fix/md-status-completed-compat"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
S1 backend(이미 main 머지, app/api/documents.py field_validator
_db_success_to_completed)가 직렬화 시 DB 'success'를 API 'completed'로 remap한다.
그런데 프론트 3곳이 raw 'success' 만 검사 → S1 backend 배포 시 침묵 회귀:
대신 raw PDF로 표시
DB↔API enum divergence guard: 두 어휘를 모두 성공으로 취급해야 S1 배포
전(API='success')·후(API='completed') 모두 안전. 단일 source 헬퍼로 수렴.
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>