Foreman v1.5.4
The agent browser works on Codex
"Connect to browser" was a Claude-only switch — on a Codex session the control wasn't there at all, because the browser was handed to the agent through a flag only Claude has. Codex takes the same server a different way, so the toggle now means the same thing on either agent, and the browser itself never learns which one is driving it. Approving what the agent does with it works properly too: Codex asks permission for a browser action in a shape nothing was answering, so before this it only ran at all if you had already given the session blanket permission — those prompts now arrive as ordinary approval cards, naming the tool rather than just the server, with "Always allow" offered only where Codex will honour it. Connecting the browser restarts the session, and a Codex session restarted before it had ever taken a turn used to come back unable to run anything; that no longer happens.
Codex transcripts stop hiding MCP tool calls
If you ran a Codex session with any MCP server configured, every call it made to that server was missing from the transcript — no request, no result, no error, just a gap where the agent had done work you couldn't see. Codex reports those calls in a shape of their own that nothing was reading. They now appear like any other tool call, with the arguments the agent sent, whatever the server returned, and failures marked as failures. The agent browser is what made this obvious, but it was true of every MCP server on Codex.
Insights runs on the agent you actually use
The Insights analysis always ran Claude, whichever CLI you had set up — so a Codex user pressed a button that quietly reached for an agent they'd never signed into. It now follows the agent you've chosen as your default. Codex reports what a run spent in tokens rather than dollars, and rather than invent a price for them, the run and the estimate beside the button are shown in tokens too; a run that has never been priced no longer gets quoted a stale dollar figure left over from an earlier Claude run. Those runs also count toward the token totals on the Cost lens now, instead of being spent invisibly.
Insights says what has changed since last time
Running the analysis twice gave you two snapshots and no relationship between them. A second run now shows a line above the findings comparing itself with the previous one — interrupt rate 18% → 12%, and which way that counts — using the numbers each run actually reasoned over rather than recomputing a window that has since moved. It only reports a metric that moved by more than the noise between two overlapping 30-day windows, it stays quiet about readings too thin to mean anything, and if nothing has genuinely moved the line isn't there at all.
Usage analytics is on by default
Product analytics used to be off until you switched it on, and almost nobody did, which meant no way to tell whether people who install Foreman ever get an agent running. It now defaults to on, and the app tells you so once — after your first successful session, not at launch — with a different sentence if you're upgrading, because you were previously told it was off. What can be sent is a fixed list of nine events, enumerated in full under Settings › Privacy, every value a number, a yes/no or one option from a fixed list: there is no free-text field in the format, so your code, paths, prompts and output cannot travel even by accident. One event is new — how far the first-run setup wizard got, so a setup that defeats people can be found rather than guessed at. Turning it off deletes the anonymous install id and discards anything not yet sent. Separately, if you have the cross-device session-detail option on under Account, it now also uploads the daily Insights counters — interrupts, permission answers by tool category, rewinds, fan-out lanes, launch timings, lines changed — which are counts only, with tool names reduced to fixed categories before they are ever written down. That one is still off unless you turn it on.
Smaller fixes
Prompts sent to Claude for a review, an Insights analysis or a fan-out judgement were being flattened to a single line on the way out, so the section breaks and indentation the prompt was built with arrived as ordinary spaces — they now reach the agent intact, which is a quiet improvement to anything those runs produce. The Privacy pane no longer shows the analytics checkbox in the wrong position for a moment while it looks up the real setting, which mattered most to exactly the people who had gone there to check that an opt-out had stuck.
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.