docs(cli): clarify that exec-policy show and approvals get exclude per-session /exec overrides#94999
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 7, 2026, 12:21 PM ET / 16:21 UTC. Summary PR surface: Source +11, Tests +27, Docs +12. Total +50 across 7 files. Reproducibility: yes. source-level: current main's CLI effective-policy notes omit the per-session Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Next step before merge
Security Review detailsBest possible solution: Merge this as a non-closing diagnostic clarification after ordinary maintainer and exact-head CI review; leave the runtime exec-enforcement bugs on their separate tracks. Do we have a high-confidence way to reproduce the issue? Yes, source-level: current main's CLI effective-policy notes omit the per-session Is this the best way to solve the issue? Yes for the narrow diagnostic clarification: appending the caveat to the existing rendered note fields and matching docs is the smallest maintainable surface. It is not a runtime fix for the related exec-denial reports, which should stay separate. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 453f5968bbca. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +11, Tests +27, Docs +12. Total +50 across 7 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
2af384f to
a410f9a
Compare
|
@hugenshen thanks for the PR. ClawSweeper is still waiting on real behavior proof before this can move forward. Useful proof can be a screenshot, short video, terminal output, copied live output, linked artifact, or redacted logs that show the changed behavior after the fix. Please redact private tokens, phone numbers, private endpoints, customer data, and anything else sensitive. Once proof is added to the PR body or a comment, ClawSweeper or a maintainer can re-check it. |
a410f9a to
9fffef2
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
9fffef2 to
99ca9e2
Compare
|
Maintainer prep is complete at exact head
Ready to land. Thank you, @hugenshen. |
|
Merged via squash.
|
* origin/main: fix(cron): abort superseded reconciliation hooks (#104368) ci(release): expose Telegram runtime preflight stage (#104387) fix(status): avoid false shell-wrapper audit warnings (#81778) fix: retry live Gateway readiness proof (#104374) fix(exec-approval): stop misattributing Allow Always unavailability to policy (#97740) fix: preserve Mac bundle during live builds (#104376) chore(docs): translate with GPT-5.6 xhigh test: wire Control UI suite into CI, fix its broken tests, drop dead harness surface (#104361) fix(ui): hide group submenu separator when New group is the only entry (#104370) fix(discord): reset progress drafts across queued turns (#102341) docs(cli): clarify that exec-policy show and approvals get exclude per-session /exec overrides (#94999) fix(discord): single-source thread-binding default placement and guard artifact parity (#104342) fix(agents): add tool-activity heartbeat to keep subagent alive during tool calls (#95536) fix(maint): reuse recent same-PR hosted gates (#104355)
…r-session /exec overrides (openclaw#94999) * docs(cli): clarify exec-policy show and approvals get exclude per-session /exec overrides * refactor(cli): centralize session exec override note * test(cli): cover node exec override note * test(cli): use complete node policy fixture --------- Co-authored-by: NIO <[email protected]> Co-authored-by: Peter Steinberger <[email protected]>
* origin/main: fix(cron): abort superseded reconciliation hooks (openclaw#104368) ci(release): expose Telegram runtime preflight stage (openclaw#104387) fix(status): avoid false shell-wrapper audit warnings (openclaw#81778) fix: retry live Gateway readiness proof (openclaw#104374) fix(exec-approval): stop misattributing Allow Always unavailability to policy (openclaw#97740) fix: preserve Mac bundle during live builds (openclaw#104376) chore(docs): translate with GPT-5.6 xhigh test: wire Control UI suite into CI, fix its broken tests, drop dead harness surface (openclaw#104361) fix(ui): hide group submenu separator when New group is the only entry (openclaw#104370) fix(discord): reset progress drafts across queued turns (openclaw#102341) docs(cli): clarify that exec-policy show and approvals get exclude per-session /exec overrides (openclaw#94999) fix(discord): single-source thread-binding default placement and guard artifact parity (openclaw#104342) fix(agents): add tool-activity heartbeat to keep subagent alive during tool calls (openclaw#95536) fix(maint): reuse recent same-PR hosted gates (openclaw#104355)
docs(cli): clarify that exec-policy show and approvals get exclude per-session /exec overrides
What Problem This Solves
Running
openclaw exec-policy showoropenclaw approvals getto inspect effective exec policy shows config + host approvals state, but not per-session/execoverrides set in an active chat or cron session. Nothing in the CLI output or docs mentioned this gap. A user who had set/exec security=full ask=offin a session and then ranexec-policy showwould see a different policy than what was actually in use, with no hint about why.Why This Change Was Made
exec-policy showandapprovals getbuild output from the config snapshot and host approvals file only — session state is never loaded in either path.effectivePolicy.notefield is already rendered in both human-readable and--jsonoutput, so appending the caveat there is the minimal correct fix with no new surface.docs/tools/exec-approvals.md,docs/cli/approvals.md, anddocs/tools/permission-modes.mdall describe these commands without mentioning the session override gap; a<Note>block in each keeps the docs aligned with CLI output.Scope note: this PR is a diagnostic clarification only. The underlying runtime issue —
SYSTEM_RUN_DISABLEDdespite effective policy showingsecurity=full— is tracked separately in #79983 and requires a different fix path. Merging this should not close or de-prioritize that issue.User Impact
Users running
openclaw exec-policy showoropenclaw approvals getnow see the following appended to the policy note in both text and--jsonoutput:Docs pages for exec approvals, approvals CLI, and permission modes carry a matching
<Note>block.No config, approval logic, or enforcement behavior is changed. No migration required.
Evidence
node scripts/run-vitest.mjs run src/cli/exec-policy-cli.test.ts src/cli/exec-approvals-cli.test.tsTest Files 2 passed (2)Tests 30 passed (30)Real behavior proof
Behavior addressed:
CLI diagnostics for
exec-policy showandapprovals getnow warn that per-session/execoverrides are excluded, and docs match that caveat.Real environment tested:
Local OpenClaw source checkout on macOS with fresh temporary
OPENCLAW_STATE_DIR, rebased on latestupstream/main.Exact steps or command run after this patch:
Session inspection path reference (no live chat required):
exec-policy show --json/approvals get --jsonnote excerpt:approvals gettext excerpt:Session-status hint contract (Vitest):
Observed result after fix:
Both CLI commands append the session caveat in JSON and text output; docs carry matching
<Note>blocks; focused CLI tests pass.What was not tested:
No live chat
/execcommand in Telegram/Discord; no committed proof scripts.