Skip to content

v1.2.9

Choose a tag to compare

@github-actions github-actions released this 24 Jul 07:58

What's in this release

Feature/patch release — Coding image paste & click-to-preview, Design handoff/Spec flow polish, workspace history stability.

Added

  • Coding image paste (Chat + Terminal OrchestratorBar): Clipboard/attach images from Clutch composers (not xterm). Chat always sends multimodal first; on vision soft-refuse / API reject, retries with local OCR/palette analysis. Local CLI agents (Mimo / Claude Code, …) get workspace file refs (@path / [file:]) instead of base64 on argv. Terminal uploads to .clutch/attachments/ with * gitignore + size-triggered GC; send button Loading during upload.
  • Click-to-preview artifacts: Chat paths / [file:] / @path / fenced code blocks open the App preview overlay (large content uses plain <pre>; images open as media). Terminal xterm + dispatch history linkify paths/filenames with workspace resolve (exact → unique basename fuzzy); missing/ambiguous shows toast. Terminal Overview shows attachment image thumbnails on dispatch records (click to enlarge).
  • Pillow + pytesseract: Declared orchestrator dependencies for local image analysis / OCR fallback (system tesseract binary still required for OCR text).

Changed

  • Design Spec→UI continuous by default (D40): Prompt generates Spec then screens in one run — no confirm CTA. Opt-in pause with CLUTCH_DESIGN_SPEC_CONFIRM=1 (awaiting_spec_confirm + Confirm Spec & Generate UI).
  • Design handoff SSOT (D39/D41): Preview Demo → Coding stepped flow. Generate is a deterministic HTML→React export (no LLM redraw): real per-screen .tsx, prototype Tailwind CDN theme, contract Links in source. Preview scaled-to-fit + open full size → Approve → Send to Coding (wire APIs next).
  • Design Spec soft-confirm + flow discipline (D40): Soft-confirm is opt-in (CLUTCH_DESIGN_SPEC_CONFIRM=1); brief enhance before Spec; declared iterate modes (Edit / Add / Variant / Revise Spec); async iterate + confirm-spec; HTML prompts allow semantic buttons/data-clutch-id for IUE.

Fixed

  • Chat Thinking bubble height: Typing indicator no longer mirrors the last user bubble (image messages made a huge empty box). Uses normal agent-bubble width + min-h-9 (single-line reply height), not a w-fit pill.
  • Design “New Design” not at top of sidebar: Clicking New Design reused an old empty draft (kept its started_at / history position). Always create a fresh session at the top and delete prior empty New Design drafts.
  • Design iterate stuck “Generating…” overlay: Async Edit/Pick iterate left drawing true and round pin on after poll reached ready, so the artboard kept the spinner and could show stale HTML. Clear overlay + unpin to latest round when the session finishes.
  • Workspace list / session history desync (D43): Project ids are now path-stable (sha256 of resolved path); legacy random ids migrate on load and remap history.json. workspaces.json uses atomic replace. Default store refuses ephemeral /tmp-style authorize (tests must set CLUTCH_STORAGE_DIR / CLUTCH_E2E_SANDBOX). Desktop E2E passes CLUTCH_STORAGE_DIR into tauri:e2e so sandboxes cannot wipe clutch_dev.
  • Coding/Design image try-first: Attached images are always sent to the LLM as multimodal first. Only when the model soft-refuses vision or the API rejects image input do we retry with local OCR/palette analysis (Coding uses a chat-specific fragment without Design hex mandates).
  • Agnes 2.0 Flash chat vision: Agnes chat models are treated as vision-capable; clipboard pastes are attempted multimodally (no preemptive data: downgrade).
  • Chat vision history: _history_for_llm no longer flattens multimodal user turns to [image omitted] when vision is enabled for the turn.
  • Sidebar session history for all workspaces: Hydrate/load history for every project in the sidebar, not only the active one.

Install

macOS (Apple Silicon only):

curl -fsSL https://raw.githubusercontent.com/fancy1108/Clutch/main/scripts/install.sh | bash

Or Homebrew:

brew tap fancy1108/clutch
brew install --cask clutch

Windows:

irm https://raw.githubusercontent.com/fancy1108/Clutch/main/scripts/install.ps1 | iex

Or download *-setup.exe / *.msi from Assets on this page.

Full guide: docs/INSTALL.md · docs/PACKAGE_MANAGERS.md

Upgrade

Situation Action
macOS v1.0.0 / v1.0.1 Install v1.0.2+ DMG manually once — older builds lack the in-app updater
macOS v1.0.2+ Follow the in-app update banner, or reinstall from Assets
Homebrew brew upgrade --cask clutch
Windows Download and run the new installer (no in-app updater yet)

Details: docs/UPDATES.md · docs/INSTALL.md §3

macOS: first launch (unsigned app)

Clutch is unsigned (no Apple notarization yet — see D31). Gatekeeper warnings are expected, not malware or a corrupt download.

You may see: “cannot verify developer”, “Clutch is damaged”, or double-click does nothing.

Fix (pick one):

  1. Finder: Applications → right-click Clutch.appOpenOpen again.
  2. Terminal (one-time): xattr -cr /Applications/Clutch.app && open -a Clutch

More: docs/INSTALL.md §2–§4 · docs/DATA_AND_PRIVACY.md

Windows

Windows 10/11 x64 MSI and NSIS (.exe) may appear under Assets (since v1.0.2).

Item Note
CI Built by GitHub Actions; pytest and packaging checks pass
Smoke test Maintainers have not completed full manual smoke on physical Win10/11 (#23)
Code signing None — SmartScreen may warn; verify SHA-256 and Release source first

Report issues: GitHub Issues (include installer filename and Windows version).

Verify download

Checksum (recommended):

shasum -a 256 -c SHA256SUMS.txt

(Run in the folder where you downloaded the DMG and SHA256SUMS.txt.)

After launch (~5 s):

curl -s http://127.0.0.1:8123/health

Expected: {"status":"ok"}