Skip to content

fix(ui): read exec security from tools config#79207

Merged
steipete merged 1 commit into
mainfrom
fix/ui-quick-settings-exec-security
May 8, 2026
Merged

fix(ui): read exec security from tools config#79207
steipete merged 1 commit into
mainfrom
fix/ui-quick-settings-exec-security

Conversation

@steipete

@steipete steipete commented May 8, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Problem: Quick Settings read exec security from stale agents.defaults.exec.security.
  • Why it matters: the UI could show the wrong exec policy when the active config lives under tools.exec.security.
  • What changed: Quick Settings now reads config.tools.exec.security.
  • What did NOT change: gateway auth extraction and Quick Settings rendering stay unchanged.

Verification

  • git diff --check origin/main..HEAD
  • pnpm test ui/src/ui/app-render.assistant-avatar.test.ts — 4 passed
  • node -e 'console.log(process.platform, process.version)'darwin v25.9.0

Real behavior proof

  • Behavior or issue addressed: Control UI Quick Settings reflects active tools.exec.security instead of stale agent-default exec security.
  • Real environment tested: local macOS checkout running Control UI render behavior against the real repository code.
  • Exact steps or command run after this patch: pnpm test ui/src/ui/app-render.assistant-avatar.test.ts
  • Evidence after fix: terminal output: Test Files 1 passed (1); Tests 4 passed (4)
  • Observed result after fix: render regression passes tools.exec.security: "full" with stale agent default deny and Quick Settings receives full.
  • What was not tested: manual browser screenshot of the Control UI.

Security Impact

  • New permissions/capabilities? No
  • Secrets/tokens handling changed? No
  • New/changed network calls? No
  • Command/tool execution surface changed? No
  • Data access scope changed? No

Risks and Mitigations

  • Risk: older configs that only carried the legacy agent-default exec policy display the default allowlist value.
    • Mitigation: current config source of truth is tools.exec.security; the test locks that path.

Linked Issue

Closes #79247

@openclaw-barnacle openclaw-barnacle Bot added app: web-ui App: web-ui size: XS maintainer Maintainer-authored PR labels May 8, 2026
@clawsweeper

clawsweeper Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

Codex review: needs real behavior proof before merge.

Summary
The PR updates Control UI Quick Settings to read the exec security badge from config.tools.exec.security, adds a regression test, and records the user-facing fix in CHANGELOG.md.

Reproducibility: yes. by source inspection: current main reads agents.defaults.exec.security while the config type, runtime resolver, and docs use tools.exec.security as the active policy source. I did not run the UI because this review must keep the checkout read-only.

Real behavior proof
Needs real behavior proof before merge: The PR proof is limited to a regression test and an unrelated local runtime command, not observed after-fix Control UI behavior. After adding proof, update the PR body; ClawSweeper should re-review automatically. If it does not, ask a maintainer to comment @clawsweeper re-review.

Next step before merge
The PR has a protected maintainer label and needs contributor-provided real Control UI behavior proof before merge; there is no narrow repair branch for ClawSweeper to create.

Security
Cleared: The diff only changes UI config extraction, a colocated test, and changelog text; it does not add dependencies, network calls, secrets handling, CI changes, or execution permissions.

Review details

Best possible solution:

Land the narrow extraction change after maintainer review once the PR body includes real Control UI proof showing Quick Settings displays the active tools.exec.security value.

Do we have a high-confidence way to reproduce the issue?

Yes, by source inspection: current main reads agents.defaults.exec.security while the config type, runtime resolver, and docs use tools.exec.security as the active policy source. I did not run the UI because this review must keep the checkout read-only.

Is this the best way to solve the issue?

Yes for the code direction: reading cfg.tools.exec.security is the narrowest maintainable fix for the stale Quick Settings badge, and the added regression covers the reported mismatch. Merge should wait for real UI/runtime proof and maintainer-label handling.

What I checked:

Likely related people:

  • BunsDev: Recent current-main history for ui/src/ui/app-render.ts shows multiple Control UI and Quick Settings changes by this maintainer, including responsive render work and Quick Settings/avatar work. (role: recent maintainer; confidence: high; commits: 5ae385b2f0f1, 60171e863882, c65aa1d2a6e5; files: ui/src/ui/app-render.ts, ui/src/ui/views/config-quick.ts, ui/src/ui/app-render.assistant-avatar.test.ts)
  • steipete: Current-main history includes a recent ui/src/ui/app-render.ts refactor by this maintainer, and this focused PR is also authored by them. (role: adjacent maintainer; confidence: medium; commits: 330ba1fa3194, ec4b6ab26241; files: ui/src/ui/app-render.ts, CHANGELOG.md)

Remaining risk / open question:

  • The PR body does not include after-fix Control UI runtime proof; the current proof is limited to a regression test plus an unrelated platform command.

Codex review notes: model gpt-5.5, reasoning high; reviewed against df069f7b0222.

@steipete
steipete force-pushed the fix/ui-quick-settings-exec-security branch 3 times, most recently from 3040d5c to d5924aa Compare May 8, 2026 05:10

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d5924aac97

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CHANGELOG.md Outdated
@@ -181,6 +181,7 @@ Docs: https://docs.openclaw.ai
- Gateway/macOS: `openclaw gateway stop --disable` now persists the LaunchAgent disable bit even after a previous bootout left the service not loaded, keeping the explicit stay-down path reliable. (#78412) Thanks @wdeveloper16.
- Control UI/chat: hide retired and non-public Google Gemini model IDs from chat model catalogs and route the bare `gemini-3-pro` alias to Gemini 3.1 Pro Preview instead of the shut-down Gemini 3 Pro Preview. Thanks @BunsDev.
- CLI/install: refuse state-mutating OpenClaw CLI runs as root by default, keep an explicit `OPENCLAW_ALLOW_ROOT=1` escape hatch for intentional root/container use, and update DigitalOcean setup guidance to run OpenClaw as a non-root user. Fixes #67478. Thanks @Jerry-Xin and @natechicago.
- Control UI/settings: show the active `tools.exec.security` policy in Quick Settings instead of stale agent-default exec security.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add required contributor attribution to changelog entry

The new changelog bullet is missing a Thanks @author attribution, which violates the repo rule in AGENTS.md (Docs / Changelog: “contributor-facing added entries should include at least one Thanks @author attribution”). This makes the entry non-compliant with the documented changelog contract and should be fixed in the same commit.

Useful? React with 👍 / 👎.

@steipete
steipete force-pushed the fix/ui-quick-settings-exec-security branch from d5924aa to 27e75bb Compare May 8, 2026 05:15

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 27e75bb460

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread CHANGELOG.md Outdated
@@ -181,6 +181,7 @@ Docs: https://docs.openclaw.ai
- Gateway/macOS: `openclaw gateway stop --disable` now persists the LaunchAgent disable bit even after a previous bootout left the service not loaded, keeping the explicit stay-down path reliable. (#78412) Thanks @wdeveloper16.
- Control UI/chat: hide retired and non-public Google Gemini model IDs from chat model catalogs and route the bare `gemini-3-pro` alias to Gemini 3.1 Pro Preview instead of the shut-down Gemini 3 Pro Preview. Thanks @BunsDev.
- CLI/install: refuse state-mutating OpenClaw CLI runs as root by default, keep an explicit `OPENCLAW_ALLOW_ROOT=1` escape hatch for intentional root/container use, and update DigitalOcean setup guidance to run OpenClaw as a non-root user. Fixes #67478. Thanks @Jerry-Xin and @natechicago.
- Control UI/settings: show the active `tools.exec.security` policy in Quick Settings instead of stale agent-default exec security.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Add missing contributor attribution to changelog entry

This new contributor-facing changelog bullet is missing a Thanks @author attribution, which violates the documented changelog contract in AGENTS.md (Docs / Changelog section). Leaving it un-attributed makes the entry non-compliant with repo release-note requirements and should be fixed in this commit.

Useful? React with 👍 / 👎.

@steipete
steipete force-pushed the fix/ui-quick-settings-exec-security branch 2 times, most recently from 7253ffe to bb5ca5e Compare May 8, 2026 05:30
@steipete
steipete force-pushed the fix/ui-quick-settings-exec-security branch from bb5ca5e to 53df44b Compare May 8, 2026 05:35
@steipete
steipete merged commit fd08fd0 into main May 8, 2026
85 checks passed
@steipete
steipete deleted the fix/ui-quick-settings-exec-security branch May 8, 2026 05:41
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 9, 2026
rogerdigital pushed a commit to rogerdigital/openclaw that referenced this pull request May 9, 2026
lykeion-dev pushed a commit to lykeion-dev/openclaw--rev that referenced this pull request May 14, 2026
github-actions Bot pushed a commit to Desicool/openclaw that referenced this pull request May 24, 2026
jameslcowan pushed a commit to jameslcowan/openclaw that referenced this pull request Jun 2, 2026
sablehead pushed a commit to sablehead/openclaw that referenced this pull request Jun 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: web-ui App: web-ui maintainer Maintainer-authored PR size: XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Quick Settings reads stale exec security config

1 participant