Skip to content

v0.2.58

Choose a tag to compare

@github-actions github-actions released this 08 Sep 07:31
· 54 commits to main since this release

v0.2.58 — Agent state awareness, MCP session control, and per-project tab toggles

Release date: 2026-09-08
Previous version: v0.2.57

TL;DR

CLITrigger now understands what a Claude Code session is actually doing. The server reads PTY output and reports whether the agent is working, blocked waiting for your input, or done. That state powers new tab indicators, a browser notification when a background session needs you, and six new MCP tools that let a lead agent drive helper sessions end to end.

Also in this release: keyboard shortcuts for jumping between tabs and panes, per-project toggles to hide unused primary tabs, a fullscreen Web view that can hide its chrome, a Clear button on the Analytics tab, and a UI pass that replaces every native window.confirm with a styled in-app dialog.

Highlights

Agent state detection: working / blocked / idle / done

  • The server watches each Claude Code session's terminal output. A spinner or "esc to interrupt" means working; a prompt, question, or approval dialog means blocked; process exit means done. Other CLIs report unknown.
  • Exposed over WebSocket as session:agent-state (on every transition and once right after subscribe) and as the agent_state field on GET /api/sessions/:id.
  • Tuned against real Claude Code 2.1.x sessions: the spinner repaints as a single glyph plus cursor moves after the first frame, which used to be missed and made sessions drop to blocked mid-work. Those frames are now recognized.

Input-wait notifications and attention badges

  • The tab status dot pulses blue while the agent works and turns amber when it is waiting for input.
  • When a session you cannot see (a background tab, a minimized dock chip, or an unfocused window) becomes blocked or done, its tab title is highlighted and you get exactly one browser notification. Focusing that tab clears the highlight.
  • Sessions you stopped yourself never notify.

Keyboard: tab jump, pane focus, pane zoom

  • Ctrl+1..9 (Cmd on macOS) activates the Nth tab in a multi-tab stack. Single-tab stacks pass the key through to the PTY.
  • Ctrl+Shift+Arrow moves focus to the adjacent pane in a split, including xterm focus.
  • Ctrl+Shift+Z zooms the focused pane. Other panes stay mounted so no output is lost; the layout is restored on toggle and is not persisted across reloads.

MCP session control tools

  • New tools for orchestrating helper sessions from a lead agent: start_session, stop_session, send_session_input, read_session_output, get_session_state, and wait_session_state (default 55 s timeout).
  • Backed by new REST endpoints: POST /api/sessions/:id/input (keystrokes, optional Enter, 409 while a permission prompt is pending), GET /api/sessions/:id/output (ANSI-stripped tail of the raw stream), and GET /api/sessions/:id/wait (long-poll for an agent state; a timeout still returns 200 with matched: false).
  • Output reading converts Ink's absolute cursor jumps back into line breaks, so what you read matches what the terminal showed instead of one collapsed line.

Per-project tab visibility

  • Project Settings → Automation gets a Tab visibility card with checkboxes for the Web, Docs, Planner, and Git tabs. All are on by default. Terminal and Automation are always shown; SVN keeps its existing setting.
  • If a hidden tab is currently active (including via deep link), the view falls back to the Automation tab. Hiding the Web tab unmounts the embedded browser.

Web panel: collapsible chrome in fullscreen

  • In fullscreen, the chevron at the right of the address bar hides both the tab bar and the address bar. A small handle at the top center brings them back, and leaving fullscreen restores them automatically.
  • The <webview> is never unmounted, so pages do not reload when toggling.

Analytics: Clear button

  • The Analytics tab has a Clear button that resets the statistics view. It sets a watermark so tasks created before that moment are excluded from the charts.
  • Nothing is deleted. Task history stays intact; only the aggregation window moves. Available as POST /api/projects/:id/analytics/clear.

UI: in-app confirm dialogs and calmer destructive styling

  • All 35 native window.confirm calls are replaced by a styled in-app confirm dialog. Esc or clicking the backdrop cancels, and focus returns to where you were afterwards.
  • The "red text plus red border" pattern is retired. Destructive buttons now use a neutral surface with red text and turn solid red on hover. Error boxes, failure panels, drop zones, and wiki lint chips use neutral borders.

Migration

  • Two new columns are added to the projects table on startup (hidden_tabs, analytics_cleared_at). This happens automatically; no action is needed.

Install / Update

npm i -g clitrigger@0.2.58

Desktop app — pick the right asset:

  • Windows (recommended): CLITrigger-Setup-0.2.58.exe — installer with Start Menu shortcut, uninstaller, and auto-update.
  • Windows (portable): CLITrigger-0.2.58.exe — run directly, no install; no shortcuts and no auto-update (grab new versions manually).
  • macOS: .dmg / Linux: .AppImage

Full commit list

  • 0127d65 feat(project): 웹·문서·플래너·Git 탭 표시 토글 (프로젝트 설정, 기본 ON)
  • 80cf266 feat(web): 전체화면에서 탭바·주소창 접기/펼치기
  • d343b31 feat(analytics): 통계 탭에 초기화(Clear) 버튼 추가
  • f83b182 fix(session): Claude Code 2.1.x 스피너 재도장 프레임 인식 + 출력 줄바꿈 복원
  • 4aa156c feat(session-ui): 입력 대기 알림·attention 뱃지 + 탭/pane 단축키
  • 1a6f9d7 feat(mcp): 세션 제어 도구 추가 (start/stop/input/output/state/wait)
  • 393203a feat(session): PTY 출력 기반 에이전트 상태 감지 (working/blocked/idle/done)
  • 1bc6d4f Merge origin/main into main — confirm 모달은 useDialog로 통합, 빨간 테두리 제거는 유지
  • 776fe0a refactor(ui): 빨간 글씨+빨간 테두리 "danger" 패턴 제거, window.confirm → 앱 내 확인 모달

Related docs

Full Changelog: v0.2.57...v0.2.58