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`) 언어 추가. 프로덕션에서 스택 트레이스 미노출