## 2026-05-07 — Wiki 패널 뷰포트 채움 + Windows 로컬 빌드 스크립트

### 배경

1080p 이상 화면에서 Wiki 탭이 580px 고정 높이 카드로 박혀 있어 아래로 큰 검은 빈 영역이 남았고, ReactFlow 그래프와 활동 로그가 그 박스 안에서 스크롤되어 뷰가 답답했다. 또한 계산된 오프셋이 실제 패널 상단 위치와 거의 일치해서 패널이 뷰포트 바닥에 딱 붙고 `rounded-xl` 하단 모서리가 잘렸다. 별도로, CI 릴리스 워크플로는 있지만 로컬에서 Windows 데스크톱 아티팩트를 빠르게 테스트할 방법이 없어 빌드 스크립트를 추가했다.

### 주요 변경

#### 1. Wiki 패널 뷰포트 채움 (`9c55716`)

패널 외곽 컨테이너를 고정 높이에서 `calc(100vh - 280px)` 기반 동적 높이로 전환. 위키/원본/활동 sub-tab 세 곳이 모두 같은 컨테이너 안이라 한 줄 수정으로 전부 적용됨.

- **`src/client/src/components/MemoryList.tsx`**: 외곽 컨테이너 `height: 580` → `calc(100vh - 280px)` + `minHeight: 480` (작은 화면 floor)
- **`src/client/src/components/MemoryNetworkGraph.tsx`**: 빈 placeholder와 ReactFlow 래퍼 두 곳을 `h-[600px]` → `h-full`로 변경. `fitView` 옵션이 켜져 있어 줌이 새 영역에 자동 재조정

#### 2. Wiki 패널 하단 여백 확보 (`3ab5338`)

이전 오프셋 280px이 실제 패널 상단 위치(헤더 + 탭 + sub-tab 툴바 합산)와 거의 같아 패널이 뷰포트 바닥에 닿았다. 오프셋을 60px 더 키워 `rounded-xl` 하단 모서리가 화면 안에서 보이도록 함.

- **`src/client/src/components/MemoryList.tsx`**: 패널 외곽 height 오프셋 280px → 340px. `minHeight: 480` floor는 유지

#### 3. Windows 로컬 빌드 스크립트 `build-win.bat` (`4404c34`)

CI 없이 로컬에서 Windows 데스크톱 아티팩트를 빠르게 검증하기 위한 4-step 빌드 스크립트. CI 릴리스 워크플로는 변경 없음.

- **`build-win.bat`** (신규):
  - 기본 실행: 서버 deps → 클라이언트 deps → `electron:rebuild` → `electron-builder` (NSIS + portable EXE)
  - `--skip-install` / `-s`: deps가 이미 설치된 경우 `npm ci` 단계 건너뜀
  - `--msix`: appx 타깃으로 전환; PowerShell `New-SelfSignedCertificate`로 `build-cert.pfx` 첫 실행 시 자동 생성, 이후 재사용; `CSC_LINK`/`CSC_KEY_PASSWORD` 환경 변수를 electron-builder에 전달; 빌드 후 로컬 MSIX 설치용 인증서 신뢰 명령 출력
- **`package.json`**: appx 설정 블록 추가 (`applicationId`, `identityName`, publisher CN, `publisherDisplayName`) — electron-builder appx 타깃 요구사항. `win.target` 미변경으로 CI 빌드에 영향 없음

### 수정된 주요 파일

| 파일 | 변경 내용 |
|------|----------|
| `src/client/src/components/MemoryList.tsx` | 패널 높이 580px → `calc(100vh - 340px)` + `minHeight: 480` |
| `src/client/src/components/MemoryNetworkGraph.tsx` | `h-[600px]` → `h-full` (placeholder + ReactFlow 래퍼) |
| `build-win.bat` | 신규 — EXE/MSIX 로컬 빌드 스크립트 |
| `package.json` | appx 설정 블록 추가 |

### 아키텍처 결정

1. **viewport 기반 동적 높이**: 다른 탭(Tasks/Sessions/Planner)은 자연 흐름이라 같은 이슈가 없다. Wiki 탭만 독립 카드로 묶여 있어 `calc(100vh - offset)`로 전환. `minHeight` floor를 두어 작은 화면에서 컨텐츠가 찌그러지는 경우를 방지.
2. **로컬 빌드는 CI와 완전 분리**: `build-win.bat`은 CI 릴리스 워크플로(`release.yml`)를 건드리지 않음. appx 블록만 `package.json`에 추가했고 `win.target`은 변경하지 않아 CI 빌드 산물이 바뀌지 않음.
