Releases: ztcs-software/loach
Releases · ztcs-software/loach
Release list
Loach v1.2.4
What's new
- Faster across the board. Loach cold-starts quicker, replies begin sooner, and long answers stream more smoothly even in big sessions with large transcripts. Under the hood: lazier startup and hydration, cached model and MCP catalogs, windowed transcript rendering, chunked markdown while streaming, a pooled database reader, and a leaner release build.
- In-app updates for Linux
.deband.rpm. Debian and RPM installs now update from within Loach the way AppImage already did — Loach downloads the signed package, elevates to install it, and keeps your package database consistent. (Updating to this release still needs one manual download; after that, updates are in-app.)
Fixes
- Ollama keep-alive now saves. Changing how long models stay resident in memory now persists instead of silently reverting to the default.
- "Open in VS Code" on macOS. The Code Canvas's Open in VS Code button now works when Loach was launched from Finder.
- More accurate tokens/sec readout, plus assorted stability hardening under the hood.
Loach v1.2.3
- Steadier streaming. Stopping a reply the instant it starts — or queueing chats back-to-back — no longer freezes the bubble, drops a reply, or lets a cancelled stream bleed into the next one.
- Math formatting leaves code alone. The automatic math-notation conversion now skips code blocks and inline code, so generated code stays exactly as the model wrote it.
- No more startup hangs. If the system keyring is missing or unresponsive, Loach now opens normally after a short probe instead of waiting forever on the loading screen.
- Stricter onboarding key check. An API key that fails verification no longer enables Continue — the error shows and you can correct it on the spot.
- Quieter, clearer errors. Duplicate error toasts collapse into one (and never stack past five), and a failed memory edit keeps your text so you can retry.
- Faster huge code blocks. Very large code blocks skip syntax highlighting instead of stalling the window.
- Assorted security and stability hardening under the hood.
Loach v1.2.2
- Local-network MCP servers. MCP server URLs that point at
localhostor a private LAN address are now accepted, so a self-hosted server on your own machine or network connects instead of being rejected. Only link-local (cloud-metadata) addresses stay blocked. - New starter model. Added
gemma4:12bto the Ollama catalog in onboarding process. - Assorted security and stability hardening under the hood.
Loach v1.2.1
- Light-mode polish. Persona chips now read clearly against the light theme, and small click targets were enlarged to be easier to hit.
- Clearer errors. Actions that fail now surface an error toast instead of failing silently.
- Keyboard reference. The in-app keyboard reference now lists the full set of shortcuts.
- Assorted security and stability hardening under the hood.
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.
Loach v1.1.1
What's new
- macOS support. Loach now ships a native Apple Silicon build (
.dmgfor fresh installs,.app.tar.gzfor auto-update). Gatekeeper bypass is required on first launch — see the install instructions inREADME.md. Intel Macs are not supported.
Fixes & hardening
- Web-fetch tool is now rate-limited and rejects requests to private, loopback, link-local, and other non-routable addresses to prevent SSRF.
- Export, IPC, and MCP surfaces hardened: tighter input validation on exported chats, additional bounds checks across IPC commands, and MCP server error messages are sanitized before being surfaced as notices.
Loach v1.1.0
What's new
- Private Chat. A dark-only, ephemeral chat surface for conversations that should leave no trace — nothing is written to disk, the transcript is wiped the moment you close it, MCP tools are blocked, and only Ollama models are offered. Open it from the ghost icon in the title bar.
- Regenerate. The last assistant message gets a Regenerate action that drops the reply, re-sends the preceding user turn, and streams a fresh answer in place.
- Attachment previews. Click an attachment chip and Loach picks the right viewer: image lightbox with Save, a multi-page rendered PDF preview, text/code in the Code Canvas, or a file-info card with Save for everything else.
- New tones. Added Direct (which replaces the old Concise), Playful, Skeptical, and Socratic. Settings → General gained a "What each tone does" drawer so the default-tone picker doubles as a reference.
- Test connection. Settings → Providers now has one-click probes for both Ollama and the OpenAI-compatible endpoint, reporting daemon version / model count or a readable error so you can verify a base URL + key without opening a chat.
- Provider base-URL presets. A dropdown next to the OpenAI-compatible base URL field fills in the documented endpoint for OpenAI, llama.cpp, LM Studio, vLLM, and LiteLLM.
- Features tab in Settings. Thinking, Temporal awareness, and Low VRAM mode moved out of General into their own tab, with an expandable "Template variables" cheat sheet for the
{{CURRENT_*}}placeholders. - Low VRAM in the Simple view. The per-chat Low VRAM toggle is now in the Simple parameters view (including Private Chat); Temperature moved to Advanced to keep Simple terse.
- Space chat actions. Chat rows in a Space's Chats tab now expose the same
…menu as the main sidebar — Pin / Unpin, Rename, Move to archive, Delete. - Remove all archived chats. A bulk Remove all button on the archive view permanently deletes every archived chat in one step, guarded by a typed-confirm dialog.
Fixes
- Composer draft survives send failures. If a message fails to send, your typed text is restored to the composer instead of being lost.
- Code Canvas line numbers line up with their code again (highlight.js padding was offsetting the gutter).
- PDF preview no longer clips its page canvas — CSS sizes the page so tall documents render fully.
- Tray icon is no longer blank on first launch.
- Empty model picker state is clearer; the Skip setup option keeps a consistent hierarchy in onboarding; verify-icon and provider-name capitalization tightened up.
- MCP servers with overlapping tool names no longer collide — same-server duplicates are de-duped at registration.
- Provider hints read as plain sentences again, and the API-key hint now spells out when a key is optional.
Loach v1.0.2
What's new
- MCP tool use works end-to-end on both Ollama and OpenAI-compatible models — connect a server and the model can actually call its tools.
- Faster launch. The default Ollama model warms up while the app is opening, and post-unlock hydration runs in parallel.
- Cleaner copy. The
…menu has an explicit Copy message, right-click gives you Copy / Select all, and Ctrl+C on a selection now produces plain text without stray blank lines or UI labels. - Softer text selection. Selected text picks up a quiet theme-aware tint instead of the harsh OS blue, and code keeps its syntax colours when highlighted.
Fixes
- No more duplicate tray icon.
- OpenAI-compatible model lists load again when no API key is stored.
- Provider errors read as plain sentences instead of raw debug output.
- Clipboard failures show a toast instead of failing silently.
- Preload only talks to private hosts.
- Sessions re-sort defensively after edits so the order stays correct.
Loach v1.0.1
What's new
- Provider errors now read like plain English instead of raw
os errorstrings, with actionable hints for connection, auth, rate-limit and context-length problems. - A soft loading skeleton replaces the brief "No chat open" flash on launch.
- Per-panel error boundaries — if one panel crashes, the rest of the app keeps working.
Hardening
- Read-only SQLite pool now enforces
query_only=ON. - Production builds default to quieter tracing (
RUST_LOGstill overrides). - Frontend
console.*calls compile out of production bundles. - Added automated tests for the security and database layers.
Chores
Update version to v1.0.1
Loach v1.0.0
Loach v1.0.0
The first stable release.
Fixes since v1.0.0-rc-1
- Bumped
rustls-webpkito 0.103.13 to clear three active-path CVEs in the TLS certificate verification stack.
Chores
Update version to v1.0.0