Repository navigation
V2.2.3
V2.2.3
Hotfix for 2.2.2 "SpaceTime". It fixes the computer use overlay that appeared at startup and could not be brought back, the lock-out where every message failed with STORAGE_UNAVAILABLE, and GoalMax gates that were written as rules but never enforced. It also moves to Pi 1.4.0. Everything from 2.2.2 is included.
Warning
GoalMax in 2.2.2 is broken. A long goal fills the lifecycle index, after which Fate UI refuses every prompt, queue, stop and new session with STORAGE_UNAVAILABLE: Lifecycle checkpoint could not be saved, and the agent ignores the plan, sync and delegation contract because nothing enforced it. Both are fixed here; install this build before starting another goal.
Computer use overlay
- The frame and the Computer use pill no longer appear when Fate UI starts. They appear when the agent performs its first
computeraction and disappear when the turn ends or after 15 seconds without an action. - Stop on the pill, and Alt+Shift+Esc (⌥⇧Esc on macOS), now stop the running session exactly like the Stop button in the composer. Computer use itself stays on, so the agent can use the
computertool again in the next turn. In 2.2.2 the Stop button turned computer use off while the switch still showed it as on, and the agent reported "Computer use is off" until a restart. - The computer use switch in the permission menu and in Settings → Workspace reads the real state of the service, and it is locked while a session is running. Turn it off between turns.
- The Stop label is centred in its button.
Lock-out after STORAGE_UNAVAILABLE
The lifecycle index ~/.pi/fateGUI/lifecycle/v1/status-v1.jsonl was capped at 512 records and 2 MB, and every ordinary run added two. Once full, each write failed, the recovery coordinator marked storage unhealthy, and all new work was refused until the file was edited by hand.
- When the index reaches its limit, Fate UI compacts it: one record per execution identity is kept, and the oldest plain run records are dropped until the index is at half its limit. Team, task, goal, worktree and command records are never dropped. The file is rewritten atomically; prior records are retained if the rewrite fails.
- A copy that is already locked recovers by itself: restart Fate UI, and the first new run compacts the full index. No file needs to be edited.
GoalMax gates are enforced
The gateway contract is checked when a tool is called, not after the turn:
- Plan gate.
write,edit,pdf_fill,pdf_create,computer,bash(other than read-only inspection) and delegation tools are rejected until the task plan is captured withgoalmax_report. - Sync gate. The first workspace change or delegation of a turn is rejected until the turn has called
goalmax_statusorgoalmax_report. - Delegation gate. With the default agent strategy, the root agent plans, delegates, verifies and reports; its own
writeandeditcalls are rejected. Set the goal's agent strategy to off for root-only work.
A rejected call returns the gate and the exact next step to the model. The post-turn check that blocks a goal on a slipped violation is unchanged.
Pi 1.4.0
Pi SDK and Pi Durable move from 1.3.0 to 1.4.0. Fixes that reach Fate UI:
- Compaction and branch summaries use the model's output limit, so they no longer fail with "generation hit the token cap" when reasoning uses most of the old fixed limit.
- A session no longer breaks after recovering from a response cut off at the output limit. Previously every later request was rejected by the provider.
- Automatic retry now covers more gateway upstream failures,
stream disconnected before completionfrom Codex CLI proxies, and transient Google Vertex sign-in refresh errors. Digits inside request ids are no longer mistaken for HTTP status codes. - Whitespace-only tool output, such as a bare line break from
bash, no longer makes OpenAI and Google requests fail with a 400. - GitHub Copilot requests that are too large, for example with many images, are treated as context overflow and compacted instead of failing with HTTP 413.
- The
greptool ignoresRIPGREP_CONFIG_PATH, so a user ripgrep config can no longer turn regex searches into literal ones. - New models:
MiniMax-M3.1-Flash, and thexhighthinking level for Grok 4.3 and 4.5 on xAI.
Note
With native Durable storage on, the first start of this version migrates the storage database to a new schema. Earlier Fate UI versions cannot open it afterwards, so a native-Durable profile cannot go back to 2.2.2 or older. Profiles with the default storage are not affected.
Known limits
- The Node companion is not among these release files. Its builder supports Linux x64 only. Build it from this tag with the package guide. It needs Node 22.19 or later.
- No automated check drives a real mouse, a global hotkey or an elevated relaunch, so computer use is not covered by the test matrix on any platform.
- Computer use on Linux needs X11 or XWayland.
Installation
| Platform | Architecture | Formats |
|---|---|---|
| Windows | x64 | EXE |
| macOS | Apple Silicon and Intel | DMG, PKG |
| Linux | x64 | AppImage, DEB |
Installers remain unsigned, and macOS builds are not notarized. Verify your download with SHA256SUMS; a checksum does not replace code signing.
Setup guide · Security and limits · Troubleshooting · Report an issue