콘텐츠로 이동

전체 기능 인벤토리

이 문서는 AgentManager (v1.8.99 기준) 가 제공하는 모든 기능을 사용자 관점에서 정리한 목록이다. 개발자 참고용으로 각 항목의 주요 구현 파일도 함께 표기했다.


  • Electron 데스크탑 앱 (Windows 우선, macOS/Linux 지원 코드 존재) — electron/main.js
  • 임베디드 Express + WebSocket 서버를 같은 프로세스로 부팅, 포트 3001~3010 자동 walk — server/index.js
  • SQLite 데이터베이스 (userData/data/manager.db) 로 프로젝트 · 세션 · 메시지 · 사용량 · 브레이크포인트 · 스킬 등 저장, v1~v24 마이그레이션 — server/db.js, server/migrations.js
  • 단일 인스턴스 락 (prod) — 두 번째 실행은 argv 를 첫 인스턴스에 forwarding 후 종료
  • 로그 파일 (userData/logs/server-YYYY-MM-DD.log) 일별 rotate, 14일 보관, console.* 인터셉트 — electron/logger.js
  • 자동 업데이트 (electron-updater) — 부트 5초 후 첫 체크, 4시간 주기, autoDownload=true → 재시작 시 자동 설치. 공개 GitHub Releases 리포 사용 (토큰 불필요)
  • 크래시 가드unhandledRejection / uncaughtException 로깅으로 서버 프로세스 죽음 방지
  • 아이들 스윕 — 30분 이상 유휴 CLI 세션 5분마다 자동 정리
  • WS 핑/퐁 — 30초마다 죽은 WebSocket 감지, 정리
  • REST 라우트 마운트 순서 (server/index.js) — /api/projects · /api/skills · /api/installed-skills · /api/sessions/:sessionId/branches · /api/sessions · /api/projects (worktrees mount 2회차) · /api/activity · /api/stats · /api/diagnostics · /api/plugins · /api/claude-doctor · /api/codex-doctor · /api/codex-review · /api/mcp · /api/lsp · /api/screens (v1.8.97) · /api/branches (PUT/DELETE standalone) · /api/browse · /api/health · /api/remote-token · /api/push/* · /api/allowed-roots · /api/capture

  • 프로젝트 등록 (경로 브라우저 · 드라이브 탐색 · 절대경로 직접 입력) — client/src/components/AddProjectModal.jsx
  • 프로젝트 수정 (이름 · 설명 · 시스템 프롬프트 · 예산 · 아이콘 라벨 · 태그 · session_mode · trust_level · 규칙)
  • 프로젝트 삭제 (관련 세션 · 트리 · attention · 심볼 인덱서 자동 정리)
  • Provider 구분: Claude / Codex — 각각 별도 모델 카탈로그와 아이콘/색상
  • 같은 경로의 sibling provider 프로젝트 원클릭 스위치 (Claude ↔ Codex, 토큰 소진 시 provider 스왑 패턴) — SiblingProviderSwitch
  • Overview 대시보드 (프로젝트 카드 그리드, 상단 검색) — client/src/components/Overview.jsx
  • ProjectRail 사이드 (DetailView, 좁은 화면은 오버레이) — client/src/components/ProjectRail.jsx
  • 3-way 정렬 토글 (최근 / 이름 / 상태)
  • 드래그 정렬 (reorderProjects)
  • Attention 뱃지 — 백그라운드 세션 완료 시 프로젝트별 점등
  • Ctrl+. 로 가장 오래된 attention 프로젝트로 점프
  • ProjectRulesModal — 6 카테고리 (techStack / runCommands / conventions / doNotTouch / pitfalls / releaseChecklist), 카테고리당 2000자, 시스템 프롬프트에 자동 prepend — client/src/components/ProjectRulesModal.jsx
  • Trust Level (safe / standard / trusted / full) — 실시간 변경, CLI 인자 (--disallowedTools 또는 --dangerously-skip-permissions) 매핑 — server/lib/trustLevels.js
  • git worktree 관리git worktree list --porcelain 파싱, add/remove UI — client/src/components/WorktreeModal.jsx, server/routes/worktrees.js
  • Worktree 전환 시 세션 archive/activate (프로젝트당 archived 세션 LRU 5개)
  • 세션은 worktree cwd 별 격리 (pending diff · 심볼 인덱스 · 파일 검색 모두 cwd 격리)

  • 텍스트 메시지 전송 (Enter 전송 · Shift+Enter 개행 · IME 조합 중 자동 대기)
  • 실시간 스트리밍 (delta append, 스트리밍 버블 재사용)
  • 메시지 큐 — running/waiting 중 입력하면 자동 큐잉, idle 500ms 후 drain
  • 큐 재정렬 / 삭제 / 전체 클리어
  • Stop & Undo — 마지막 user 메시지 삭제 + 입력창에 draft 복구
  • Waiting 상태 취소
  • Ctrl+L 대화 리셋
  • 새 세션 시작 / Continue in new session (만료 시 최근 10턴 primer 자동 주입)
  • SessionExpiredBanner — 세션 만료 안내
  • RateLimitBadge — 세션별 + 글로벌 fallback + 재시도 배너 (attempt/maxAttempts/retryAt)
  • 무한 스크롤 히스토리 로드 (session:load-history offset+50)
  • Fork / 브랜치 — 특정 메시지에서 분기, 브랜치 selector — server/routes/branches.js
  • Markdown (ReactMarkdown + remark-gfm)
  • 코드 하이라이팅 (highlight.js, 10+ 언어), 복사 버튼
  • 표 · blockquote · list · heading · strong · em · hr
  • 인라인 파일 경로 자동 링크 (Foo.cs:470 → Ctrl+클릭으로 preview + 파일트리 reveal) — PathLink.jsx
  • 이미지 렌더 — Ctrl+클릭으로 preview 옆에 열기, 로드 실패 시 대체 텍스트
  • Tool-call XML 마크업 자동 제거stripToolMarkup
  • 스트리밍 중 raw pre → 완료 후 markdown 파싱
  • 어시스턴트 응답 model 뱃지 (formatModel)
  • 상대 timestamp (hover reveal)
  • 에러 분류 카드 (classifyError) + 대안 제안
  • Command 결과 카드 (/plugin 등)
  • Ask-User-Question 버블 — 다중 선택 지원, 답변은 CLI 로 자동 전송
  • Continue-check 버튼 · 프로젝트 컨텍스트 스냅샷 카드
  • ProgressStream — 현재 턴의 도구 실행 진행 스트림 (실시간)
  • ChangeSummaryCard — 완료 후 “방금 한 일” 요약 카드
  • UserPromptNav — 이전 사용자 지시 점프 (Ctrl+↑/↓)
  • ScrollToBottomButton — 스크롤 하단 FAB (auto-pin 이탈 시)
  • Ctrl+F 검색 바
  • Jump 모드 (매칭 인덱스 강조, 목록 유지)
  • Enter / Shift+Enter 로 다음/이전 매치
  • 현재 매치 하이라이팅 + 자동 스크롤
  • Auto-resize textarea (max 150px)
  • Ghost autosuggest — 프로젝트별 input history + 세션 user 프롬프트 pool, /Tab accept
  • 세션별 input history persist (프로젝트당 최대 200개)
  • @ 파일 mention 자동완성 — basename/path 랭킹, ↑↓/Enter/Tab
  • / 슬래시 팔레트 — Tab 삽입만 / Enter 즉시 실행 / 파괴적 명령은 두 번 Enter
  • 이미지 붙여넣기 → 프로젝트 업로드 → ![](path) 자동 삽입
  • OS 파일 드래그&드롭 — 이미지 업로드 / 나머지는 project root 로 copy
  • 파일트리 내부 드래그 → @경로 자동 삽입
  • Role Strip — 페르소나 프리셋 (Implement / Review / TestWriter / Explain 등), 모델/effort 자동 조정
  • Running 시 placeholder “Type to queue message…”
  • Blur 후 mention picker 자동 닫힘 (120ms)
  • Session History 드롭다운~/.claude/projects/<encoded>/*.jsonl 스캔, 오타/유사 폴더 fuzzy 매칭 (Claude 전용) — server/process/claudeSessions.js
  • 세션 선택 후 resume (Claude Session ID 로 재개)
  • SessionTimeline 모달 (도구 실행 + 파일 변경 시간순)
  • 세션 mode 스위치 — oneshot ↔ persistent 라이브, CLI 재spawn
  • Persistent 모드 상태 — PID · uptime · idle 시간, CLI 재시작 버튼
  • 세션 노트 (session_notes 테이블, 500자, 프로젝트별 세션 재개용) — PUT /api/projects/:id/claude-sessions/:sessionId/note

  • 모델 picker — Claude (alias · fable · opus · sonnet · haiku) 그룹, Codex 별도 카탈로그 — client/src/constants/models.js
  • 세션 라이브 모델 스위치 (session:set-model)
  • Effort picker — low / medium / high / xhigh / max — client/src/constants/effort.js
  • Ultracode 토글 — 매 메시지 앞에 ultracode 키워드 주입
  • Ultracode tainted 세션 자동 새 세션 스폰 (session-sticky 방지)
  • UltracodeOffBanner (taint 감지 안내)
  • 프로젝트당 기본 모델/effort auto-sync (useProjectModelEffortSync)
  • Context Bar — 현재 세션 컨텍스트 토큰 사용률 시각화
  • Loop Engineering — 목표 · 최대 턴 (3/5/10/15/20/30/50) · verifier 모델 (haiku/sonnet/opus) 선택, 서버 orchestrator 로 자동 반복. gap history + confidence + progress history, 3턴 유사 gap 시 조기중단, SQLite (loop_state 테이블) 저장 → 앱 재시작 후 이어짐 — server/process/loopOrchestrator.js, server/process/verifier.js

  • Lazy load (디렉토리 클릭 시 fetch, 자식 목록 캐시)
  • 파일 클릭 → preview 탭 자동 열기
  • pending diff 뱃지 — 파일별 노란 점, 클릭 시 DiffPanel
  • Reveal — 채팅의 Ctrl+클릭 경로에서 조상 디렉토리 자동 확장 + 스크롤 + 하이라이트
  • 우클릭 컨텍스트 메뉴 (새 폴더 · 이름 변경 · 삭제 · 탐색기)
  • 인라인 이름 변경 (F2 스타일)
  • 새 폴더 자동 이름 (새 폴더, 새 폴더 (2)…)
  • Explorer 에서 열기 (shell.showItemInFolder)
  • F5 로 새로고침
  • 드래그 이동 (내부: fs/move, 외부 → project root: copyFile)
  • 파일 아이콘 (확장자별 이모지)
  • Ignore patterns 필터 (전역 설정, glob 와일드카드, 기본 *.meta)
  • Ctrl+P 파일명 검색 (fuzzy: startsWith > includes > path)
  • Ctrl+Shift+F 파일 내용 검색 (debounced grep, truncated flag) — server/routes/projects.js /grep
  • Ctrl+Shift+O 심볼 검색 (C# 심볼 인덱스 기반)
  • 심볼 크로스 워크트리 옵션 (allWorktrees)
  • 결과 하이라이팅 (검색어 mark)
  • 탭 시스템 — 프로젝트당 LRU 10개, 최대 5개 노출 + +N 오버플로우 드롭다운
  • 활성 탭 항상 보이도록 자동 스왑
  • Monaco Editor (지연 로딩) — 40+ 언어
  • Highlight.js lightweight 뷰 (200KB 이하)
  • 미디어 뷰어 — 이미지 · Video (<video controls>) · Audio (🎵) · PDF · DOCX · XLSX · PPTX (모두 lazy)
  • Markdown 뷰어 — 원문/프리뷰 토글
  • 파일 크기 cap 초과 시 안내
  • Text 200KB 하드 truncate
  • 이미지 해상도 배지 (1920 × 1080)
  • 이미지 Lightbox — 클릭 시 전체 화면, Esc 닫기
  • Monaco 인라인 편집 (readOnly=false)
  • Ctrl+S 저장
  • Dirty indicator + 저장 중/실패 상태
  • 낙관적 저장 (in-flight 사이 typing 안전)
  • 외부 편집기로 열기 (shell.openExternal)
  • HTML 파일은 브라우저로 open
  • F12 정의로 이동 (Monaco 훅) — useMonacoGoToDefinition.js
  • Shift+F12 참조 찾기 (부동 ReferencesPanel)
  • Reveal line + timestamp — 같은 라인 재요청도 재트리거
  • 프리뷰 위젯 내 F12 는 in-place 파일 교체

파일 시스템 REST API (server/routes/projects.js)

섹션 제목: “파일 시스템 REST API (server/routes/projects.js)”
  • 디렉토리 lazy list, 파일 텍스트/raw (Range 지원), stat, mkdir, move, delete (.git/node_modules 등은 force 필요)
  • 배치 존재 확인 (files-exist) + basename fuzzy fallback
  • 플랫 재귀 리스트 (20k / depth 8 cap) — @-mention 용
  • 이미지 업로드 (30MB cap → .claude-images/pasted-<ts>-<rand>.<ext>)

  • Pending diff 자동 트래킹 — 프로젝트당 · cwd 별, Edit/Write/MultiEdit/NotebookEdit tool 이벤트 감지 → snapshot 자동 저장 — server/process/snapshotStore.js
  • DiffPanel (좌측 파일 목록 + 우측 diff view)
  • “이 세션만” 필터 (활동로그의 changedFiles 기준)
  • Accept / Decline (파일 전체 · 블록 단위), 자동 다음 파일 이동
  • InlineDiff side-by-side — server/process/diffBlocks.js
  • 툴바 DIFF 뱃지 (개수 + pulse dot)
  • 클릭 시 pending 파일들을 각각 preview 탭으로 열기
  • 채팅 헤더 diff 뱃지 (worktree 필터링)
  • 동시성 보호withDiffLock(projectId, cwd, relPath) 큐잉, 세션 스트리밍 중이면 409
  • 서버 재시작 시 pending 큐 폐기 (cleanupAllPending)

  • 트리 기반 pane 관리 — filetree / chat / preview / breakpoints / terminal 5종 leaf — client/src/components/detail/detailTree.js
  • 프로젝트별 저장, 창별 저장 (perWindow)
  • 마이그레이션 — legacy 트리 자동 감지 · breakpoints leaf 자동 삽입
  • 레이아웃 프리셋 기본 / 채팅만 (Focus) / 파일트리+채팅 / 파일트리+채팅+코드 / 코드+채팅 / 세로 분할
  • 사용자 정의 레이아웃 저장 · 삭제 · 즉시 적용
  • 툴바: Split · 파일 · 채팅 · DIFF · Debug · Terminal · 새 창 · 도구
  • Pane 분할 (수평/수직)
  • Pane resize (드래그 핸들, debounced persist)
  • Pane 닫기 (마지막 pane 은 force flag 필요, force close 시 default 로 reseed)
  • Pane 드래그 grip → 다른 pane 자리와 swap 또는 edge 로 이동
  • Widget picker (빈 pane)
  • Chat pane 토글 (닫힌 채팅 pane 복구)
  • Preview leaf 자동 삽입 (파일 클릭 시 없으면 생성 [35, 65])
  • Preview 를 X 로 닫으면 chatPreview.visibleByProject flag 만 flip — tree 는 그대로 유지. 사용자 layout preset 존중 (v1.8.96 에서 v1.8.95 의 leaf 제거 방식 롤백). Preview 를 chat sibling 이 아닌 배치에서 닫으면 남은 sibling 은 tree 배치에 따라 흡수 — 자동 확장 원하면 layout preset 을 chat ↔ preview 인접 구조로 설계
  • Zen 모드 — 채팅만 남고 최대화 시 툴바 · rail 자동 hide
  • Pane 최대화/복원 (파일/채팅/프리뷰), 더블클릭, Esc 해제
  • 🖥 새 창 — 프로젝트를 별도 OS 창으로 열기, windowId per 창, 각자 layout tree
  • Pane detach → 새 창으로 (⧉ 버튼, chat/preview/filetree/terminal 지원)
  • Grip 드래그로 창 밖으로 → 자동 detach (tab tearing 패턴)
  • Terminal detach 시 pty 유지 (attach=1 로 재구독), 명시 close 만 kill
  • 격리 모드 (?isolate=terminal|chat|preview|filetree) — 단일 pane 창 부팅
  • BroadcastChannel 로 debug store 창 간 sync
  • storage event 로 theme/accent/font/locale 창 간 동기화
  • 패널 전용 창 (?panel=terminal|debug) — 미니 view
  • 여러 프로젝트를 한 화면에서 동시 작업
  • 프로젝트별 split tree persist
  • 세션 mode + anchor project 앱 재시작 후 복원
  • 위젯: Chat / Preview / Web / Terminal / Empty
  • WebWidget — 내장 webview, 히스토리 50개, back/forward (sandbox 강제)

  • 프로젝트별 내장 xterm.js 터미널 (node-pty backed)
  • `Ctrl+`` 로 새 터미널 leaf 추가
  • 프로젝트당 최대 8개, 전역 최대 32개
  • 스크롤백 5000줄 (xterm) + 서버 32KB 링버퍼 replay
  • FitAddon 자동 리사이즈 + pty resize 통보
  • WebLinksAddon (URL 클릭 → 브라우저)
  • 인증 토큰 subprotocol 로 WS 연결
  • 다중 창 pty 공유 — 하나의 terminalId 를 여러 WS 가 subscribe (multi-window), detach vs close 구분 — server/process/terminal.js
  • 기본 shell — Windows ComSpec (pwsh/powershell), Unix $SHELL
  • 대기 데이터 200개 버퍼 (ready 전)
  • 최대 6개 동시 pty, 인터랙티브 claude REPL (Ink TUI + /mcp 지원)
  • Windows: claude.cmd shim 을 cmd.exe /c 로 감싸 ConPTY 안에서 실행
  • 원격 접속은 allowed_roots 필수
  • 백프레셔 (bufferedAmount 1MB 초과 시 pause)

  • Slot 저장~/.claude/.credentials.json 스냅샷 → ~/.claude/credentials-slots/<uuid>.json (모드 0o600, atomic write)
  • 암호화 — Electron safeStorage (Windows DPAPI / macOS Keychain / Linux libsecret), 폴백 plaintext
  • Fingerprintsha256(refreshToken || accessToken)[:16], legacy accessToken-based 병행
  • 라벨 편집 · 삭제 · 원클릭 슬롯 전환
  • ChatHeader AccountSwitcher — 빠른 스위치
  • Settings 상세 관리 — AccountManagerSection
  • Health probe (Anthropic OAuth API) — ok/expired/network 표시, 만료 감지 → 재로그인 버튼
  • 중복 slot 감지 & 정리 (fingerprint 기준)
  • AddAccountWizard — OAuth 재로그인, 기존 creds 백업 → 파일 삭제 → 새 로그인 → 완료 시 백업 파기 / 취소 시 복원
  • 파일 변경 감시fs.watch(.credentials.json) + 5초 mtime 폴링 → CLI 토큰 회전 시 활성 슬롯 자동 갱신
  • WS auth-error → 자동 위저드 open
  • 활성 계정 인디케이터 (녹색 점)
  • 동일 패턴 — ~/.codex/auth.json 스냅샷, ~/.codex/auth-slots/<uuid>.json
  • Fingerprint — 전체 객체 sorted-keys sha256 (Codex 는 안정 필드가 없어서)
  • 파일 변경 감시 없음 (Claude 만)

  • 목록 (transport / status / target) — claude mcp list 파싱
  • 서버 추가 (http/sse/stdio, scope: user/local/project, URL+headers 또는 command+args)
  • 서버 삭제 (확인 모달)
  • 승인/인증McpAuthConsole 임베디드 PTY 터미널 (/pty 소켓, interactive claude REPL)
  • Pending vs needsAuth 구분 안내
  • Marketplacesowner/repo 또는 URL 추가
  • 설치된 플러그인 — enable / disable / update / uninstall (dedup by id, project scope)
  • 찾아보기 (available) — 마켓플레이스 미설치 항목 + 설치 카운트
  • 채팅 슬래시 /plugin install foo 앱 인터셉트 (pending → 결과 카드), batch 지원
  • 진행 라벨 (설치 3분 안내)
  • plugins-changed 커스텀 이벤트로 도구 panel 자동 새로고침
  • Claude 가 자동 인식하는 스킬 목록 — ~/.claude/plugins/cache/*, ~/.claude/skills/, ~/.codex/skills/, project .claude/skills, .codex/skills, .agents/skills 스캔, 버전순 dedupe
  • Origin 색상 태그 (plugin=teal, user=amber, codex-user=violet, project=cyan/fuchsia)
  • Inert 감지.agents/skills 는 claude-code 가 안 봄 → ⚠ 경고
  • Description 접기/펼치기
  • 레거시 앱 내부 스킬 스니펫 — 전역/프로젝트 스코프, /이름 호출, 삭제 가능

  • Builtin 카탈로그client/src/constants/slashCommands.js BUILTIN_SLASH_COMMANDS
  • 7 카테고리 (SLASH_CATEGORIES): 세션 · 모델·컨텍스트 · 코드 리뷰 · 워크플로우 · 프로젝트 · 진단 · 유틸리티 (Codex 전용 명령은 별도 카테고리가 아니라 review/project 안에 섞여 있고 provider 게이팅으로 필터링)
  • 자동완성 picker (icon · destructive · REPL-only · app · providers 뱃지)
  • 한/영 설명 + when-to-use 시나리오
  • App-handled 명령:
    • /plugin — CLI wrap
    • /doctor — provider 별 진단 (claude doctor / codex doctor), 결과 카드
    • /codex-review — 워킹트리 리뷰 (codex exec review)
    • /codex-mcpcodex mcp list
    • /copy N — 마지막 N개 어시스턴트 응답 클립보드 복사
    • /export — 전체 대화를 markdown 파일로 다운로드
  • Provider 게이팅 — Codex 세션에서 Claude 전용 명령은 hint 반환
  • REPL-only 명령 경고
  • SlashCommandGuide (설정에서 전체 카탈로그 열람)

  • ResizableDock 도킹, storageKey=‘debug’, detach 새 창 (?panel=debug)
  • CallStackPanel + VariablesPanel 2열 — DAP 스코프/변수 fetch
  • 🎮 Unity — vstuc (~/.vscode/extensions/visualstudiotoolsforunity.vstuc-*/bin/UnityDebugAdapter.dll) + dotnet 3-tier 탐지 (PATH → Program Files → VSCode globalStorage) + --roll-forward LatestMajor. Unity Attach 자동 (endPoint 미지정시 UnityAttachProbe)
  • 🟢 Node — PATH node → ~/.vscode/extensions/ms-vscode.js-debug-*/{src,out,dist}/src/dapDebugServer.js, --inspect-brk=9229
  • 🐍 Python — PATH python/py/python3 → debugpy.adapter 검증, 5678
  • 어댑터 미탐지 시 액션 토스트 (.NET 다운로드 / VSCode 확장 마켓 / debugpy 설치 힌트, 마켓플레이스 링크)
  • 커스텀 어댑터 경로 override (Settings)
  • F5 Start/Continue · F10 Step Over · F11 Step Into · Shift+F11 Step Out · Shift+F5 Stop
  • 세션은 projectId 별 분리 (Map<projectId, DebugSession>), 이벤트 크로스토크 방지
  • BreakpointsPanel — per-project 목록, verified vs pending 색상, 클릭 openPreviewTab, ✕ 제거
  • Monaco 인라인 브레이크포인트 — gutter 클릭 · F9 토글 — useMonacoBreakpoints.js
  • 조건부 / logpoint 지원 (debug_breakpoints DB persist)
  • 선택된 프레임 지원 (SelectedFrame)
  • Hover evaluate — 일시정지 중 변수 값 tooltip — useMonacoHoverEvaluate.js
  • Paused line decoration — 실행 중 라인 노란색 — usePausedLineDecoration.js
  • 브레이크포인트 히트 시 자동 파일 open + line reveal
  • Debug output (stderr / important toast)
  • 🤖 분석 — 일시정지 스냅샷 (스택 + 변수 + ±15줄 소스) → claude -p 자동 분석 → 진단 텍스트 — AnalyzePausedModal.jsx
  • “Claude 에게 물어보기” — paused 상태 프롬프트 자동 프리필
  • VS Code C# 확장 (Microsoft.CodeAnalysis.LanguageServer.exe) 또는 ~/.dotnet/tools/csharp-ls.exe 자동 감지 — server/process/roslynLsp.js
  • 커스텀 경로 override (Settings)
  • IntelliSense (자동완성 · hover · 정의로 이동)
  • 심볼 인덱스 pre-warm — 프로젝트 open 시 백그라운드 build (worker thread) — server/lib/indexerWorker.js
  • SymbolIndexBadge — 우측 하단 floating 프로그레스 (C# 심볼 인덱싱… N/M (X%)), ready 후 fade
  • F12 정의 / Shift+F12 참조 / C# enum completion
  • 파일 변경 시 심볼 인덱스 자동 invalidate (chokidar)
  • Settings > 디버그 탭 — 서버 프로세스 console 출력 tail, 필터 · 새로고침 · 자동 tail 토글 · 복사 · 로그 폴더 열기

  • ⚡ Quick / 즉시 — 계정·도메인·토큰 불필요, xxx.trycloudflare.com 즉시 발급 (재시작마다 URL 변경)
  • 자동 (API 토큰) — Cloudflare API 토큰 → 도메인 목록 조회 → 서브도메인 지정 → 자동으로 tunnel + DNS + ingress 생성 후 시작
  • 수동 — 대시보드에서 발급한 tunnel token + 공개 URL 수동 입력
  • verifyingcreating-tunnelconfiguringcreating-dnssavingteardown-*
  • auto-teardown — 자동 생성한 tunnel/DNS 삭제 (재확인 모달)
  • cloudflared 바이너리vendor/cloudflared/cloudflared.exe (dev), process.resourcesPath (prod)
  • 다운로드 스크립트 — 플랫폼별 최신 릴리즈 (win/win-arm64/mac/mac-arm64/linux/linux-arm64) — scripts/download-cloudflared.js
  • 탐색 스크립트 — 시스템 설치본 스캔 — scripts/probe-cloudflared.ps1
  • 상태 뱃지 (stopped / starting / running / error) + lastError
  • cloudflared 로그 뷰어 (30줄 tail)
  • auto-start on app launch 옵션 (수동 모드)
  • 접속 URL + 앱 토큰 — URL 뒤 ?token= 자동 부착, QR 코드 SVG 128px (폰 스캔 접속 즉시 인증)
  • Subdomain 자동 제안 (remote.suggestSubdomain)
  • AllowedFolders — 원격 접속자가 탐색·프로젝트 등록 가능한 폴더 화이트리스트
  • 비어있으면 ⚠ 노란 배너 안내 (원격 실사용 유도)
  • /api/allowed-roots PUT 은 loopback-only

  • 진입점 — Cloudflare Tunnel 로 폰 브라우저 접속 시 자동 렌더 — client/src/mobile/MobileApp.jsx
  • 레이아웃 — 100dvh + safe-area-inset (iOS 노치/홈 인디케이터 대응), 상단 topbar + body + 하단 tabBar
  • 탭 바 — 채팅 / 프로젝트 / 설정 3탭, 각 min-height 56px 터치 타겟
  • Virtuoso 메시지 리스트, 자동 스크롤 pin
  • 세션 상태 뱃지 (대기/실행/응답 대기), 컴팩트 RateLimit
  • 프로젝트 진입 시 세션 자동 시작
  • 중지 & Undo — 실행 중 최근 user 메시지를 draft 로 복구 후 취소
  • ⋮ 추가 메뉴 — bottom-sheet (세션 옵션 / Effort / Ultracode / Persistent / Loop 상태)
  • 로컬 sendingLocally — WS 확인 전에도 typing dots (15초 캡)
  • Ultracode 세션 오염 감지 시 fresh CLI 세션 자동 spawn
  • <textarea> autosize (max 40vh), Enter 개행 (IME 대응), 전송 버튼
  • 삼성/한국 IME Enter=submit 이슈 명시적 처리
  • MobileImageViewer — 풀스크린
  • MobileSessionSheet — 세션 목록 (상대시간), 대형 세션 (>=1000 msg) 전환 확인
  • MobileProjects — 검색, 상태 dot, + 신규
  • NewProjectSheet — 절대경로 수동 입력 (모바일은 폴더 피커 없음) + 모델 선택
  • MobileSettings — 테마 · 기본 Claude/Codex 모델 · 앱 토큰 복사 · PWA 웹푸시 subscribe (iOS 16.4+ 홈화면 추가 후 가능)
  • MobilePersistentStatus / MobileLoopStatus / MobileEffortPicker (네이티브 <select>) / MobileUltracodeToggle
  • WebSocket 재연결 방어 — visibilitychange 시 강제 close + 재연결 (throttle 3s), onclose vs wake race 가드

14a. 활동 바 · 활동 시트 (ActivityBar / ActivitySheet)

섹션 제목: “14a. 활동 바 · 활동 시트 (ActivityBar / ActivitySheet)”
  • 세션 상태 dot — running (green pulse) / waiting (yellow pulse) / error (red) / idle (dim)
  • 현재 작업 상태 문구 (activity.current)
  • 마지막 user 프롬프트 미리보기 (80자 truncate)
  • 실행 경과 시간useElapsed 훅으로 초 단위 tick
  • 컨텍스트 tokens · 액션 카운트
  • 큐 카운트 — 대기 중 메시지 수 (0 초과 시 뱃지)
  • 활성 계정 라벨 — 현재 slot fingerprint 기반 (useActiveAccountLabel)
  • RateLimitBadge — 세션별 · 글로벌 fallback
  • LastResponseSection — 마지막 어시스턴트 응답 요약
  • StatusSection — 세션 상태 · uptime · CLI PID (persistent 모드)
  • ActionsSection — 실행된 도구 액션 로그 (파일 read/write/edit/bash 등)
  • FilesChangedSection — 이번 세션에서 변경된 파일 목록
  • QueueSection — 큐된 메시지 목록 + 재정렬 / 삭제 / 전체 클리어
  • UnityActivitySection — Unity CLI 실행 내역 감지 시 표시
  • Toggle 버튼으로 열고 닫기, 세션 전환 시 유지

15. 대시보드 · 통계 · 활동 요약

섹션 제목: “15. 대시보드 · 통계 · 활동 요약”
  • 범위 토글 (7일 / 30일 / 전체), Esc 닫기 — client/src/components/Dashboard.jsx
  • KPI: 총 비용 · 총 턴 · 일평균 ($) / 총 토큰 · Input·Output · 일평균 토큰 (토큰 모드)
  • 단위 토글 (tokens/usd) localStorage persist
  • LineChart 일별 · BarList 프로젝트별 (pct 포함)
  • KPI: 총 메시지 · 활성 프로젝트
  • LineChart 일별 메시지 · Heatmap 요일×시간 · BarList 프로젝트별
  • “어제의 활동” 1일 / 최근 7일 토글, 접기/펼치기
  • KPI: 💬 메시지 · 📁 프로젝트 · $ 비용
  • ✨ AI 요약 — Claude sonnet 로 한 줄 요약 생성 (activity_summaries 캐시), Shift-click force refresh, 비용 표시, prompt injection 방지용 ---USER-MSG-BEGIN--- sentinel
  • 프로젝트별 목록 (3개 preview / 7일 최대 50개)
  • /api/activity/daily, /api/activity/ai-summary, /api/stats/cost, /api/stats/activity, /api/projects/:id/usage
  • Overview 상단 뱃지 — 응답 완료 미확인 세션 카운트 → “가장 오래된 것으로 이동”
  • VersionBadge — 우하단 compact / Settings About inline, 업데이트 확인 버튼

  • usePushSubscription 훅 — 서비스 워커 등록 → Notification.requestPermission → VAPID public key → subscribe → 서버 POST
  • VAPID 키페어 자동 생성 — meta 테이블 persist — server/push.js
  • push_subscriptions 테이블 (endpoint UNIQUE, p256dh, auth, user_agent)
  • Claude 응답 완료 시 팬아웃
  • 404/410 응답 시 subscription 자동 정리
  • iOS 16.4+ 홈 화면 추가 PWA 만 동작

17. AI 인라인 편집 (Cursor Ctrl+K 스타일)

섹션 제목: “17. AI 인라인 편집 (Cursor Ctrl+K 스타일)”
  • InlineEditModal — 선택 코드 + 자연어 프롬프트 → claude -p → 치환 코드 + cost 반환 (90초 timeout) — IPC ai:inlineEdit

  • exe 인자 기반 프로토콜AgentManager.exe "path.cs:42" 또는 AgentManager.exe "path" -line 42
  • 단일 인스턴스 락 + second-instance 이벤트 로 argv forwarding
  • parseOpenTarget(argv) — Windows drive/UNC/POSIX absolute + 확장자 있는 존재 파일 검증
  • 가장 긴 접두어 매칭 프로젝트 자동 선택 + preview 탭 + line reveal
  • 미등록 경로 → root 후보 추정 (/Assets/ 검출) + 프로젝트 추가 유도 토스트

  • UpdateBanner — 상단 배너 4상태 (downloading progress bar / ready / error / hidden)
  • VersionBadge — variant compact (Overview) / inline (Settings)
  • updater.checkNow() — 새 버전 자동 다운로드, 없으면 “최신 버전입니다” 토스트
  1. 언어 (한/영)
  2. CLI 감지 (Claude Code / Codex, 하나 필수, where/which → npm prefix → 표준 경로 탐지)
  3. Trust Level 설명
  4. Persistent 모드 opt-in
  5. 완료
  • ⚡ 자동 설치cli:install IPC 로 앱 내 npm install -g @anthropic-ai/claude-code 또는 @openai/codex (5분 timeout, allowlist)
  • 실시간 로그 스트림 (cli:install:log)
  • 📋 복사 (설치 명령 클립보드)
  • localStorage cm-onboarding-completed-v1 로 1회 표시
  • Skip / Esc 로 어느 스텝에서든 종료

Walkthrough (인앱 spotlight 투어, v1.8.99)

섹션 제목: “Walkthrough (인앱 spotlight 투어, v1.8.99)”
  • Portal-mounted overlay, 4-div 반투명 backdrop 으로 target 주위에 hole + accent border — client/src/components/Walkthrough.jsx
  • 10 스텝: 환영 · Rail · + Add Project · Chat composer · DIFF 뱃지 · Layout 프리셋 · Terminal 버튼 · Split 버튼 · Settings · 완료
  • Target selector: [data-tour="<id>"] — 컴포넌트에 attribute 부착 (ProjectRail / Overview / DetailView / ChatInput / Settings)
  • Target element 없으면 center 모드 fallback → 투어 blocking 방지
  • ResizeObserver + resize/scroll 리스너로 layout 변경 실시간 추적
  • 키보드: Esc 건너뛰기 · ←/→ 이전/다음 · Enter 다음
  • 자동 트리거: OnboardingWizard 완료 후 400ms 지연 → walkthrough 시작 (기존 사용자는 wizard 를 안 봐서 자동 트리거 X)
  • 재실행: Settings > 정보 > “튜토리얼 다시 보기”
  • localStorage cm-walkthrough-seen=1 로 완료 flag 저장

  • 부팅 시 자동 실행 (/api/diagnostics), 문제 발견 시 자동 open — client/src/components/DiagnosticsPanel.jsx
  • Claude CLI · Codex CLI · DB · System · envAuth · problems 표시
  • “Claude 테스트”/api/diagnostics/test-claude (분당 1회 rate-limit)
  • AUTH_ENV_OVERRIDE 별도 섹션 (환경변수로 오인된 auth 케이스)
  • CLI 미설치 시 npm 명령 copy + docs 링크
  • Overview 헤더 ⚡ 아이콘에 문제 발견 시 빨간 점
  • DoctorPOST /api/claude-doctor / codex-doctor (single-flight 가드)

  • 외관 — 테마 (dark/light data-theme), Accent color 10+ 프리셋, Font family 프리셋
  • 모델·계정 — 기본 Claude/Codex 모델, 언어, 이메일, Persistent mode opt-in, Claude/Codex slot 관리, 토큰 예산
  • Slash 명령 가이드
  • 원격 접속
  • 편집 — FileTree ignore patterns, Debug adapter path, C# LSP path
  • 단축키 목록
  • 디버그 로그 — tail 800줄, 필터, autotail, 복사, 폴더 열기
  • 정보 — 버전 · 통계
  • AppearanceSection, FileTreeIgnoreSetting, DebugAdapterSetting, CSharpLspSetting, LanguageSetting, PersistentModeSetting, UserEmailSetting, TokenBudgetSetting

  • Theme (dark / light) — data-theme 속성
  • Accent color — teal 기본, 10+ 프리셋
  • Font family — system 기본, 프리셋
  • localStorage cm-* persist + 창 간 자동 동기화 (storage event)
  • i18n (ko / en) — react-i18next, 즉시 반영 (재시작 불필요)
  • 사용자 이메일 (활동 바 표시용)

  • 원격 토큰meta.remote_token 24 byte hex 자동 생성 — server/auth.js
  • 로컬 loopback bypass — 프록시 헤더/토큰 없고 127.0.0.1/::1 이면 인증 skip
  • 원격 감지cf-connecting-ip, x-forwarded-for, x-real-ip, x-cm-token, ?token= 중 하나라도 있으면 loopback shortcut 비활성화
  • timingSafeEqual 토큰 비교
  • WS subprotocol cm-token.<token> 인증
  • TokenGate — 원격 접속 토큰 미검증 시 모달
  • authFetch — 모든 /api 요청에 토큰 자동 부착
  • QR 스캔 URL 토큰 자동 저장 (?token=… → localStorage → URL 스크럽)
  • allowed_roots — 원격 사용자 접근 가능 절대경로 화이트리스트
  • isPathAllowed — 정규화 후 prefix + separator 매칭, 빈 목록은 fail-closed (파일 read/write/browse 하위 경로 전부 거부)
  • /api/browse 루트 예외 — 빈 목록 원격 사용자에게도 Windows 드라이브 목록 / POSIX / 목록만은 노출 (실제 폴더 진입은 fail-closed)

WS 페이로드 검증 (Zod, server/ws/schemas.js)

섹션 제목: “WS 페이로드 검증 (Zod, server/ws/schemas.js)”
  • 모든 inbound 메시지 타입 스키마로 제한 — 알 수 없는 타입은 조용히 거부
  • 경계값 강제:
    • 메시지 본문 content 최대 100KB
    • history limit 최대 500
    • terminal:data 최대 1MB
    • terminal:resize cols/rows 최대 2000
    • session:load-history offset 음수 거부
  • 스키마 미매칭 시 500 error 아닌 400 style validation error 반환
  • 모든 창 contextIsolation: true, nodeIntegration: false
  • Webview 하드닝 — attach 시 preload/nodeIntegration 강제 삭제 + sandbox 강제
  • shell:openExternal — 실행파일 확장자 18종 deny (.exe, .bat, .ps1, .vbs, .js, .msi, .reg 등)
  • CLI install allowlist@anthropic-ai/claude-code, @openai/codex 2개만
  • LSP 바이너리 화이트리스트 — 원격 사용자 RCE 방지, .vscode/extensions 등만
  • Codex 절대경로 실행 — projectId → DB cwd 조회 (사용자 입력 cwd 사용 안 함)
  • 계정 슬롯 — 파일 모드 0o600 + safeStorage 암호화
  • Cloudflare API 토큰 — 렌더러에 절대 return 안 함 (hasApiToken: boolean 만)
  • Wizard 백업 lockfile — 동시 wizard 방지
  • Debug 세션 projectId 스코핑 — 크로스토크 방지
  • redact — 로그/에러에서 HOME/TMP/USERNAME/절대경로 마스킹 — server/lib/redact.js
  • prompt injection 방지 — AI 요약에 ---USER-MSG-BEGIN--- sentinel, verifier 는 <UNTRUSTED_EXECUTOR_OUTPUT> fence
  • childProcessTracer — pid 트리 스냅샷, orphan 감지, sanitizeCmd / scanForLeaks 로 API 키 유출 방지

Privacy 마스킹 (v1.8.98, 스크린샷 캡처용)

섹션 제목: “Privacy 마스킹 (v1.8.98, 스크린샷 캡처용)”
  • body.privacy-mode class 활성화 시 [data-privacy="mask"] 요소를 filter: blur(6px) 로 마스킹 — client/src/index.css
  • 마스킹 대상 (필수 element 만): ProjectCard 이름/경로/마지막메시지 · ProjectRail 라벨 · DetailView 상단 project.name · MessageBubble user/assistant bubble · Dashboard BarList 라벨 · DailyActivity 프로젝트 이름
  • 트리거: POST /api/screens/batch-capture {privacyMode:true} 만 사용 (사용자 UI 는 노출 안 함), sweep 종료 시 자동 해제 (close-all-modals + privacyMode:false IPC)
  • 스토어 슬라이스 privacyMode (persist X), 액션 setPrivacyMode

24. 알림 · 토스트 · 확인 다이얼로그

섹션 제목: “24. 알림 · 토스트 · 확인 다이얼로그”
  • Toast — 4 종류 (info / success / error / warning), 액션 버튼 지원, 자동 dismiss + 수동 close
  • useConfirm — Promise 기반 confirm modal, Portal mounted (data-modal-root), Native window.confirm 대체 (Electron 블로킹 방지) — client/src/hooks/useConfirm.jsx

25. 이미지 · 미디어 · 클립보드

섹션 제목: “25. 이미지 · 미디어 · 클립보드”
  • 이미지 붙여넣기 → 프로젝트 업로드 → ![](path) 자동 삽입
  • 파일 드래그 — 이미지 업로드 / 나머지 copyFile
  • 이미지 확장자 자동 감지 — imageExt.js
  • 이미지 폴더 워칭 — 최대 32개 watcher, LRU 방출, 200ms debounce, 파일 목록 push — image:watchFolder/unwatchFolder/folderChanged IPC (Codex 이미지 생성 결과 실시간 반영)
  • Absolute vs relative 경로 정규화

  • 프로젝트 검색 + 이동
  • 새 프로젝트 · Overview · Settings 액션
  • ↑↓ 네비게이션, Enter 실행
단축키 기능
Ctrl+K Command Palette
Ctrl+N 새 프로젝트
Ctrl+P 파일명 검색
Ctrl+Shift+F 파일 내용 검색
Ctrl+Shift+O 심볼 검색
Ctrl+L 채팅 클리어
Ctrl+F 채팅 검색
Ctrl+. 오래된 attention 프로젝트로 이동
`Ctrl+`` 새 터미널 leaf
Ctrl+S 파일 저장 (Monaco)
F2 파일 이름 변경
F5 파일 트리 새로고침 / 디버그 Start·Continue
F9 브레이크포인트 토글
F10 Step Over
F11 Step Into
Shift+F11 Step Out
Shift+F5 Debug Stop
F12 Go to Definition
Shift+F12 Find References
Enter/↑↓/Esc/Tab 각 picker · palette 표준 조작
Esc 팔레트 · Tools · Diagnostics · Dashboard 순차 닫기
Ctrl+Shift+I DevTools
Ctrl+R Reload
F11 Fullscreen

  • 익명 installId (uuid, ~/.agentmanager/telemetry.json) + version/os/locale + 이벤트 이름
  • 현재는 로컬 telemetry.jsonl append 만 — 원격 전송 인프라 (sendRemoteTelemetry, https://ads.karnellabs.com/api/metrics/events app_agentmanager, 5초 timeout) 는 함수로 존재하나 호출부가 전부 주석 처리 상태 (v1.8.70 Settings opt-out 토글 이후 활성화 예정 — electron/main.js:662-663 이벤트 로그, main.js:751-757 heartbeat 스케줄러 · app_launch 모두 비활성)
  • Allowlist 이벤트 15종:
    • Continue-check: continue_check_shown, continue_check_clicked
    • Lifecycle: app_launch, app_daily_heartbeat
    • Session: session_started, model_changed, mode_changed
    • Worktree: worktree_created, worktree_switched
    • Diff: diff_accepted, diff_declined
    • Unity: unity_activity_seen
    • Navigation: f12_used, symbol_search_used
    • Remote: remote_access_enabled
  • Rate-limit 100/10s (sliding window), 1KB 캡
  • IPC — telemetry:log/getInstallId/getEnabled/setEnabled

28. 세션 · 프로세스 관리 (내부)

섹션 제목: “28. 세션 · 프로세스 관리 (내부)”

ClaudeProcessManager (server/process/claude.js)

섹션 제목: “ClaudeProcessManager (server/process/claude.js)”
  • cross-spawnclaude -p (shell:false, Windows .cmd shim 호환)
  • oneshot 모드 — 매 턴 새 CLI, --resume <id> 로 재개
  • persistent 모드--input-format stream-json stdin NDJSON
  • stall 감지 — 30초마다 3분 무응답 세션 stall 이벤트
  • persistent idle-kill — 10분 유휴 시 프로세스만 정리, --resume 재기동
  • LRU 캡 — 동시 persistent 3개, 초과 시 가장 오래된 idle 축출
  • Edit/Write/MultiEdit tool 이벤트 → snapshot 자동
  • orphan 감지 — 종료 후 남은 자식 프로세스 트레이스

CodexProcessManager (server/process/codex.js)

섹션 제목: “CodexProcessManager (server/process/codex.js)”
  • codex exec --json --skip-git-repo-check --cd <cwd> -s workspace-write [-m model] -
  • resumecodex exec resume --json ... <thread_id> -
  • 모델 validation — gpt-5.5/gpt-5/gpt-4o/o3/o3-mini 외 값이면 gpt-5.5 fallback
  • thread id 캡처thread.started 이벤트 → 재개 핸들
  • stream event 파싱turn.started, item.started, item.updated (reasoning 라이브), item.completed (agent_message → assistant text)
  • auth 감지 — stderr 401/unauthorized/not logged in 시그니처

ProcessFacade (server/process/processFacade.js)

섹션 제목: “ProcessFacade (server/process/processFacade.js)”
  • Provider 라우팅 파사드
  • 20종 이벤트 자동 forward (message, delta, stream, status, activity, model, context, rateLimit, auth-error, error, pending-diff, stall, done, ask-user-question(-resolved), session:expired, mode-demoted)
  • Persistent → oneshot 자동 강등 (mode-demoted)
  • CLI rate_limit_event + 자체 5분/60분 sliding window
  • Subscription tier 포함, 2분마다 자동 갱신
  • GUI 실행 시 PATH 에 npm global bin, ~/.local/bin, Homebrew, .bun/bin 자동 추가 (CLI_NOT_FOUND 방지)

  • projects, sessions, messages, usage, skills, branches, prompt_templates (5개 시드), activity_summaries, pending_diffs, meta, push_subscriptions
  • 인덱스: idx_messages_timestamp/session_id, idx_usage_created_at/project_created, idx_sessions_project_id, idx_pending_diffs_project
  • v1: sessions.claude_session_id
  • v2~10: projects.model / system_prompt / budget_limit / sort_order, messages.branch_id / model, usage.input_tokens / output_tokens
  • v11: debug_breakpoints 테이블
  • v12~18: projects.effort / provider / icon_label / tags, sessions.mode, projects.session_mode / trust_level
  • v19~20: loop_state 테이블 + progress_history
  • v21: session_notes 테이블
  • v22: projects.rules (JSON 6 카테고리)
  • v23: sessions.cwd (worktree)
  • v24: pending_diffs UNIQUE (project_id, cwd, rel_path)

항목 경로
앱 데이터 userData/ (Electron 규약)
SQLite DB userData/data/manager.db
로그 userData/logs/server-YYYY-MM-DD.log
Snapshot userData/snapshots/<projectId>/<cwd-bucket>/<hash>.snap
Remote config userData/remote-config.json
Telemetry ~/.agentmanager/telemetry.json + telemetry.jsonl
Claude creds ~/.claude/.credentials.json (live)
Claude slots ~/.claude/credentials-slots/<uuid>.json (0o600)
Claude wizard 백업 ~/.claude/.pending-backup.json
Claude active marker ~/.claude/.active-slot.json
Codex creds ~/.codex/auth.json
Codex slots ~/.codex/auth-slots/<uuid>.json
Claude 세션 (JSONL) ~/.claude/projects/<encoded-path>/*.jsonl
Skills (사용자) ~/.claude/skills/, ~/.codex/skills/
Skills (프로젝트) <project>/.claude/skills/, .codex/skills/, .agents/skills/
이미지 업로드 <project>/.claude-images/pasted-<ts>-<rand>.<ext>
Cloudflared vendor/cloudflared/cloudflared.exe (dev), resourcesPath (prod)
React state persist localStorage (cm-* 키 prefix, perWindow 슬라이스는 .<windowId> suffix)

  • Electron 33.4.11 + electron-updater 6.8.3 + electron-builder 26.8.1
  • React 19 + Vite 8 + Tailwind CSS v4
  • Zustand (상태 관리) + persistedSlice (localStorage backing, perWindow 옵션)
  • better-sqlite3 12.10.0 (SQLite)
  • Express 4 + ws 8 (WebSocket)
  • web-push (VAPID)
  • node-pty (optional, PTY)
  • Monaco Editor (지연 로딩)
  • xterm.js + FitAddon + WebLinksAddon
  • highlight.js (하이라이팅)
  • react-markdown + remark-gfm
  • react-resizable-panels (Split/Pane)
  • react-virtuoso (메시지 가상 스크롤)
  • react-i18next (i18n)
  • qrcode.react (원격 접속 QR)
  • cloudflared (터널)
  • cross-spawn, diff, zod
  • vitest (client) + node --test (server)


문서/마케팅 스크린샷을 사용자 조작 없이 서버가 자동 캡처하는 도구. 실 앱 UI 를 순차 전환하며 PNG 저장.

  • Body: {screen, privacyMode?} — 지정 화면으로 즉시 전환 IPC 발송
  • 지원 화면 12종: overview · dashboard · settings · tools · diagnostics · close-all-modals · select-first-project · tools-in-project · chat-with-preview · terminal-open · split-mode · debug-open
  • Body: {screens[], dir, settleMs?, prefix?, privacyMode?} — 각 화면 goto → wait → webContents.capturePage() → PNG 저장 반복
  • 파일명: ${prefix}${index}-${screen}.png (00-overview.png 형식으로 정렬 가능)
  • settleMs (기본 500ms) — React paint + lazy chunk hydration 시간 확보
  • privacyMode: true 시 sweep 종료 후 자동으로 마스킹 해제
  • window.electron.screens.onGoto({screen, privacyMode}) IPC 리스너
  • Screen → zustand 액션 매핑 (goToOverview / setShowDashboard / setShowSettings / setShowTools / setShowDiagnostics / selectProject + openPreviewTab / addTerminalLeaf / enterSplitMode / openPanel)
  • privacyMode 는 setPrivacyMode 호출 → body class 동기화
  • window.electron.screens.onGoto(cb) — IPC subscribe 헬퍼
  • Rail 프로젝트 전환 · pane 조작 세밀한 것 (특정 파일 preview · 특정 breakpoint hit) 은 미지원
  • 확장: SUPPORTED_SCREENS 배열 + App.jsx switch 문 동시 업데이트 필요

마지막 업데이트: v1.8.99 (2026-08-04)