Initial Commit
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
# 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 부터 안 됨
|
||||
Reference in New Issue
Block a user