Skip to content

feat: Rust 네이티브 Figma→DevupUI MCP와 fidelity 검증 - #1

Open
owjs3901 wants to merge 93 commits into
mainfrom
owjs3901/figma-remote-mcp
Open

feat: Rust 네이티브 Figma→DevupUI MCP와 fidelity 검증#1
owjs3901 wants to merge 93 commits into
mainfrom
owjs3901/figma-remote-mcp

Conversation

@owjs3901

@owjs3901 owjs3901 commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

목적

Figma 링크/노드를 Rust 네이티브 MCP 하나로 탐색·수집하고, DevupUI TSX 및 devup.json을 높은 충실도로 생성합니다. 직접 OAuth 연결이 불가능하거나 승인되지 않은 환경에서는 공식 Figma MCP host handoff로 안전하게 전환합니다.

주요 변경

  • exact node, Section/Frame 탐색·선택·일괄 export와 WQUW-151 실제 Section의 10개 화면 검증
  • 로컬/원격 variables, text styles, typography, children, variants, assets를 보존하는 DevupUI 변환
  • 최종 TSX/source map/projection trace 기반의 source-derived fidelity 검증 및 strict/lossy 판정
  • 비기본 variant의 selector provenance, 중첩 차이 및 missing-child 구조 fallback을 lossy로 검출
  • 공식 MCP fast path 1회 수집, 제한된 session/cache 재사용, 실패한 root만 legacy fallback
  • PNG 실제 decode 검증, binary resource 독립 read, URI-정확한 ResourceLink, bounded memory delivery
  • 다중 파일 출력의 stage/commit/rollback과 복구 backup 보존; 기존 유사 이름 파일은 자동 삭제하지 않음
  • plugin fixture 268/268 snapshot parity 및 978-entry zero-not-ported ledger 유지
  • CI에서 중복 테스트 없이 cargo insta ... --check로 snapshot drift까지 검증

검증

  • cargo insta test --workspace --all-features --check — 통과, snapshot drift 없음
  • 총 227개 테스트 등록: 225개 실행·통과, official Figma MCP stdin이 필요한 live contract 2개만 명시적 ignore
  • cargo clippy --workspace --all-targets --all-features -- -D warnings — 통과
  • cargo fmt --all -- --check — 통과
  • cargo build --workspace --release — 통과
  • git diff --check — 통과
  • 독립 코드 리뷰 — Critical/Important 잔여 없음

현재 GitHub CI 실패/취소 표시는 비용 절감을 위해 사용자가 워크플로를 중단한 결과이며, 위 로컬 전체 gate로 최신 커밋을 검증했습니다.

보안·개인정보

  • Figma 접근 토큰/client secret을 코드·로그·artifact에 내장하지 않습니다.
  • OAuth는 PKCE와 localhost callback을 사용하며 token 저장/삭제 경로를 테스트합니다.
  • 수집·오류·cache key에는 URL credential과 디자인 payload를 노출하지 않으며, upstream 호출은 compiled read-only contract만 허용합니다.
  • 파일 출력은 사용자가 허용한 root 내부만 가능하고 symlink escape 및 중복 target을 거부합니다.

changepack

.changepacks/changepack_log_figma_remote_mcp.json에 네 crate의 Minor 변경과 전체 기능/호환성 내용을 기록했습니다.

커밋

  • e883ff8 fix: enforce end-to-end figma fidelity

남은 제약/위험

  • direct OAuth는 Figma dynamic client registration/catalog 승인 정책에 영향을 받을 수 있으며, 이 경우 공식 Figma MCP host handoff가 필요합니다.
  • official MCP 실서비스 응답을 stdin으로 받는 live contract 2개는 자동 테스트에서 ignore되어 실제 host 인증 세션에서 별도 확인해야 합니다.
  • cache capability는 최대 30초 동안 이전 catalog 상태를 재사용할 수 있습니다.
  • 결정적 Section batching은 bounded first-fit 방식이라 모든 입력에서 전역 최적 호출 수를 보장하지는 않습니다.
  • transactional file 교체 중 외부 file watcher가 아주 짧은 중간 상태를 관찰할 수 있고, 전역 mutex 때문에 동시 파일 export는 직렬화됩니다.

@owjs3901 owjs3901 changed the title feat: Rust 네이티브 Figma→DevupUI MCP 구현 feat: Rust 네이티브 Figma→DevupUI MCP와 fidelity 검증 Sep 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant