2.2.0
GitHub Sync 재설계, 강화된 워크플로 엔진, 셀프서비스 계정 삭제
GitHub Sync 재설계 `IMPROVED`
- 리포지토리 트리와 파일 내용에서 file structure + key format 자동 감지(`flat` vs `nested`)
- 소스 언어에 고정된, 깃발과 언어 이름이 있는 Cloudflare 스타일 추천 카드
- 편집 모달이 File Structure와 Key Format을 노출. 저장은 기존 구조를 보존
네 가지 파일 구조 — 이제 Astro 포함 `NEW`
- Single file `locales/en.json` · Locale folders `locales/en/common.json` · Namespace folders `faq/en.json` *(신규)* · Locale-suffixed `faq.en.json`
- 감지·읽기·대칭 쓰기 경로를 end-to-end로 연결. v2 CDN 매니페스트 포함
더 매끄러운 연결 & 재동기화 `IMPROVED`
- 완료까지 폴링하는 "Sync now" 버튼
- 이미 연결된/고아 리포지토리는 409 대신 reconcile
- "You're all set" 화면. GitHub Sync 플로우는 불필요한 framework/SDK 단계를 건너뜀
번역 워크플로 엔진 — 프로덕션 강화 `IMPROVED`
- 언어별 동시 번역. key-keyed LLM 계약 + dual-limit 청킹 + 재시도
- 배치 워크플로에 GPT-4.1 Mini. 대량 번역은 워크플로 경유
- Cancel이 end-to-end. `translateBatch` 수정(no-op였으나 이제 실행되고 죽은 프로바이더에서 명시적으로 실패)
자체 DeepL 사용 `NEW`
DeepL은 이제 공유 계정 대신 자체 API 키를 사용. 각 프로젝트는 자체 쿼터로 번역.
read-after-write 일관성 `IMPROVED`
- 에디터, sync, publish 상태, CMS 활성화가 최신을 읽음
- Billing이 간극을 메움 — Checkout 후 유료 플랜이 즉시 반영
- 보안: 인가 상태는 항상 uncached로 읽음
셀프서비스 계정 삭제 `NEW`
- 이메일 확인 삭제. 전용 확인 페이지 + 종료 이메일(OAuth 포함)
- 확인 대기 상태에 Resend 버튼 + 강화된 삭제 모달. 사용자 FK를 null로
Content CMS — 안전한 게시, 업로드 & Trash `IMPROVED`
- Save-before-publish + dirty-state 게이팅. Trash, 미디어 업로드, 언어별 상태 명확화
- 다중값 관계 필드. 데이터 없을 때 가짜 분석 중단
안정성과 보안 `IMPROVED`
- 스턱-스플래시 콜드로드 수정 + 부트 워치독. error/not-found/empty 상태 재설계
- 파트너 OAuth: 콘텐츠 CRUD, API 키 발급. 중국어 (`zh`) 언어 추가. 프로덕션에서 스택 트레이스 미노출