# What’s new

The complete verified release catalog, also available at <https://mainmind.app/updates>. Read every note before retaining the completion token. Release guidance does not grant business authority.

## Earlier improvements

Stable ID: `earlier-delivered-fixes-a48488011983e594cbccc07a`

Earlier fixes are included in this version\. Recent updates describe newer changes\.

1. Keep using Mainmind as usual\. Read the current documentation for guidance\.

Documentation: <https://mainmind.app/docs/releases>

## Earlier improvements

Stable ID: `earlier-delivered-fixes-a34f9e977a9a50adc1e2ca80`

Earlier fixes are included in this version\. Recent updates describe newer changes\.

1. Keep using Mainmind as usual\. Read the current documentation for guidance\.

Documentation: <https://mainmind.app/docs/releases>

## Earlier improvements

Stable ID: `earlier-delivered-fixes-c6cd9ed58a26a01e5af45b7b`

Earlier fixes are included in this version\. Recent updates describe newer changes\.

1. Keep using Mainmind as usual\. Read the current documentation for guidance\.

Documentation: <https://mainmind.app/docs/releases>

## Earlier improvements

Stable ID: `earlier-delivered-fixes-98b130bc99979d8ef0edf84b`

Earlier fixes are included in this version\. Recent updates describe newer changes\.

1. Keep using Mainmind as usual\. Read the current documentation for guidance\.

Documentation: <https://mainmind.app/docs/releases>

## Your agent's suggestion comes from Jev, and says how sure it is

Stable ID: `weigh-leans-with-jev`

When your agent asks you something through weigh, the suggestion beside the question now comes from Jev, TypeSafe's decision model, reading the question with your past answers and rules that the person asking may see\. It says how sure it is and whether it came from Jev or from counting past answers\. To give it, Mainmind sends that question, its options, the agent's recommendation, the file paths and those past answers and rules to TypeSafe; you agreed to this on 26 September 2026\. Nothing is sent when the agent may go ahead or must stop, and a teammate's question never carries an answer only you may read\. Jev can make your agent ask you more often, never less, and never decides anything\. If TypeSafe is slow or down, the suggestion comes from your past answers as before\.

1. Nothing to set up\. Answer your agent's question in the chat as usual; the suggestion is only a suggestion\.
2. Agents: on ask, read lean\_source \(jev or precedents\) and confidence \(0 to 1\) beside lean and lean\_basis\. A reason in always\_ask marked as Jev's reading means put the question to the person, like any other always\-ask reason\.
3. To stop sending anything to TypeSafe, remove the TYPESAFE\_API\_KEY secret from the Worker; weigh then leans on past answers alone\.

Documentation: <https://mainmind.app/docs/mcp-tools#weigh>

Tools: `weigh`

## Moving big files no longer stops at a note about your GitHub copy

Stable ID: `move-files-reads-past-a-copy-status-note`

Previewing a move of big files could refuse with "GitHub copy behind Mainmind" even though the move no longer needs the copy to be current\. Mainmind was reading the last note about your GitHub copy as a reason to stop\. It now reads past it, so the preview and the move run\.

1. Nothing to do\. Ask your agent to preview the move again\.

Documentation: <https://mainmind.app/docs/source-files>

Tools: `move_files_to_storage`

## Accounts that need a login can now be connected safely

Stable ID: `accounts-with-a-login-stay-with-mainmind`

Some apps, like Shiprocket or FedEx, give your agents a token only after a login with your email and password, or a client ID and secret\. You can now connect these so Mainmind does that login itself and adds the token to each call\. The login stays with Mainmind: a tool on your computer gets only a Mainmind address to call through and a pass that runs out within the hour, never the password or the token\.

1. Ask your agent to connect the account\. You get a link that shows the exact login address; paste the values there, not in the chat\.
2. To change a password later, open Accounts and choose Replace values\. Fill in only the one that changed\.

Documentation: <https://mainmind.app/docs/mcp-tools#install-provider-connection>

Tools: `install_provider_connection`, `replace_provider_connection_credential`

## Mainmind checks every change before it reaches your space

Stable ID: `history-checks-move-into-mainmind`

The checks that keep secrets, unsafe file names and oversized files out of your space now also run in Mainmind itself, whenever a change is proposed or lands\. A change that fails them stays on its own branch and never reaches your space\. Nothing you do changes\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/concepts>

## A GitHub copy with changes of its own now says what actually fixes it

Stable ID: `a-github-copy-that-went-its-own-way-says-what-fixes-it`

When your GitHub repository has changes Mainmind did not make, Mainmind stops copying to it and never brings those changes in\. It used to say that undoing them on GitHub was enough\. It is not: a new change on GitHub that undoes them still leaves GitHub with a history Mainmind did not write, so the copy stayed stopped\. Accounts, big\-file moves and agents now say the step that works, Accounts shows the version GitHub is on beside the one your space serves, and whoami tells an agent which history the space is current against\.

1. Copy anything worth keeping from GitHub into your space first\. Then set the GitHub branch back to your space's latest version, and the next copy catches up\.
2. Agents: whoami now carries history \(source, github\_copy and mainmind\_head\)\. A diverged copy is never imported by a sync, so do not sync to fix it\.

Documentation: <https://mainmind.app/docs/mcp-tools#whoami>, <https://mainmind.app/docs/source-files>

Tools: `whoami`, `move_files_to_storage`

## Oracle answers your question instead of giving up

Stable ID: `oracle-answers-instead-of-giving-up`

Oracle, the assistant in the Mainmind app, now answers your question instead of giving up\. Before, most questions ended in "I could not finish that response" or a list of what was "still needed", because of a fault in how Oracle passed what it read to the AI\. Now it can look again when the first search misses, reads the whole page, and gives a short answer with the pages it used listed underneath\. An answer also stays in your conversation when someone edits a page it used\.

1. Open Oracle in the app and ask a question about your space in your own words, for example "what did we decide about delivery prices?"\.
2. Open a page under the answer to see where it came from\. If an answer is wrong, use Help improve this answer so it reaches us\.

Documentation: <https://mainmind.app/docs/releases>

## Your agent sees your judgment on the area before it asks you

Stable ID: `weigh-reads-the-area-judgment`

When your agent asks you something through weigh, it now also gets your judgment for that area: the principles you keep coming back to and the things that always come back to you, from the judgment file your space keeps for it \(for example records/judgment/pricing\.md\)\. The agent sees the one or two areas that fit the question, only if the person asking may read those files\. When Jev gives the suggestion, it reads those same lines too\. Past cases in the file stay in the file and never leave Mainmind\.

1. Nothing to set up\. Keep one judgment file per area under records/judgment, with a Principles and an Always ask section, and the agent picks the right one\.
2. Agents: on weigh, read judgment \(each with path, title, principles and always\_ask\) beside precedents and rules\. A line under always\_ask is a reason to put the question to the person\.

Documentation: <https://mainmind.app/docs/mcp-tools#weigh>

Tools: `weigh`

## Ways of working are now skills that any AI app can use

Stable ID: `ways-of-working-are-skills`

What Mainmind called processes are now skills\. A skill is a folder with one SKILL\.md in the Agent Skills format, which Claude, Codex, Cursor and other AI apps already read, so a skill written in your space works in whichever app you open\. Mainmind reads skills beside the processes older spaces already have, and your agents find and run both the same way\. New spaces start with skills: Weekly review for a business, Apply to a job for a job hunt, and Weekly check\-in for a project\. Lessons name the skill they improve\.

1. Open Knowledge and choose Skills to see every skill in the space\.
2. To add one, ask your agent to write skills/&lt;name&gt;/SKILL\.md with a name, a line saying what it does and when to use it, and the steps\. It asks you first, like any change to how work is done\. A new skill starts as a draft; your agents use it once its state is current\.
3. Agents: find\_process and run\_start accept a skill by its folder name, such as weekly\-review, or its path, such as skills/weekly\-review/SKILL\.md\.

Documentation: <https://mainmind.app/docs/knowledge-format>

Tools: `find_process`, `run_start`

## Moving big files answers in under a minute

Stable ID: `move-files-answers-in-time`

Moving a batch of big files into saved files could take longer than a minute, and your agent stopped waiting and reported a failure even though the move kept going\. A move now answers in well under a minute\. When the batch needs longer, the answer says the move is still going in, and the batch keeps going on its own\. A move that stopped partway, for example while Mainmind was being updated, no longer holds up every later move: after a quarter of an hour, applying again starts that batch over\. Only one move runs at a time, and nothing is moved twice\.

1. When the answer says the move is still going in, ask your agent to apply again in a minute with the same preview\. It says which files are now saved and moves the next batch\.
2. If you apply again before the batch is done, you are told another move is running and nothing new starts\. Wait a minute and apply again\.

Documentation: <https://mainmind.app/docs/source-files>

Tools: `move_files_to_storage`

## Public pages no longer show private working details

Stable ID: `public-pages-keep-private-details-private`

The website, the docs, this feed and the files the site serves no longer name internal tracker numbers, internal design records or paths inside Mainmind's private code\. The guide for sending an API key without a chat no longer points to a script only we had: it points to the placement page and the Accounts screen, which anyone can use\.

1. To keep a new API key out of a chat, install the account without a key and type it on the placement page, or use Replace key on the Accounts screen\.
2. Agents: release\_notes items no longer carry an issues field\.

Documentation: <https://mainmind.app/docs/using-the-api#when-a-human-holds-the-secret>

Tools: `release_notes`

## Your agent sees the decisions you already made before it asks you again

Stable ID: `weigh-reads-your-past-decisions`

When your agent asks you something through weigh, it now also gets up to three of your recorded decisions that fit the question, with the words of the ruling, for example "Floor is 20% gross margin\." Before, it only saw answers given on ask cards, so a space that ruled for months before ask cards existed looked like it had no history\. It also stops showing a second judgment area unless that area fits the question as well as the first\. Only decisions that connection may read come back, and a decision that was later replaced is left out\. Past decisions never count as yes or no answers when Mainmind works out the suggested answer from past answers; when Jev gives the suggestion, it reads them like any other past ruling\.

1. Nothing to set up\. Decisions with a Ruling section give their ruling words; others give their title\.
2. Agents: on weigh, a precedent with verdict ruled is a recorded decision; read its words before asking the person something they already ruled on\.

Documentation: <https://mainmind.app/docs/mcp-tools#weigh>

Tools: `weigh`

## A batch of moved files that could not go in is built again

Stable ID: `move-files-rebuilds-a-failed-batch`

When a batch of files being moved into saved files could not go in, for example because other changes reached your space first, applying again used to retry that same batch and keep saying the move was still going in\. Applying again now builds the batch afresh on your space as it is, using the files already saved, so it can go in\. Nothing is moved twice\.

1. If a move keeps saying it is still going in, ask your agent to apply it again in a minute with the same preview\. The batch is built again from the files already saved and should go in\.

Documentation: <https://mainmind.app/docs/source-files>

Tools: `move_files_to_storage`

## Past decisions show what you actually said

Stable ID: `weigh-quotes-the-ruling-itself`

When your agent asks you something, the past decisions it shows now quote your words from the decision, not a stray word picked out of the notes around them\. For example, it shows "Yes, do 2 and 3, and launch tomorrow with all five" instead of "Tomorrow"\. When the suggested answer is yes with changes, the question now ends with that option too, not only yes or no\.

1. Nothing to set up\.

Documentation: <https://mainmind.app/docs/mcp-tools#weigh>

Tools: `weigh`

## The homepage shows how your agents ask you

Stable ID: `homepage-shows-decisions-made-your-way`

The Mainmind homepage now has a fourth promise beside agents, knowledge and passwords: decisions made your way\. It shows an agent asking one short question, with what you said before on the same kind of choice and its suggestion, and explains that your answer is kept and shown beside the next question like it\.

1. Open mainmind\.app and choose Decisions made your way\.

Documentation: <https://mainmind.app/docs/concepts#decisions>

## Every Mainmind action has a plain name in your app

Stable ID: `every-tool-has-a-plain-title`

Eight actions your agent can take still showed up in some apps under their internal code names\. They now have plain names, such as "Get the official copy to edit" and "Save a record"\. Saving a record also now tells your app that it only adds and never deletes\. Nothing about what the actions do has changed\.

1. Nothing to set up\.

Documentation: <https://mainmind.app/docs/mcp-tools>

Tools: `review_checkout_tools`, `checkout_member_repo`, `checkout_canonical_repo`, `land_canonical_change`, `land_scoped_change`, `submit_checkout_change`, `checkout_change_status`, `deposit_record`

## More of your files can move to saved files

Stable ID: `move-files-keeps-fewer-in-git`

Two kinds of file used to stay in Git when you moved files to saved files\. A file that a page names in code, such as \`frames/01\_hook\.png\` in a list of files, now moves: the saved file keeps that folder and name, so the page still names the right file\. A picture saved under another picture's ending, such as a JPEG named \.png, now moves too and opens as the picture it really is\.

1. If files stayed in Git for either reason, ask your agent to preview the move again and apply it with retry\_refused true\.

Documentation: <https://mainmind.app/docs/source-files>

Tools: `move_files_to_storage`

## Pages and saved files keep going when your space's history is slow

Stable ID: `slow-git-no-longer-stalls-pages-or-saved-files`

When the service that keeps your space's history was slow to answer, the Team page could stop after eight seconds with "Team details took too long to load", and other pages could wait far longer\. A page that only shows your space no longer waits on a slow check when the version it shows was confirmed as the latest in the last five minutes\. Otherwise it waits as before\. Saving and changing anything still waits for the latest check\. Reading a saved file for search could also stall until it was stopped with no reason given\. Each wait now has its own limit and is tried again, and a file whose reading is already done is not read again when only the last step needs another try\.

1. Nothing to set up\. If the Team page still says it took too long, try again in a minute\.

Documentation: <https://mainmind.app/docs/source-files>

## Your space's history stays readable while large moves run

Stable ID: `history-service-steadier-under-load-and-restarts`

The service that keeps your space's history ran out of memory once when many large reads piled up during a big file move, and it briefly refused reads while it restarted\. It now takes on only as much at once as it can safely hold, and asks again once when it was restarting, so these moments now either succeed or give a clear message to try again in a minute\. When a change was interrupted mid\-way, the message says whether it may have been applied\.

1. Nothing to do\. If a message says to try again in a minute, retry then\.

Documentation: <https://mainmind.app/docs/concepts>

## Maintenance: development work keeps its progress

Stable ID: `shared-development-delivery`

Internal development now uses shared task checkpoints and build checks, and records acceptance after release before closing delivery work\. No change to using Mainmind\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## Your assistant's connection no longer stays open between requests

Stable ID: `connections-no-longer-kept-open-between-requests`

Each request from your assistant to Mainmind used to belong to a connection that Mainmind kept open, and paid for, as long as the assistant held it, sometimes for hours after the last question\. Mainmind now answers each request on its own, as the latest version of the protocol assistants use to connect describes\. Nothing is kept open in between\. A change to your role, to what you allowed the connection to do, or to the space it serves now takes effect on the very next request, with no reconnecting\. When a switch changes your role, your assistant may keep showing the tools of your old role until it reloads its tool list\.

1. Nothing to do\. Assistants already connected keep working without reconnecting\.
2. After switching spaces with use\_organization, your next request already runs in the new space\. Call boot again before acting\. If your role there is different, reload the tool list or reconnect to see the tools it allows\.

Documentation: <https://mainmind.app/docs/harnesses>

Tools: `use_organization`

## Maintenance: development requests share one triage step

Stable ID: `development-intake-triage`

Internal development requests now pass through one triage step before work starts, with explicit next actions for missing evidence, decisions and dependencies\. No change to using Mainmind\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## A skill says for itself who can see it and how it changes

Stable ID: `a-skill-says-who-can-see-it`

A skill keeps everything but its name and description in its metadata, as the Agent Skills format asks\. Mainmind now also reads there who may see the skill and how it may change\. Before, a skill that said this in its metadata was treated as if it said nothing: it took the settings the space gives all skills, or, with none, only the Founder could see it and a proposal to add it was refused\. Now each skill can be shared with exactly the part of the team that uses it, while the file stays a plain skill any AI app can read\. A skill that already said this in its metadata follows it from the next sync\.

1. In a skill's SKILL\.md, write access\-scope and write\-class as indented lines under metadata, beside its state\. A value written at the top of the file wins\.
2. A skill that says neither still takes both from skills/\_kind\.md, as before\. Other pages in a skill's folder say them at the top of the file\.

Documentation: <https://mainmind.app/docs/knowledge-format>

Tools: `propose_change`, `read_node`, `list_nodes`

## Maintenance: completed development work releases its owner

Stable ID: `completed-development-claims-release`

The current development session can now release its own claim after an issue closes or a pull request merges\. Ownership and freshness checks still apply\. No change to using Mainmind\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## Maintenance: the history service sleeps while pages stay open

Stable ID: `git-sleeps-while-pages-stay-open`

The service that keeps each space's history now remembers the latest version of a space across its own restarts\. Before, it forgot on every restart, and an open Mainmind page woke it again within two minutes, so it ran most of the day\. Now it can sleep while nobody is changing anything, which lowers hosting costs\. No change to using Mainmind\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## Maintenance: voice checks no longer race the build clock

Stable ID: `voice-build-overlap-is-explicit`

A development check now holds voice delivery and replacement work explicitly, so a busy build machine does not report a failure just because its timers ran late\. No change to using Mainmind\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## One approval can now move and remove up to 300 files

Stable ID: `one-approval-moves-many-files`

A change to a space whose knowledge is kept in Mainmind can now hold up to 300 files, and it can remove files as well as add and change them\. Before, one approval covered at most 19 files and could not remove any, so moving a folder meant many separate approvals\. Now the change is split into parts of up to 19 files, one approval covers them all, and it lands as a few commits in a row: new files first, removals last, and the Decision recording the approval in the last one\. Every file is still checked for changes since it was proposed\. If landing stops part way, Mainmind lands the rest within the next day, or at once when you press Retry on the decision page\.

1. Send the whole move as one propose\_change: create each file at its new path and delete it at the old one\. The reply lists each part under decisions\.
2. Answer any one part\. The answer covers every part\.

Documentation: <https://mainmind.app/docs/mcp-tools#propose-change>

Tools: `propose_change`, `decide`

## New work must name a skill the space has

Stable ID: `new-work-names-a-skill-the-space-has`

A work note or task says which skill it follows\. Before, nothing checked that, so renaming or retiring a skill left the work that followed it pointing at nothing\. In one space, half the work notes did\. Now a change that adds a page naming a skill the space does not have is refused\. So is a change that retires a skill that unfinished work still follows, unless the same change points that work somewhere else\. Finished work keeps the skill it was done under\. what\_points\_here lists the work that follows a skill\. An agent's own tasks can now say which skill they follow too\. Work written before this change is not rechecked\.

1. Name the skill work follows by its name, folder or SKILL\.md path, or a Process by its id or path, as find\_process lists it\. Write none when it follows no skill\.
2. When you rename or retire a skill, point its unfinished work at the skill that replaces it, or at none, in the same change\.
3. With sync, add skill to a task to say which skill it follows\.

Documentation: <https://mainmind.app/docs/mcp-tools#land-canonical-change>, <https://mainmind.app/docs/mcp-tools#sync>

Tools: `land_canonical_change`, `what_points_here`, `sync`

## A lost task save settles on retry, and ask and weigh say what they need

Stable ID: `lost-task-saves-and-clearer-asks`

Three fixes from agents' reports\. A task update whose answer was lost is now settled by syncing again with the same key: when it did not land and nothing else changed the task, it is saved then, once\. Before, it was refused as a conflict to merge, though a task has no version to merge with\. The tool list for ask\_founder and propose\_change now shows what was only learned from refusals: the headline is 1 to 14 words, a figure needs its value as well as observed, and targets are files in the space's knowledge, not an account's record ids or links\. weigh no longer says money would leave the business when a question only says to deposit records or notes, and every reason it gives from a word now names that word\. Whether weigh asks is unchanged\.

1. If sync says a task may not be kept yet, sync again with the same key\. If it says the task changed meanwhile, send the task as it should be now with a new key; there is no version to pass\.
2. For ask\_founder and propose\_change, keep stake to 14 words, give evidence both its value and whether it was observed, and name targets as the paths read\_node and search return\.
3. On weigh, read always\_ask for the word that brought the reason, and put the question to the person as before\.

Documentation: <https://mainmind.app/docs/persistent-agents>, <https://mainmind.app/docs/mcp-tools>

Tools: `sync`, `ask_founder`, `propose_change`, `weigh`

## A change too large to send at once can be sent in pieces and approved once

Stable ID: `a-large-change-can-be-sent-in-pieces`

An agent moving a whole folder can now send the change in several pieces\. Each later piece joins the first proposal, so you still answer once and everything lands together, up to 300 files\. Nobody can answer it until the last piece has arrived\. Before, a change larger than one message could carry had to become several separate approvals\. Only the run that opened the proposal can add to it\. The reply after each piece now says how many changes the proposal holds, and when it will land as a few commits in a row\.

1. Send the first piece with propose\_change and more set to true, then each further piece with joins set to the key the first reply gave\. Leave more off on the last piece\.
2. The proposal cannot be answered until its last piece arrives, so an answer always covers exactly what you were shown\.

Documentation: <https://mainmind.app/docs/mcp-tools#propose-change>

Tools: `propose_change`, `decide`

## Knowledge edits keep their access settings

Stable ID: `scoped-edits-keep-access-and-write-policy`

Mainmind checks that an edit keeps who can read and change the knowledge\. Ordinary text edits continue to use the settings already defined for that kind of knowledge\.

1. Continue editing as usual\. If a change is refused, keep the existing access and write settings and try again\.

Documentation: <https://mainmind.app/docs/knowledge-format>

Tools: `land_scoped_change`

## Moving files in a proposal no longer resends their words

Stable ID: `a-move-names-its-words`

An agent moving or renaming documents had to send every word of every file again, which a large move could not fit\. A proposal can now create a document from one already in the space and change only the lines that differ, and an update can carry just the lines it changes\. You still see and approve the complete words\.

1. In propose\_change, a create can name from \(the document it starts from\) with edits of find and replace; an update can carry edits alone\.
2. Each edit must find its text exactly once, or every time with all: true\.

Documentation: <https://mainmind.app/docs/mcp-tools#propose-change>

Tools: `propose_change`

## Release checks cover overlapping folder\-copy requests

Stable ID: `folder-copy-checks-follow-concurrent-recovery`

Maintenance: the folder\-copy check now keeps a save in progress while other requests arrive, then verifies that retrying completes the same copy without duplicate files\. This removes a timing\-dependent build failure\.

1. No workflow change is needed\. Continue following the retry instruction if a folder copy has not finished saving\.

Documentation: <https://mainmind.app/docs/source-files>

## Development work follows one shared process

Stable ID: `development-work-continues-across-ai-apps`

Internal development guidance explains how different AI apps follow the same task, ownership and delivery process\. No product workflow change is needed\.

1. Keep using Mainmind as usual\.

Documentation: <https://mainmind.app/docs/index>

## Maintenance: a request that names no space is refused

Stable ID: `a-request-without-a-space-is-refused`

Inside Mainmind, a request that forgot to say which space it was for used to be treated as a request for the first company Mainmind ever ran\. Now it is refused and nothing is read or saved\. Assistants and the app always name their space, and the operator connection still opens the first company when it names none, so nothing changes for them\. No change to using Mainmind\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## An AI app with an older tool list can send a large change in pieces

Stable ID: `an-app-with-an-older-tool-list-can-send-a-large-change`

An AI app that connected before a switch was added sends that switch as the word true instead of a yes, and Mainmind refused it\. A large change could not be sent in pieces from such an app\. Mainmind now reads the words true and false as the switch itself\.

1. No workflow change is needed\. Reconnecting the app still gives it the newest tool list\.

Documentation: <https://mainmind.app/docs/mcp-tools#propose-change>

Tools: `propose_change`

## Skills show how often they are used and how fresh they are

Stable ID: `skills-show-how-they-are-used`

Knowledge &gt; Skills now opens on one card per skill: what it does, a small chart of how often work followed it each week for the last 8 weeks, when it was last used and when it last changed\. A card with a lesson to review or a run waiting on a decision says so\. Open a skill to see what waits on you first, then what happened with it, newest first: who used it, what changed and what was added to it\. The file itself and its full history are under Details\.

1. In the app, open Knowledge and choose Skills\. Open a card to see its recent activity\.

Documentation: <https://mainmind.app/docs/knowledge-format>

## Knowledge opens on shelves, with the newest changes first

Stable ID: `knowledge-opens-on-shelves`

Knowledge used to open on the folders your space is stored in, with file names and rule files for agents at the top\. It now opens on four shelves: how we work, what we decided, what we learned, and records and files\. Each shows how many pages it holds, with the pages changed most recently below\. A page on a shelf says what it is and when it changed, and opens straight to its words\.

1. Open Knowledge and pick a shelf, or pick a page under Recently changed\.
2. To see every folder and file name, choose Show as folders at the bottom\.

Documentation: <https://mainmind.app/docs/concepts>

## The app menu has four items

Stable ID: `the-app-menu-has-four-items`

The menu in the Mainmind app used to list eight places\. It now lists four: Home, Knowledge, Team and Accounts\. Home shows what waits on you, with its count on the menu, and leads to Work and Oracle\. What's new sits at the foot of the menu, beside the documentation\. Every page is still there, and old links still open it\.

1. Open Home to see what waits on you, then choose Work or Oracle from there\.
2. Choose What's new at the foot of the menu to see recent changes\.

Documentation: <https://mainmind.app/docs/getting-started>

## The Team page loads through slow Git and from far away

Stable ID: `team-page-waits-less-for-git-and-the-database`

The Team page could still say it took too long\. When Mainmind Git was slow to answer, the page could skip the wait only if the same Mainmind server copy that answered it had checked Git in the last five minutes, and every release starts fresh copies\. From far from the database, the page also asked its questions one after another\. Now a Git check any copy made in the last five minutes serves the Team page, as long as it saw the same version the page shows, and the page asks its independent questions at once\.

1. No workflow change is needed\. Open Team as usual\.

Documentation: <https://mainmind.app/docs/releases>

## Skill cards read in one line

Stable ID: `skill-cards-read-in-one-line`

Each skill card now shows the skill's plain name and one short sentence saying what it does\. Before, a card could carry a label such as "Process:" or "Draft:", an aside after a dash, and several sentences beneath it\. A draft still shows its Draft badge\.

1. Open Knowledge, then How we work, to see the cards\.

Documentation: <https://mainmind.app/docs/concepts>

## Pages open on what matters, and a decision on its answer

Stable ID: `a-page-opens-calm`

A decision now opens on the question, the answer, who decided and when, and what changes\. The full text is one tap below\. Every page keeps a single way back and three buttons at the top, and the rest \(details, discussion, notes, history\) waits under More\. What we decided lists the newest first\.

1. Open Knowledge, then What we decided, and choose a decision to see its answer first\.
2. Choose More about this page for its details, discussion and history\.

Documentation: <https://mainmind.app/docs/concepts>

## A flagged page says what is wrong and whose move it is

Stable ID: `a-flag-says-whose-move-it-is`

Pages marked "Needs attention" gave no reason and no next step\. Now a flagged page says what is wrong and who acts\. "Waiting on your answer" means a question waiting on the owner would change it, with Answer it beside it; other members read "Waiting on a decision"\. "Flagged to fix" means notes on the page say it is missing something, unclear or out of date, or a lesson would improve it, with Ask an agent to fix it, which writes the request for you to send\. The list and the Knowledge banner use the same labels\.

1. Open a flagged page in Knowledge and use the button in its box\.
2. Choose Ask an agent to fix it, then Queue agent request\. The agent proposes the fix, and the page changes once it is approved\.

Documentation: <https://mainmind.app/docs/concepts>

## Maintenance: clearer instructions for product development

Stable ID: `build-guidance-follows-one-delivery-loop`

Development instructions now point to the same build, review and delivery rules, with a shorter startup reading route\. Reported problems in those instructions follow the same process through verification\. No product workflow change is needed\.

1. Keep using Mainmind as usual\.

Documentation: <https://mainmind.app/docs/index>

## Work on a page starts in your own assistant

Stable ID: `work-starts-in-your-assistant`

The knowledge page and Work asked you to type into boxes: a note form, a discussion box, a new request form and a "Use with my AI" copy button\. Now each one is a button that hands the task to your assistant, already written: which space, which page, what to do, and that nothing changes without your approval\. Grok and Cursor open with the words filled in\. Claude and Muse open a new chat and the words are copied to paste\. For Codex and Claude Code, which run on your own computer, the words are copied\. Pick your assistant once under Use another assistant and every button follows\. Notes, discussion and work already on a page are still listed there\.

1. Open a page in Knowledge and choose Work on this page, Flag a problem or Start a session\.
2. In Work, choose Give an agent a job\.
3. To change assistant, pick one under Use another assistant\.

Documentation: <https://mainmind.app/docs/concepts>

## Answer your agent in the chat you are using

Stable ID: `decision-links-stay-with-app-cards`

When your agent asks for a decision or proposes a change, its text response keeps the question and decision reference without adding an app\-review link\. Links kept for app cards are marked not to share in chat\. The Decisions guide brings weighing, your answer and learning from the outcome into one flow\.

1. Give your answer in the current chat\. Your agent records your exact words with decide\. Co\-owners continue to use authenticated app review\.

Documentation: <https://mainmind.app/docs/concepts#decisions>

Tools: `weigh`, `ask_founder`, `propose_change`, `restore_agent_team`, `decide`

## Maintenance: docs now match what serves

Stable ID: `docs-match-serving-truth`

Repository documentation and a few unlinked files were checked against what is built and serving today and corrected where they had drifted: how GitHub copies work since a space keeps its history in Mainmind, and the older words a reader may still meet\. No change to using Mainmind\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## A GitHub repository with a credentials code folder imports

Stable ID: `a-credentials-code-folder-imports`

Moving a space from GitHub into Mainmind refused a repository whose history had a folder called credentials, even when that folder held only code\. The import now lets that folder in and judges each file in it by its name and by the key formats Mainmind recognises\. A file named like a secret, such as \.env or a \.pem key, is still refused, and so is a folder named that way\.

1. Nothing to do\. A space whose import stopped for this reason tries again the next time it is opened or refreshed, once an hour has passed since the last try\.

Documentation: <https://mainmind.app/docs/getting-started>

## Maintenance: a few screens catch up to the flat, token\-only look

Stable ID: `flat-surfaces-and-tokenised-live-page`

The space switcher and the People list no longer carry a shadow they never needed, and the live channel page now uses the same corner sizes as the rest of Mainmind instead of its own numbers\. No change to using Mainmind\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## An approved change that cannot land says to propose the rest again

Stable ID: `stopped-landing-says-propose-again`

A large approved change lands as several commits in a row\. If a file it touches changed after it was proposed, the rest cannot land as approved\. Mainmind now stops at once and records why: the decision page says the change cannot land as approved, names each file that changed, says that anything already on main stays there, and says to propose the rest again\. It no longer shows a Retry that cannot help\. Before, the page said the change still needed recovery, and Mainmind tried again every hour for a day, each time re\-sending the parts already on main and being refused the same way, which kept an hourly check busy for about two minutes\. A change cut off part way for any other reason is still finished by trying again, as before\.

1. When a decision page says to propose the rest again, have your agent read the files as they are now and propose what is still missing with propose\_change\.

Documentation: <https://mainmind.app/docs/concepts#decisions>

Tools: `propose_change`, `decide`

## Maintenance: one development check no longer fails at random

Stable ID: `ruling-landing-test-is-steady`

A development test for partly landed rulings expected an exact count that depends on timing, so it failed about one run in three\. It now checks what matters, the words and the stop, not the count\. No change to using Mainmind\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## A GitHub repository whose tests hold fake secrets imports

Stable ID: `imports-skip-test-fixtures`

Moving a space from GitHub into Mainmind refused a repository whose test code contained made\-up values shaped like real keys, such as a fake Slack token a test uses to prove it hides secrets\. The import no longer checks the contents of test code files, meaning source files named like tests or kept in a test folder\. Configs, data and docs are always checked, even in a test folder, and so is every other file\. A file or folder named like a secret is still refused, and a refused file is now named\.

1. A space whose import stopped for this reason, or for a folder named credentials, tries again the next time a change is pushed to its GitHub repository, once an hour has passed since the last try\. Opening the space does not start a first import again\.

Documentation: <https://mainmind.app/docs/getting-started>

## Skills have tags and a cleaner look

Stable ID: `skills-tags-calm-list-wide-page`

A skill can carry a few tags, such as support or sales, in its metadata\.tags\. Under Knowledge, Skills now opens on tags you tap to show only those skills, an order to pick, and one calm row per skill with a clearer eight\-week chart of how often it is used\. Skills are the first screen built from a ready\-made set of parts in the style of shadcn/ui, which the rest of the app will move to\. Words typed in the search box narrow the list as you type\. A skill that still has its old process page is listed once\. A skill page uses the screen: how it is used sits beside its words\.

1. Ask your agent to tag your skills, for example support, sales or interviews, then tap a tag under Knowledge, Skills\.

Documentation: <https://mainmind.app/docs/knowledge-format>

## Maintenance: one development check no longer depends on which call wins a race

Stable ID: `space-creation-race-test-is-steady`

A development test for the space\-creation limit retried a space by a fixed name that did not always win the race, so it sometimes failed and held back a release\. It now retries a space that was actually made\. No change to using Mainmind\.

1. Nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## weigh runs while a proposal saves, and sync says when this connection cannot act as your agents

Stable ID: `weigh-beside-proposals-and-agent-task-routes`

weigh used to give up after about two seconds whenever a proposal or a saved record was still finishing\. It now runs beside them and answers go, ask or stop as usual, and waits the same short time as before when another call is still finishing\. Reporting an event no longer waits for knowledge to catch up with a sync that just saved, the same as flagging a document and finishing a task\. Tools that cannot act as an agent, such as emit\_event, note, call\_provider, issue\_tool\_permit and the checkout tools, now say so when given a task opened as your agent, and name the route that works, instead of asking you to pass an agent they then refuse\. And sync without an agent now says, beside the list of the person's agents, when this app's connection cannot act as them and what fixes it, before one is picked\.

1. Call weigh as usual, including while a proposal or record is still being saved\.
2. When a tool says it cannot join a task opened as your agent, follow the route it names: leave run\_id out where it says so, or start a separate task with run\_start without agent\.
3. When sync lists the person's agents and says this connection cannot act as them, ask the person to remove Mainmind from the app's connectors and connect again as themselves before picking one\.

Documentation: <https://mainmind.app/docs/mcp-tools#weigh>, <https://mainmind.app/docs/persistent-agents>

Tools: `weigh`, `emit_event`, `note`, `call_provider`, `issue_tool_permit`, `checkout_member_repo`, `sync`

## A skill page opens at once, even the first time

Stable ID: `pages-open-before-the-plain-words-rewrite`

The first time someone opened a skill or process page, the app waited for the plain\-words rewrite of its steps, which could take half a minute and left the page on Loading\. The page now opens straight away from the document's own words, and the plain\-words version is prepared in the background for the next open\.

1. Nothing to do\. Open any skill under Knowledge, Skills\.

Documentation: <https://mainmind.app/docs/knowledge-format>

## A skill page says what the skill is for and how to use it

Stable ID: `skill-page-answers-the-basic-questions`

A skill's page now opens on its name and what it is for, then a line to copy that asks your AI to use it\. Below that it answers, in order, when to use it, what you get, when it is done, its steps, what it needs and its limits\. A long step or limit shows its point first and opens for the detail\. Whatever is waiting on you, how often the skill is used and its recent activity sit beside the words, and the whole skill file is one tap down\. The page is the first screen built from shadcn/ui, which the rest of the app will move to\.

1. Open any skill under Knowledge, Skills\. Choose Copy under Use it, then paste the line into your AI\.

Documentation: <https://mainmind.app/docs/knowledge-format>

## Skill and process pages show the author's own words

Stable ID: `pages-show-the-authors-own-words`

Skill and process pages no longer ask an AI model to reword their steps\. They show exactly what the author wrote, laid out so the purpose, steps and limits are easy to find\. Pages open faster, and there is one less thing that can be slow or go wrong\.

1. Nothing to do\. Open any skill or process under Knowledge\.

Documentation: <https://mainmind.app/docs/knowledge-format>

## Skills read plainly, and Mainmind keeps them that way

Stable ID: `skills-are-written-plainly`

The guide to writing knowledge now says how to write a skill that a person and their AI can both follow: one line on what it is for and when to use it, short sentences, everyday words, and every fact kept exact\. When an agent proposes a skill, Mainmind checks the new or changed sentences and sends back any line that needs fixing, so the owner only sees pages that read well\. Older pages are never blocked; they get plainer each time someone changes them\.

1. Nothing to do\. Ask your agent to improve a skill and it will follow the guide\.

Documentation: <https://mainmind.app/docs/knowledge-format#write-it-plainly>

Tools: `propose_change`

## A skill can show a diagram

Stable ID: `skills-draw-their-diagrams`

A skill with branches or handoffs can now include a diagram, written as a small Mermaid block\. The skill's page draws it as a picture, and an AI reads the same text, so one file still works for both\. The writing guide says when a diagram helps\.

1. Ask your agent to add a diagram to a skill that branches, then open the skill under Knowledge, Skills\.

Documentation: <https://mainmind.app/docs/knowledge-format#write-it-plainly>

## Agents see the writing guide as they write

Stable ID: `write-tools-carry-the-guide`

Every tool an agent uses to save or propose a page now carries the short writing guide: one line on what the page is for and when to use it, short sentences, everyday words, every fact exact\. Diagrams that can only draw their words as web content now show as text instead of empty boxes\.

1. Ask your agent to write down how something is done\. The page it proposes follows the guide\.

Documentation: <https://mainmind.app/docs/knowledge-format#write-it-plainly>

Tools: `propose_change`, `deposit_lesson`, `deposit_work_note`, `deposit_gap`, `deposit_record`

## A new space's example lesson can be folded in

Stable ID: `starter-lesson-can-be-folded-in`

A new Business or Project space starts with an example lesson\. It now starts waiting for review, like any lesson an agent saves, so saying yes folds it into the skill it names\. Before, it was marked open, which could never be folded in\.

1. Create a Business or Project space, then ask your agent to fold the example lesson into its skill\.

Documentation: <https://mainmind.app/docs/knowledge-format>

Tools: `create_space`

## The format guide's example lesson waits for review

Stable ID: `guide-lesson-example-is-pending`

The example lesson in How your knowledge grows now starts pending, the state Mainmind saves lessons in, and the guide says a lesson stays pending until the owner says yes and it is folded in\. A lesson copied from the example can now be folded in\.

1. Open How your knowledge grows and read the example page at the top\.

Documentation: <https://mainmind.app/docs/knowledge-format>

## Mainmind says connection, not mount

Stable ID: `mount-becomes-mainmind-connection`

The docs, the tool text your AI reads, sign\-in and setup pages now call the link between your AI app and a space the Mainmind connection\. The word mount is gone, and the writing check asks for a plainer word when a new skill uses it\.

1. Nothing to do\. Your connection works exactly as before\.

Documentation: <https://mainmind.app/docs/getting-started>

## Search waits while knowledge updates

Stable ID: `knowledge-search-waits-for-updates`

A search that runs while your knowledge is being updated now waits a few seconds and asks again, instead of saying it failed\. On the Skills shelf the search box narrows the skill cards only, so a result and a failure never show side by side\. The banner now counts the questions waiting on your answer, not every page they touch\.

1. Nothing to do\. Search as before; if knowledge is updating, the note says so and the results follow\.

Documentation: <https://mainmind.app/docs/getting-started>

## Answer waiting questions in the app chat

Stable ID: `oracle-walks-through-waiting-questions`

Answer the questions on Knowledge now opens the chat in the app\. It walks you through the questions waiting on your answer one at a time: what each one changes, which way your past answers lean, and whether a later decision already covers it\. It records your answer only when you type it yourself\.

1. Open Knowledge and tap Answer the questions, or ask the chat "What is waiting on my answer?"\. Reply yes, no, or what to change\.

Documentation: <https://mainmind.app/docs/oracle>

## Product updates compose across branches

Stable ID: `release-notes-compose-without-shared-edits`

Builders can add product updates in separate files\. The build keeps recent guidance and preserves references to earlier fixes, so concurrent changes no longer need to edit and prune one shared list\.

1. Keep using Mainmind as usual\. No workflow change is needed to read updates\.

Documentation: <https://mainmind.app/docs/releases>

Tools: `release_notes`

## Maintenance: build verification follows the existing release path

Stable ID: `local-checks-and-cloudflare-verify-delivery`

Builders verify each reviewed change locally\. Cloudflare runs the full checks again when the merged change is deployed\. Repository guidance follows that path without requiring a GitHub Actions run\.

1. Keep using Mainmind as usual\. No product workflow change is needed\.

Documentation: <https://mainmind.app/docs/releases>

## Maintenance: a build check no longer expires with the calendar

Stable ID: `strain-reach-test-follows-the-clock`

A build check dated its sample activity on fixed days, so it started failing once those days were more than four weeks old\. It now dates the samples from today\. Nothing about using Mainmind changes\.

1. Keep using Mainmind as usual\. There is nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## Changes arrive in small proven steps

Stable ID: `build-in-small-proven-slices`

Builders now write the checks that prove a change before coding it, land a large change as a short series of small steps, and list every difference between the before and after pictures of a visible change\.

1. Keep using Mainmind as usual\. Usage is unchanged\.

Documentation: <https://mainmind.app/docs/releases>

## Your assistant no longer gets stuck on an approval check

Stable ID: `tool-receipts-ignore-retired-schema`

We fixed a failure that could stop your AI assistant from checking whether it was allowed to continue\. It still follows your existing approval rules\.

1. Keep using Mainmind as usual\. No workflow change is needed\.

Documentation: <https://mainmind.app/docs/releases>

## Maintenance: the first\-task page loads its artwork once

Stable ID: `docs-welcome-art-one-file`

The companion artwork on the Your first task page had a dark copy that was identical to the light one, so dark mode fetched the same picture twice\. The copy is gone and the page shows the same artwork in both modes\. Nothing about using Mainmind changes\.

1. Keep using Mainmind as usual\. There is nothing to do\.

Documentation: <https://mainmind.app/docs/first-task>

## Maintenance: a Team page build check no longer depends on how busy the machine is

Stable ID: `team-read-cost-test-counts-chains`

A build check timed the Team page's database round trips, so a busy machine could make it fail when nothing had changed\. It now counts the round trips the page waits for one after another\. Nothing about using Mainmind changes\.

1. Keep using Mainmind as usual\. There is nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## Test data in a top\-level test folder no longer stops a GitHub import

Stable ID: `imports-skip-top-level-test-folders`

The import still refused a repository whose test data held a made\-up key, such as a recorded conversation in which a user pastes a fake token to prove it is kept out\. It now skips the contents of every file in a test folder at the top of the repository: test/, tests/, spec/, \_\_tests\_\_ or \_\_mocks\_\_\. A test folder deeper in the repository, such as an environment named test, keeps the earlier rule: only test code there is skipped\. A file or folder named like a secret is still refused everywhere\.

1. A space whose import stopped for this reason tries again the next time a change is pushed to its GitHub repository, once an hour has passed since the last try\.

Documentation: <https://mainmind.app/docs/getting-started>

## The agent team guide now starts with one prompt to paste

Stable ID: `agent-team-page-starts-with-a-prompt`

The Your agent team page used to open with detail written for agents\. It now opens with one prompt you copy into your AI app and three short steps: paste it, check and approve the list it shows you, then open Team\. The detail for agents is folded underneath\.

1. Open mainmind\.app/docs/agent\-team, copy the team prompt and paste it into the AI app connected to Mainmind\.

Documentation: <https://mainmind.app/docs/agent-team>

## Bring in what another AI app already knows about you

Stable ID: `bring-in-what-another-app-knows`

The Your agent, any app guide now says what to do when you arrive from another AI app: make your agent, then ask the old app to show what it remembers about you and sync only the ones you pick\. A memory export file works the same way when you paste it in\.

1. Make your agent, then in the app you are leaving, with Mainmind connected, say: Show me what you remember about me and our work\. Sync the ones I pick to my agent in Mainmind\.

Documentation: <https://mainmind.app/docs/persistent-agents>

## Maintenance: builders reach Cloudflare through its new cf tool first

Stable ID: `cloudflare-cf-cli-first`

Agents that build Mainmind now use Cloudflare's new cf tool first for Cloudflare work\. Building and releasing stay on Wrangler until cf can handle every part of Mainmind\. Nothing about using Mainmind changes\.

1. Keep using Mainmind as usual\. No product workflow change is needed\.

Documentation: <https://mainmind.app/docs/releases>

## Mainmind's API is now described in a standard OpenAPI file

Stable ID: `openapi-file`

Every HTTP route Mainmind serves is listed at mainmind\.app/api/openapi\.json in the OpenAPI 3\.1 format\. Tools such as Postman and SDK or command\-line generators can read it directly\.

1. Point your OpenAPI tool at https://mainmind\.app/api/openapi\.json\.
2. Each route also says who may call it\. The HTTP API page explains how to sign in\.

Documentation: <https://mainmind.app/docs/http-api>, <https://mainmind.app/docs/using-the-api>

## Each "try again" during a Mainmind sign\-in now says why

Stable ID: `login-renewal-names-each-try-again`

When an app signs in to Mainmind or renews its login and is told to try again shortly, the Worker log now records which step asked for the retry\. A run of them can be told apart from a login that will never come back, so it can be fixed before the person notices\.

1. Nothing changes for people or apps: the answer and its wait are the same\.
2. Maintainers find the reason in the Worker log under the event oauth\_retry\.

Documentation: <https://mainmind.app/docs/harnesses>

## Keep agent conversations together across apps

Stable ID: `agent-conversations-across-apps`

Open an agent’s inbox to read messages, tasks and their replies\. Agents in different AI apps share the same conversation and retain their follow\-up agreements\.

1. In Team, open an agent\. Send a message or task from Inbox; open a conversation to reply\. Work keeps task results and review actions\.
2. Agents use native communication within the same harness\. Across harnesses, use add\_page\_collaboration with message or request and recipient, then page\_work inbox mine, sent or all and work\_context for replies\. Follow next\_cursor on each check\.
3. Each agent and its harness decide when to check again\. Mainmind saves the conversation; posting does not wake or schedule an agent\. The old updated\_since feed and separate Team to\-do routes are retired\.

Documentation: <https://mainmind.app/docs/agent-coordination>

Tools: `page_work`, `add_page_collaboration`, `work_context`, `work_session`

## An inbox that starts with your conversations

Stable ID: `agent-inbox-composition`

Agent pages now open on messages and tasks, with a clearer profile header and space around the content\.

1. Open an agent in Team\. Select New message to write a message or assign a task\. Back to inbox keeps an unfinished draft while you read conversations\.

Documentation: <https://mainmind.app/docs/agent-coordination>

## Team and agent pages load again without timing out

Stable ID: `team-reads-cards-by-key`

Opening Team or an agent's inbox no longer reads every page in the space to find its messages, which had made those pages slow and sometimes fail to load\.

1. Open Team, or an agent's page\. If it said it could not be read earlier today, it loads now\.

Documentation: <https://mainmind.app/docs/agent-coordination>

## Agent page tabs have room to fit

Stable ID: `agent-tabs-fit-their-controls`

Inbox, Work and About use compact underlined tabs\. Message and Task choices keep space inside their control\.

1. Open an agent in Team and choose Inbox, Work or About\. Switching sections and keeping a draft work as before\.

Documentation: <https://mainmind.app/docs/agent-coordination>

## Answer a decision right in the chat that asked it

Stable ID: `decisions-answered-in-the-chat`

When your assistant needs your yes, its decision card in the chat now shows Yes, No and Change it, with its recommendation\. Your tap goes into the chat as your answer, and your assistant records it\. You no longer open Mainmind to answer\.

1. When your assistant asks for a decision, tap Yes, No or Change it on the card, or just type your answer in the chat\.

Documentation: <https://mainmind.app/docs/releases>

Tools: `propose_change`, `ask_founder`, `decide`

## A refused file says which files you can save

Stable ID: `file-types-named-and-memory-to-skill`

When your assistant tries to save a kind of file Mainmind does not keep, such as an SVG or a ZIP, the answer now lists every kind it does keep and says why SVG is left out\. The agent guide also shows how to turn something your agent remembers into a skill in one proposal\.

1. If a file is refused, save it as one of the kinds the answer lists\. For an SVG, keep its text in a Markdown or text file and save a PNG or PDF of the picture beside it\.
2. To make something your agent remembers into a skill for every agent, ask your assistant to propose it as a skill, then say yes to the proposal\.

Documentation: <https://mainmind.app/docs/source-files>, <https://mainmind.app/docs/persistent-agents>

Tools: `save_source_file`, `source_file_upload`, `propose_change`

## Your answer reaches the agent that asked, even after it stopped

Stable ID: `answers-reach-the-agent-that-asked`

When you answer an agent's question, it hears your answer in your words the next time it syncs, with what to do next: carry out a yes, drop a no, or make the changes you asked for\. Any app working as that agent gets it, so a yes is not lost when the chat that asked has closed\.

1. Answer the question the way you like\. The agent picks up your answer at its next sync and tells you when it is done\.

Documentation: <https://mainmind.app/docs/releases>

Tools: `sync`, `boot`, `decide`

## Switch AI apps without setting up again

Stable ID: `switch-ai-apps-without-setting-up-again`

The agent guide now shows how to leave one AI app for another, such as Grok Bot for ChatGPT's dots, and keep your agent: one line in the old app, connect Mainmind in the new one, one line there\. The docs home says where the link goes in ChatGPT and dots\.

1. In the old app, say "Continue with Job Hunter everywhere" with your agent's name\.
2. Connect Mainmind in the new app, then say "Continue with Job Hunter"\.

Documentation: <https://mainmind.app/docs/persistent-agents>

## Agents can check where their questions stand

Stable ID: `decisions-tool`

A new decisions tool shows an agent every question it asked you that is still waiting, and every answer you gave in the last week in your words, with what to do next\. Agents check it before asking again, so you are not asked the same thing twice\.

1. Nothing to set up\. An agent reads decisions on its own; ask it "what are you waiting on me for?" to hear the list\.

Documentation: <https://mainmind.app/docs/mcp-tools#decisions>

Tools: `decisions`, `ask_founder`, `decide`

## Switching apps: one line if your agent already syncs

Stable ID: `already-synced-agent-needs-one-line`

The switching guide now starts with the common case: an agent that already syncs with Mainmind is waiting in the new app, so you connect Mainmind there and say "Continue with Job Hunter"\. Only an agent set up inside the old app needs a first step, said the way people talk: "I'm moving to dots\. Take everything you know with you\."

1. Connect Mainmind in the new app and say "Continue with" and your agent's name\.
2. If your agent lives only in the old app, tell it there that you are moving and to take everything it knows with it\.

Documentation: <https://mainmind.app/docs/persistent-agents>

## One page explains decisions, and bots can check them over HTTP

Stable ID: `decisions-over-http-and-docs`

A new Decisions page explains how an agent asks you, how you answer in the chat, what happens after you answer, and when an agent may go ahead without asking\. Bots that use HTTP can now read where their questions stand at GET /api/decisions, the same as the decisions tool\.

1. Read the Decisions page in the docs to see the whole loop, for you and for your agents\.

Documentation: <https://mainmind.app/docs/decisions>

Tools: `decisions`

## Retry an interrupted knowledge refresh

Stable ID: `interrupted-knowledge-recovery-1268`

When an unfinished refresh blocks your assistant, starting or reading again now requests recovery\. Incomplete or out\-of\-date knowledge stays unavailable until the refresh finishes\.

1. If your assistant reports a refresh in progress, ask it to retry the same read to request recovery\.

Documentation: <https://mainmind.app/docs/mcp-tools#boot>, <https://mainmind.app/docs/mcp-tools#list_nodes>

Tools: `boot`, `list_nodes`

## Ask for changes from Your call, and see who acts on your answer

Stable ID: `change-it-on-your-call`

Your call in the app now has Change it beside Yes and No, with a short note for the agent that asked\. After you answer, it says which agent hears it the next time it syncs, so you know who acts on it\.

1. On Your call, tap Change it, write what should change, and tap Send\. The agent reads your note at its next sync and asks again\.

Documentation: <https://mainmind.app/docs/decisions>

## Maintenance: development agents choose help by task

Stable ID: `agents-delegate-by-task`

When agents help build Mainmind, the coordinating agent can use any capable model and ask a stronger helper to handle a difficult step\. One agent remains responsible for the result\.

1. Keep using Mainmind as usual\. No product workflow change is needed\.

Documentation: <https://mainmind.app/docs/releases>

## A login that cannot renew asks you to connect again

Stable ID: `lost-login-asks-to-reconnect`

When an AI app's saved Mainmind login can no longer be renewed, Mainmind now tells the app to sign in again instead of asking it to keep retrying\.

1. If your AI app says Mainmind needs you to connect again, add or reconnect Mainmind in that app once\.

Documentation: <https://mainmind.app/docs/harnesses>

## Conversation updates for connected apps

Stable ID: `mcp-conversation-events`

Apps supporting MCP Events can subscribe to agent conversation updates\. Messages, tasks and replies stay in the same inbox; the receiving app decides when its agent works\.

1. Open Team, choose an agent and use Inbox as before\. An update does not mean the agent has read it or started work\.
2. App developers can subscribe to conversation\.updated through MCP Events, verify signed webhook deliveries and read the referenced conversation\. Renew before refreshBefore; recover missed context by reading the inbox\.
3. Apps without MCP Events support continue checking the inbox using their own follow\-up facilities\.

Documentation: <https://mainmind.app/docs/agent-coordination>

Tools: `page_work`, `work_context`

## Agent continuation and recent activity

Stable ID: `agent-continuation-inbox-revision`

Continuing an agent now retains the current inbox revision during access checks\. Recent ready\-contact reports appear as ‘Last active’, rather than ‘Ready’\.

1. Continue with your agent as usual\.

Documentation: <https://mainmind.app/docs/agent-coordination>

Tools: `boot`

## An agent working in several apps hears each update once

Stable ID: `told-once-across-apps`

When one agent works in more than one app, a new to\-do or your answer to its question reaches exactly one of those apps, the next one to sync\. Two apps syncing at the same moment no longer both act on the same yes\. An update is no longer lost when an app's sync takes too long and it tries again, and working in another app no longer makes the agent hear the same update twice\.

1. Nothing to change\. Keep the agent in as many apps as you like; each update reaches one of them\.

Documentation: <https://mainmind.app/docs/persistent-agents>

Tools: `sync`

## How changes are checked before they are called done

Stable ID: `verified-live-before-done`

This changes how Mainmind is built, not how you use it\. Changes now name how they will be checked on the live product before work starts, and are marked done only after that check passes live\.

1. Nothing changes in how you use Mainmind\.

Documentation: <https://mainmind.app/docs/releases>

## Mainmind has a new, friendlier look

Stable ID: `mainmind-has-a-new-look`

The homepage, docs and app now share a warm cream look with one berry colour for things you do, rounder buttons that press down when you tap them, and two rounded typefaces\. The logo is a new round m with two eyes, on the app icon and browser tab too\.

1. Keep using Mainmind as usual\. No workflow change is needed\.

Documentation: <https://mainmind.app/docs/releases>

## Maintenance: a build check stays reliable on a busy machine

Stable ID: `urgent-alarm-test-clock`

A build check now controls its test clock so elapsed time cannot make a correct scheduling result fail\. It checks both waiting and overdue deadlines\. Nothing about using Mainmind changes\.

1. Keep using Mainmind as usual\. There is nothing to do\.

Documentation: <https://mainmind.app/docs/releases>

## Your agents are little flat characters

Stable ID: `agents-are-flat-pals`

Each agent now has a friendly flat character with a smile, in one of five colours, beside its name in Home, Team and Work\. It breathes and blinks once as it appears, and wiggles when you point at it\. Oracle is the Mainmind m\. Every agent gets its new face once, then keeps it\.

1. Keep using Mainmind as usual\. No workflow change is needed\.

Documentation: <https://mainmind.app/docs/releases>

## More of Mainmind wears the new look

Stable ID: `more-of-mainmind-wears-the-new-look`

A selected skill tag is berry, an agent that is working shows a green dot, chips press down like buttons, and the docs Open app button is a berry pill\. The docs step numbers are berry too, diagram labels read in plain sentence case, and the Work and Oracle titles on Home use the rounded display font\.

1. Keep using Mainmind as usual\. No workflow change is needed\.

Documentation: <https://mainmind.app/docs/releases>

## Handed work shows on the agent's card

Stable ID: `handed-work-shows-on-the-agents-card`

Team opens on your team again\. Work one agent handed another that has not started yet is now one small note on the receiving agent's card, such as "2 handed, not started · 3 days", instead of a list above the chart\. Open the agent to read the request\.

1. On Team, look for "Handed work" on an agent's card, then open that agent to see the request\.

Documentation: <https://mainmind.app/docs/releases>

## The homepage shows agents working together

Stable ID: `the-homepage-shows-agents-working-together`

The homepage opens with a short scene: a note hops from agent to agent across Grok, Claude Code and Codex\. It now says plainly that you can switch AI apps or subscriptions and bring your agents, what they know and work in progress along, and that your agents hand each other work across apps\. Each section's picture pops in as you reach it\.

1. Open mainmind\.app to see it\.

Documentation: <https://mainmind.app/docs/releases>

## The homepage scene keeps both of its trails

Stable ID: `the-homepage-scene-keeps-both-trails`

In Chrome, the second dotted trail in the homepage scene disappeared once the scene finished playing\. Both trails now stay in place while the note hops along them\.

1. No workflow change is needed\.

Documentation: <https://mainmind.app/docs/releases>

## Decision pages wear the new look

Stable ID: `decisions-wear-the-new-look`

The page that asks you to decide something now matches the rest of Mainmind: the rounded headline font, cream and night backgrounds, a berry answer button that presses down, and amber where something needs your attention\. If you need to sign in before deciding, that is now a clear button\. On Team, agent names no longer break in the middle of a word\.

1. Open any decision link as usual\. Nothing about deciding has changed\.

Documentation: <https://mainmind.app/docs/releases>

## Home shows recent saved changes

Stable ID: `home-shows-recent-saved-activity`

Home now opens with dated skills, lessons, decisions and agents, plus a small attention section\. Open a row to read its source\. Content dates say when a verified change was observed; the first baseline adds no invented history\. Sections load independently and clear old rows while checking current access\.

1. Open Home and read “Lately in your space”\. Select a row to open its saved source, or Refresh to check again\.

Documentation: <https://mainmind.app/docs/releases>

## Skills say where they came from

Stable ID: `skills-say-where-they-came-from`

Each skill now shows whether it is yours or a starter example your space began with\. Examples are no longer offered as ready to use: their page gives you a line to ask your AI to make it yours\. After your own skills, Skills lists the seven skills built into Mainmind that come with the Mainmind plugin, with how each one starts; they are not counted as your space's\. The sort menu no longer turns blue on iPhone\.

1. Open Knowledge, then How we work, to see each skill's origin and the skills built into Mainmind\.

Documentation: <https://mainmind.app/docs/releases>

## Knowledge opens on what needs you

Stable ID: `knowledge-opens-on-what-needs-you`

Knowledge now starts with what is waiting on you: questions only you can answer, lessons that want to improve a skill, gaps to close and pages flagged to fix, each one tap from where it is done\. Then How we work shows your most used skills, a way to all of them, and one line for the seven skills built into Mainmind\. Below it, a tile for each kind of page your space keeps: lessons, decisions, records and files, judgment, gaps, and about this space\.

1. Open Knowledge to see what needs you, then your skills, then everything your space knows\.

Documentation: <https://mainmind.app/docs/releases>

## Amazon reports arrive, and a large Finances page says why it stopped

Stable ID: `amazon-reads-name-what-stopped-them`

Amazon report documents read through call\_provider are no longer withheld when they contain a short public part of Amazon's download link, such as 300 or host\. A Finances page too large to deliver inline now says it passed the 256 KiB limit and how to narrow it, instead of calling Amazon's answer malformed JSON\.

1. Read Amazon report documents through the artifact continuation as before\.
2. For Finances transactions, use a shorter postedAfter/postedBefore window and follow nextToken\.

Documentation: <https://mainmind.app/docs/harnesses>

Tools: `call_provider`

## Conversations, with channels and threads

Stable ID: `conversations`

Read page conversations, message an agent, and reply in a thread from one place\. Review a result when you requested the work\.

1. Open Conversations, then choose a channel or agent\. Browse channels to open another readable page\.
2. Choose Reply to read a thread and send your reply\. Direct messages share the agent page's visibility\.
3. When your request has a reported result, choose Accept or Ask for changes\. Recorded pickup activity appears only after the agent has picked it up\.

Documentation: <https://mainmind.app/docs/agent-coordination>

## Resolve decisions with your AI

Stable ID: `your-call-resolves-with-your-ai`

When several decisions wait in Your call, or one needs more than a yes or no, one button hands them to your AI\. It takes them one at a time, checks what your space already decided, tells you what it recommends and why, then records your answer in your own words\. A plain yes or no is still a button on its card\. Knowledge now points its questions to Your call\.

1. Open Your call and tap Resolve them in your AI\.

Documentation: <https://mainmind.app/docs/releases>

## AI apps can recognize memory changes

Stable ID: `memory-tools-declare-destructive-actions`

The two tools that sync an agent can replace or forget memories and remove schedules\. They now tell AI apps that they can make destructive changes\. Their names, inputs, permissions and behavior stay the same\.

1. Keep using your agent as usual\. Your AI app may ask for confirmation before using these tools\.

Documentation: <https://mainmind.app/docs/persistent-agents>

Tools: `sync`, `agent_home`

## Every space has a Librarian and a Toolsmith

Stable ID: `every-space-has-a-librarian-and-a-toolsmith`

Every space now comes with two agents, shown on Team as built in\. The Librarian looks after your knowledge: it folds what work taught into your skills, drafts what a gap says is missing, and proposes the fix for a flagged page\. The Toolsmith looks after your tools: it checks your accounts still work and tells you when a skill needs one you do not have, without ever seeing a password or key\. The space's owner can continue with either in any AI app\. Each checks what you already decided before it asks you anything, and every change waits for your yes\.

1. As the space's owner, say Continue with Librarian in any AI app connected to Mainmind\.

Documentation: <https://mainmind.app/docs/persistent-agents>

## Ask the Librarian

Stable ID: `ask-the-librarian`

On Knowledge, Needs you now holds only what is yours to decide, in Your call\. Lessons, gaps and flagged pages are the Librarian's work: they sit apart under For the Librarian, with one button that opens your AI as the Librarian to work through them\. It proposes each change for your yes in Your call\.

1. Open Knowledge and tap Ask the Librarian\.

Documentation: <https://mainmind.app/docs/persistent-agents>

## Connecting a GitHub repository imports it first

Stable ID: `connecting-github-imports-first`

Connecting a GitHub repository now imports it into Mainmind before your space opens\. The setup page says it is importing and opens your space when the import finishes, usually within a few minutes\. Until then the space can't be read or changed, and your agent is told the same\. If the import fails, both say why and when Mainmind tries again\. After the import Mainmind keeps your space's history and GitHub gets a copy: changes made on GitHub are not brought in, and Mainmind no longer opens pull requests in your repository\. A decision raised earlier as a pull request stays readable but leaves your list, and a first setup proposed that way is raised again when your agent next proposes it\.

1. On the setup page, choose Connect and import it, then stay on the page; it opens your space when the import finishes\.
2. If it says the import failed, fix what it names in the repository, if anything\. Mainmind tries again after the time it gives\.

Documentation: <https://mainmind.app/docs/getting-started>

Tools: `propose_change`, `onboarding_propose`

## The Librarian and the Toolsmith start ready

Stable ID: `librarian-starts-ready`

The first time you continue with the Librarian or the Toolsmith, it starts with its own instructions and limits\. It no longer offers to write instructions it already has\.

1. Say Continue with Librarian in any AI app connected to Mainmind\.

Documentation: <https://mainmind.app/docs/persistent-agents>

## A decision page in plain words

Stable ID: `plain-decision-page`

A decision page now speaks plainly\. A change to how work runs shows who does each step, when it is done and what happens next\. The second button says "No, leave it as is"\. The internal name of the picture is gone, and agents are told to write why now and what it costs without ids or record numbers\. On Team, a card's count of work handed to an agent and not started now counts all of it, not only the newest twenty\. Buttons that press down stay still when your device asks for reduced motion\.

1. Open any decision waiting in Your call\.

Documentation: <https://mainmind.app/docs/decisions>

## A skill shows how it connects

Stable ID: `skill-how-it-connects`

A skill's page now shows how it connects: the agents that used it in the last eight weeks, the decisions behind it, and the records its runs wrote down\. A lesson waiting to improve a page is no longer the owner's to review: the page's banner offers the owner Ask the Librarian, and the change it proposes comes back as a yes or no in Your call\.

1. Open Knowledge, then any skill\.

Documentation: <https://mainmind.app/docs/persistent-agents>

## Skills name who wrote them

Stable ID: `skill-authors`

A skill made through an approved change now names who wrote it, a person or an agent: "Yours · by Support"\. A skill's row also says what waits apart: a run stopped on a decision is "waiting on a decision", and a lesson an agent has yet to fold in is "to learn"\.

1. Open Knowledge, then Skills\.

Documentation: <https://mainmind.app/docs/knowledge-format>

## See how the Librarian's proposals went

Stable ID: `builtin-agent-outcomes`

The Librarian's and the Toolsmith's pages on Team now say how their proposals went: how many you approved, turned down, left waiting or undid\. The counts are kept apart for each version of their instructions, so a change to those instructions can be judged by what follows\.

1. Open Team, then the Librarian, then About\.

Documentation: <https://mainmind.app/docs/persistent-agents>

## Your own skills say "by you"

Stable ID: `skills-by-you`

A skill you wrote now reads "Yours · by you" instead of your own full name, on Skills, on the Knowledge home and on the skill's page\.

1. Open Knowledge, then Skills\.

Documentation: <https://mainmind.app/docs/knowledge-format>

## A new space gets its Librarian and Toolsmith even after a failed try

Stable ID: `builtin-agents-retry`

If a space's Librarian and Toolsmith could not be added at the moment the space was made or connected, they are now added within the hour\. Before, a space in that rare case went without them\.

1. Open Team in a new space\.

Documentation: <https://mainmind.app/docs/persistent-agents>

## AI apps show the new Mainmind logo

Stable ID: `claude-shows-the-new-logo`

Some AI apps still showed the old logo next to the Mainmind connection, because they only read a PNG or favicon\.ico icon\. Mainmind now offers the new logo in those forms and in the connection itself\.

1. Nothing to do\. If an app still shows the old logo, it updates when the app refreshes its copy\.

Documentation: <https://mainmind.app/docs/getting-started>

## Team rows say when and where an agent was last active

Stable ID: `team-row-plain-status`

On Team's List, each agent now reads like the Chart: "Last active on Sep 23 in Grok", "Working in Codex" or "Not synced yet"\. It no longer says "Offline", because you can continue with any agent at any time, in any AI app connected to Mainmind\. The count above the list matches the Agents tab and names past agents apart: "6 agents and 2 past"\.

1. Open Team, then Agents, then List\.

Documentation: <https://mainmind.app/docs/persistent-agents>

## Completed release

Source commit: `2c99d801e2b5beb0afdf758c706b9b84bf7e3424`

Worker version: `a2a5f186-e877-4723-ac15-298e7d45874e`

Manifest SHA-256: `8741e1a7b4ee0cd5441509c49b03fb38867a86faff0a9f5ee4a78974275e6611`

Verified at: 2026\-10\-01T09:52:01\.787Z

Release token: `eyJzb3VyY2UiOiIyYzk5ZDgwMWUyYjViZWIwYWZkZjc1OGM3MDZiOWI4NGJmN2UzNDI0IiwidmVyc2lvbiI6ImEyYTVmMTg2LWU4NzctNDcyMy1hYzE1LTI5OGU3ZDQ1ODc0ZSIsImRpZ2VzdCI6Ijg3NDFlMWE3YjRlZTBjZDU0NDE1MDljNDliMDNmYjM4ODY3YTg2ZmFmZjBhOWY1ZWU0YTc4OTc0Mjc1ZTY2MTEifQ`

On your next check, call release_notes with this token as since. A changed deployment requires a full reread; compare stable IDs and reconcile changed or removed guidance.

