Skip to content

Foreman v1.4.5

Choose a tag to compare

@R3tter R3tter released this 22 Aug 16:13
62fd66a

Spend figures that are actually your spend

Analytics has been overstating cost, and by a lot. Claude's CLI reports a session's running total on every turn, and Foreman added that figure each time — so a turn's spend was counted again on every turn that followed it, and a session that ran twenty turns reported roughly ten times what it cost. On one real month the page read $12,570 against $1,608 for the same work. Each turn's own increment is now what gets recorded, so the totals, the per-model split, the calendar, the per-turn line in the transcript and the header badge all mean what they say.

The old numbers, gone rather than quietly wrong

Because the inflated figures were only ever stored as sums, there is nothing to recompute them from — and the amount of the overcount depends on how many turns each session ran, so no single correction recovers them. The history recorded before this release is therefore dropped once, on first launch, rather than left standing as numbers we know to be false. There's also a "Clear usage history" at the foot of the Analytics page for whenever you want to start the count over yourself; it clears this device's figures everywhere they're kept — the day totals, the per-session costs on the cards, and the copy your account holds for the cross-device view — so a cleared history stays cleared instead of returning on the next sync.

What the turns actually moved

Cost was the only thing the page counted, which left the biggest lever on it invisible. Tokens now sit beside the money — fresh input, what was served from the cache, what was written to it, and output — along with the share of everything read that came from the cache, which on a warm session is most of it and is the difference between a plausible bill and a shocking one. The counts come from each turn first-hand rather than being inferred from the dollar figure, so a Codex session on a subscription — which is never priced, because it isn't billed per token — finally contributes to this page instead of reading as free.

Background work you can look inside

A session that dispatched background agents told you only how many were running and which tool one of them last used, while they spent real time and real money out of sight. The count is now a list: what each task was asked to do, whether it's an agent or a shell command, the tool it's on, what it has spent, and a clock that ticks rather than jumping between heartbeats. Tasks stay listed for a moment after they finish, with the summary of what they actually did — that used to vanish the instant the task closed — and the list no longer waits for your own turn to end before showing anything, which is when most dispatches are made. A session you stop also stops advertising work that died with it.

Schedules that can reach past one repo

Every scheduled run was pinned to a fresh isolated worktree, which is the right default — it keeps an unattended, auto-approved run away from your working tree and leaves a branch you review and merge — but it also walled off any job that genuinely spans more than one repo. A schedule can now be pointed at the project directory itself instead. That choice is also its permission posture: isolated runs stay sandboxed, while a run in the project directory has the same reach as a session you start by hand and allow everything, and the dialog says so plainly before you pick it. Both modes are badged on the schedule card, so the riskier answer is never the one that shows nothing. Existing schedules are unchanged and stay isolated.

Transcripts that stop thinking

Reopening a session you'd worked in for a while showed "thinking…" under every reply except the last one — turns finished days ago, still animating as though they were live. Replayed history now settles all the way through.


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.