Skip to content

V2.2.0-beta - Radian

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 18 Oct 21:20
· 16 commits to main since this release

V2.2.0-beta - Radian

Agents become assistants you talk to. Each Agent now has one ongoing chat that starts work in your projects, reads your mail and calendar, searches the web, watches pages and reports back through an inbox and notifications. Underneath, every kind of background work runs on one engine, Pi moves to 1.3, and Fate gains hooks, language servers, rewind, hunk review and usage tracking.

Important

This is a pre-release for beta testers, like 2.0.1-beta. Back up ~/.pi before you install it over an existing installation. Installed stable copies are not offered this build, and 2.0.x beta copies are not offered it automatically either; download it below. From this build on, Settings → System → Beta branch lets Check for Updates offer later pre-releases. To leave the beta, uninstall it and install the stable release again.

Everything in 2.0.1-beta is included. This page lists what changed after it.

Agents, rebuilt

An Agent is now a saved persona with exactly one conversation of its own, like a personal assistant chat. Agents are global: they are no longer saved per project.

  • One chat per Agent. Select Agents in the sidebar and + to create one. Its conversation runs in a folder Fate UI owns and is not listed under any project.
  • Work in your projects. Ask for work in a trusted project, for example "check why the build fails in fateUI". The Agent starts a background run with run_in_project and answers right away. When the run finishes, its result comes back into the chat and the Agent continues from there. A run is a normal conversation in that project, so it can use Agent Teams, GoalMax and Memory Learning, and Open run shows it. Up to four runs are active at once, and each stops after 30 minutes.
  • Inbox and notifications. Finished, failed and interrupted runs and Routine messages land in a per-Agent inbox behind the bell in the Agents toolbar, with Unread and Read all. While Fate UI is not focused, every finished or failed run raises a desktop notification. Mute notifications turns them off for one Agent.
  • Status under the name. In the regular sidebar each Agent shows what it is doing: the project and request of a running job, its latest unread item, Watch paused, its last run, or Ready with its permission.
  • Gmail and Google Calendar. With your own Google OAuth client (Settings → Agent → Google), an Agent with Google turned on searches and reads your mail and reads your primary calendar. Sending mail and changing events shows the exact content in the chat and waits for your answer. The client secret and sign-in are encrypted with the operating system's key store, every decision is written to google/receipts.jsonl, and a send Google does not confirm is reported as unknown instead of retried. Full access Agents can use Google too; mail is text from other people, so give a Google Agent the shell only if you accept that risk.
  • Watches. + Watch on an Agent's card checks a public page on an interval for any change, text appearing or disappearing, or a US dollar price crossing a threshold. Checks run without the model; only a hit posts into the chat and notifies. Failed checks back off from 2 to 16 minutes, and five failures in a row pause the watch.
  • Routines now post a message into the Agent's chat on an interval, for example "every morning, summarize my unread mail".
  • Memory. The remember tool saves something you state as a pending Memory Learning draft: preferences go to your GLOBAL profile, everything else to the Agent's own PROJECT store. Nothing is used until you approve it, and a Memory drafts rail above the composer opens Learning. Normal chats get remember too.
  • Tone and avatar. A tone of up to 500 characters is added to the Agent's system prompt, and an emoji avatar is shown in the sidebar, the chat header and on its replies.
  • Knows what it can do. Ask an Agent what it can do, or for something it lacks. It calls fate_capabilities, which lists what is on right now (projects, files, shell, web, browser, Gmail and Calendar, memory, MCP servers, PDFs, images, schedules) with the exact setup steps for the rest, and walks you through them instead of saying it cannot.
  • One permission setting. The permission menu in an Agent's chat and the one on its card are the same setting. Picking a level in the chat saves it to the Agent and restarts the idle chat at that level.

Web, PDFs and file search for every session

Root sessions, Agent chats and Agent runs get these tools at every permission level:

  • web_search asks Parallel's free Search MCP and returns up to 10 results with title, address and excerpt. Settings → Agent → Web search turns it off.
  • web_fetch reads one public page. It refuses private, loopback and cloud metadata addresses, also after DNS resolution and redirects, and limits redirects, size and time.
  • pdf_read returns the page count, metadata, form fields and page text. With Edit files or Full access, pdf_fill fills a form into a new copy and pdf_create renders Markdown to a PDF; each write gets a ledger row in Activity.
  • grep, find and ls now work at Read only and Edit files too, confined to the project like read. An Agent run at Edit files could not list a folder before.

One orchestration engine

GoalMax, Agent Teams, Automations and Memory Learning used to run four separate kinds of background work. They now share one path.

  • Agent Teams is the only executor for child sessions. The old subagent engine is removed; its history still restores and renames.
  • Far less disk work. A Team saves its state once per change instead of on every event: updates go out within 50 ms and are saved at most once a second. One busy child with 300 tool calls went from 706 saved snapshots (78.8 MiB) to 5.
  • Idle stays idle. GoalMax skips child bookkeeping while no goal is open, Routines sleep until their next run instead of scanning the disk every 5 seconds, and Memory Learning writes nothing for turns that attach nothing.
  • Team members load hooks, Code Intelligence, usage and the context inspector, like the root agent.

Hooks and Code Intelligence

  • Hooks (Settings → Hooks) run your own shell commands before a tool call, after a tool result, when the agent stops and when a session starts. Exit code 2 blocks the call, adds to the result, or sends the agent back to work, for example to require a passing typecheck before it stops. Hooks apply to the root agent and every Agent Team member. A hook is not a security boundary. See Hooks.
  • Code Intelligence (Settings → Code Intelligence) connects language servers and gives the agent lsp_diagnostics, lsp_definition, lsp_references and lsp_symbols. Every write and edit result also carries the fresh errors and warnings of that file. Defaults cover TypeScript and JavaScript, Python, Rust, Go and C/C++; Fate UI does not install the servers. See Code Intelligence.

Review, Git and cost

  • Checkpoints and Rewind. Every write and edit stores the file's earlier content. Rewind on an Activity ledger row restores every file changed from that row onward and removes files the agent created. A file changed since by a shell command, formatter or editor is skipped and named.
  • Hunk review. In the Review Runway each hunk has Keep and Reject. Reject reverts only that hunk and drafts a feedback message with it for the agent.
  • Branches. A branch chip in the composer switches to or creates a branch while the session is still empty. The agent uses the git_branch tool for the same.
  • Pull requests. Full access sessions get git_push (which refuses main and master), pr_create and pr_status, which reports every check and the failed log of up to three failing runs.
  • Usage and budget. Settings → Usage shows today, a 7 to 365 day window, cost per day and the top models and sessions. Settings → Agent → Daily budget warns after a turn once a project passes it; it is an alarm, not a hard stop.
  • Context inspector. A context widget beside the composer estimates what fills the context window: system prompt, tool schemas, messages and the largest tool results.
  • Tool search keeps rarely used tools out of the prompt until the model looks them up. Settings → Agent → Codemode lets the model run several tools from one script; it is off by default.
  • Reasoning slider. The model popover shows reasoning effort as a slider; the arrow on the Reasoning row switches back to the menu.

Pi SDK 1.3

Fate moves from Pi 1.1.0 to Pi 1.3.0. What that brings into Fate:

  • Resumed sessions keep their tools. A session that loaded a tool keeps it after a restart, so Fate no longer adds every orchestration tool back by hand.
  • Clean model switches. After you switch models, the new model no longer sees the old model's thinking as plain text in earlier replies.
  • OpenRouter lists only the models your key may use, with that key's context size and prices.
  • Kimi Code uses Chat Completions, and tools added during a conversation keep the prompt cache. If you override the kimi-coding base URL in models.json, it must now end in /v1.
  • OpenAI GPT-6 with an API key keeps the prompt cache when you change the thinking level.
  • Fewer failed turns. "The upstream provider returned an error", "Unable to forward upstream stream" and "The service is temporarily unavailable" are retried. When Anthropic rejects the strict tool set, Pi retries once without it. Mistral streams are no longer cut off during long thinking.
  • Provider fixes: tool calls with malformed arguments now fail and show the model what it sent, instead of running with half the fields; Claude on Anthropic and Bedrock no longer fails when an error tool result has images; Gemini 4 Argon works on Vertex; openai-codex/gpt-6.1-sol uses its 500K window; Claude Haiku 5.5 and Claude Opus 5 accept thinking off; auth.json on Windows no longer fails with EPERM while a lock is being removed.

Updates

  • Settings → System → Beta branch. Off, Check for Updates offers stable releases only. On, it also offers pre-releases such as this one.
  • A pre-release now says "You are running a beta version of FateGUI." instead of calling itself a newer or development version.

Upgrading from 2.0.x

  • Agents saved for one project are now available everywhere.
  • Earlier Agent home chats stay as normal sessions in the projects where they were created. Each Agent starts a fresh conversation in its own folder.
  • A Routine from an earlier version takes the prompt of its task template and starts turned off.
  • Old Automations are not run. Copy Automation on an Agent's card turns one into a Routine that starts turned off; the original file stays unchanged.
  • Agents keep their permission. Choose Full access per Agent.

Known limits

Unchanged from 2.0.0-beta. In addition, Routines and Watches run only while Fate UI is open, and missed runs are skipped, not replayed. Watches read the page itself, so pages that build their text with JavaScript cannot be watched. Google shows an unverified-app warning at sign-in, because the OAuth client is your own. The Node companion is still not among the release files; build it from this tag with the package guide.

Installation

Platform Architecture Formats
Windows x64 EXE
macOS Apple Silicon and Intel DMG, PKG
Linux x64 AppImage, DEB

This build passed the package, install and smoke matrix on all four runners, and the exact seven-installer checksum set was verified before publishing. Installers remain unsigned, and macOS builds are not notarized. Verify your download with SHA256SUMS; a checksum does not replace code signing.

Agents guide · Setup guide · Security and limits · Troubleshooting · Report an issue

Fate UI is an independent community project and is not an official Pi distribution.