fix(tools): allow no-tool llm-task runs#76686
Conversation
|
Codex review: passed. Summary Reproducibility: yes. The linked report gives concrete config and invocation steps, and source inspection on current main shows Next step before merge Security Review detailsBest possible solution: Land this narrower guard-source distinction once exact-head CI and mergeability are green, then close the older alternative #74139 as superseded if it remains open. Do we have a high-confidence way to reproduce the issue? Yes. The linked report gives concrete config and invocation steps, and source inspection on current main shows Is this the best way to solve the issue? Yes. Filtering disabled-tool guard inputs to explicitly enforced runtime sources is narrower than skipping the guard entirely and preserves the existing caller-supplied What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 0459bff55635. |
|
/clawsweeper automerge |
|
🦞🦞
Draft PRs stay fix-only until GitHub marks them ready for review. Pause with Automerge progress:
|
|
/clawsweeper stop |
|
🦞🦞 I added |
Summary: - The branch marks runtime `toolsAllow` sources as enforceable during disabled-tool runs, filters inherited allowlist sources in the guard, adds focused guard coverage, and updates the changelog. - Reproducibility: yes. The linked report gives concrete config and invocation steps, and source inspection on ... sables tools while the guard still treats inherited allowlist sources plus zero callable tools as an error. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 9c3e5f7. - Required merge gates passed before the squash merge. Prepared head SHA: 9c3e5f7 Review: openclaw#76686 (comment) Co-authored-by: Alex Knight <[email protected]>
Summary: - The branch marks runtime `toolsAllow` sources as enforceable during disabled-tool runs, filters inherited allowlist sources in the guard, adds focused guard coverage, and updates the changelog. - Reproducibility: yes. The linked report gives concrete config and invocation steps, and source inspection on ... sables tools while the guard still treats inherited allowlist sources plus zero callable tools as an error. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 9c3e5f7. - Required merge gates passed before the squash merge. Prepared head SHA: 9c3e5f7 Review: openclaw#76686 (comment) Co-authored-by: Alex Knight <[email protected]>
Summary: - The branch marks runtime `toolsAllow` sources as enforceable during disabled-tool runs, filters inherited allowlist sources in the guard, adds focused guard coverage, and updates the changelog. - Reproducibility: yes. The linked report gives concrete config and invocation steps, and source inspection on ... sables tools while the guard still treats inherited allowlist sources plus zero callable tools as an error. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 9c3e5f773e66b71eb163b47558f6624a6701c1e3. - Required merge gates passed before the squash merge. Prepared head SHA: 9c3e5f773e66b71eb163b47558f6624a6701c1e3 Review: openclaw/openclaw#76686 (comment) Co-authored-by: Alex Knight <[email protected]>
Summary: - The branch marks runtime `toolsAllow` sources as enforceable during disabled-tool runs, filters inherited allowlist sources in the guard, adds focused guard coverage, and updates the changelog. - Reproducibility: yes. The linked report gives concrete config and invocation steps, and source inspection on ... sables tools while the guard still treats inherited allowlist sources plus zero callable tools as an error. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 9c3e5f773e66b71eb163b47558f6624a6701c1e3. - Required merge gates passed before the squash merge. Prepared head SHA: 9c3e5f773e66b71eb163b47558f6624a6701c1e3 Review: openclaw/openclaw#76686 (comment) Co-authored-by: Alex Knight <[email protected]>
Summary: - The branch marks runtime `toolsAllow` sources as enforceable during disabled-tool runs, filters inherited allowlist sources in the guard, adds focused guard coverage, and updates the changelog. - Reproducibility: yes. The linked report gives concrete config and invocation steps, and source inspection on ... sables tools while the guard still treats inherited allowlist sources plus zero callable tools as an error. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 9c3e5f773e66b71eb163b47558f6624a6701c1e3. - Required merge gates passed before the squash merge. Prepared head SHA: 9c3e5f773e66b71eb163b47558f6624a6701c1e3 Review: openclaw/openclaw#76686 (comment) Co-authored-by: Alex Knight <[email protected]>
Summary: - The branch marks runtime `toolsAllow` sources as enforceable during disabled-tool runs, filters inherited allowlist sources in the guard, adds focused guard coverage, and updates the changelog. - Reproducibility: yes. The linked report gives concrete config and invocation steps, and source inspection on ... sables tools while the guard still treats inherited allowlist sources plus zero callable tools as an error. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 9c3e5f7. - Required merge gates passed before the squash merge. Prepared head SHA: 9c3e5f7 Review: openclaw#76686 (comment) Co-authored-by: Alex Knight <[email protected]>
Summary: - The branch marks runtime `toolsAllow` sources as enforceable during disabled-tool runs, filters inherited allowlist sources in the guard, adds focused guard coverage, and updates the changelog. - Reproducibility: yes. The linked report gives concrete config and invocation steps, and source inspection on ... sables tools while the guard still treats inherited allowlist sources plus zero callable tools as an error. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 9c3e5f7. - Required merge gates passed before the squash merge. Prepared head SHA: 9c3e5f7 Review: openclaw#76686 (comment) Co-authored-by: Alex Knight <[email protected]>
Summary: - The branch marks runtime `toolsAllow` sources as enforceable during disabled-tool runs, filters inherited allowlist sources in the guard, adds focused guard coverage, and updates the changelog. - Reproducibility: yes. The linked report gives concrete config and invocation steps, and source inspection on ... sables tools while the guard still treats inherited allowlist sources plus zero callable tools as an error. Automerge notes: - No ClawSweeper repair was needed after automerge opt-in. Validation: - ClawSweeper review passed for head 9c3e5f7. - Required merge gates passed before the squash merge. Prepared head SHA: 9c3e5f7 Review: openclaw#76686 (comment) Co-authored-by: Alex Knight <[email protected]>
Summary
toolsAllowfail-closed when tools are disabled.llm-taskpath from [Bug]: Lobster workflow calling llm-task fails with “No callable tools remain” when tools.alsoAllow includes lobster/llm-task #74019 and update the changelog.Root cause
llm-taskruns its JSON-only embedded model call with tools disabled. The empty explicit allowlist guard still saw inherited config allowlist sources liketools.allow/tools.alsoAllowand treated the intentionally empty callable tool set as a configuration failure.Validation
pnpm test src/agents/tool-allowlist-guard.test.ts src/agents/pi-embedded-runner/run/attempt.test.tspnpm exec oxfmt --check --threads=1 src/agents/tool-allowlist-guard.ts src/agents/tool-allowlist-guard.test.ts src/agents/pi-embedded-runner/run/attempt.tsgit diff --checkpnpm changed:lanes --jsonTestbox
pnpm check:changedwas not run becauseblacksmithis not installed and no Testbox org environment is configured in this workspace.Fixes #74019