d2aa6c7c41
프론트의 `MAX_UPLOAD_BYTES = 100 * 1000 * 1000` 하드코딩 상수를 제거하고 서버 `GET /api/config/public` 응답을 단일 진실 공급원으로 사용. pre-check 자체는 그대로 유지 (UX 개선 — 대용량 파일을 edge proxy 까지 올리기 전 클라이언트에서 즉시 차단). 값의 출처만 서버로 이동. 변경: - frontend/src/lib/stores/config.ts 신규 — publicConfig readable store * 첫 구독 시 `/config/public` 1회 fetch * fetch 실패 시 fallback 100MB 유지 (서버 enforcement 가 본선이라 안전) - +layout.svelte onMount 에서 prewarm refresh() 호출 - UploadDropzone.svelte 에서 `$derived` 로 store 값을 반응형 구독 * `maxBytes` / `maxBytesLabel` 을 파생 * 에러 토스트 문구도 동적 라벨 사용 (`100MB` 하드코딩 제거) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>