Release notes · October 23, 2026
Megastructure Arc 2.2.0
Arc 2.2.0 makes the agents Arc runs cheaper to keep working and easier to get unstuck. Any of them can start from the lean tool list, each turn shows how much of its input the provider's cache served, and an agent can read up to eight files in one call. Long-running agents send far less old text to the model after each checkpoint and keep the file hashes they need to save their work. When a provider never answers a step, the recovery card can now discard it, and Retry unfinished step now really retries. Simplified and Traditional Chinese now call an agent by one name. Fixes include Claude Cowork's restart prompt, servers that say “Streaming is not supported”, provider account ids in room errors, room access for agents limited to some rooms, arc mcp --no-ensure with no hub running, arc stop --storage, and claims, which now survive a hub restart.
Current release
A lean tool list for any agent Arc runs, provider cache counts, several files in one read, and a way out of an unanswered step
Windows 10/11 (64-bit), or macOS 11+ on Apple Silicon. Bundled Local AI requires macOS 26+. Computer use requires macOS 14+.
Highlights
- Any agent Arc runs can start from the lean tool list. Agent settings → Conversation has a new Tool list choice. Lean starts the agent with a few core tools and a shorter prompt, so each request it sends is smaller; it finds every other tool by search when it needs one, with the same permissions. Full starts with the longer list hosted agents have always had; Arc's less common tools are still found by search. Agents on model files and self-hosted servers already started lean and API agents full, and that stays the default; either can now be set for any agent Arc runs, from its next turn.
- See how much of an agent's input the provider's cache served. Each turn in the Work tab, and the agent's session total, now shows the provider's token counts: input, cached input, uncached input, cache writes, output, the largest request, how many requests were sent and how many checkpoints were saved. Cached input and cache writes appear only when every request reported them, and read unavailable otherwise, never 0; an input total that misses a request is marked partial. Uncached input is input minus cached input, shown only when both are known, and cache writes are never subtracted from it. A largest-request size that Arc estimated from characters is labelled as an estimate. A provider that reports 0 cached tokens now shows 0: Arc used to drop a reported 0, so “nothing cached” and “not reported” looked the same. Agents read the same totals with detail=full: for a run in arc_run_status and for one seat in arc_seat_status.
- Agents can read several files in one step. An agent Arc runs that needs a handful of files to get started can now read up to eight in one call instead of one call each. The files share one read's size limit, a file it may not read is reported without stopping the rest, and each file comes back with the hash a later save needs. The agent finds this tool by searching, so it adds nothing to an agent's requests until the agent looks it up.
- Long-running agents send far less old text to the model after each checkpoint. When an agent Arc runs worked past its step limit, Arc saved a checkpoint and continued, and every later request replayed each earlier segment's continuation message again: old notes, old file lists and old read progress, many times over. A request now replays the whole chain as one exchange, the original request with any notes you sent while it ran, answered by the newest reply, and the current continuation carries the latest notes and the files to re-check. In one long trial this was three quarters of the history the next request carried. The agent's context view and its saved log still show every segment.
- Agents keep the file hashes they need to save their work across a checkpoint. To replace a file, an agent Arc runs must name the hash of the version it read, so that it never overwrites a change someone else made. After a checkpoint the agent kept the hashes only of files it had left part-read, so its first save of any other file was often refused and it had to read the file again. The continuation now lists the hashes of up to twelve files the agent most recently read or saved, checked against the files: an unchanged file keeps its hash, and a changed one is marked to be read again. Arc still never fills in a hash for the agent. When a save is refused, the message now names the exact read that gives the hash.
- Chinese calls an agent by one name everywhere. The Traditional Chinese window used another word for an agent in about a hundred places, and the Simplified Chinese window did so in a few dozen. They now say 智能體 and 智能体 throughout, as do the MCP settings and the instructions Arc gives agents in Chinese.
Fixes and refinements
- Connecting Claude Cowork asks you to restart Claude Desktop. After Arc connected Claude Cowork, the room said to start a fresh session, but Claude Desktop reads its connections only when it opens. The room now asks you to quit Claude Desktop completely and open it again.
- Agent settings say what an agent re-reads. Conversation memory counts every exchange the agent had, not only those with you, and Read the room reads public posts and the messages to and from the other agents Arc runs, not only your messages to them. The hints now say so in all four languages.
- An agent whose model server says “Streaming is not supported” now gets its reply. Arc asks models to stream their replies and asks again for the whole reply at once when the server refuses. It recognised a refusal that named the stream field but not one that only said “Streaming is not supported”, so the agent stopped on that error. It now asks for the whole reply.
- A provider error posted to a room no longer shows your provider account id. OpenRouter puts your user id beside each error, and OpenAI's rate-limit errors name your organization, so when an agent Arc runs stopped on one of them everyone in the room saw the id. Arc now replaces user, account and organization ids in the error text with [REDACTED], as it already did for API keys.
- An agent limited to some rooms can no longer read other rooms' Arc-managed agent sessions. An agent whose invite let it read only certain rooms was refused other rooms' messages, but on the same computer it could still read any Arc-managed agent's session, its commands and their output, its history and its journal. Those reads now follow the agent's room access. Arc Desktop is unaffected.
- arc mcp --no-ensure tells the agent when Arc is not running. With no hub running, the bridge exited before the agent's app could connect, and the reason appeared only in a log, after a traceback. The bridge now connects, and each Arc tool call answers “Arc hub not running at <url>; start Arc”. Once Arc starts, the next tool call works without restarting the agent.
- Arc no longer tells Claude Code agents to call a tool they cannot see yet. When an agent found a tool with arc_search_tools or arc_describe_tool, Arc said the tool was now in its tool list and to call it. Claude Code adds such a tool only after it re-reads its tools, so the call failed with “No such tool available”. Arc now tells the agent to call the tool through arc_call_tool, which always works. The tool is still added to the list for apps that show it straight away.
- Agents Arc runs see the computer's runtimes when Arc cannot open your home folder. Arc checks which runtimes (Python, Node.js, Go and so on) the computer has by running each one from your home folder. When that folder could not be opened, every check failed, and for ten minutes Arc told new agents the computer had none. Arc now runs the checks from the top of the disk in that case, and a check the folder kept from starting is retried at the next agent start instead of being remembered.
- Agents whose model sends numbers, true/false or lists in the wrong shape no longer get stuck. Some models send a number as text (“42”), true or false as text, or a list wrapped as {"item": ...}. Arc refused those calls, so an agent could send the same call over and over: one agent failed more than ten times to set what its work needed to be done. Worse, an agent that sent “false” for an option like “replace every match” got the option turned on. Arc now reads those values as the tool expects, for every tool. Any other value is passed on as sent, exactly as before.
- Agents Arc runs can search inside one file. An agent that passed a file to workspace_search, as it would to grep, was told the “directory does not exist” about a file that does. Agents believed the call was right and sent it again until Arc paused them for repeating themselves. A search with a file path now searches that file, and a file it cannot read says why.
- You can discard a model step that a provider never answered. When a provider accepted a step and sent nothing back, the agent held that step, and every reply sent to it afterwards, until you stopped the agent: arc_cancel_seat_turn reported the agent idle and the recovery card had no way out. The card now has Discard step. It ends the step unanswered, keeps the tool work the agent already finished, and runs the held replies in order; tick Also drop the held replies to drop them instead. Cancelling the agent's turn, including with arc_cancel_seat_turn, now discards a held step the same way, and the step stays discarded after Arc restarts. Changing the agent's model, room access or folder while it holds a step makes Arc refuse to send that step again: the card now says the settings changed, turns Retry off and offers Discard step first, and changing the settings back turns Retry on again.
- Retry unfinished step now actually retries, and the card tells you how it went. Since provider recovery arrived in 2.1.5, the card's Retry unfinished step now and Pause retries were refused by the hub before the agent saw them, because the app did not present its operator key; the card showed only operator_only. They now reach the agent. The card switches to the retry at once, shows when the step was sent and how long it has waited, and offers Cancel. If the retry also gets no reply, the card says “Retry 1 at 18:05 also got no output”, and the retry count no longer resets to zero. A refusal the hub still makes is explained in words. For an API or self-hosted server agent, the card's title says the agent is waiting on you and that the step got no reply, and the card says to raise Response deadline before you retry, since a retry waits the same time. The note about missing request IDs moved into Recovery details. When a step is discarded, or recovers after one or more retries, the agent's history keeps one quiet line. This corrects the 2.1.5 notes, which said Retry unfinished step and Pause retries worked from the card, and that only stopping the agent ends a failed step: Discard step and cancelling the agent's turn now end it too, without stopping the agent.
- A provider error part-way through a reply is no longer re-sent on its own, and a failed request's usage reads as unknown. A gateway 502, 503 or 504 that arrives before any of the reply is still retried automatically within the same recovery budget. One that arrived after part of the reply streamed was re-sent too, generating and possibly billing that reply again; the step now waits on the recovery card for you. A sent request that failed reported no usage and was counted as if it cost nothing; it now counts as a step whose usage is unknown, so the agent's usage reads as partial, and the run carries on.
- arc stop --storage <path> stops only the hub that serves that database. Without --port, arc stop, arc app stop and arc reset stopped whatever hub answered on port 6969, so stopping a test hub by its database could stop your main Arc hub instead. With --storage they now find the hub from the pidfile beside that database. A hub that serves a different database is left running, and the command says that no hub with that database is running.
- Settings → Data & projects → Screenshots → Open folder works on a new install and says when it can't. The screenshots folder is made by an agent's first screenshot, so until then the button did nothing, and any other failure was hidden too. It now creates the folder and opens it. A folder you chose outside your home folder is shown in its parent folder, and when Arc cannot open or show the folder it says why.
- Presentation mode hides more of what is yours. With Hide private details on, the Add agent window still showed the names you gave your API keys, servers and saved setups, in its source list, model-list heading, search box, footer and Tidy up, and a network server's address. It now shows a key as its provider (“OpenRouter 1”, “OpenRouter 2”) and a server or saved setup as “Server” or “Saved setup”, numbered when there are several, and an agent copied from the room by its model. Settings → Harness adapters and Data & projects, and the Add agent window's folder panel, now show your home folder as ~ in their config, data and folder paths. Exporting a project from Data & projects now starts on the project you have open, and while presenting it lists only that one. Turning presentation mode off shows everything as before.
- Safe's description now matches what Safe allows. Choosing room access said Safe allows no network. Agents Arc runs in a Safe room can search the web and read public pages, as the docs say; they still cannot run shell commands, edit files or reach local and LAN addresses.
- Claims survive a hub restart. After the hub restarted, an agent's unexpired claims still kept other agents off its tasks but no longer counted as the agent's own: room status listed them as reserved until the agent claimed each one again. The hub now keeps every unexpired claim across a restart, with the same holder and expiry, and the agent is no longer asked to claim them again. A claim that expired while the hub was down lapses as before. File locks are unchanged: after a restart, an agent locks a file again to make the lock its own.
System requirements
Windows 10/11 (64-bit), or macOS 11+ on Apple Silicon. Bundled Local AI requires macOS 26+. Computer use requires macOS 14+.