Skip to content

Releases: HyperAITeam/CLITrigger

v0.2.14

01 Jun 14:42

Choose a tag to compare

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

관련 문서

Full Changelog: v0.2.13...v0.2.14

v0.2.13

30 May 15:06

Choose a tag to compare

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"

관련 문서

Full Changelog: v0.2.12...v0.2.13

v0.2.12

29 May 15:42

Choose a tag to compare

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

관련 문서

Full Changelog: v0.2.11...v0.2.12

v0.2.11

28 May 15:42

Choose a tag to compare

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

관련 문서

Full Changelog: v0.2.10...v0.2.11

v0.2.10

27 May 14:24

Choose a tag to compare

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

관련 문서

Full Changelog: v0.2.9...v0.2.10

v0.2.9

25 May 15:05

Choose a tag to compare

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

관련 문서

Full Changelog: v0.2.8...v0.2.9

v0.2.8

11 May 15:07

Choose a tag to compare

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

관련 문서

Full Changelog: v0.2.7...v0.2.8

v0.2.7

07 May 14:54

Choose a tag to compare

Full Changelog: v0.2.6...v0.2.7

v0.2.6

07 May 14:41

Choose a tag to compare

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

관련 문서

Full Changelog: v0.2.5...v0.2.6

v0.2.5

05 May 13:16

Choose a tag to compare

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 alwayslatest.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 포커스가 돌아오지 않던 문제. 모든 윈도우 활성화 이벤트(focus event)에서 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