Foreman v1.2.1
See what every turn actually changed
Reading a transcript told you what the agent said it did, not what it did — to find out you left for the diff panel, which only ever showed the state of the whole workspace right now. Each assistant turn now carries its own summary of the files it touched, with the counts on the header and the real diff a click away. It's built on the per-turn checkpoints Foreman already takes, so it works on sessions you ran weeks ago, not just new ones, and it captures everything that landed on disk in that turn's window — including files the agent created outside a tool call. Appearance settings let you keep the block collapsed, expand every level by default, or turn it off entirely if you'd rather the transcript stayed lean.
An API key per agent, and Codex can finally use one
An API key was a property of the machine — one Anthropic key per laptop — which left Codex with no way to run on a key at all, and no way to bill Claude and Codex differently on the same machine. Keys are now per agent, set from that agent's own row alongside its sign-in badge, so a machine's auth reads as one block per agent instead of a single field pretending to cover both. Codex works too, despite ignoring the usual environment variable: an API-key Codex run gets a private home carrying just that credential, with your config, MCP servers, skills and session history linked through from the real one, so resume and fork keep working and your own codex login is never touched. The "Run on" choice between your subscription and a billed key is likewise per agent now, and only appears when that agent genuinely has both.
Cost analytics that count your other machines
Only the daily totals on the analytics page added up across your devices. The most expensive sessions, the per-model breakdown and the session count were quietly this machine's alone, so the more machines you worked on, the more the page under-reported. Turn on "Share session detail across devices" in Account settings and those breakdowns cover every machine you've enabled it on. It's off by default and deliberately narrow about what it sends: each session's cost, turn count and model, plus the last two segments of its directory — never a full path. The page now says which it's showing you, so a number is never ambiguous about whose sessions it counted.
Typing after Stop no longer goes nowhere
Stopping a session killed the process it was talking to, and the composer went quietly inert — you could type a message, send it, and watch nothing happen, with no hint that the session needed reconnecting first. Sending on a stopped session now queues the message, reattaches, and delivers it as soon as the session is listening again. Hitting the send shortcut with nothing typed still does what it always did: just reconnect.
macOS, Apple Silicon. Signed with a Developer ID certificate and notarized by Apple — opens normally with no Gatekeeper warning, and in-app silent auto-update is enabled.