![]()
During a turn, the supervisor makes quick calls: which recalled lessons apply, whether a skill or capability should activate, which tool output can leave the compression summary, and whether its own checks hold up. You should be able to configure those decisions together and see what they cost your session.
Octomind 0.58.0 puts every decision-model setting in one top-level [decision] section and shows what supervision costs per session. This post covers 0.57.1, 0.57.2, 0.57.3, and 0.58.0 since our last update. The open-source AI agent CLI update is available today.
Configure quick decisions in one place
Here's the shipped [decision] section with its six keys:
[decision]
model = "cloudflare:typesafe/jev"
recall = false
skills = false
capabilities = false
compression = false
supervisor = falseAll five switches default to off. Enable the decisions you want. A decision reaches this model only when supervision is enabled, decision.model is nonempty, and the corresponding switch is on. A missing or empty model turns routing off.
The small calibrated model, TypeSafe Jev, receives typed questions and returns probabilities rather than prose to parse. Each routed decision gets one attempt, a five-second timeout, and no retries. The Cloudflare model above needs CLOUDFLARE_API_KEY and CLOUDFLARE_ACCOUNT_ID in your environment.
Each switch has a defined job and a defined fallback for when the decision model is unavailable:
recallfilters recalled lessons for relevance. If unavailable, it keeps the candidates.skillschooses an inactive skill when the activation rules don't decide on their own. If unavailable, it activates none.capabilitiesconfirms or replaces the cosine-similarity pick. If unavailable, it keeps the cosine result.compressionmoves unneeded tool output out of the text that gets summarized and into an archive before the context is compressed. If unavailable, the output stays where it was.supervisorroutes the supervisor decisions this model is allowed to make, plus evolution grading. Those decisions fail closed: an unavailable refutation leaves gaps standing, unsupported memory candidates are rejected, and Octomind's built-in guards keep their authority.
The supervisor still writes plans and memory text with its own model. If the authorizer or the plan check can't reach the decision model, that writer still runs; a verification decision the decision model already replaced isn't retried on the chat model. See the supervisor outcomes, memory verification, and capability selection docs for details.
You can also ask this model your own questions with octomind evaluate. It reads the same model setting; -m overrides it for one call. The CLI reference gives the JSON request format.
Upgrade without losing your switches
This is a config change from version 21 to 22. On first run, Octomind automatically migrates [supervisor.evaluate] into [decision], preserving the model and the recall, skills, capabilities, and compression values.
The six old supervisor switches — authorizer, condense, distill, plan, gate, and evolution — become one supervisor switch. If any was on, the new switch is on. That turns on every supervisor decision the model can route, so a config that previously routed only one of them now routes all of them.
If [decision] conflicts with the old section, the upgrade stops before writing. A conflicting recall value names both settings:
decision.recall: conflicts with supervisor.evaluate.recallA conflicting combined switch produces:
decision.supervisor: conflicts with legacy supervisor switchesResolve the named conflict, then run octomind config --validate. Don't change the version stamp by hand. The migration guide covers backups and overrides.
See what supervision costs
Run /info after a turn. Its supervisor table is kept per session and breaks activity down by operation — authorize, gate, condense, and the rest. You can see chat and decision calls, input/output tokens, cost, API time, and wall time. Output totals include reasoning tokens.
Outcomes explain what those calls did: authorization checked or blocked calls, gate passes and failures, condensed results, activated skills, filtered lessons, and decisions that couldn't run. Time spent blocking on supervision and on background work is tracked separately; overlapping checks don't inflate the total blocking time.
Accounting persists with the session and is restored on resume. Background work stays attributed to the session that owns it, even across session switches. Runtime fixes also shut down session listeners before a switch and apply repeated configuration overrides in memory without migrations.
For WebSocket clients, cost frames now carry aux_cost and supervisor_accounting. aux_cost is the provider-reported cost of auxiliary compression and supervisor calls. Use that cost directly rather than pricing those calls at the main model's rate. A final cost frame is sent for every turn outcome, including cancellation, API errors, and session-save failures.
Checks keep their evidence
Veto confirmation now fails closed when the decision model is unavailable: Octomind records decision-model veto verification unavailable as an error instead of treating it as an empty answer. Proposed vetoes and overrides of the built-in guards aren't accepted without confirmation. Those guards remain in force; ordinary calls keep the authorizer's allow-by-default behavior.
The verify gate now keeps command output tied to its source, through the excerpts it retains and reads back. It distinguishes what the agent saw from the limited view of the output the verifier gets. A finding based solely on output left out of that view is advisory; visible contradictions and required actions that never ran still block completion. An excerpt with an unknown origin isn't falsely labelled as something the agent never saw.
Reported gate findings survive session snapshots and merges of the cost accounting, so resuming doesn't lose them.
The fixes since 0.57.0
- 0.57.2 keeps MCP context scoped to the session. Private tool lists are cached per session and cleared when it ends; shared lists remain reusable. Prompt caching uses the session ID, and requests carry the calling session's client metadata.
- 0.57.3 lets ChatGPT sign-ins refresh tokens in sandboxed runs. Linux and macOS permit authentication-state writes and refresh locks in
config_dir/octolib. - 0.57.1 fixes final usage and follow-up checks. One-shot JSONL runs report final verification and exit-processing usage. Token accounting includes cache writes and reasoning across restoration. Saved ChatGPT sessions are validated before reuse, and usage-limit errors stay usage-limit errors. Failed background-job reads preserve the last real snapshot; pending jobs are reconciled repeatedly. Condensation respects paragraph boundaries, solution questions don't authorize edits, verification restrictions keep their scope, historical evidence stays scoped, and tracing output preserves the spinner.
- 0.58.0 ships octolib 0.41.16, which preserves ChatGPT turn state across requests. Response guidance now leads with the answer and preserves technical qualifiers. Pending background jobs are checked immediately after model turns.
Coming soon to Octomind Cloud
Octomind 0.58.0 is coming to Octomind Cloud. Cloud machines pick up the new version the next time they start, with nothing to set up.
Update to Octomind 0.58.0
curl -fsSL https://octomind.run/install.sh | bash -s -- --version 0.58.0
octomind --versionYour config upgrades on first run. See the installation guide for other methods and the full changelog for every change since 0.57.0.
Then open /info after your next turn and see which checks ran, what they decided, and what they cost.



