Releases: HyperAITeam/CLITrigger
v0.2.14
v0.2.14 — 터미널 입력/복사 개편 · Git ahead-behind 배지 · Vault 숨김·드래그 이동
릴리즈 일자: 2026-06-01
이전 버전: v0.2.13
요약 (TL;DR)
세션 터미널의 한글 입력이 깔끔해지고, 복사/붙여넣기가 우클릭 메뉴로 바뀌었습니다(Ctrl+C는 이제 항상 인터럽트). Git 클라이언트에 브랜치별 ahead/behind 배지가 생겼고, Git 리포지토리에서도 SVN 탭을 함께 켤 수 있습니다(듀얼 VCS). Vault 파일 탐색기는 우클릭으로 파일을 숨기거나 다시 보이게 하고, 드래그앤드롭으로 파일/폴더를 이동할 수 있습니다. Planner 아이템을 터미널 세션으로 변환하는 경로와, 도크 트레이 드래그·프레임리스 팝아웃도 추가됐습니다.
주요 변경
세션 터미널: 한글 IME + 복사/붙여넣기 개편
- 한글 조합 중 입력창 옆에 조합 글자가 분리돼 보이던 어색함을 없앴습니다. 조합 중 텍스트는 좌하단 IME 오버레이에만 표시됩니다.
- 텍스트 선택은 마우스 드래그, 복사/잘라내기/전체 선택은 우클릭 컨텍스트 메뉴로 합니다. 붙여넣기는 우클릭 메뉴·
Ctrl/Cmd+V·Alt+V모두 가능.
Git / VCS
- 브랜치 ahead/behind 배지: refs 사이드바의 각 로컬 브랜치에 upstream 대비 앞섬(
N↑)·뒤처짐(N↓)이 표시됩니다(fetch 후 최신화). - 듀얼 VCS: SVN 패널을
svn_enabled만으로 켤 수 있어, Git 리포지토리에서도 Git 탭과 SVN 탭을 함께 사용할 수 있습니다.
Vault 파일 탐색기
- 우클릭 "볼트에서 숨기기" / "볼트에 다시 보이기" —
.vaultignore를 직접 편집하지 않고 파일을 가리거나 되돌립니다(Show hidden files로 숨긴 파일 확인). - 드래그앤드롭 이동 — 파일/폴더를 다른 폴더 위로 끌어 이동(폴더는 하위 트리째), "Vault root" 헤더로 끌면 루트로 이동.
- 노트 본문의 인라인
#태그도 vault 스캐너가 파싱합니다.
Planner → 터미널 변환
- Planner 아이템을 TODO·스케줄에 더해 인터랙티브 터미널 세션으로 변환할 수 있습니다(CLI/모델 + 워크트리 토글 선택).
데스크탑 / 윈도우
- 하단 도크 트레이의 칩을 드래그로 재정렬하고, grip 핸들로 트레이 가로 위치를 옮길 수 있습니다(위치·순서 영속화).
- Electron 팝아웃 창이 프레임리스로 바뀌어 자체 상단 바(이동·재도킹·닫기)만 표시됩니다.
⚠️ Breaking Changes
- 터미널
Ctrl+C/Ctrl+X동작 변경: 더 이상 선택 영역을 복사/잘라내지 않고 항상 PTY로 전달됩니다(Ctrl+C= SIGINT). 기존에 선택 후Ctrl+C로 복사하던 흐름은 우클릭 → 복사로 대체하세요.
마이그레이션
- 별도 설정/스키마 변경은 없습니다. 터미널에서 복사하던 습관만 우클릭 메뉴로 바꾸면 됩니다.
- 복사/붙여넣기(클립보드 API)는 보안 컨텍스트(localhost·HTTPS)에서만 동작합니다.
설치 / 업데이트
npm i -g clitrigger@0.2.14데스크탑 앱: GitHub Release 자산의 .exe / .dmg / .AppImage 사용.
전체 커밋 목록
- 156b0b1 WIP(docs): document terminal/git/vault/planner features + add 2026-06-01 changelogs
- 5508cc2 WIP(vault): add drag-and-drop file/folder move in file explorer
- 2dc8b1d WIP(vault): add "unhide" action to re-reveal .vaultignore-hidden files
- 7649975 feat: planner→terminal 변환·볼트 숨김·도크 드래그·VCS 듀얼탭·프레임리스 팝아웃
- 4d47f60 WIP(client): replace Ctrl+C/X/Shift-arrow selection with right-click menu
- 9dcbdc2 WIP(client): add Ctrl+Shift+arrow keyboard text selection in terminal
- 9a526c4 WIP(client): hide xterm IME composition preview via CSS instead of DECTCEM
- 8c98b16 WIP(client): use DECTCEM to hide xterm cursor during Hangul IME composition
- e230261 WIP(git): show per-branch ahead/behind tracking badges in refs sidebar
- fe88c7a WIP(client): hide xterm block cursor during Hangul IME composition
- 4f43d9d WIP(vault): parse inline #tags from note bodies in vault scanner
관련 문서
- 상세 changelog — 날짜별 기술 결정 기록
Full Changelog: v0.2.13...v0.2.14
v0.2.13
v0.2.13 — Vault 주석/그래프 강화 + 터미널 용어 정리
릴리즈 일자: 2026-05-31
이전 버전: v0.2.12
요약 (TL;DR)
- Vault 프리뷰의 낙서(주석) 오버레이에 Undo/Redo와 선택(select) 도구가 추가됐습니다. 이제 잘못 그은 선을 되돌리고, 오버레이를 켠 채로 밑의 콘텐츠를 그대로 클릭할 수 있습니다.
- Vault 그래프 노드가 태그별 색상으로 자동 구분되고, 프로젝트 루트의
.vaultignore파일로 원치 않는 파일을 스캔/그래프/검색에서 숨길 수 있습니다. - UI에서 "세션"이라 부르던 용어를 **"터미널"**로 통일하고, 탭마다 새로고침 버튼을 추가해 작업을 끊지 않고 화면만 다시 그릴 수 있습니다.
주요 변경
Vault 주석 오버레이: Undo/Redo · 선택 도구
- Undo/Redo: 펜/형광펜 한 획, 지우개 한 번의 드래그, "모두 지우기"가 각각 한 단계로 묶여 되돌리기/다시하기가 됩니다. 툴바 버튼 또는
Ctrl+Z/Ctrl+Y/Ctrl+Shift+Z로 사용합니다. - 선택 도구: 오버레이가 켜져 있어도 선택 도구 상태에서는 밑의 문서(링크 클릭, 텍스트 선택 등)가 그대로 동작합니다. 주석 모드 진입 시 기본값이 선택 도구라, 실수로 바로 그어지지 않습니다.
- 주석은 여전히 일시적(ephemeral) — 파일을 바꾸거나 편집 모드로 들어가면 자동으로 지워지며 어디에도 저장되지 않습니다.
Vault 그래프: 태그 색상 · .vaultignore 필터
- 태그 기반 노드 색상: 각 파일의 첫 번째 태그를 기준으로 노드 색이 자동 지정됩니다. 같은 태그는 항상 같은 색이고, 좌하단 범례에서 태그→색 매핑을 확인할 수 있습니다.
.vaultignore: 프로젝트 루트에.vaultignore를 두면 gitignore 문법으로 파일을 스캔/그래프/검색에서 제외합니다. 좌측 사이드바 레일의 Settings 액션에서 모달로 편집하며, 저장 즉시 그래프가 다시 로드됩니다.
터미널 용어 통일 · 탭별 새로고침
- 설정 탭, 패널 제목, 폼/리스트 라벨, 확인 다이얼로그 등 사용자에게 보이는 "세션" 문구를 모두 "터미널"로 통일했습니다. (내부 동작·API·데이터에는 변화 없음)
- 각 터미널 탭 툴바에 새로고침 버튼이 생겼습니다. 화면(xterm)이 깨졌을 때 눌러 다시 그릴 수 있으며, 실행 중인 작업(PTY)은 그대로 유지되고 출력이 다시 재생됩니다.
설치 / 업데이트
npm i -g clitrigger@0.2.13데스크탑 앱: GitHub Release 자산의 .exe / .dmg / .AppImage 사용.
전체 커밋 목록
- 3b3cfe0 WIP(docs): document vault annotation/graph and terminal-rename changelogs
- e482e74 WIP(vault): add select tool to annotation overlay toolbar
- b3579a9 feat(vault): add tag-based node coloring and .vaultignore filtering
- f0f778a feat: add undo/redo to vault annotation overlay
- b9d6e41 WIP(client): add per-tab terminal refresh button to rebuild xterm view
- eb2b519 WIP(client): rename user-facing "session" to "terminal"
관련 문서
- 상세 changelog — 날짜별 기술 결정 기록
Full Changelog: v0.2.12...v0.2.13
v0.2.12
v0.2.12 — 세션 윈도우 키보드/포인터 인터랙션 강화 + 사이드바 워크스페이스 reorder 포인터 기반 재구현
릴리즈 일자: 2026-05-30
이전 버전: v0.2.11
요약 (TL;DR)
세션 floating window를 매일 쓰면서 누적된 작은 마찰들을 한 번에 정리했습니다 — 터미널 바디 어디든 클릭하면 윈도우가 raise되고, 활성 윈도우가 info 톤 border + glow로 시각 표시되며, Ctrl+Tab / Ctrl+Shift+Tab으로 같은 그룹의 탭을 순환할 수 있습니다. 탭바 우측의 + 버튼이나 Ctrl+T (Mac은 Cmd+T)로 raw-shell 세션을 즉시 한 탭 추가할 수 있어 폼을 거치지 않고도 OS 셸이 빠르게 뜹니다. 사이드바의 워크스페이스 순서 변경은 Edge / Chrome의 네이티브 "분할 뷰" 드롭 오버레이를 피하기 위해 HTML5 drag-and-drop 대신 포인터 제스처로 통째 재구현되었고, 항목 절반 단위 드롭으로 정확도도 회복했습니다. 세션 리스트의 새 세션 브랜치 라벨이 프로젝트 default가 아닌 현재 체크아웃된 브랜치를 우선 표시하며, SVN 상태 패널이 viewport-aware 카드 레이아웃으로 통일됐습니다.
주요 변경
세션 윈도우: 활성 표시 + 바디 클릭으로 raise
- 여러 floating window를 동시에 띄운 상태에서 topmost(z 최상위) 윈도우의 border가 info 톤으로 바뀌고 outer ring + 부드러운 glow가 적용됩니다. 다음 키 입력이 어디로 갈지 시각으로 즉시 확인 가능.
- 터미널 viewport 어디든 클릭하면 그 윈도우가 raise됩니다(이전엔 chrome(타이틀바)을 잡아야 했음). chrome drag는 여전히 정상 동작.
- 120ms 트랜지션으로 raise 시 표시가 슬라이드.
세션 탭 키보드 사이클 (Ctrl+Tab / Ctrl+Shift+Tab)
- 같은 그룹 안의 다음/이전 탭으로 순환합니다. wrap-around 지원.
- xterm 터미널 viewport에 focus가 있을 때만 동작 — 폼 입력이나 다른 chrome에는 영향 없음.
- 단일 탭 stack에서는 키가 PTY로 fall-through됩니다 (일부 TUI가 native로
Ctrl+Tab을 쓸 가능성 고려).
빠른 raw-shell 탭 (+ 버튼 / Ctrl+T / Cmd+T)
- 탭바 우측의
+버튼이나 글로벌 단축키로 즉시 raw-shell 세션을 spawn합니다. 폼을 거치지 않고도 OS 셸이 한 탭 추가됩니다. - main-owned 가시 그룹이 있으면 그 그룹의 stack에 탭으로 삽입, 없으면 새 floating window를 띄움.
- AI CLI 세션(Claude / Gemini / Codex)은 폼 경로(
Add Session)를 그대로 유지 — 단축 경로는 빠른 OS 셸 spawn 전용입니다. - xterm은 같은 조합을 swallow해서 PTY로
^T가 흘러가지 않습니다.
사이드바 워크스페이스 reorder를 포인터 기반으로 재구현
- 기존 HTML5 drag-and-drop은 Microsoft Edge / Chrome이 화면 좌측에 페이지가 막을 수 없는 네이티브 "분할 뷰 만들기" 드롭 오버레이를 띄워서 사용자를 혼란시켰고, 거기에 드롭해도 우리 reorder는 작동하지 않았습니다. HTML5 drag 메커니즘 자체를 들어내고
mousedown기반 포인터 제스처로 통째 교체했습니다. - 드롭 타겟이 항목 사이 8px 갭이 아니라 항목 절반 단위로 작동합니다(top half → 이 항목 앞, bottom half → 이 항목 뒤). 픽셀 단위 정밀도 없이도 의도가 표현됩니다.
- 6px 이동 threshold로 클릭 vs 드래그 구분,
Escape로 진행 중 reorder 캔슬, 드래그 중 cursor가grabbing으로 변경됩니다. - 사이드바 안의 다른 요소(
<a>태그, SVG 로고 등)에서 브라우저가 native drag를 시작하지 못하도록 belt-and-suspenders 가드를 적용 —draggable={false}+ mousedown / dragStart preventDefault + 컨테이너 onDragStart preventDefault.
세션 리스트: 현재 git branch 우선 표시
- 새 세션 생성 시 브랜치 라벨이 프로젝트 default branch 대신 현재 체크아웃된 브랜치를 우선 표시합니다. feature 브랜치 위에서 세션을 만들 때 어디로 갈지 라벨에서 바로 확인 가능.
SvnStatusPanel 카드 레이아웃 + viewport-aware 높이
- SVN 작업 사본 패널이 고정 600px 최소 높이 대신
calc(100vh - 260px)로 동작하며, 사이드바와 메인 패널이 카드 컨테이너로 분리됐습니다. - 다른 패널들(Git / Files / Wiki)과 시각 일관성 회복. SVN 자체 동작에는 영향 없음.
설치 / 업데이트
npm i -g clitrigger@0.2.12데스크탑 앱: GitHub Release 자산의 .exe / .dmg / .AppImage 사용.
전체 커밋 목록
- c578118 WIP(docs): add 5/29–5/30 changelogs and document tab/window interactions
- 41c8f07 WIP(client): suppress native sidebar drag with mousedown/dragStart preventDefault
- 8495531 WIP(client): prevent native image-drag and text selection on sidebar project links
- cdccf7f WIP(client): replace HTML5 sidebar reorder drag with pointer-based gesture
- 37c6e53 WIP(client): make sidebar project drag-drop snap to item halves
- 7b36f6d WIP(session): add "+" / Ctrl+T to spawn raw-shell tabs
- b870856 feat(session): cycle session window tabs with Ctrl+Tab / Ctrl+Shift+Tab
- 9acc7ad WIP(client): show current git branch in session list branch label
- a4c67c4 WIP(scripts): condense dev.bat by stripping comments and inlining loops
- 6394743 feat(session): raise floating window on body click and mark active window
- 7f02e9c WIP(client): restyle SvnStatusPanel with card layout and viewport height
관련 문서
- 상세 changelog — 날짜별 기술 결정 기록
Full Changelog: v0.2.11...v0.2.12
v0.2.11
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컬럼에 저장됩니다.
설치 / 업데이트
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 — 날짜별 기술 결정 기록
Full Changelog: v0.2.10...v0.2.11
v0.2.10
v0.2.10 — Obsidian-style VaultLayout + 세션 cleanup 버그 다발 수정
릴리즈 일자: 2026-05-27
이전 버전: v0.2.9
요약 (TL;DR)
Files 탭이 Obsidian-style VaultLayout(좌 사이드바 + 중앙 에디터 + 우 사이드바)으로 재구성되었고, 사이드바를 ribbon만 남도록 자유롭게 줄이거나 거의 무제한으로 키울 수 있습니다. Vault 에디터/프리뷰 위에서 Ctrl+휠로 폰트 줌이 가능해졌고(브라우저 페이지 줌은 자동 차단), 파일/폴더를 트리 상단에 핀할 수 있습니다. 세션 쪽에서는 stop 후 cleanup 버튼이 사라지던 버그, 엉뚱한 브랜치를 지울 수 있던 잠재 버그, cleanup 부분 실패 시 핸들을 잃던 문제를 한 번에 정리했습니다. 사이드바의 워크스페이스 항목은 드래그 앤 드롭으로 재정렬됩니다.
주요 변경
Files 탭 → Obsidian-style VaultLayout
기존 좌(트리) / 우(미리보기) 2-paned 구조가 좌 사이드바 + 중앙 에디터 + 우 사이드바의 3-column 레이아웃으로 바뀌었습니다. 좌측 사이드바는 파일 탐색기 / 검색 / 태그, 우측 사이드바는 그래프 / 아웃라인 / 백링크 / 아웃고잉 링크 패널을 탭으로 전환할 수 있습니다.
Vault 사이드바 너비 자유 조절 + Resizer 시각성 강화
- 좌/우 사이드바 너비 clamp를 32~100000px로 통일 — ribbon만 남기거나 화면 거의 끝까지 키우는 게 모두 가능
- Resizer 핸들 두께 4px → 6px, 배경 색 진하게, 드래그 중 accent 색 유지로 어디를 잡고 있는지 명확히 표시
Vault 에디터/프리뷰 Ctrl+휠 폰트 줌
미리보기 또는 CodeMirror 에디터 위에서 Ctrl/Cmd + 마우스 휠로 폰트 사이즈를 8~28px 사이에서 조절할 수 있습니다. 브라우저 페이지 줌은 자동으로 차단되어 레이아웃이 흔들리지 않고, 좌/우 사이드바는 영향을 받지 않습니다. 줌 레벨은 프로젝트별로 localStorage에 저장됩니다.
Files 탐색기 파일/폴더 핀-투-탑
트리에서 우클릭 → Pin to top으로 파일 또는 폴더를 트리 상단의 별도 섹션(amber 핀 아이콘)에 고정할 수 있습니다. 자주 여는 파일을 매번 스크롤로 찾을 필요 없이 최상단에 배치. Unpin으로 해제. 프로젝트별 localStorage 영속화.
Vault 에디터 UX 정리
- 편집 종료 버튼이
X Cancel→✓ Done으로 라벨/아이콘 변경. 편집 내용은 그대로 보존되고 프리뷰 모드로 돌아가는 동작이라 "완료" 시맨틱이 더 정확 - "Rendered ↔ Source" 토글 제거 — 비편집 상태에서는 항상 rendered 모드로 표시, 소스를 보려면 Edit 버튼으로 진입
- 저장 성공 시 토스트 대신 Save 버튼 옆에 800ms간 인라인 ✓ saved 표시. 저장 실패 토스트는 그대로 유지
세션 워크트리 cleanup 버그 다발 수정
세션을 만들고 워크트리에서 한 번 돌린 다음 stop 하면 cleanup 버튼이 사라지던 현상을 해결했습니다. 원인은 세 가지가 얽혀 있었음:
- WS
session:status-changed: running이벤트가worktree_path/branch_name을 동봉하지 않아 클라이언트 state가 null로 머물던 문제 — 이제 두 필드를 같이 broadcast하고 클라가 머지 createWorktree의 suffix-bumped 실제 브랜치명을 반환하지 않아 DB에 잘못된 브랜치명이 저장되던 문제(예: 실제feature/session-7인데 DB는feature/session) — 함수 시그니처를{ worktreePath, branchName }으로 변경해 정합화. cleanup 시 엉뚱한 브랜치를 지울 잠재 위험 제거- cleanup의 git 단계가 부분 실패해도 DB 핸들을 null로 박아 사용자가 UI에서 재시도할 수단을 잃던 문제 — git이 확실히 성공한 필드만 null 박고, 실패는 alert로 어떤 단계가 실패했는지 사용자에게 노출
또한 worktree remove --force가 Windows에서 잠긴 파일 때문에 실패하면 rmSync + prune 폴백으로 한 번 더 시도, branch -D가 "checked out at" 으로 거부되면 prune 후 재시도합니다.
TUI 대체 버퍼에서 폰트 사이즈 변경 시 스크롤백 보존
Claude / Codex / Gemini가 alternate screen 모드로 진입한 상태에서 세션 폰트 사이즈를 바꾸면 xterm의 fit()이 cols/rows를 다시 잡아 TUI 출력이 상단부터 잘리던 문제 수정. alternate 버퍼이면 글리프 크기만 바꾸고 PTY 리사이즈를 건너뛰어 스크롤백을 그대로 유지합니다. 일반 버퍼에서는 기존 reflow 경로 유지.
사이드바 워크스페이스 드래그 앤 드롭 재정렬
사이드바의 워크스페이스(프로젝트) 항목을 마우스로 드래그해 순서를 바꿀 수 있습니다. 새 순서는 즉시 localStorage에 영속화됩니다.
설치 / 업데이트
npm i -g clitrigger@0.2.10데스크탑 앱: GitHub Release 자산의 .exe / .dmg / .AppImage 사용.
전체 커밋 목록
- c12ff3d WIP(docs): add 2026-05-27 changelogs for session cleanup and vault UX
- e985a2b WIP(vault): add Ctrl+wheel font zoom for preview and editor
- 490bf7e WIP(session): propagate worktree path/branch on status-changed event
- 0b96f70 WIP(session): report cleanup failures and harden worktree/branch ops
- 6d9363f WIP(session): skip fit on alternate buffer to preserve TUI history
- 586f5ee WIP(vault): rename editor Cancel button to Done with check icon
- 813da53 WIP(vault): remove rendered/source view toggle from PreviewPanel
- affba53 WIP(vault): replace save toast with inline saved flash indicator
- 9ddff87 WIP(files): add pin-to-top for files and folders in explorer
- 12d4cb2 WIP(docs): add 2026-05-27 changelog for vault sidebar width UX
- b868f51 WIP(vault): relax sidebar width clamps and inner min-width
- 08b3c15 WIP(vault): make Resizer handle thicker and more visible
- 3927a19 WIP(vault): refactor Files tab into Obsidian-style VaultLayout
- c13b184 feat(sidebar): add drag-and-drop reordering for workspaces
관련 문서
- 상세 changelog — 날짜별 기술 결정 기록
Full Changelog: v0.2.9...v0.2.10
v0.2.9
v0.2.9 — Obsidian-style Vault + Files 탭 안정화
릴리즈 일자: 2026-05-26
이전 버전: v0.2.8
요약 (TL;DR)
프로젝트 루트의 .md 파일을 자동 스캔해 [[wikilink]] 기반 관계 그래프를 구성하는 Obsidian-style Vault 시스템이 추가되었습니다. 그래프 뷰가 Files 탭에 통합되어 별도 Wiki 탭 없이 파일 탐색과 문서 관계 시각화를 한 화면에서 할 수 있습니다. 이와 함께 Files 탭의 마크다운 미리보기 안정성, 상대 링크 내비게이션, 트리 상태 영속화가 대폭 개선되었고, 세션 윈도우의 크로스-프로젝트 prune 레이스가 수정되었습니다.
주요 변경
Obsidian-style Vault 시스템
프로젝트 루트의 모든 .md 파일을 vault로 인식하고, YAML frontmatter와 [[wikilink]]를 파싱해 ReactFlow force-directed 그래프로 시각화합니다. DB 인제스트 없이 디스크의 문서를 곧바로 LLM 프롬프트에 주입할 수 있습니다.
- task/session/discussion 폼에서 vault 주입 모드 선택 (None/All/Selected/Auto)
- 기존 DB-backed 위키는 폴백으로 유지 — 두 시스템이 병렬 동작
- Vault REST API 9개 엔드포인트 추가 (파일 CRUD, 그래프, 검색, 주입 미리보기)
Files 탭 그래프 통합
우측 패널에 그래프 토글(GitBranch 아이콘)이 추가되어 파일 미리보기 ↔ wikilink 관계 그래프를 전환할 수 있습니다. 그래프 노드 클릭 시 해당 파일이 미리보기에서 열립니다. 기존 Wiki 탭은 제거되었습니다.
Files 탭 안정화
- 마크다운 미리보기 블랙 스크린 수정: 렌더링 오류 시 error boundary가 raw 소스 텍스트로 폴백 (기존에는 전체 React 트리가 크래시)
- 상대 링크 인앱 내비게이션:
[label](./sibling.md)같은 상대 경로가 새 브라우저 탭 대신 인앱에서 열림 - 트리 상태 영속화: 확장된 디렉토리, 숨김 파일 토글, 선택 파일이 탭 전환/프로젝트 이동 후에도 복원
인앱 파일 에디터
Files 탭에서 텍스트 파일을 CodeMirror 기반 에디터로 인라인 편집할 수 있습니다. mtime 충돌 감지로 외부 수정과의 동시 편집 사고를 방지합니다.
마크다운/HTML 미리보기 강화
마크다운 파일은 렌더링된 미리보기와 소스 토글을 지원하고, HTML 파일은 샌드박스 iframe에서 미리보기됩니다.
Raw Shell 세션 + 커맨드 앨리어스
세션 생성 시 CLI 도구 대신 순수 셸(bash/PowerShell)을 선택할 수 있습니다. 자주 쓰는 명령을 앨리어스로 저장해 런타임 팔레트에서 실행 가능합니다.
프로젝트 컬러 태그 + 백그라운드 활동 펄스
프로젝트에 컬러 태그를 지정할 수 있으며, 실행 중인 태스크가 있으면 사이드바에 펄스 인디케이터가 표시됩니다.
세션 팝아웃 윈도우
세션을 별도 OS 브라우저 윈도우로 팝아웃할 수 있습니다. 팝아웃된 윈도우는 원본과 동일한 WebSocket 이벤트를 수신합니다.
세션 최소화 칩 크로스-프로젝트 수정
프로젝트 A에서 세션을 최소화한 뒤 B로 갔다가 A로 돌아오면 dock tray 칩이 사라지는 레이스 수정.
OS 파일 매니저 연동
Files 탭에서 파일/폴더를 OS 기본 파일 탐색기에서 열거나 해당 위치를 reveal할 수 있습니다.
설치 / 업데이트
npm i -g clitrigger@0.2.9데스크탑 앱: GitHub Release 자산의 .exe / .dmg / .AppImage 사용.
전체 커밋 목록
- e9704eb WIP(docs): add 2026-05-25 changelogs for vault system and session prune fix
- 430c112 feat(files): persist tree expansion, showHidden, and selected file across tab switches
- 462b65b WIP(docs): condense CLAUDE.md to essentials
- 8cf8137 WIP(files): hoist lsKey above paneWidth initializer
- af25d29 fix(files): improve markdown link navigation and persist selected file
- 9d343aa feat: add Obsidian-style vault system and integrate wiki graph into Files tab
- 9aa2ccf fix(session): prevent minimized dock chip from vanishing on project return
- 6bd3968 WIP(files): move PreviewPanel early-return after all hooks
- dd61f99 fix(files): prevent black screen when previewing markdown files
- 45302f3 WIP(session): re-add CanvasAddon with atlas rebuild and overlay z-fix
- bea35aa WIP(session): tighten terminal lineHeight to 0.95 to close row gaps
- 25c232d WIP(session): drop CanvasAddon and revert to DOM renderer
- cea4c8d WIP(session): clear xterm buffer before font-size SIGWINCH
- 1c62b0d WIP(session): rebuild Canvas glyph atlas on font size change
- eca7134 WIP(session): swap WebGL renderer for Canvas to avoid per-context limits
- 80d64d4 WIP(session): use WebGL renderer to close ASCII-art row gaps
- bf20ace fix(session): match cmd line spacing and unbreak Sidebar build
- b351274 WIP(session,files): raw-shell CLI + command aliases + in-app file editor
- a243530 feat(session): replace spawn-time alias picker with runtime palette
- d76b3ee feat(files): add in-place CodeMirror editor with mtime conflict guard
- c269ff8 feat(session): add raw-shell sessions and saved command aliases
- 5cc4ba2 feat(files): render markdown and sandbox HTML previews with source toggle
- 24df9e4 fix(session): listen for correct session WS event in popout
- 0d8be30 feat(workspace): project color tags + background activity pulse
- 84be189 feat(session): pop session windows out to separate OS windows
- cb96217 feat(files): add OS open / reveal-in-file-manager actions to Files tab
- 7a967f1 WIP(docs): condense CLAUDE.md architecture sections
- 5d08b96 Merge branch 'main' of https://github.com/OSgoodYZ/CLITrigger
- 116c148 WIP(build): move build-win.bat to scripts/ and anchor cwd
관련 문서
- 상세 changelog — 날짜별 기술 결정 기록
Full Changelog: v0.2.8...v0.2.9
v0.2.8
v0.2.8 — 인앱 파일 탐색기 + 세션 윈도우 하드닝
릴리즈 일자: 2026-05-12
이전 버전: v0.2.7
요약 (TL;DR)
프로젝트 상세 화면에 Files 탭이 새로 생겼다. OS 파일 매니저를 열지 않고도 폴더 트리를 탐색하고 텍스트/이미지/PDF/오디오/비디오를 인라인으로 미리볼 수 있다. 또한 세션 윈도우의 워크스페이스 전환·페이스트·드래그 흐름 전반에 걸친 결함을 정리했다 — 최소화 칩이 프로젝트 이동 후에도 사라지지 않고, 돌아왔을 때 윈도우가 정상 복원되며, 화면 버퍼가 깨지던 PTY 사이즈 레이스와 한 번의 페이스트로 이미지가 두 번 들어가던 버그가 모두 해결됐다.
주요 변경
인앱 파일 탐색기 (Files 탭)
프로젝트 상세 페이지의 Files 탭에서 폴더 트리를 직접 탐색할 수 있다. 읽기 전용 — 수정/스테이징은 기존 Git 탭이 계속 담당한다.
- 좌측 lazy 트리 + 우측 인라인 미리보기. 가운데 분할바는 드래그로 조절 가능하고 너비는 영속화된다.
- 텍스트 파일은 최대 2MB까지 인라인으로 표시 (NUL byte 검출 시 바이너리로 자동 폴백).
- 이미지 / PDF / 오디오 / 비디오 (최대 50MB)는
<img>/<iframe>/<audio>/<video>로 직접 렌더링. - 알 수 없는 바이너리는 다운로드 링크.
.git/node_modules/.worktrees/.DS_Store는 기본 hide.Show hidden files토글로 dot-prefix 파일 노출.Copy path단축.- 좁은 뷰포트에서도 가로 스크롤 없이 접근하도록 탭 바 맨 앞에 배치.
- 서버는
path.resolve()후 root prefix 검사로 traversal을 차단해 프로젝트 폴더 바깥은 절대 노출되지 않는다.
크로스-프로젝트 최소화 도크 트레이
세션 윈도우의 최소화 칩이 이제 앱 레벨 트레이에 표시된다 — 다른 프로젝트로 이동해도 칩이 사라지지 않고, 거기서 칩을 클릭하면 원래 프로젝트로 자동 이동하면서 윈도우가 복원된다. 같은 프로젝트 안에서의 복원/닫기는 기존의 confirm 프롬프트 + 안전 종료 경로를 그대로 거친다.
워크스페이스 전환 시 세션 윈도우 복원
프로젝트 A → B → A 왕복 후 윈도우가 복원되지 않거나, 복원된 직후 윈도우를 리사이즈하면 화면 버퍼가 깨지던 두 결함을 모두 수정했다.
- 마운트 직후 첫 렌더에서 동기적으로 localStorage를 읽어 들이므로, 영속화된 상태가 누락 없이 그대로 복원된다.
- 복원된 running 세션은 portal/container가 안정될 때까지 기다렸다가 실제 뷰포트 dims로 PTY에 사이즈를 통보한다. 이전에는 transient 0×0 측정으로 PTY를 SIGWINCH 해 직후 진짜 사이즈로 또 재조정되면서 버퍼가 망가졌다.
- 중단된 드래그/리사이즈로 0×0 또는 오프스크린에 묶인 윈도우 상태도 자동 클램프해 invisible-but-clickable 형태로 페이지 클릭을 가로채는 사고를 막는다.
이미지 페이스트: 중복 입력 + 동시 페이스트 레이스 수정
한 번의 Ctrl/Cmd+V로 이미지가 [Image #1]에 이어 [Image #2]로 두 번 들어가거나, 두 개의 페이스트가 거의 동시에 들어왔을 때 두 번째 이미지의 비트맵이 첫 번째 자리에 새던 버그를 수정했다.
- 키보드 핸들러가 제스처를 클레임해 같은 Ctrl/Cmd+V에 대해 발화하는 컨테이너
paste이벤트가 작업을 중복 수행하지 않는다. - 서버가 OS 클립보드 쓰기와 PTY로의 ESC+v 주입을 같은 트랜잭션에서 처리한다. 두 페이스트가 동시에 들어와도 비트맵이 섞이지 않는다.
드래그/리사이즈/스플리터/탭 드래그 어보트 처리
윈도우 드래그, 8방향 리사이즈, 스플리터 드래그, 탭 드래그가 alt-tab / 탭 hide / Escape로 중단되면 글로벌 listener와 pointer-events: none wrapper 상태가 잔존해 페이지가 클릭을 잃는 사고가 있었다. 모든 제스처에 blur / Escape / visibilitychange abort 핸들러를 추가해 깔끔히 정리한다.
숨겨진 탭의 포커스 탈취 방지
VS Code 스타일 탭 그룹에서 숨겨진(display: none) 세션 pane이 마운트 시점에 form input의 포커스를 빼앗아 타이핑이 끊기던 문제를 수정했다. 이제 visible 탭만 mount-time 포커스를 가져가고, body가 아닌 어떤 입력 요소에 포커스가 있으면 절대 가로채지 않는다.
설치 / 업데이트
npm i -g clitrigger@0.2.8데스크탑 앱: GitHub Release 자산의 .exe / .dmg / .AppImage 사용.
전체 커밋 목록
- 16e72dc WIP(docs): scope update-docs skill away from CLAUDE.md by default
- ea31c5c WIP(docs): sync CLAUDE.md + changelog for files tab and session hardening
- 2c930d7 feat(ui): move Files tab to front of project tab bar
- ca064d7 feat(session): app-level minimized tray + workspace-switch fixes
- 64f95bf fix(session): close duplicate image paste and concurrent paste race
- a7649bd WIP(session): harden drag/resize abort paths and gate terminal autofocus
- 5709a84 feat: add in-app project file explorer tab
- fd4731b Include badges for license and npm package status
관련 문서
- 상세 changelog — 날짜별 기술 결정 기록
Full Changelog: v0.2.7...v0.2.8
v0.2.7
Full Changelog: v0.2.6...v0.2.7
v0.2.6
v0.2.6 — 세션 터미널 페이스트 수정 + Wiki 패널 뷰포트 채움
릴리즈 일자: 2026-05-07
이전 버전: v0.2.5
요약 (TL;DR)
세션 터미널에서 텍스트를 붙여넣을 때 내용이 빠지거나 파일 경로로 둔갑하는 두 가지 버그를 수정했다. 멀티라인 텍스트도 이제 CLI TUI가 올바르게 인식한다. Wiki 탭이 1080p 이상 화면에서 뷰포트를 꽉 채우도록 바뀌어 그래프와 활동 로그 시야가 넓어졌다.
주요 변경
세션 터미널 클립보드 페이스트 수정
Ctrl/Cmd+V 또는 컨테이너 레벨 paste 이벤트로 텍스트를 붙여넣을 때:
- 경로 하이재킹 방지: 이전에는 Windows Explorer에서 파일을 복사한 직후나 Screenshots 폴리필을 사용한 뒤 붙여넣으면 텍스트 대신 OS 파일 경로가 입력되는 버그가 있었다. 폴백 체인을 이미지 MIME → 텍스트 → OS 경로 순으로 재정렬해 텍스트가 있을 때는 절대 경로로 하이재킹되지 않는다.
- 무음 소실 방지: HTTP/LAN-IP 출처(로컬 네트워크 접속)에서
clipboard.read()가 권한 오류로 실패하면 같은 try/catch 안의readText()폴백까지 함께 삼켜져 페이스트가 아무 반응 없이 사라지던 문제를 수정했다. 두 API를 독립 블록으로 분리해 read() 실패가 readText()에 영향을 주지 않는다. - 멀티라인 텍스트: 여러 줄 텍스트를 붙여넣으면 줄바꿈이 개별 Enter로 처리되어 입력이 뒤섞이던 문제를 수정했다. DEC bracketed paste 시퀀스(
ESC[200~…ESC[201~)로 래핑해 Claude / Gemini / Codex Ink TUI가 전체를 페이스트 페이로드로 인식한다. 단일 라인은 기존 그대로 raw 전송. - 페이스트가 완전히 소실되는 경우 경고 토스트를 노출해 사용자가 상황을 인지할 수 있다.
Wiki 탭 뷰포트 채움
1080p 이상 화면에서 Wiki 패널이 580px 고정 카드로 묶여 하단에 검은 빈 영역이 남던 문제를 수정했다. 패널이 이제 calc(100vh - 340px) 동적 높이로 화면을 채우고 ReactFlow 그래프도 새 영역에 맞게 fitView가 자동 재조정된다. 패널 하단의 rounded-xl 모서리도 뷰포트 안에서 보인다.
Windows 로컬 빌드 스크립트
build-win.bat을 추가했다. CI 없이 로컬에서 Windows 데스크톱 아티팩트(EXE/MSIX)를 빠르게 빌드·검증할 수 있다. --skip-install로 deps 재설치를 건너뛰고, --msix로 자동 서명 인증서와 함께 MSIX를 빌드할 수 있다. CI 릴리스 워크플로는 변경 없음.
PushDialog 디자인 시스템 정비
Push 다이얼로그의 스타일을 디자인 시스템 토큰(card/input-field/btn 프리미티브)으로 통일하고 더 넓은 2xl 모달 크기를 적용했다. 동작 변경 없음.
설치 / 업데이트
npm i -g clitrigger@0.2.6데스크탑 앱: GitHub Release 자산의 .exe / .dmg / .AppImage 사용.
전체 커밋 목록
- a96845b WIP(docs): sync CLAUDE.md and changelog for 2026-05-07 changes
- 4404c34 chore(build): add local Windows build script with EXE and MSIX targets
- 3ab5338 fix(client): leave bottom margin so Wiki panel rounded corner is visible
- 9c55716 fix(client): fill viewport with Wiki panel instead of fixed 580px card
- a1b5b7d fix(session): wrap multi-line paste in bracketed paste sequences
- 541ec4b fix(session): fix clipboard paste hijack and silent failure
- c549ab8 WIP(client): restyle PushDialog with design system tokens
관련 문서
- 상세 changelog — 날짜별 기술 결정 기록
Full Changelog: v0.2.5...v0.2.6
v0.2.5
v0.2.5 — SVN 작업 사본 패널, SourceTree 스타일 멀티 브랜치 Push, Electron 자동 업데이트 + 한글 IME 복구
릴리즈 일자: 2026-05-05
이전 버전: v0.2.4
요약 (TL;DR)
- SVN 워킹 카피 지원이 opt-in으로 추가됐습니다. 프로젝트 설정의 Enable SVN 체크박스를 켜면 git 패널과 동일한 레이아웃의 SVN 패널(파일 상태 / 히스토리 / 커밋 / Update / Resolve)이 활성화됩니다. 안 켠 사용자는 추가 UI나
svn프로세스를 일절 보지 않습니다. - Push 버튼이 SourceTree 스타일 다이얼로그로 바뀌었습니다. 원격 선택, 여러 브랜치 동시 push, 태그 동기화(
--tags), 강제 push(--force-with-lease), 새 브랜치 upstream 추적까지 GUI에서 종결됩니다. - 데스크톱 빌드(.exe / .dmg / .AppImage)가 자동 업데이트됩니다. 다음 릴리즈부터 GitHub Releases를 자동으로 체크하고 백그라운드에서 받아 "지금 재시작 / 나중에"를 묻습니다. v0.2.4 사용자는 이번에 한 번만 수동 설치하면 그 이후로는 자동.
- Windows EXE에서 한글 IME가 죽는 두 케이스 복구: (1) 세션을 한 번 사용한 뒤 SessionForm 클릭 시 캐럿이 활성화되지 않던 문제, (2) 잠금화면/스크린세이버 해제 후 모든 입력이 데드되던 문제.
주요 변경
Opt-in SVN 작업 사본 패널 (선택)
git이 아닌 SVN 워킹 카피로 굴러가는 프로젝트(사내 / 게임 업계 등)를 위한 SVN 지원이 추가됐습니다.
- opt-in per project: 프로젝트 설정에서 Enable SVN을 켜면 그제서야
.svn/검출이 돌아갑니다. SVN을 안 쓰는 사용자는 추가 UI / 라우트 /svn프로세스 스폰을 절대 보지 않음 (기본 OFF). - 레이아웃은 git 패널과 동일: 좌측 사이드바에서 File Status / History 뷰 전환. 파일 상태 뷰는 멀티 셀렉트 + Refresh / Update / Add / Revert / Delete / Resolve 액션 + 작업 사본 diff + Cmd/Ctrl+Enter 커밋 텍스트영역. 히스토리 뷰는 리비전 목록 + 각 리비전의 변경 파일 + 파일별 diff.
- 컴포넌트 재사용: 서버 측에서 SVN status를 git porcelain 모양으로 정규화하므로 기존
DiffViewer/ 파일 리스트가 분기 없이 그대로 동작합니다. - 인코딩 안전: 모든 svn 호출에
LC_ALL=en_US.UTF-8+--non-interactive강제 — 한글/CJK/이모지 파일명도 깨지지 않으며, 자격증명 프롬프트 hang은 차단됨. - 충돌 해결:
accept옵션 4종(working/mine-full/theirs-full/base). - svn 미설치 시: 패널 상단에 "svn 명령어를 설치해주세요" 배너가 뜹니다 (TortoiseSVN의 command-line client 또는
apt install subversion/brew install subversion).
SVN 프로젝트는 phase 1에서 단일 공유 워킹 카피만 지원하므로, Todo / Discussion / Session이 자동으로 직렬 실행(
max_concurrent=1)됩니다. 향후.worktrees/<wc>/checkout copy 격리는 phase-2로 분리.
SourceTree 스타일 멀티 브랜치 Push 다이얼로그
기존 Push 툴바 버튼은 한 번 누르면 곧장 현재 브랜치를 origin으로 밀어내는 단일 동작이라, 다음 시나리오에선 사용자가 다시 터미널로 돌아가야 했습니다 — (1) 태그 동기화, (2) 여러 브랜치를 한 번에 밀기, (3) 처음 push 하는 새 브랜치에 upstream 설정, (4) 강제 push.
이번 버전부터 Push 버튼은 SourceTree와 같은 다이얼로그를 엽니다:
- 원격 선택: 드롭다운으로 원격(
origin등)을 고르고 URL 확인. - 브랜치 테이블: 4컬럼 —
Push?체크박스 / 로컬 브랜치명 / 원격 브랜치 select(직접 입력 fallback) /Track?upstream 토글. 헤더Select all로 전체 on/off. - 태그 동기화:
Push all tags를 켜면 같은 호출에--tags부착. - 강제 Push:
Force push토글 — 항상--force-with-lease로 동작해서 stale한 로컬 뷰가 원격을 덮을 수 없습니다. 다른 사람이 같은 브랜치에 push 했으면 거절되며, fetch 후 재시도하라고 안내. - 새 브랜치 + upstream: 처음 push 하는 브랜치에
Track?를 켜두면 별도의git push -u로 분리 호출되어 upstream이 자동 설정됨.
레거시 콜러(post-commit auto-push, 컨텍스트 메뉴 Push 등)는 서버 라우트에서 자동 어댑팅되므로 그대로 동작합니다.
데스크톱 자동 업데이트 (electron-updater)
기존 데스크톱 빌드(.exe / .dmg / .AppImage)는 자동 업데이트 경로가 없어서 사용자가 매번 setup을 수동 다운로드해야 했고, stale한 설치본이 조용히 계속 돌아갔습니다. 이번 버전부터:
- 자동 백그라운드 업데이트:
app.isPackaged인 데스크톱 빌드만 — 윈도우 생성 5초 후 첫 GitHub Releases 체크(런치 UX 비차단), 백그라운드 다운로드. - 다운로드 완료 시 프롬프트: "지금 재시작 / 나중에" 다이얼로그. 나중에 선택 시 다음 종료 시점에 자동 설치(
autoInstallOnAppQuit). - 수동 체크: Help 메뉴에 업데이트 확인 항목 추가 — 백그라운드 체크가 실패해도 다시 트리거 가능, 결과를 다이얼로그로 노출.
- 인프라 변경 0:
release.yml이 이미electron-builder --publish always로latest.yml+ blockmap을 업로드하고 있어 워크플로 변경 없음.
v0.2.4 사용자는 이번 한 번만 수동으로 setup.exe를 받아 설치하셔야 자동 업데이트 와이어링이 들어갑니다. 그 이후 릴리즈부터는 자동 적용.
Windows EXE 한글 IME 복구
세션을 한 번 사용한 뒤 SessionForm 입력 필드를 클릭해도 캐럿이 활성화되지 않던 문제, 그리고 잠금화면/스크린세이버 해제 후 모든 입력이 데드되던 문제를 함께 잡았습니다.
- 세션 사용 후 SessionForm 클릭 무반응: xterm의 helper textarea가 native HWND 키보드 포커스를 점유한 채 놓아주지 않아, React
autoFocus로는 DOM 포커스만 옮기고 OS 레벨 캐럿이 따라오지 않던 문제. SessionForm mount 시점에 main 프로세스의webContents.focus()를 IPC로 호출해서 OS 레벨 포커스를 강제 회수, 두 RAF 뒤 타이틀 입력에 포커스를 옮기는 식으로 해결. 폼 사용 동안엔 모든 xterm helper textarea를 포커스 traversal에서 park. - 잠금화면/스크린세이버 복귀 후 입력 데드: BrowserWindow는 활성화되지만 webContents로 native 포커스가 돌아오지 않던 문제. 모든 윈도우 활성화 이벤트(
focusevent)에서webContents.focus()를 무조건 다시 호출해 OS-level focus를 routing.
두 fix 모두 Windows에 영향, Linux/macOS에는 무관(둘 다 native focus를 자동으로 webContents로 routing).
마이그레이션
별도 마이그레이션 작업 불필요. 다만:
- 데스크톱 앱(v0.2.4) 사용자: 이번 한 번만 GitHub Release의 setup.exe / .dmg / .AppImage를 받아 수동 설치해야 자동 업데이트 와이어링이 들어갑니다. 이후 릴리즈는 자동.
- SVN 프로젝트 추가하려면: 프로젝트 설정 → Enable SVN 체크. 호스트에
svn바이너리가 없으면 패널이 설치 안내 배너를 띄워줍니다. - DB 마이그레이션 자동:
projects.vcs_type/svn_enabled/is_svn_wc컬럼이 자동 추가됩니다. 기존 git 프로젝트는vcs_type='git'으로 backfill — 별도 작업 불요.
설치 / 업데이트
npm i -g clitrigger@0.2.5데스크탑 앱: GitHub Release 자산의 .exe / .dmg / .AppImage 사용. v0.2.4에서 업그레이드하는 데스크톱 사용자는 이번에 한 번만 수동 설치, 이후엔 자동.
전체 커밋 목록
- 06d0e83 WIP(docs): document SVN panel, multi-branch push, and Electron polish
- aa97f07 feat(electron): wire electron-updater for GitHub Releases auto-update
- 4c935e4 fix(svn): add missing is_svn_wc migration entry
- d872ebf feat(svn): add opt-in SVN working-copy panel with file status, log, and commit UI
- 75cda44 fix(electron): refocus webContents on window focus to recover from screensaver
- 6c63ed0 feat: session 8-way resize + Korean IME focus + settings version
- 3b3eddc feat(git): add SourceTree-style multi-branch push dialog
관련 문서
- 상세 changelog — 날짜별 기술 결정 기록 (특히 2026-05-05-1 ~ 2026-05-05-3)
Full Changelog: v0.2.4...v0.2.5