Files
CODE_ASSISTANT/docs/orders/20260815.md
T
2026-09-16 17:22:14 +09:00

48 lines
3.9 KiB
Markdown

# 2026-08-15
진행 중 feature: **`specs/004-tauri-shell/`** — Tauri 데스크톱 껍데기 (A/B 비교판)
## 오늘 한 것
- [x] **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` 로 실제 링크까지 되는 것 확인 (버전만 보고 넘기지 않음)
- [x] **`/speckit-tasks``tasks.md`** — 69개 task, 8 phase. spec→plan→tasks 문서 단계 끝
- [x] **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.md``invoke`/`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/mocks``mockIPC`/`clearMocks`(+`shouldMockEvents``listen` 까지). 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_lib``main.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 부터 안 됨