Changelog

What changed in Hearth

Newest first, straight from Hearth’s release notes, including what was and was not verified. The current stable release is 0.4.16. Versions after that are betas toward 0.5.1.

Hearth 0.4.21 Pre-release

beta 6 of the 0.5.1 line: a menu bar and a calmer, easier window

Shipped as beta. Stable stays at 0.4.16. Ollama is not required for a brand-new install. If you update you stay on Ollama until you switch in Settings, Engine; nothing switches by itself. Hearth Link (phone link) still needs Ollama.

What is new

  • Menu bar at the top of the window: File, Edit, View, Help. Always visible (not hidden behind Alt); Alt+F, E, V, H also open them. New chat, Ask my week, Connections, Settings, Cut/Copy/Paste, Find in this chat, Command palette, text size, Keyboard shortcuts, Check for updates, About.
  • Shortcuts: Ctrl+K command palette (it no longer opens the Store), Ctrl+F find in chat, Ctrl+N new chat, Ctrl+, Settings, Ctrl+B sidebar, Ctrl+= / Ctrl+- / Ctrl+0 text size, Ctrl+/ the full list. Keys, menu and list come from one source.
  • Text size 80% to 200% for the whole app, also in Settings, Appearance. Remembered.
  • Find in chat: highlights every hit, count, next/previous, Esc closes. Nothing in the messages changes.
  • Type / in the message box for tools, skills, recipes, thinking and model. The Tools, Skill and Recipes buttons only show while open.
  • Honest memory badge: says graphics or memory, never shows more used than total, and the picker says what loading a model will unload.
  • Readable model names ("Qwen3 8B"); the file name sits on its own line.
  • Ask my week and Inbox fill the main area. Recently deleted hides until something is in it. The first run hides buttons that do nothing yet. The speed chip left the title bar.
  • Settings starts with everyday things (Appearance, Chat, Voice, Privacy, Updates); Engine, Ollama and the temperature and context length fields (now under Advanced) come later. Changes save as you make them.
  • Connections shows one step at a time with the long help folded away, and no longer overflows narrow windows.
  • Edit appears only on your latest message.

Not in this build

  • Edit history stepper (1/2) and a grouped "My stuff" sidebar.
  • Real Windows is not tested yet: menu hit areas, zoom and DPI are checked in the Linux test build only.

Hearth 0.4.20 Pre-release

beta 5 of the 0.5.1 line: step 5, other apps' servers in Connections

Shipped as beta. Stable stays at 0.4.16. Ollama is not required for a brand-new install. If you update you stay on Ollama until you switch in Settings, Engine; nothing switches by itself. Hearth Link (phone link) still needs Ollama.

What is new

  • Model servers (Connections, at the bottom). Add LM Studio, llama.cpp's llama-server, KoboldCpp, Jan, vLLM or a cloud API with a key. Its models appear in the model picker. Nothing new shows anywhere else: first run, Home and the sidebar are unchanged.
  • Found on this PC. Opening Connections looks at this PC only (ports 1234, 8080, 5001, 1337, 8000) with read-only requests, sends no prompt and never scans your network. Add, then Test (models, speed, or why not: wants a key, wrong key, nothing there).
  • Privacy notice before anything leaves the PC. An address outside this PC and your home network counts as the internet: you must accept a notice (what leaves, who gets it, Hearth cannot see what they keep) before saving. Tick "on my own network" for a VPN. Memory, watched folders and file search are NOT added to internet chats unless you switch that on. The privacy line under the answer is amber ("Sent to "); this PC is green; your network says "Left this PC".
  • Network Off. Servers on this PC or your network keep working. Internet servers stop completely (refused before anything is sent) and Connections says so; the Network Off wording in Home, title bar and Settings is updated.
  • API keys use Windows secure storage (Electron safeStorage): never shown again, never logged or put in hosts.json, deleted with the connection; if this PC cannot encrypt, the key is refused.
  • Check tools per model: one tiny request, remembered; tools are only offered to models that passed.
  • Other apps' servers are used only by a chat you start and pick a model for. Routines, Telegram, voice, memory, titles, search and folder indexing never use them, auto model choice never picks them, and one can never become the default computer.

Still uses Ollama

  • Hearth Link. Saved other computers stay Ollama computers in their own list. Updaters keep Ollama for everything unless they add a server or switch engine.

Behaviour changes

  • New hosts.json entries carry extra fields (kind "openai"); existing entries are untouched. An address already saved as an Ollama computer or as the Ollama address in Settings is refused.
  • The Ollama first-run screen steps aside while Connections is open or once a server is set up.

Tested

  • 789 checks pass, 0 failures (758 before; 31 new). Includes a real llama-server (CPU) started with --api-key: found, key required, wrong key refused, right key works, real chat; Qwen3 1.7B passes the tool check. The built app was run end to end: no Ollama, pick a llama.cpp model, chat, receipt "Stayed on this PC".

Not verified

  • Real Windows and Windows secure storage (tests use a stand-in); real LM Studio, vLLM, KoboldCpp, Jan and cloud APIs (fake answers only; fingerprints come from their docs); HTTPS to a cloud API. The chat privacy gate is checked by source reading, unit tests and one local run; no chat to an internet server was run. llama.cpp names a model by its file path, so the picker may show a long path.

Hearth 0.4.19 Pre-release

beta 4 of the 0.5.1 line: "Hearth without Ollama", step 4: pictures, search and speed tools on the built-in engine

Shipped as beta. Stable stays at 0.4.16. Ollama is not required for a brand-new install. If you update from an older version you stay on Ollama until you switch in Settings, Engine; nothing switches by itself.

What is new (built-in engine only; Ollama users see no change)

  • Pictures. Models lists Qwen3 VL 4B and 2B (Apache-2.0, 3.0 and 1.6 GB: the model plus its image file, downloaded, checked and moved together). Attach a picture and it is read on this PC. Sending a picture to a text-only model now says so and names the model to download. They are never picked by first run, and a vision model replaces the chat model while it runs (one at a time).
  • Ask my week, Memory shelf and watched folders match by meaning without Ollama once you download the search helper in Models (146 MB). Search data is tagged with the model that made it: Ollama users and updaters keep their saved vectors untouched; switching engine re-embeds once, never mixes the two. Importing the helper by hand counts as a different model from downloading it, so switching between those also re-embeds once.
  • Speed Doctor works on the built-in engine: flash attention and an 8-bit conversation memory are Hearth settings (no registry, no restart of anything else). Applying one restarts the engine on your next message; Undo restores. If a graphics card refuses them, the engine starts without them and Speed Doctor says so.
  • Warm start preloads your usual model on the built-in engine with your context size, so the first chat finds it ready instead of loading again. The memory meter, warm start messages, empty chat screen say "Hearth's engine" instead of Ollama when it is on. The default system prompt no longer says "via Ollama"; a prompt already saved in your settings is not rewritten.

Still uses Ollama

  • Hearth Link (phone link) talks to Ollama directly, unchanged.
  • Saved other computers are Ollama computers. Chats and search aimed at one still go to its Ollama (checked); chats on "This computer" use the engine.
  • Not in this build: the Connections screen for other OpenAI-compatible servers (LM Studio, llama-server on another PC, and similar) with its privacy prompt.
  • Everyone who updates keeps using Ollama for everything.

Behaviour changes

  • New settings engineFlashAttention and engineKvCache (both off). Speed Doctor's Ollama items are unchanged.
  • Engine restarts by itself when its flags, context or image file change, not only at the next Hearth start.

Tested

  • 758 checks pass, 0 failures (713 before; 45 new). The chain includes real llama-server (Linux CPU) runs: Qwen3 VL 2B and 4B read a picture and call a tool; real search helper finds "porcelain" for "ceramic"; real flags (-fa on -ctk q8_0 -ctv q8_0) with a text model and a picture model; warmed model reused by the first chat.

Not verified

  • Real Windows (installer, Vulkan, Defender), speed of Qwen3 8B/VL on a real 8 GB card, whether the 8-bit memory helps there, and vision beyond Linux CPU. If a card rejects the flags and the next try also runs out of memory, the retry puts them back on and falls to the CPU; the flag fallback was only tested against a fake engine. Qwen3 VL 2B misread small text in testing ("HEALTH 217" for "HEARTH 4217"); 4B is the default for the Picture role. The image file is the Q8_0 version; its quality against F16 was not compared. Checklist: WINDOWS-TEST-0.5.1.md section J.

Hearth 0.4.18 Pre-release

beta 3 of the 0.5.1 line: "Hearth without Ollama", step 3: models you can download

Shipped as beta. Stable stays at 0.4.16. Ollama is no longer required for a brand-new install of this build. It is still required if you update from an older version (you stay on it until you choose otherwise), and for the few things listed under "Still uses Ollama".

What is new

  • First run with no Ollama. On a new install Hearth shows one screen: a model picked for your PC (graphics memory and RAM) and one Download button. On 8 GB graphics memory and 16 GB RAM that is Qwen3 8B, 5.0 GB. It downloads from Hugging Face, resumes if the connection drops, is checked against a fixed checksum, and then you can chat. If Ollama is found on the PC, a second card offers "Use my Ollama models"; Hearth never uses it unless you press that.
  • Models you can download. Models (when Hearth's own engine is on) lists Qwen3 1.7B, 4B, 8B and 14B (Apache-2.0), with pause, resume and cancel. Delete frees disk space; Remove only forgets a file you added yourself.
  • Where models are kept. Models, "Where models are kept", Change folder: moves the models Hearth downloaded, checking every copy before the old one is deleted. Files you added stay where they are.
  • Memory and file search without Ollama. A small "search helper" (Nomic Embed Text v1.5, 146 MB, Apache-2.0) can be downloaded in Models; with it, meaning-based search of memory and folders works on the built-in engine. It is never downloaded for you.
  • No more empty chats. A new chat is not saved or listed until you send the first message; pressing New chat again reuses the blank one. Text you typed but did not send is still recovered after a restart. On this update Hearth removes saved chats that have no messages, once. It never touches chats with any message or attachment, or pinned, locked or incognito ones. They are removed outright (Recently Deleted only keeps chats with something to restore); empty-chats-removed.json lists them.

Who gets what

  • New install: Hearth's own engine, the first-run screen above. Update from 0.4.17 or earlier: nothing changes; you stay on Ollama. Switching is in Settings, Engine, never automatic. New versus update is decided once, by whether chats or settings already exist.

Still uses Ollama

  • Ask my week's meaning-matching, Hearth Link (phone link) and saved other computers talk to Ollama directly. Pictures (vision) on the built-in engine are not done. Anyone who updates keeps using Ollama for everything.

Behaviour changes

  • Installer and portable are each about 181 MB (181,046,336 and 180,777,883 bytes), within 0.1 MB of 0.4.17. New settings modelsDir and firstRunDone. Downloads need an internet connection and about the model's size in free disk space; Network Off blocks them.
  • Placement label fix: a model running on the processor with AMX/CPU buffers is now reported as "On CPU" (it said "Partly on GPU (0 layers)" in testing).

Tested

  • 713 checks pass (622 before; 91 new). Includes: downloads against a local server (redirect, killed connection, ignored Range, bad Content-Range, one flipped byte); the real pinned embedding model and Qwen3 1.7B downloaded from Hugging Face by the app's downloader and run on a real llama-server (CPU); the pick for 4 to 24 GB cards and no card; empty chats against the real window store.

Not verified

  • Real Windows: the first-run download and install end to end, Vulkan on a real 8 GB card, speed of Qwen3 8B on it (the 8 GB pick is arithmetic plus tests, not a measurement), the move-folder step across drives, and the installer. Checklist: WINDOWS-TEST-0.5.1.md section I.
  • A card Windows reports wrongly (some AMD/Intel cards read as 4 GB) gets an "estimate" note and a pick that may be smaller than needed; "Pick another model" is one click away.

Hearth 0.4.17 Pre-release

beta 2 of the 0.5.1 line: "Hearth without Ollama", step 2: the engine

Shipped as beta. Stable stays at 0.4.16. Ollama is still required in this build unless you opt in below, and the opt-in is for people who already have a model file.

What is new

  • Hearth's own engine (beta, off by default). The installer now includes llama.cpp's official llama-server (release b12328, MIT licence, Vulkan graphics + CPU, checksum-verified before every start). Settings, Engine: add a .gguf model file you already have (it is used where it is, never copied), choose "Hearth's own engine", and chats run on this PC with no Ollama.
  • It starts when you chat and loads the model on first use ("Loading the model..." shows), stops when you quit, and cleans up any leftover engine after a crash on the next start. If the graphics engine fails or answers with junk it switches to the CPU by itself and remembers per graphics driver; "Test the engine" shows speed and where it runs (GPU, partly, or CPU).
  • It only listens on 127.0.0.1 with a random key per start. The key is passed on the command line, so other programs run by the same Windows user could read it; it is not reachable from other computers.

What still needs Ollama

  • Everyone who updates stays on Ollama. A fresh install still shows the Ollama first-run screen. Nothing switches by itself.
  • Downloading models inside Hearth is not here yet (next beta). The Models screen still says Ollama things (Pull, "frees disk space"); with the engine on, Pull explains that and Remove only forgets the file.
  • Memory and folder search meaning-matching uses Ollama's embedding model; on the built-in engine they fall back to keyword search for now. Pictures (vision) wait too. Ask my week still uses Ollama for its meaning-matching.
  • Hearth Link, saved other computers and the Ollama connection are unchanged.

Behaviour changes you may notice (even with the engine off)

  • The installer is about 19 MB larger and the portable file about 19 MB larger (the engine pack, measured). Portable unpacks it at each start, so its first launch is a little slower.
  • New settings inferenceBackend and engineDevice. A start-up check ends a leftover engine from a crashed Hearth (only if it finds one recorded).
  • If the engine is on and its last model is removed, Hearth switches back to Ollama.

Tested

  • A fake engine drives crash restart, three-crash refusal, port clash, graphics failure, memory shortage, missing DLL, bad model and slow load; a real official llama-server (Linux CPU) ran chats through the whole app code, answered repeatably at temperature 0, and was cleaned up after a hard-killed parent. Full suite: 622 passing, 0 failures (582 before; 620 of them run without the Windows-emulator checks).

Not verified

  • Real Windows: the bundled pack running from the installed folder, Vulkan on a real card, the firewall and Defender, taskkill and the Windows leftover cleanup, and the portable build's start-up time. Checklist: WINDOWS-TEST-0.5.1.md section H.

Hearth 0.4.16 Stable

beta 1 of the 0.5.1 line: "Hearth without Ollama", step 1: the provider layer

Shipped as beta. Nothing you can see changes in this build, on purpose. It is the groundwork for Hearth running its own models (no Ollama needed). Stable stays at 0.4.9.

What changed under the hood

  • One Provider layer. Chat, quick bar, routines, voice, benchmarks, Ask my week, memory, document search, the memory meter, warm-up and the Models screen no longer call Ollama directly. They go through a Provider with the same behaviour as before (same requests, same timeouts, same error text).
  • An OpenAI-compatible adapter is built and tested but not switched on yet. It is the one Hearth's own engine, LM Studio, KoboldCpp, Jan, vLLM and cloud APIs will share (next betas).
  • Connections. A small connections.json is created on first start from your existing Ollama address and saved computers. Your old settings are not changed or moved, and still work if you go back to an older version.
  • Bare model names still mean Ollama tags. Hearth Link is untouched (it still talks to Ollama directly; separate decision).

Tested

  • Both adapters against fake servers: text, thinking, tool calls (streamed fragments joined), usage, errors, embeddings.
  • A real llama.cpp llama-server (official b12328 Linux CPU build) answered through the adapter with a key, at temperature 0, three times with identical text.
  • The full existing suite, unchanged, still passes.

Honest notes

  • Not verified: real Windows (the Windows engine checks are in WINDOWS-TEST-0.5.1.md), GPU engines, any real Ollama server (fake servers and a real Ollama-shaped mock only).
  • You should notice nothing. If chat, Models, the memory meter or the quick bar behave differently from 0.4.15, that is a bug: please tell me.

Hearth 0.4.15

beta 6 of the 0.5.0 line: Ask my week, Telegram voice notes, Page digest

Shipped as beta. Not the final 0.5.0: it waits for a real Windows test.

New

  • Ask my week (Ctrl+Shift+A, the home card, the command palette, or ask in chat: tool ask_my_week). One local search over your chats, Memory shelf, Mistnote backup, watched-folder text and Outputs. Every result shows where it came from with a date and "Open chat" / "Open file". Date chips (This week, Last week, Last month...) or just say it: "last week" in the question sets the filter. Weeks start Monday, Los Angeles time. "Write an answer from these" asks your local model to use only the numbered matches, with [1] links.
  • Smart matching is local and optional. If Ollama is on this PC and has nomic-embed-text, results blend meaning and keywords. If not, a card offers a one-click install (about 270 MB) and keyword search works meanwhile. Paused by Network Off. A remote Ollama never receives your text.
  • Privacy rules. Locked chats are left out until you unlock them, are never indexed for meaning or cached, and vanish again when re-locked. Incognito: Ask shows only an explanation and reads and stores nothing; the chat tool is hidden. While the app is locked it returns nothing. Files open only from folders Hearth searches.
  • Telegram voice notes work. Hearth decodes OGG/Opus on the PC with a bundled 86 KB MIT decoder (sha256-checked, no download), then your Whisper does the rest. Long notes are split in 2-minute pieces, up to 10 minutes (more is refused), files over 12 MB are refused, damaged notes give a plain reply. If voice typing is not downloaded the bot says where to click.
  • Page digest starter (Automations, off by default): weekdays 08:00, reads up to 5 addresses you choose (or "wiki: Topic"), writes a short digest to Inbox and Outputs/Summaries. It never sends anything, is skipped under Network Off, and treats page text as untrusted.

Polish (0.4.10 to 0.4.14 screens)

  • Light and Paper themes: amber, green, red and teal text now meet 4.5:1 (it was 3:1 for "uses the internet" and approval labels); Slate red fixed. A test checks all seven themes.
  • Keyboard focus ring is stronger (3:1 on light themes).
  • Close, cancel and remove icon buttons now have names for screen readers (Models, Tools, Settings, Store, sidebar and chat rows).
  • Automations: Read pages and Wikipedia steps are now labelled online in the step list and privacy card.
  • Home: the "Ask what Hearth remembers" card became "Ask my week" (it searches Memory too; Memory is still in the sidebar), so there are still six cards.
  • Ask counts say what they count ("chat messages", "folder passages").

Fix

  • Pulling a model while Network Off is on is refused (Ollama pulls used to slip past it).

Honest notes

  • Not verified: real Windows (installer, updater, rollback), the real Telegram app with a real voice note, a real microphone, CUDA on the RTX 5060 Ti (expect CPU fallback), a live nomic-embed-text download, and how good meaning-search is on your real data (tested with a fake embedder and keywords).
  • Voice notes were tested with a real OGG/Opus sample through the real decoder and real whisper.cpp on Linux.
  • Embeddings are cached in search/vectors.json (never locked or Incognito text).

Hearth 0.4.14

beta 5 of the 0.5.0 line: built-in voice typing, Wikipedia and page reader

Shipped as beta. The mic now works with nothing else installed, and chat and routines can read Wikipedia and web pages.

New

  • Voice typing, built in (Settings > Voice). One click downloads whisper.cpp: Base (English) 148 MB + 9 MB engine = 157 MB (Small 488 MB is optional). Files are checked with sha256, kept in your app-data folder, not in the installer (installer size is unchanged), and need the internet only once. Runs per recording, so it uses no memory while idle.
  • Push-to-talk mic in the composer and the quick bar: hold, or click to start and stop. It types the words into the box and never sends. Max 60 s. Hearth asks first, the first time you press the mic. "Not now" asks again next time.
  • GPU: CPU is the default and is fast enough for dictation. An optional NVIDIA CUDA engine (685 MB) can be added. If it fails, Hearth says so once and switches to CPU by itself.
  • Your own Whisper server still works (Settings > Voice, "My own Whisper server"). The Voice loop page uses the same engine.
  • Wikipedia tool: summaries through Wikipedia's REST API, a polite User-Agent, one request at a time with a gap, 6 hour cache. Every answer carries the article link and "Text from Wikipedia, CC BY-SA 4.0". Also a routine step.
  • Page reader: read_page / fetch_url now fetch locally and extract the article (Readability). Pages on your own network, redirects into it and oversized files are refused. Jina Reader is off by default: turn it on in Settings > Search to let Hearth ask r.jina.ai only when a page comes back nearly empty. It is third-party, labelled online, and never used for local addresses.
  • Routines: new "Wikipedia" and "Read pages" steps (up to 5 addresses). Their output counts as web text, so approvals always ask.

Fix

  • Network Off now blocks main-process tools too. Before this, web_search, fetch_url and rss_feed were not stopped by it (it only filtered the window). They, Wikipedia, the page reader and the voice download are now refused, and the receipt says "Stayed on this PC".
  • Receipts name online tools: "Used the internet: wikipedia, fetch_url via Jina Reader".

Honest notes

  • whisper.cpp and the Whisper models are MIT-licensed. Wikipedia text is CC BY-SA 4.0. Sizes: engine 8.9 MB, base.en 148 MB, small.en 488 MB, CUDA 685 MB.
  • Built-in voice typing is Windows-only for now (use your own server elsewhere). Telegram voice notes are not decoded yet (needs OGG/Opus). No "Page digest" starter routine yet.
  • Not verified: real Windows (installer, whisper on Windows beyond wine), the CUDA engine on an RTX 5060 Ti (it is built for CUDA 12.4, and RTX 50 cards may not be supported, so expect the CPU fallback), a real microphone (tested with a fake mic stream playing the JFK sample: transcribed correctly in Linux Electron), live downloads from GitHub / Hugging Face inside the app (the same files were checked by hash on this machine). Builds are unsigned.

Hearth 0.4.13

beta 4 of the 0.5.0 line: Automations, Inbox, Tidy, model roles

Shipped as beta. Hearth can now do small jobs for you on a schedule, always on a short leash.

New

  • Automations (sidebar). Code plans every step; the model only fills small, bounded steps. Triggers: time, folder change, app start. Each routine shows its steps (No model / Model / Approval), its limits (120 s, 3 model calls, 24 runs a day) and a run log. Pause all routines is one click.
  • Four starters: Morning brief (weather from Open-Meteo, calendar if Google is connected, reminders, Inbox; to Telegram if paired), Folder watcher (summarizes new files into Outputs/Summaries), Backups (pulls your connected apps' data into Documents/Hearth/Backups), Reminders (on by default). Brief, watcher and backups start OFF.
  • Reminders in chat: "remind me at 6 to call Nikki". No model turn. A bare hour means the next time it comes round (6 at 2 PM = 6 PM). With a day named, 7-11 are morning and 12 and 1-6 are afternoon/evening. 13-23 are 24-hour.
  • Approvals: the FIRST time a routine sends, posts, deletes or moves, it asks. "Always allow" stops the asking for that action, and you can revoke it in the routine. Runs that read web text always ask.
  • Inbox (bell in the title bar): approvals, failed or missed runs and finished jobs. Approvals, failures and misses are mirrored to Telegram with buttons (/inbox, /brief) if paired. Turn the mirror off in Automations.
  • Tidy this folder (home card, Watched folders button or right-click): a preview first, then "Move N files". It only moves, never deletes. Invoices, Photos by month, Documents, Spreadsheets, Archives, Installers, and exact duplicates go to Duplicates (the oldest stays). Hidden, partial and just-changed files are left alone. Undo for 7 days here or from Inbox.
  • Model roles (Models): Brain, Quick, Coder, Vision. Chats and routines ask for a role, not a model. Defaults: qwen3:8b, qwen3:4b, qwen2.5-coder:7b, gemma3:4b, with a clear stand-in message if one is missing. Models with no tools and no job (like llama2:7b) are flagged and you may remove them yourself; Hearth never removes one.

How the guardrails behave

  • Network Off: online steps are skipped and logged, never failed. Incognito: nothing from a run is kept and notices are generic. Quiet hours (off by default): scheduled runs wait until they end, no pop-ups and no Telegram; Inbox still collects. A missed run within 12 h runs once; older shows as Missed.
  • Routines never write to memory. Each routine lists what can leave this PC.

Honest notes

  • Open-Meteo is free for non-commercial use only (under 10,000 calls a day, data CC BY 4.0). A public or paid Hearth needs their API plan. Routines never use Nominatim or Photon.
  • Tools moved under More to make room for Automations. Honesty fixes: the Drive card no longer claims Calendar, and Telegram's command list is accurate.
  • Not here yet: local speech-to-text (whisper.cpp) and Wikipedia / page-reader data tools for routines. The external Whisper URL still works.
  • Not verified: real Windows, live Telegram buttons, live Google Calendar, a routine over a long day. Builds are unsigned.

Hearth 0.4.12

beta 3 of the 0.5.0 line: act on text, stay in control

Shipped as beta. Quick bar actions, drop-to-ask, one-tap recipes, a Connections guide, a message queue, Recently Deleted, an app lock and diagrams.

New

  • Quick bar (Alt + Space) now acts on the text you selected or copied in any app: Rewrite, Fix grammar, Shorten, Make friendlier, Translate, Summarize or your own instruction. You always get a preview first (thinking is off, so it is quick), an optional "Show changes", then Replace selection, Copy, or Undo last.
  • Drop to ask: drop a file on the window (or use the tray item "Ask about a file…") and pick Summarize, Ask or Pull out to-dos. Only the dropped file is read. A dropped folder needs your OK before Hearth reads it.
  • Recipes: star a prompt or a reply to keep it as a one-tap card on the home screen and in the composer's Recipes menu.
  • Connections (sidebar): step-by-step checklists with status badges for Telegram, Google, Email and more. The vault is asked for only at the step that saves a secret.
  • Message queue: type the next message while one is streaming; edit or remove it. Stop pauses the queue. Drafts are saved per chat and come back after a restart.
  • Recently Deleted: deleted chats are kept 30 days (Restore or Delete forever).
  • App lock (Settings): a 4-12 digit PIN, auto-lock timer, lock on minimize, and locked chats that stay hidden until you enter the PIN again.
  • Diagrams: mermaid code blocks are drawn after the reply finishes, with View code, Copy and Save image.

Honest notes

  • Replace selection is Windows only and unverified on real Windows. After a one-time OK, Hearth presses Ctrl+C to read your selection when you open the bar (before the OK it only reads your clipboard), and for Replace it hides the bar, puts the result on the clipboard, presses Ctrl+V in your app, then restores your clipboard. It runs a fixed PowerShell SendKeys command (no downloaded or bundled program, no text from you or the model in the command). If anything fails, or off Windows, it copies the result and tells you to press Ctrl+V. It is off until you allow it (Settings, Quick bar).
  • The app lock is a privacy gate, not encryption. Your data on disk is not encrypted by it. Wrong PINs are slowed, never locked out for good. Forgot it? Use the recovery code shown once when you set the PIN, or quit Hearth, delete app-lock.json in its data folder and start again. Locked chats are hidden and not synced, but stay locked until you set a new PIN. Windows Hello is not offered yet (needs a native add-on).
  • Dropping onto the tray icon only works on macOS; on Windows use the tray menu item or drop on the window.
  • Diagram engine adds size to the download (loaded only when a diagram appears). Diagrams are drawn in strict mode with no HTML, shown as an image.
  • Not verified on Windows: paste-back, Ctrl+C capture, lock on Windows lock-screen/sleep, Explorer drops. Builds are unsigned.

Hearth 0.4.11

beta 2 of the 0.5.0 line — speed and honesty

Shipped as beta. Faster replies, a plain view of memory, and every answer says where it ran.

Faster

  • Automatic thinking (composer chip Think: Auto / On / Off, also in Settings). Auto turns thinking off for quick jobs (rewrite, translate, summarize, greetings, short lookups) and on for hard ones (prove, debug, plan, compare, maths, long or multi-part questions). "Step by step" or "debug" always wins over a quick verb. It is a simple rule on your message, no extra model call. Models that cannot think are never asked to.
  • Ember memory meter next to the model picker: graphics + system memory in use, headroom, and a "Free memory now" button. Picking a model that would spill into slower RAM shows a hint with a lighter alternative; it never blocks the load. Idle models unload after 10 minutes (changeable).
  • Warm start (Models → Warm start, on by default): learns when you usually open Hearth (needs 4 opens at a similar time) and loads your usual model about 6 minutes before. Skips when on battery, the PC is busy, the model would not fit, or a remote host is in use. Nothing is sent anywhere. It only works while Hearth runs in the tray. Turn it off or "Forget what it learned" any time.
  • Speed Doctor (Models): suggests flash attention, q8_0 cache and an 8K window for small graphics cards, explains each (what, why, trade-off), asks first, and every change can be undone (one by one or all). On Windows it sets the Ollama user environment variables; Ollama must be restarted by you for them to take effect (Hearth never restarts it). On other systems it only shows the manual steps.

Honest

  • Privacy receipt under every answer: green "Stayed on this PC · model · thinking · time", amber when the internet, a cloud model or a non-local host was used ("Used the internet · web_search…"). Limits: MCP connectors, add-ons and integrations always count as online (Hearth cannot see inside them). Tools blocked by Network Off do not count. It describes this answer's tools and model, not other software on your PC.
  • Context meter in the chat header. At about 80% of the window, older turns are folded into a short summary (made by the same local model) with Undo; your chat is never deleted. The meter is an estimate (about 3.5 characters per token) and only goes up from Ollama's real counts.

Easier start

  • Empty chat is now a task-first home: six suggestion cards, a status strip, "What can Hearth do?" and one dismissible tip. No wizard.

Known limits

  • Windows end-to-end and real graphics-memory readings were not testable on the build machine (memory shown is an estimate when nvidia-smi is unavailable). Builds are unsigned.

Hearth 0.4.10

beta 1 of the 0.5.0 line — foundations

First milestone of 0.5.0. No new screens beyond Settings → Updates; this build makes updating trustworthy and fixes the model/geocoding plumbing the rest of 0.5.0 sits on. Shipped as beta (version 0.4.10 so every updater, including 0.4.9's, sees it as newer than 0.4.9 and older than the final 0.5.0).

Updates that actually apply

  • Why "it restarts but is still on 0.4.7" happened: the old updater never checked that the installer worked and relaunched whatever Hearth exe it found, so a failed install just brought the old app back. It also never verified the download, started the installer before Hearth had closed, hid errors, and could restart the wrong copy if Hearth was not in the default folder.
  • Fixed: the download's SHA-256 is verified; a helper waits for Hearth to close, runs the installer, records its exit code, then relaunches the copy you are really running (also the portable swap: retries, restores on failure). On the next start Hearth says honestly whether the update applied; if not, an "Update didn't finish" card shows the reason and a manual download button. Everything is logged to update.log in Hearth's data folder.
  • Install on quit now uses the same helper (it used to launch a bare installer while Hearth was still closing, with no log).
  • Existing 0.4.7 installs cannot fix themselves (the broken updater is the one running). They need one manual install of 0.4.9 or this build: quit Hearth from the tray icon, run the installer over the old one (settings and data stay), or replace the portable exe.

Update history and one-click rollback (Settings → Updates)

  • Lists the last updates/rollbacks with result and time.
  • Hearth keeps the previous version (installer builds: the installer of the version you are on; portable: the swapped-out exe) — at most 2 builds (~320 MB), verified by SHA-256 before use.
  • Roll back to X asks first, then closes, installs X and reopens. Your chats, memory and settings are untouched.
  • After a rollback Hearth holds the version you left (so it isn't re-offered or auto-installed on quit); "Allow updates again" clears it, and a newer release is still offered.
  • Honest limit: the first update on a fresh install has nothing to roll back to (the page says so). Rollback is Windows-only.

Model coach and hardware

  • Hardware defaults now reflect an 8 GB graphics card + 16 GB RAM when Hearth can't read the GPU. Windows reported a real 8 GB card as ~4 GB (its video-memory field is 32-bit); Hearth now asks nvidia-smi first, treats a 4 GB / empty reading as unreliable, and shows a one-time "How much graphics memory do you have?" question in the model coach (remembered).
  • gemma3:4b is now vision-only (no tool calling), ministral-3:3b added as a small model with tools and vision, and tool-less models are no longer recommended for chat/fast/reasoning jobs (moondream removed from "fast").

Find a place (find_place)

  • Results are cached on disk (90 days; "not found" for 6 hours), so the same city is never looked up twice.
  • Follows the Nominatim usage policy: public map services are used only when a person asks in chat, never from routines/Night Shift/background runs; requests are ≥1 s apart; User-Agent carries the app version and contact.
  • Switchable without an app update: geocoding.json in Hearth's data folder sets the provider order (open-meteo, nominatim, photon) or a self-hosted/paid Nominatim-compatible endpoint. Missing or bad file → safe defaults.

Reliability: step-bounded tool loop

  • A model that keeps calling tools can no longer end a request silently: at most 8 model steps, 4 tool calls per step and 12 per request; the last step is sent without tools so the model must answer, and if it still says nothing Hearth shows what it found and offers to continue.

Readability

  • Small grey text (the "muted" colour) is lighter on dark themes and darker on light themes in all seven themes, now ≥4.5:1 against the background, surfaces and raised panels (dark #6E6C68 → #8B8985, light #8F8B84 → #6C6964, midnight/forest/slate/paper adjusted). A test checks every theme.

Not verified

  • No end-to-end test on Windows: the NSIS/portable helpers are generated and inspected, and the portable swap is executed under wine's cmd.exe, but the real installer-over-installer update, rollback and relaunch have not been run on a Windows PC. Windows nvidia-smi hardware detection is unit-tested on its output only.
  • Builds are unsigned (Windows SmartScreen may warn).

Hearth 0.4.9

corrective security release — beta

No new features. Replaces 0.4.8 for anyone using Email (IMAP/SMTP); do not configure IMAP/SMTP on 0.4.8.

Security fixes

  • SMTP could send your app password unencrypted (0.4.8): on any SMTP port other than 465, Hearth fell back to a plain connection when the server did not offer STARTTLS. STARTTLS is now required on every port except 465 (implicit TLS); without it the send fails before login.
  • IMAP: STARTTLS is now required on every port except 993 (implicit TLS); fails closed instead of logging in in clear. 0.4.8 also could not log in to STARTTLS servers that refuse plaintext login.
  • Server certificates are always verified (no self-signed bypass) and TLS 1.2 is the minimum, for both IMAP and SMTP.
  • Mail search/read open the mailbox read-only; reading does not mark messages as read.

Fixes

  • New themes now apply: in 0.4.8, choosing Midnight, Forest, Slate, Paper or High contrast did nothing (mouse or keyboard). The app passed the theme name to Electron's native theme setting, which only accepts system/dark/light, so saving failed. Named themes now map to their dark or light base; unknown theme values fall back safely instead of failing. Regression test added.
  • Settings → Accounts moved up (right after Appearance) so the RVN card is easy to find; it was rendered in 0.4.8 but sat far down a long page. The card reads "RVN account · Sign in with RVN — Not available yet" with the reason, and the button stays disabled.
  • Light theme contrast: accent changed from #C9772E to #A35E1E (hover #8F5118). Buttons are now 5.0:1, accent text on the background 4.6:1 (WCAG AA). Same amber look.

Known limitations (unchanged from 0.4.8)

  • Sign in with RVN is blocked: controlpanel.live has no OIDC issuer yet (discovery returns 404). The button shows "not available"; nothing signs in.
  • Telegram, Google Drive backups, Mistnote and MOVE: stub tests only, no real end-to-end run.