## 2026-06-01 — Planner→터미널 변환 + 글로벌 도크 트레이 드래그(재정렬·위치) + 프레임리스 팝아웃

### 배경

Planner 아이템은 TODO/스케줄로만 변환할 수 있어, 바로 인터랙티브 터미널 세션으로 띄울 길이 없었다. 또 화면 하단의 글로벌 세션 도크 트레이는 칩 순서나 위치를 바꿀 수 없었고, Electron 팝아웃 창은 네이티브 타이틀바/메뉴가 그대로 노출됐다.

### 주요 변경

#### 1. Planner 아이템 → 터미널(세션) 변환 (`7649975`)

- **서버**: `POST /api/planner/:id/convert-to-session` 신규 — 아이템 제목/설명으로 세션을 생성하고 아이템을 `status: 'moved'`(`converted_type: 'session'`)로 마킹.
- **클라이언트**: 변환 다이얼로그에 `session` 모드 추가(CLI 도구/모델 선택 + 워크트리 토글). `convertToSession` API, `ProjectDetail`에서 변환 후 세션 목록 갱신.
- **i18n**: `plannerConvert.toTerminal` / `plannerConvert.useWorktree`.

#### 2. 글로벌 도크 트레이 드래그 (재정렬 + 위치 이동) (`7649975`)

- **칩 재정렬**: 최소화된 세션 칩을 HTML5 드래그로 재배치. 순서는 `sessionDockOrder`(localStorage)에 `"projectId:groupId"` 배열로 영속화.
- **트레이 위치 이동**: 왼쪽 `GripVertical` 핸들을 포인터 드래그로 트레이의 가로 위치 이동(하단 고정 유지). `sessionDockTray:left`에 영속화, 뷰포트 축소 시 화면 안으로 클램프. 위치 미지정 시 기본은 사이드바(240px) 뒤로 오프셋.

#### 3. 프레임리스 Electron 팝아웃 (`7649975`)

- 팝아웃 창 생성 시 `frame: false` — 네이티브 타이틀바 + 앱 메뉴(File/Edit/…) 제거. `PopoutPage`의 상단 28px 바를 `-webkit-app-region: drag` 핸들로, 내부 버튼은 `no-drag`로 지정해 창 이동과 버튼 클릭이 공존. `thickFrame` 기본 유지로 엣지 리사이즈/그림자는 보존. 메인 창은 영향 없음.

### 수정된 주요 파일

| 파일 | 변경 내용 |
|------|----------|
| `src/server/routes/planner.ts` | `POST /planner/:id/convert-to-session` |
| `src/client/src/api/planner.ts` · `PlannerConvertDialog.tsx` · `ProjectDetail.tsx` | `convertToSession` + 다이얼로그 session 모드(워크트리 토글) + 세션 목록 갱신 |
| `src/client/src/components/GlobalSessionDockTray.tsx` | 칩 HTML5 드래그 재정렬 + grip 핸들 트레이 위치 이동(둘 다 localStorage 영속) |
| `electron/main.cjs` · `src/client/src/components/popout/PopoutPage.tsx` | 팝아웃 `frame: false` + 커스텀 드래그 바(app-region) |
