1.0.0-beta.35
published 14 October 2026
- Added keyless web search: uses your provider's search first, then official sources (Stack Exchange for errors, npm, PyPI and crates.io for packages, GitHub for code, Hacker News, Wikipedia), then any configured SearXNG instance, and DuckDuckGo page scraping last (terms stated once; /config turns it off); every result names its source
- Added a web step to choosing a model: when an id is on neither the live nor the known page, the model checks the provider's model list and asks you with what it found, never launching a model from a web page
- Added a short tester report (your OS, what you tried, what broke) at /bug --short, on the leave card and farewell line once per session, and at https://mercury-cli.ai/report
- Added memory at start: each session loads your pinned rules whole plus up to 4,000 characters (adjustable in /config) of the facts and earlier notes most relevant to your current branch, recently touched files and last note; one line says what rode and that Recall finds the rest
- Added memory centre counts showing how often a fact was offered, opened and cited
- Added recall by meaning: alongside word match, memory ranks facts with an on-device embedding model (bge-base-en-v1.5, 118 MB, bundled in every release archive for macOS Apple silicon and Intel, Linux x86-64 and Windows x86-64; on Linux and Windows this release runs the plain maths loop, so a Recall by meaning takes about a second and a half instead of a few hundredths, with a faster kernel to follow) and Recall states which ranking answered; the index builds in the background and never leaves your machine; /config (memory.embeddingModel) selects the model or your own gguf file
- Added /memory page: draws your memory library in the browser as a graph of topics, facts and links
- Added a confirmation card before chat removes or changes a rule you asked Mercury to remember: shows the rule's exact words and what will happen; No keeps the rule and continues the turn; under sovereign it runs without the card and the reply and /memory say so
- Added Sign in with Meta: a Muse Code subscription by device code or a pay-as-you-go Model API key, with the subscription tier and windows in /usage
- Changed Recall to score facts: inflected words match (deploying finds deployed), newer facts win ties, and facts the model opened and cited rank higher next time (no model call, pointers unchanged)
- Changed consolidation: a restated fact becomes current with the older one kept in history, both verbatim; a flipped rule or changed name never merges
- Changed facts to age: a fact not confirmed, cited or opened for about two months reads "stale: not confirmed since <date>" in Recall, at session start and in the memory centre, is restored when cited or confirmed, and is never deleted; pinned rules never age
- Changed search results to carry the page's words: Stack Exchange and Hacker News hits include an excerpt of the question or top comment; Wikipedia matches the exact phrase first, then pages whose title carries every word of the question, or moves to the next source
- Changed WebFetch to return the page's own words as markdown, with tables keeping their rows and columns, up to 38,000 characters per call with continuation; pages needing a browser use r.jina.ai and state it (MERCURY_FETCH_READER=0 disables it; private addresses are never sent); robots.txt is honoured, paywalls, sign-in walls and rate limits are stated, and a small-model reading runs only when asked
- Changed the Windows delete guard to match the Mac guard: refuses other users' folders, system folders and share roots in every spelling, plus home deletes through a PowerShell pipeline
- Changed the home screen to show a memory row: lists the pinned rules and facts loaded at start, or how many facts are pending when none rode; ↵ opens /memory
- Fixed contradictory facts being stored: memory refuses a fact that conflicts with a rule or fact on record ("not stored: it conflicts with rule 43, "…": the rule stands") while allowing restatements
- Fixed the closing note repeating the record: when most of it is already recorded, the model is re-asked once for what is new and the reply is stored verbatim up to 8,000 characters
- Fixed "the provider returned no thinking text" rows filling the chat: private thinking (including Gemini turns with signed empty thinking) draws nothing in chat and shows that line on a click of the turn and in the transcript view
- Fixed the crew notice showing when the tool returned instead of when the crewmate finished, and added the delivery time when it arrives a minute or more later
- Fixed /config search eating the first letter typed, the Eval approval card hiding the code it will run, daemon status counting the warm runner as a session, a switch time without its zone, three different model counts for one provider, PageDown in /help, and /crewmates switches waiting for the next turn
- Fixed the model writing a handoff file into your project; closing notes stay in the Mercury home
- Fixed GPT-family models being sent their own earlier refusals and error rows; refusals show once and are never sent back
- Fixed /model's effort pick failing silently when saving your default; both effort and model picks name the file and reason
- Fixed Gemini API-key sessions failing after tool rounds with Google's "missing thought_signature" refusal: API keys now use Google's native endpoint and preserve signed parts across tool rounds, a pasted key becomes active at once, and /logins shows the active Gemini source with ↵ switching to a stored one
- Fixed WebFetch returning a single table cell on documentation pages (a 795 KB Python docs page returned 150 characters as end of page): reads role="main" whole and keeps the page body unless a smaller container holds most of the text
- Fixed a contradiction refusal causing the model to overwrite the existing fact on its own: the model now asks you which is true first; declining a rule card draws a plain row, correcting a just-consolidated fact follows it to its page, and /exit states the saved note's character count
- Fixed /model with natural words (/model gpt 6 luna) opening the full picker with the words dropped: the words filter the picker, and a matched switch row shows your words, the model id and the time with its zone
- Fixed the autonomous delete ward on Windows missing a subfolder inside another user's profile (C:/Users/Public/x in any spelling across rm, Remove-Item, rd /s and PowerShell pipelines); interactive sessions still ask and sovereign runs as you
- Fixed the turn footer counting WebFetch calls as searches, the /crewmates switch row addressing you in the third person, WebFetch on a private address leading with the robots refusal, and /health missing the memory embedding pack row