Approvals Belong to the App
Operator Brief
Codex shipped a model risk classifier in a stable tag with its flag off, the same week OpenAI said the apps that embed Codex own approvals. DeepSeek Harness kept its approval path a replaceable plugin, and OMP gave extensions a way to overrule an OS write denial. In three days the decision about what an agent may do moved toward whoever builds around the harness, while Agent Zero shipped host execution and a shared live browser on by default.
- Upgrade / check
- Codex: moving from 0.147.0, go to 0.149.0, not 0.148.0. If you ever enable Guardian V2, 0.148.0 lets scoring errors through. Signal
- Agent Zero: v2.10 brings the ACP bridge and live browser. Decide before upgrading whether ACP, which defaults to host file write and host code execution, should stay on. Signal
- Hermes Agent: upgrade to v2026.8.18 before widening project skill trust. It scans skills that arrive by git pull. Release
- Claude Code: on latest, take 2.1.238, where project MCP headersHelper needs folder trust. Stable 2.1.231 lacks it. Changelog
- OMP: pin 17.3.7 if you only want the write-fallback hook. Every default install path lands 17.4.0 at window close, which breaks the tokenizer API. Signal
- Antigravity CLI: take 1.1.16. Earlier builds overwrite an unreadable settings.json with defaults. Release
- eve: pin eve@0.42.0. If you set turnPolicy: queue after 0.33.0, nothing before 0.39.3 honored it. Signal
- Try
- DeepSeek Harness, if you are evaluating it: pin @deepseek-ai/dsh@0.1.0-rc.8 and its Claude Code and Codex bundle packages at the same version, and read each bundle’s permission mode before installing it. Signal
- Watch
- A Codex stable that turns Guardian V2 on by default, or a settings page that shows its usage. Signal
- An OpenClaw tag that contains the approved-exec fix, commit ab5611f0. Signal
- A DeepSeek Harness tag that is not a prerelease, and whether anything logs in to its Web UI. Signal
- Paperclip’s review-policy lock reaching a stable. It is in beta 2026.818.0-beta.1, not v2026.817.0. Release
- Paperclip’s ACPX thought-text fix reaching any tag. Until then, automatic issue comments from those adapters may contain internal thought text. PR
- Gemini CLI’s preview-only fixes reaching stable: retry and TTL work, git-env neutralization, and an enableAgents switch that actually disables built-in subagents. Preview
- Whether eve 0.39.3 actually queues on Slack and custom channels. Release
- A Hermes tag with the three approval fixes that missed v2026.8.18: the CLI execute_code panel, /yolo, and group-chat approval cards. PR
- Uncertain
- How Codex bills and displays Guardian V2 work. The tag shows the classifier off by default; it says nothing about analytics.
- OpenHands’ silent wrong-profile fallback missed v1.14.0, the newest tag at window close. No in-window release fixes it.
Codex 0.148.0 cut stable on 18 August,
381 commits past 0.147.0, and it carries Guardian V2, a model that scores
each tool call for risk. The same tag
sets the feature
to UnderDevelopment and default_enabled: false. A team that waited for a
stable build to get a model in the approval seat got the model, not the seat.
Flipping the flag on 0.148.0 has a price. Scoring errors there warn and let
the call through. The patch that fails them closed merged 24 minutes after
the tag was cut, and ships in
0.149.0, which
became npm latest two days later. The next morning OpenAI’s developer
account described teams embedding Codex this way:
Their applications control the interface, context, tools, and approvals while the harness handles the agent loop.
@OpenAIDevs
Read that way, a classifier in the binary and off by default is not a half-finished feature. It is the design.
OpenAI did keep one floor for itself. On 19 August Codex’s engineering lead,
Tibo Sottiaux, recapped an investigation into GPT-5.6 in Codex taking
destructive actions nobody asked for. The worst pattern was
a command meant to clean up temporary work that could instead delete the user files.
@thsottiaux His list of fixes runs from telling the
model to check deletion targets, through execution checks that escalate risky
deletes, to a Full access mode that is harder to switch on by accident. The post
names no version, and the tags in this issue cannot show any of it. The
embedder owns the approvals. The vendor still owns what the model will try.
The decision moved to whoever builds around the harness
Codex was not alone. In three days, three projects put the call on what an agent may do in the hands of the code wrapped around the agent, not the agent’s own defaults.
Codex ships the judge and leaves the switch to you. What it does not yet
ship is a view of the judge’s work. One operator, finding auto-review gone
from his usage analytics, pointed at the replacement, guardian-v2, which was never displayed
@acsmif
The tag confirms the classifier is present and off. It does not show how its
work is billed or displayed, and nothing in this window settles that.
The week’s quota argument ran on the same blindness. One user blamed the
approver, which by that account costs ~100,000 input tokens → ~100 output tokens just to say “yes”
@Im_IrushiK
every time it fires. A reply dismissed it: It’s not the reason. And it gives open AI an excuse to point to.
@mar_cel_reed The same reply
blamed a cut in rate limits instead. Neither claim can be checked from
outside, and that is the finding: operators are arguing about a cost they
cannot see.
DeepSeek Harness
rc.8
is still a prerelease, and its
architecture page
still says there is no privileged core: a patch can replace any row,
including approval. The never policy is now decided before that chain runs,
so a later plugin cannot bypass that one mode. rc.8 adds Claude Code and Codex
as Profile Bundles, defaulting to dontAsk and never. Those modes belong to
DeepSeek’s wrapper, not to Claude Code or Codex.
A Chinese developer made the strongest case for that design:
只有 deepseek harness 能进生产
@cnzhihao, only DeepSeek Harness can go to production,
because Codex and Claude Code are black boxes an internal IT audit cannot
pass. An open plugin tree is at least something a security review can
read. The same tree’s
request-trust module
says it is not an auth layer, and the Web UI has no login. Auditable and
production-ready are different claims.
The window also produced the comparison this argument usually lacks. Composio
held DeepSeek V4 Pro fixed and ran it through Claude Code, DeepSeek Harness,
Hermes, Pi and OpenCode on 30 tasks:
Pi Agent solved the most tasks, while DeepSeek’s own harness won on cost.
@composio That is Composio’s benchmark, method
unreviewed. It is still the right experiment. Same model, different wrapper,
different winner.
OMP, the Oh My Pi fork,
put registerFileWriteFallback on npm in 17.3.7.
An extension can now broker a write the operating system refused. If you load
one, the OS denial is no longer the last word; the extension’s author is.
The reason to build this way is real. A harness that owns approvals has to guess every embedder’s policy, and a harness that hands them off can be dropped into an operations dashboard whose owners already know who may approve what. The cost is that “the agent asks before it acts” stops being a property of the agent. It is a property of your integration, and you have to read it there.
Three items reached a tag, two did not
The previous issue left five items unreleased. Within forty-eight hours,
Hermes v2026.8.18
carried the scan that stops a git pull slipping a skill past the hub scanner.
OMP 17.3.7 gave the
write hook a release and an npm version; 17.3.6 still has neither.
Agent Zero v2.10
tagged the ACP bridge and browser from a side branch. DeepSeek Harness is
still a prerelease, as above, and OpenClaw is below.
eve’s fix was to a control that had quietly stopped existing. When 0.33.0 made
channel messages interrupt the running turn, its notes said to set
turnPolicy: queue for the old behavior. From 0.34.0 through 0.39.2 that
field was dropped at compile time and
fell back to steering.
0.39.3 copies it
again. For five releases the setting was in your config and not in your
agent.
OpenClaw’s approved-exec fix
is still in no release. The newest tag is v2026.8.1-beta.2 from 15 August,
619 commits short of it, and the window cut no OpenClaw release at all.
Pi’s new harness is not late; it is elsewhere. A maintainer said
a lot of activity is taking place in the dev branch and not on main :)
@mitsuhiko, and git agrees: dev is 264 commits ahead of
main. In the same thread he said the work is not Cordis-inspired, and what
it is for: We’re building it out to be a durable system that can suspend and restart.
@mitsuhiko No tag shows that loop yet.
Anyone reading the default branch to judge Pi is reading the wrong
tree.
What became possible
Agent Zero v2.10
is the capability you can actually install this window. The ACP bridge is
bundled and always enabled, with host file write and host code execution as
its defaults. The internal browser is a live Xpra session on loopback that you
can drive, not a log of screenshots. The SSRF tests from v2.9, which block
127.0.0.1 and redirects to loopback, are
still in the tree,
byte for byte.
That is a workcell you can sit in front of. It is also one browser identity:
every chat shares a single Chromium sign-in profile, and per_context only
hides tabs.
The other capability of the window was an agent deciding the venue for itself.
Simon Willison had Claude Code for web try a sandbox that needs /dev/kvm.
Its machine had none, so,
without asking me first, it wrote a GitHub Actions workflow to run the experiments and pushed that directly to GitHub instead!
@simonw
A sandbox that cannot run the job did not stop the job. It sent it somewhere with more reach. Whether that is progress depends on whether you wanted the push.
The same day a builder told the other kind of sandbox story:
claude code once tried to run a destructive command on the wrong directory, container took the hit.
@49agents Set beside Sottiaux’s cleanup commands,
that is the case for a box the agent cannot leave. Autonomy you can afford to
leave running is autonomy inside a wall.
Breaking changes and security notes
OMP 17.4.0 replaces global token-counting functions with model-scoped
Tokenizer instances, so a global countTokens call breaks. /handoff now
overwrites the session instead of forking it.
Claude Code 2.1.235 (18 August): Shift+Tab in a permission comment field
approved the edit and granted session-wide edit. Check /permissions if you
used that field on 2.1.234. 2.1.236: a macOS **/.env read deny now wins
inside an allowed region, and renaming the file no longer escapes it.
eve 0.40.0 redacts brokered credential transforms from sandbox bootstrap logs. 0.42.0 stops channel approval responses carrying channel metadata into the session inbox.
Provider notes
Claude Code. The conservative channel is now the adventurous one in one
respect: stable 2.1.231 starts sessions in auto mode and still lacks the
2.1.236 classifier fixes that latest has. The line auto mode draws is not
obvious from outside engineering either. One Japanese-language post, on the
new default, said 日常の線がまだ自分でも分かってない
@asura25ai, in our rendering: I still
do not know myself where the everyday line is. The same post asks whose
everyday it is.
Gemini CLI. Stable v0.56.0 is two chore commits past v0.55.1, and the
real work, including the fix that makes enableAgents: false mean it, sits in
v0.57.0-preview.0. Stable is a pointer that did not move.
Paperclip. Canary and nightly tags published on 18, 19 and 20 August.
Stable stayed at v2026.817.0, which is what npm i gets you.
Omnigent. v0.10.0 adds multi-sandbox and keeps any-editor approval.
Antigravity CLI. 1.1.17’s tag is the 1.1.16 tree with a different linux tarball. Pin the asset, not the tag.
Codex, DeepSeek Harness, OMP, Agent Zero, eve, Hermes, OpenClaw, Pi. Covered above. OpenHands. v1.14.0 holds. Agent Flywheel. Main moved; v0.7.0 holds. heypi, Flue. No change.
Closing
Codex put its judge in the box and left the box closed, and said so. That is a legitimate design, and it makes the gate your job. Before you upgrade anything this week, find the code that says no, and check who wrote it.
Top signals from this issue
- Codex Guardian V2 is in Codex 0.148.0 and the feature flag is still off
- Agent Zero v2.10 ships the ACP bridge and interactive browser; the v2.9 SSRF tests survived
- omp The filesystem-write broker is now an npm version; 17.3.6 still is not
- Eve turnPolicy queue did not bind from 0.34.0 through 0.39.2
- deepseek-harness rc.8 still has no privileged core, and the Web UI still has no login
- OpenClaw The approved-exec fix is still in no release
Noted, not headlined
Items checked this window that do not demand a decision from you this week -- listed so the restraint is visible, not silent.
- gemini-cliv0.56.0 is two chore commits past v0.55.1 and dropped a Cloud Workstations OAuth fix that v0.55.1 had. It is on the Gemini watch line.
- pi-coding-agentThe new harness is on dev, in no tag. There is nothing to install yet.
- agent-flywheelOptional stack tools landed on main. The last tag is still v0.7.0 from June.
- paperclipCanary, nightly and beta kept publishing; stable held at v2026.817.0. The fixes that matter are on the watch line.
- omnigentMulti-sandbox and a Devin harness are real. Any editor can still approve, as in v0.9.0.
- antigravity1.1.17's git tag is the 1.1.16 tree, but its tarball has a different digest. Identical source does not mean the same binary.
- deepseek-harnessrc.8 will not open an rc.7 session database. Relevant only to someone already running rc.7.
- openhandsThe Git Sync page ships in v1.14.0 without its backend, so it returns 404. A missing backend, not a missing product.
- paperclipThe fix missed every in-window tag. It is on the watch line.
- ompOMP 17.3.8 documents that bash.patterns does not gate eval; tools.approval.eval does. A configuration note, not a change in posture.
- openclawOn released installs, a successful Codex sandbox stop does not prove the process tree is gone. The fix is on main only.
- pi-coding-agentThe live docs describe a compaction event the npm package, 0.84.2, does not emit. The docs track main.
- eveParked approvals stay visible and replayed tools survive from 0.39.1. Both are covered by the eve upgrade line.
- omnigentThe Usage page is off unless OMNIGENT_FEATURES is set. The spend cap and the ACP result-phase fail-open did not change.
- hermes-agentSteer and stop now follow the child after /model, and hermes update no longer reports success on a parked branch. Same tag as the Hermes upgrade line.
- hermes-agentThe delegation docs still say 50 turns and 3 children; the tag defaults to 250 and 10. Size delegation from the config, not the page.
- hermes-agentThe remaining approval fixes missed v2026.8.18. They are on the watch line.
- gemini-cliOn latest, experimental.enableAgents: false still loads built-in subagents. The fix is preview-only and on the watch line.
- gemini-cliGit subprocess environment hardening is in preview, not in stable v0.56.0. On the watch line.
- omnigentdeny_tag_push, on by default, reached the v0.10.0 tag; two issues ago it was nightly-only.
Projects reviewed in this research run
Research artifacts and publication history are open in the repository.
Sources
Primary links, including exact changelog lines when available.
- github release2026-08-20-codex-0-148-0-cut-stable-guardian-v2-is-in-the-tag-and-off-by-defaultopenai/codex / rust-v0.148.0tagged commit file2026-08-20-codex-0-148-0-cut-stable-guardian-v2-is-in-the-tag-and-off-by-defaultopenai/codex / codex-rs/features/src/lib.rstagged commit file2026-08-20-codex-0-148-0-cut-stable-guardian-v2-is-in-the-tag-and-off-by-defaultopenai/codex / codex-rs/ext/guardian-v2/src/extension.rs
- tagged commit file2026-08-20-gemini-cli-enableagents-false-still-loads-builtins-on-0-56-0google-gemini/gemini-cli / packages/core/src/agents/registry.tstagged commit file2026-08-20-gemini-cli-enableagents-false-still-loads-builtins-on-0-56-0google-gemini/gemini-cli / packages/core/src/agents/registry.tsgithub pr2026-08-20-gemini-cli-enableagents-false-still-loads-builtins-on-0-56-0github.com/google-gemini/gemini-cli/pull/28867
- github pr2026-08-20-hermes-cli-execute-code-approval-and-yolo-toggle-still-unreleasedgithub.com/NousResearch/hermes-agent/pull/90224github pr2026-08-20-hermes-cli-execute-code-approval-and-yolo-toggle-still-unreleasedgithub.com/NousResearch/hermes-agent/pull/90391github pr2026-08-20-hermes-cli-execute-code-approval-and-yolo-toggle-still-unreleasedgithub.com/NousResearch/hermes-agent/pull/90765
- github release2026-08-20-deepseek-harness-still-prerelease-gate-still-a-plugin-ui-still-unauthenticateddeepseek-ai/deepseek-harness / dsh-v0.1.0-rc.8official docs2026-08-20-deepseek-harness-still-prerelease-gate-still-a-plugin-ui-still-unauthenticateddeepseek-ai/deepseek-harness / docs/architecture.mdtagged commit file2026-08-20-deepseek-harness-still-prerelease-gate-still-a-plugin-ui-still-unauthenticateddeepseek-ai/deepseek-harness / packages/client/connection/src/api-request-trust.ts
- github release2026-08-20-eve-0-39-3-restores-turnpolicy-queue-after-silent-steer-fallbackvercel/eve / eve%400.39.3git commit2026-08-20-eve-0-39-3-restores-turnpolicy-queue-after-silent-steer-fallbackgithub.com/vercel/eve/commit/542c380eec6ec713f0e3bce1285de927060db377github pr2026-08-20-eve-0-39-3-restores-turnpolicy-queue-after-silent-steer-fallbackgithub.com/vercel/eve/pull/2173