Loach v1.2.0
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,/settingsand 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, andip. They run entirely on your machine, so they work inside Private Chat too. - PDF generation. A built-in
pdftool 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
systemturns (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.