Skip to content

v1.170.0

Choose a tag to compare

@deivid11 deivid11 released this 30 Jul 04:51

What's New

Added

  • Ctrl+hover tool preview — hold Ctrl (or Cmd) while hovering a Read/Write/Edit/Bash row, or any clickable file path, and a small panel shows what it points at: the file's first lines with syntax highlighting, the edit's diff, the command's captured output, or the image itself. The panel is scrollable and interactive, gated by a new "Ctrl+hover preview" setting (Config → General, on by default).
  • Smart filename filter in the git panel — fuzzy filename matching plus server/claude (path), .tsx / *.tsx (extension), "use client" (literal substring), !test (exclude) and status:mod / !status:u terms. Terms AND together, match smart-case, and results are ranked best-first with matched characters highlighted.
  • Image, SVG and PDF previews in the changes viewer — changed images render as images instead of raw bytes, PDFs get an inline pdf.js preview (works in the Android WebView), SVGs default to rendered with a "Show rendered" toggle back to the text diff, and other binaries show a placeholder with a download action.
  • view_image tool card for Codex, and persistent git-panel tree expansion per agent.

Changed

  • One syntax palette everywhere — CodeMirror's Lezer tags now map onto the same theme variables as the Prism theme, so the file-explorer editor follows the theme picker instead of its own hardcoded One Dark palette.
  • Compact inline mermaid previews — wide diagrams scale down to a fixed max width (small ones stay natural size) and are no longer height-cropped.
  • Steadier conversation reveal on a cold agent switch.

Fixed

  • Opening a large file locking up the tab — a 31,841-line, 1 MB JSON produced ~183,000 DOM nodes and a 1.01-billion-cell LCS table. Lines now render through a windowed list, the diff peels identical prefix/suffix and bounds its table, and highlighting is memoized per visible line.
  • OpenCode agents wedged in "working" outside the daemon's directory — the event stream now uses the all-projects /global/event endpoint (with legacy fallback), force-finalizes if session.idle never arrives, and reads the OpenCode 1.18.x session map format.
  • Escape closing the terminal from inside a field that handles Escape itself.

Technical Details

  • New modules: toolPreviewContent.ts, toolPreviewHover.ts, ToolHoverPreview.tsx, gitFileFilter.ts, diffLineOps.ts, VirtualLineList.tsx, PdfJsViewer.tsx, cm-syntax-theme.ts, FileTypeIcon.tsx
  • GET /api/files/read accepts previewLines / previewOffset for windowed reads
  • Quality gates: ESLint 0 warnings, TypeScript 0 errors, 1169 tests across 96 files
  • Android: versionName 1.170.0 / versionCode 1170000