Files
2026-09-16 17:22:14 +09:00

3.9 KiB

2026-08-15

진행 중 feature: specs/004-tauri-shell/ — Tauri 데스크톱 껍데기 (A/B 비교판)

오늘 한 것

  • rust 툴체인 설치 (T001) — 8/11 부터 막혀 있던 사람 결정 항목. 승인받고 진행 - rustup + stable-x86_64-pc-windows-msvc (rustc/cargo 1.97.1) - MSVC 는 별도 Build Tools 를 새로 안 받고 이미 있던 VS 2026 Community 에 컴포넌트만 추가VC.Tools.x86.x64(14.51.36231) + Windows11SDK.26100(10.0.26100.0). 중복 설치 2~3GB 아낌 - rustc 로 실제 링크까지 되는 것 확인 (버전만 보고 넘기지 않음)

  • /speckit-taskstasks.md — 69개 task, 8 phase. spec→plan→tasks 문서 단계 끝

  • T002~T005 (Phase 1 나머지) — docs-lib 박제 + 의존성 - 4_rust_tauri/docs-lib/README.md + tauri-v2.md(API 박제) + tauri-v2-llms-full.md(공식 가이드 원문 2.4MB) - 2_frontend/docs-lib/tauri-api.mdinvoke/listen 표면 - 2_frontend@tauri-apps/api ^2.11.1 설치 → 빌드 통과 확인 - Phase 1 전부 끝. 이제 Rust 코드 써도 됨

박제하다 계획이 바뀐 것 3건 (중요)

공식 가이드를 안 믿고 cargo fetch 로 받은 실제 crate 소스에서 뽑았더니 나온 것들. (가이드 안에 global-shortcut 핸들러가 2인자/3인자로 둘 다 있어서 시그니처 근거로 못 씀 — R3 이 경고한 함정이 공식 문서에 그대로 있었다.)

  1. DPI 인지는 할 일이 없어졌다 (T049) — tao 가 이벤트 루프 만들 때 SetProcessDpiAwarenessContext(PER_MONITOR_AWARE_V2) 를 무조건 부른다. R11 의 "매니페스트 넣기"가 통째로 사라짐. US4 에서 좌표 어긋나면 원인이 DPI 가 아니라 좌표 변환 쪽
  2. 호스트 판별식을 바꿔야 한다 (T012·T015) — "__TAURI_INTERNALS__" in window 는 틀린다. 공식 clearMocks() 가 속성만 지우고 빈 객체를 남겨서 브라우저 모드 테스트가 tauri 로 오판됨 → typeof window.__TAURI_INTERNALS__?.invoke === "function" 으로 잰다
  3. window-state 기본 플래그가 함정 (T030) — StateFlags 기본값이 all() 이라 VISIBLE·DECORATIONS 까지 복원한다. 트레이 상주 + 프레임리스 앱엔 독 → SIZE | POSITION 만 켠다

공식 테스트 mock 도 찾음@tauri-apps/api/mocksmockIPC/clearMocks(+shouldMockEventslisten 까지). T012~T014 에서 직접 흉내낼 필요 없음.

다음 할 일

  • Phase 2 (T006~T011) ← 여기부터 — 반쯤 만든 스캐폴드 재검증하고 npm run tauri dev 첫 통과 - T006 main.rs lib 이름 정합이 첫 줄 - Cargo.toml 은 이미 봐뒀는데 멀쩡함(cargo generate-lockfile·cargo fetch 통과, 488 패키지 잠김)
  • Phase 3 = US1 (MVP) — 프론트 transport seam. Phase 2 와 병렬 가능 (rust 없이도 됨)

알아둘 상태

  • 4_rust_tauri/ 는 아직 커밋 안 된 반쯤 만든 스캐폴드빌드 안 됨 (Cargo.toml lib 이름 codeassist_tauri_libmain.rs_rust_tauri_lib 호출 — T006 이 이거) 손으로 쓴 Rust 는 컴파일 검증 0줄이라 전부 재검증 대상 (research R2)
  • Tauri v2 API 는 기억으로 쓰지 말 것 — T003 의 docs-lib 박제 후 그걸 보고 짬
  • US1 에서 가장 위험한 자리: 브릿지 테스트 3개(bridgeNavigate.test.ts·snippetBridge.test.ts·snippets.api.test.ts, 약 240줄)가 window.chrome.webview테스트 본문에서 런타임에 심는다. research R4 의 "모듈 로드 때 호스트 고정" 과 정면 충돌 — T015 에서 판별 시점을 먼저 정하고 테스트를 써야 함
  • 3_windowsApp(.NET)은 비교 기준선이라 무변경

덜 급한 것

  • specs/003-token-cost/ — spec 초안만 있고 plan 부터 안 됨