Your rules, word for word: memory a coding agent cannot rewrite
I spent three days on this update, mostly on memory. The system was already there, but off by default. I’ve kept working on its search and using it day to day, and I’m finally comfortable having it on from the start.
What a new chat remembers
Mneme, Mercury’s project memory, keeps a separate library for each project. It’s plain Markdown, organised into topic pages, with a timestamp and source for each fact.
A new chat starts with the library’s front page, your pinned rules in full, and up to five facts matching your opening message. Search now uses a tokeniser and gives rarer words more weight. /memory shows what was recalled and why, so you can see which notes are being brought into the conversation.
Pinned rules stay exactly as you wrote them. They’re marked as yours, and the model cannot edit them.
Buffered notes get filed into topic pages, long pages split, and duplicates merge. Facts that haven’t been used for ninety days move into an archive but remain searchable. They aren’t deleted just because the project hasn’t needed them recently.
Picking up a session
Reopening a session from an editor now restores its model, effort and permission mode. Previously, it came back in the default permission mode. A message that a dead runner never read is also queued again for the next turn.
There’s more checking around the request sent on resume. Mercury saves a digest of the last request’s structure alongside each transcript. A fresh process compares its first request against that record. If something has changed that would drop a preserved thinking block, the diagnostic identifies which part changed.
The conversation’s original tool list is kept for its lifetime too, so definitions already sent don’t get rearranged underneath it.
Keeping a turn through a dropped connection
Capacity and network errors were still ending turns on some provider routes. Those requests now get up to three retries, with the current attempt shown in the status row.
Busy-provider retries have increasing waits of one, two, four, eight, sixteen and thirty seconds. The first thirty seconds stay quiet. If a reply arrives during recovery, a grey line reports how many retries it took. The red error appears only after the retry sequence is exhausted.
Sessions that hit an overload together also stagger their retries rather than all trying again at the same moment.
The watchdog now counts incoming connection traffic, including keep-alives. Previously, a slow response could be cut off after two minutes even though the connection was still active.
The inactivity budgets are now six minutes for routes that send keep-alives, twelve in patient mode, and fifteen for quiet routes. The status row starts warning at five minutes and says when the cut-off will happen. A running tool is never labelled stuck.
The patience setting wasn’t being applied on several provider routes. It now applies across all of them.
Crew agents and read-only scouts
The crew agent takes a brief covering research, changes and commands, with the full tool set available. The scout is for finding files, searching code and answering questions about how something works. Any scout call that would write is refused.
There are fixes to the existing agent handling too. A sub-agent’s turn was being recorded twice; it’s now recorded once. An answer sent through the crew view stays there instead of also landing in the lead’s inbox.
The crew view now shows each agent’s input and output tokens, with cache reads listed separately.
Usage, exports and project guides
The usage rows that were showing zero now use the provider’s reported figures, including reasoning tokens. Resumed headless runs also report their own time and cost.
MCP commands now mask secret values that were previously printed in full. Text and JSON exports mask keys and tokens too, trim tool results and leave out thinking.
A project with an AGENTS.md and no Mercury-specific guide now loads that file as its project guide.