Skip to content

Loach v1.2.0

Choose a tag to compare

@github-actions github-actions released this 02 Jun 00:41
7b40fbd

What's new

  • Slash commands. Type / at the start of the composer to open a command palette and run chat actions without leaving the keyboard — /fork, /regenerate, /compact, /private, /copy, /export, /stats, plus /model, /persona, /snippet, /instructions, /remember, /fetch, /list, /settings and more. Arrow keys to move, Tab to complete, Enter to run. Destructive commands (/clear, /delete) route through a confirmation first, and anything that isn't a recognised command is sent as an ordinary message.
  • Fork chats. Branch any conversation into a new copy — from the header, a message's menu (forks up to that point), or /fork. The fork keeps the same model and Space and carries a "Forked from …" badge that jumps back to the source.
  • Context usage bar + compaction. A slim bar above the composer shows how full the model's context window is, with a popover breaking it down into system prompt, history, and attachments. Compact context (the button or /compact) summarises older turns into the system prompt to free space — the original messages stay in the transcript for scrollback behind a compaction divider.
  • Built-in tools. A set of local utilities the model can call mid-answer, each with its own toggle in Settings → Tools and all off by default: calculate, datetime, count, hash, uuid, base64, json, unit_convert, diff_text, sort, and ip. They run entirely on your machine, so they work inside Private Chat too.
  • PDF generation. A built-in pdf tool turns a model's structured spec (headings, lists, tables, page breaks) into a real PDF that lands in the chat as a previewable, savable attachment.
  • Custom snippet variables. Parameterise snippets with {{PLACEHOLDER}} variables — define reusable static globals once in the Snippets library, or leave placeholders to prompt you for values when you run the snippet (answers are remembered per snippet).
  • Tool-call blocks. When the model calls tools, the calls collapse into a single "Called N tools" header above the answer, styled like the Thinking block. Expand it to see each call's name, arguments, and result.
  • Code canvas upgrades. The canvas is now resizable (drag the left edge; the width is remembered), updates live while a reply is still streaming, and gains an Open in VS Code button.
  • Smarter import / export. Export now has a Compact context toggle that writes a summarised version instead of the verbatim transcript, and imported context can be hidden from the transcript — folded into a single collapsed card while still being sent to the model.
  • Web-fetch chips. The URLs Loach fetched for a turn now appear as small chips on the assistant reply.

Fixes & hardening

  • Web-fetch SSRF screening tightened — IPv6 gaps in the private/loopback/link-local address classifier are closed, and redirects are re-screened on every hop.
  • Images from MCP tools are no longer dropped — image content in a tool result is surfaced as an inline attachment on the reply.
  • Importing context keeps system turns (brought in as user turns so the model still sees them) and no longer mistakes Markdown headings for role markers.
  • Smaller polish: corrected a stale password hint, fixed the Thinking toggle reflecting the wrong state, refreshed out-of-date PDF-preview wording, and tidied inconsistent archive-label casing.