openclaw/docs/tools
Yuval Dinodia 1bac1022e6
fix(exec): auto-approve recognized read-only boolean flags on default safe bins (#88953)
* fix(exec): auto-approve recognized read-only boolean flags on default safe bins

Default safe bins (cut, head, tail, tr, uniq, wc) auto-approve stdin-only
text-filter invocations, but the short-option validator only had an accept
path for value-consuming flags: a cluster of pure boolean short flags fell
through to a terminal reject, so common read-only forms like 'wc -l',
'tr -d', 'uniq -c' and 'sort -n' were force-routed to manual approval even
though the bins are stdin-only and the dangerous flags are already denied.

Add an allowedBooleanFlags allowlist to the safe-bin profile model and
populate it for the default bins with their read-only boolean flags. The
short-cluster validator now accepts recognized boolean flags and the long
validator reuses its existing boolean-flag accept branch (previously
unreachable). Unrecognized short flags (e.g. 'tr -S') stay fail-closed, and
denied flags are still rejected first.

* fix(exec): keep safe-bin allowedBooleanFlags off the config-facing fixture type

The boolean-flag allowlist for default safe bins leaked onto SafeBinProfileFixture, the type used for tools.exec.safeBinProfiles, while the strict zod schema and the config normalizer never accepted or preserved the key. Move allowedBooleanFlags to an internal BuiltinSafeBinProfileFixture used only for the curated built-in profiles; custom config profiles keep the allowedValueFlags/deniedFlags model.

Adds tests proving built-in profiles still honor the boolean allowlist and that a custom profile cannot widen it.

* fix(exec): keep tail follow approval-gated

* test(exec): stabilize safe-bin trust fixtures

* test(exec): isolate safe-bin argv fixtures

---------

Co-authored-by: Peter Steinberger <steipete@gmail.com>
2026-07-10 10:53:56 +01:00
..
acp-agents-setup.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
acp-agents.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
agent-send.md fix(agent): preserve explicit recipient sessions (#101507) 2026-07-07 10:07:13 +01:00
apply-patch.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
brave-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
browser-control.md fix(browser): keep upload errors specific (#101465) 2026-07-07 12:35:27 +01:00
browser-linux-troubleshooting.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
browser-login.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
browser-wsl2-windows-remote-cdp-troubleshooting.md fix(browser): diagnose empty WSL2 Chrome replies (#100590) 2026-07-06 07:42:02 +01:00
browser.md fix(browser): stale Chrome MCP handles survive reconnect (#103576) 2026-07-10 10:10:20 +01:00
btw.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
capability-cookbook.md
chrome-extension.md feat(browser): pair the Chrome extension directly to a remote gateway (#101127) 2026-07-07 04:31:52 +01:00
clawhub.md
code-execution.md fix(xai): require consent for cross-provider billed tools (#97629) 2026-07-10 05:30:23 +01:00
creating-skills.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
diffs.md feat(diffs): changed-files summary nav for multi-file patch diffs (#100753) 2026-07-06 16:55:56 +01:00
duckduckgo-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
elevated.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
exa-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
exec-approvals-advanced.md fix(exec): auto-approve recognized read-only boolean flags on default safe bins (#88953) 2026-07-10 10:53:56 +01:00
exec-approvals.md fix(codex): require human approval for app-server commands (#103457) 2026-07-10 08:07:18 +01:00
exec.md fix(codex): require human approval for app-server commands (#103457) 2026-07-10 08:07:18 +01:00
firecrawl.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
gemini-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
goal.md feat(ui): redesign session goal into interactive composer pill with elapsed time and /goal edit (#100736) 2026-07-06 09:42:49 +01:00
grok-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
image-generation.md fix(xai): align image and video capability contracts (#103384) 2026-07-10 06:06:50 +01:00
index.md feat: render inline web chat widgets via capability-gated show_widget tool (#101840) 2026-07-09 12:29:50 +01:00
kimi-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
llm-task.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
lobster.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
loop-detection.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
media-overview.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
minimax-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
multi-agent-sandbox-tools.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
music-generation.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
ollama-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
parallel-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
pdf.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
permission-modes.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
perplexity-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
plugin.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
reactions.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
searxng-search.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
show-widget.md feat: carry gateway client capabilities through the CLI loopback backend (#102835) 2026-07-09 15:09:09 +01:00
skill-workshop.md feat(skills): add lifecycle curator for workshop-created skills (#101214) 2026-07-07 03:25:44 +01:00
skills-config.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
skills.md fix(skills): preserve compact prompt descriptions (#88426) 2026-07-09 20:23:05 +01:00
slash-commands.md fix(mcp): keep server config private in groups (#103502) 2026-07-10 08:09:48 +01:00
steer.md
subagents.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
tavily.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
thinking.md fix(ui): apply selected reasoning and speed before sending (#103253) 2026-07-10 03:14:23 +01:00
tokenjuice.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
tool-search.md fix(computer): prevent stale, replayed, and post-cancel desktop actions (#103422) 2026-07-10 06:47:56 +01:00
trajectory.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
tts.md fix(xai): discover TTS voices dynamically (#103446) 2026-07-10 07:05:45 +01:00
video-generation.md fix(xai): align image and video capability contracts (#103384) 2026-07-10 06:06:50 +01:00
web-fetch.md docs: rewrite published docs grounded in current source (#100142) 2026-07-05 00:32:47 -04:00
web.md fix(xai): validate x_search handle filters (#103393) 2026-07-10 08:02:18 +01:00