# v0.2.11 — Vault 프리뷰 인터랙티브화 + 세션 IME 합성 오버레이 + 워크스페이스 전환 자동 최소화

릴리즈 일자: 2026-05-28
이전 버전: v0.2.10

## 요약 (TL;DR)

Vault 마크다운 프리뷰가 정적 뷰어에서 살아 있는 노트로 바뀌었습니다 — 우클릭 컨텍스트 메뉴, `Ctrl+F`/`Ctrl+H` Find & Replace, 펜·형광펜 주석, GFM 태스크 체크박스 클릭 토글이 모두 동작합니다. 세션/투두/디스커션 폼의 deprecated 위키 주입 컨트롤은 디렉터리별로 정리된 **Vault 파일 셀렉터**로 교체되었고, `Include linked` 토글로 wikilink 1-hop 이웃을 자동 포함시킬 수 있습니다. `.html` / `.htm` 파일도 Vault 스캔/주입 대상에 추가. 세션 터미널은 한글 IME 합성 텍스트를 좌하단 알약 오버레이로 항상 보여 주고, 프로젝트를 전환하면 main 윈도우의 세션 그룹이 dock tray의 칩으로 자동 축소됩니다. 팝아웃 OS 윈도우에서 출력이 두 배로 찍히던 레이스 컨디션도 해결되었습니다.

## 주요 변경

### Vault 프리뷰 read-time 상호작용

마크다운 프리뷰 위에서 우클릭으로 같은 컨텍스트 메뉴를 통해 네 가지 기능에 접근할 수 있습니다:

- **Find / Replace**: `Ctrl+F`로 검색, `Ctrl+H`로 치환. 프리뷰는 DOM TreeWalker 기반 하이라이트 + 활성 매치 scroll-into-view, 편집 모드는 CodeMirror search API에 그대로 연결. Case-sensitive / Whole word / Regex 토글, invalid-regex 인디케이터, wrap-around 네비게이션 지원.
- **주석(Annotation)**: 펜(빨강 2px) / 형광펜(빨강 14px, opacity 0.4) / 지우개. 페이지 마진에 손글씨 메모를 적듯 사용. *ephemeral* — 파일 전환 또는 편집 진입 시 자동 클리어, 어디에도 저장되지 않음. 영속 메모가 필요하면 파일 본문에 적도록 의도된 디자인.
- **GFM 태스크 체크박스 클릭 토글**: 프리뷰 모드에서 `- [ ]` / `- [x]` 체크박스를 직접 클릭해 디스크에 즉시 round-trip. `-` / `*` / `+`와 ordered list 모두 지원. optimistic write + 409 conflict 시 자동 롤백.
- **컨텍스트 메뉴**: 모드 인식 — 프리뷰면 `Edit / Find / Start drawing`, 편집 모드면 `Done / Find / Stop drawing`.

### Vault 주입 UI 재설계 + HTML 지원

세션 / 투두 / 디스커션 폼의 이전 위키 주입 컨트롤(DB 노드 그래프 기반)이 **Vault 파일 셀렉터**로 교체되었습니다:

- 프로젝트 vault의 `.md` / `.html` 파일을 디렉터리별로 그룹화해 표시. MD / HTML 아이콘이 구분되어 보입니다.
- `Selected` 모드에서 **Include linked** 토글을 켜면 체크한 파일이 `[[wikilink]]`로 가리키는 직접(1-hop) 이웃까지 자동으로 selection에 포함됩니다. 각 행에 `+N개 연결` 배지로 미리 표시되어 어떤 파일들이 추가될지 한눈에 확인 가능.
- `.html` / `.htm` 파일도 Vault 스캔 대상. `<title>` 태그에서 제목을 뽑고 본문은 태그 제거 후 plain text로 인덱싱 / 주입.
- 직렬화는 기존 `<long_term_memory>` 외부 래퍼 유지, 내부 블록만 `<vault_file type="md" | "html">`로 타입 구분.

### 세션 터미널 한글 IME 합성 오버레이

xterm.js가 IME 합성 중인 텍스트를 자체 그리드에 그리지 않아 TUI redraw 시 OS candidate panel이 가려지는 문제를 해결했습니다. 합성 중 한글이 터미널 좌하단에 작은 알약 오버레이로 항상 보이며, `pointer-events: none`이라 TUI 입력은 그대로 통과합니다. 데스크톱 전용 — 모바일은 기존 `HangulComposer` 경로 유지.

### 워크스페이스 전환 시 세션 자동 최소화

다른 프로젝트로 이동할 때 main 윈도우가 소유한 visible 세션 그룹들이 자동으로 좌하단 dock tray의 칩으로 축소됩니다(서버 PTY는 그대로 살아 있음). 어디서든 칩을 클릭하면 즉시 다시 띄울 수 있어, 매번 minimize 하지 않고도 세션 핸들을 잃지 않습니다. 별도 OS 윈도우로 popout된 그룹은 칩 자동 생성에서 제외(이미 OS 윈도우가 핸들 역할).

### 팝아웃 출력 중복 / 커서 깨짐 fix

세션을 OS 윈도우로 popout한 뒤 main이 ownership을 회수하는 시점에 두 윈도우가 같은 sessionId의 binary stream을 동시 구독해 모든 출력이 두 배로 찍히고 커서가 깨지던 레이스 컨디션을 수정했습니다. main이 회수 직전에 `group-reclaimed` BroadcastChannel 메시지를 보내면, popout이 자기 view를 정리하고 1.5초 후 자동 종료합니다.

### 프로젝트 탭 정렬

프로젝트 상세 페이지에서 자주 만지는 **Vault → Planner → Sessions**가 항상 앞 세 자리에 고정됩니다. 나머지 plugin 탭들과 기본 탭들은 그 뒤로 밀려나며 상대 순서는 유지.

### Harness 패널이 설정 안으로 이동

매일 만지는 작업 영역이 아닌 일회성 setup 성격을 반영해, **Harness** 탭(Claude / Gemini / Codex CLI settings / memory / MCP 서버 편집)이 톱-레벨 탭에서 프로젝트 헤더의 **설정 패널** 안 `Harness` 섹션으로 이동했습니다. 컴포넌트 자체는 동일.

### Git 커밋 히스토리 절대 시각 표시

Git 탭의 커밋 히스토리에서 시각이 "3h 전 / 2d 전" 상대 표기 대신 `YY-MM-DD HH:mm` 절대 표기로 바뀌었습니다. 시각 컬럼은 monospace로 자릿수가 행 간 정렬되며, row separator는 흐리게 / 메타데이터 contrast는 진하게 재조정되어 가독성이 개선되었습니다.

## 마이그레이션

- **Harness 탭 → 설정**: 기존에 톱-레벨 탭에서 Harness를 열던 흐름은 제거되었습니다. 프로젝트 헤더의 톱니(설정) 아이콘 → **Harness** 섹션으로 진입하세요.
- **위키 주입 UI**: 세션 / 투두 / 디스커션 폼의 위키 주입 컨트롤이 Vault 파일 셀렉터로 교체되었습니다. 기존 데이터는 그대로 유지되며 마이그레이션 불필요 — DB 스키마는 변경되지 않았고 vault 경로는 기존 `memory_raw_file_paths` 컬럼에 저장됩니다.

## 설치 / 업데이트

```bash
npm i -g clitrigger@0.2.11
```

데스크탑 앱: GitHub Release 자산의 `.exe` / `.dmg` / `.AppImage` 사용.

## 전체 커밋 목록

- e25f7db WIP(docs): add 2026-05-28 changelogs for session/vault/harness UX
- 55587d8 feat(session): improve session window UX and fix popout duplicate render
- 833ccba feat(vault): add context menu, find, annotation, task toggle to preview
- 3859e38 feat(vault): replace wiki injection UI with vault file selector
- 1aac5ca refactor(client): move harness UI from top tab to project settings
- 09c18f6 feat(client): show absolute commit datetime in git history

## 관련 문서

- [상세 changelog](../changelog/) — 날짜별 기술 결정 기록
