chore: apply event sweep result for openclaw-openclaw#79559

[skip ci]
This commit is contained in:
clawsweeper 2026-05-08 23:37:50 +00:00
parent ed103b856a
commit 36b4c2e482

View File

@ -0,0 +1,272 @@
---
applied_at: 2026-05-08T23:37:48.689Z
review_comment_synced_at: 2026-05-08T23:37:46.880Z
number: 79559
repository: openclaw/openclaw
type: issue
title: "Optional plugin tools missing from agent runtime inventory despite all static checks passing"
url: https://github.com/openclaw/openclaw/issues/79559
state_at_review: open
item_created_at: 2026-05-08T23:26:00Z
item_updated_at: 2026-05-08T23:26:00Z
author: solosage1
author_association: NONE
labels: []
reviewed_at: 2026-05-08T23:37:02.785Z
main_sha: bb6c9d210d19f124a95a1ec7d31c366460adaa1f
pull_head_sha: unknown
latest_release: v2026.5.7
latest_release_sha: eeef4864494f859838fec1586bedbab1f8fa5702
fixed_release: unknown
fixed_sha: unknown
fixed_at: unknown
fixed_pr_url: unknown
fixed_pr_number: unknown
fixed_pr_title: unknown
fixed_pr_merged_at: unknown
fixed_pr_sha: unknown
fixed_pr_confidence: unknown
fixed_pr_source: unknown
review_policy: 421d766edf9f773b
review_model: gpt-5.5
review_reasoning_effort: high
review_sandbox: danger-full-access
review_service_tier: default
review_prompt_chars: 47027
review_static_prompt_chars: 33412
review_context_chars: 12353
review_schema_chars: 14081
review_additional_prompt_chars: 0
review_context_elapsed_ms: 1466
review_codex_elapsed_ms: 469317
review_mode: propose
review_status: complete
local_checkout_access: verified
item_snapshot_hash: 3f308c32662def92f580ce24ddb9aa0836d3cca68bd0322af99122cb8ea65aa2
close_comment_sha256: d70e067badca6702975bc65a4c99de3964f39eb1d033ae14c8382517317586b0
review_comment_sha256: 2e9104c33d1e881d68df4fb47e7299d09c5eeab14972f4657ff4c2c092cb34de
review_comment_id: 4410574075
review_comment_url: https://github.com/openclaw/openclaw/issues/79559#issuecomment-4410574075
decision: close
close_reason: duplicate_or_superseded
confidence: high
action_taken: closed
work_candidate: none
work_confidence: low
work_priority: low
work_status: none
work_reason_sha256: df3fe8f0aa186b6aef024bc5ef653e7b03063afa4d6a1fcf24fb5a60226373a3
work_prompt_sha256: none
work_cluster_refs: []
work_validation: []
work_likely_files: []
item_category: bug
reproduction_status: source_reproducible
reproduction_confidence: medium
requires_new_feature: false
requires_new_config_option: false
requires_product_decision: false
real_behavior_proof_status: not_applicable
real_behavior_proof_evidence_kind: not_applicable
real_behavior_proof_needs_contributor_action: false
---
# [#79559: Optional plugin tools missing from agent runtime inventory despite all static checks passing](https://github.com/openclaw/openclaw/issues/79559)
Type: issue
URL: [https://github.com/openclaw/openclaw/issues/79559](https://github.com/openclaw/openclaw/issues/79559)
Author: solosage1
Author association: NONE
Labels: none
Created at: May 8, 2026, 23:26 UTC
Updated at: May 8, 2026, 23:26 UTC
Reviewed against: [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19f124a95a1ec7d31c366460adaa1f)
Codex review: model gpt-5.5, reasoning high
Latest release at review time: [v2026.5.7](https://github.com/openclaw/openclaw/releases/tag/v2026.5.7) ([eeef4864494f](https://github.com/openclaw/openclaw/commit/eeef4864494f859838fec1586bedbab1f8fa5702))
Fixed in: not determined
## Decision
Close: duplicate or superseded
Confidence: high
Action taken: proposed_close
## Summary
Close as a duplicate of https://github.com/openclaw/openclaw/issues/78907: both reports describe OpenClaw 2026.5.6 embedded direct-lane runs failing to materialize allowlisted plugin tools after plugin registration succeeds, and this issue adds useful Telegram/static-inventory evidence without showing a separate source path.
## What This Changes
Ensure Telegram-routed OpenClaw agent runs with restrictive per-agent `tools.allow` materialize allowed optional plugin tools and `message` consistently with static inventory.
## Best Possible Solution
Keep https://github.com/openclaw/openclaw/issues/78907 as the canonical bug and fold this issue's Telegram, `message`, and static-admin divergence evidence into the same regression fix.
## Reproduction Assessment
No live current-main reproduction was run in this read-only review. The issue gives concrete reproduction steps and the same source path as the canonical open report, while https://github.com/openclaw/openclaw/issues/78907 already contains runtime logs for the shared failure class.
## Solution Assessment
Yes for triage: using the older open bug as canonical is the narrowest maintainable path because the remaining work is one embedded direct-lane plugin-tool materialization fix plus regression coverage, not separate Feishu and Telegram fixes.
## Review Findings
Overall correctness: not a patch
Overall confidence: 0.23
Full review comments:
- none
## Security Review
Status: not_applicable
Summary: This is non-PR issue triage with no proposed patch or security-sensitive report to review.
Concerns:
- none
## Real Behavior Proof
Status: not_applicable
Evidence kind: not_applicable
Needs contributor action: false
Summary: Real behavior proof is not applicable because this is an issue, not an external PR.
## Work Candidate
Candidate: none
Confidence: low
Priority: low
Status: none
Reason: Closed as a duplicate; route implementation through the canonical open issue instead of creating a second repair lane.
## Evidence
- **Canonical open report:** https://github.com/openclaw/openclaw/issues/78907 is open and labeled as a behavior bug for embedded direct-lane runs where an explicitly allowlisted plugin tool is not materialized despite plugin registration completing.
- command: `curl -sL https://api.github.com/repos/openclaw/openclaw/issues/78907`
- **Same central runtime construction path:** The live embedded run computes a tool construction plan, calls `createOpenClawCodingTools`, and then applies the runtime allowlist before prompt/tool submission, matching the path named in both reports.
- file: [src/agents/pi-embedded-runner/run/attempt.ts:833](https://github.com/openclaw/openclaw/blob/bb6c9d210d19f124a95a1ec7d31c366460adaa1f/src/agents/pi-embedded-runner/run/attempt.ts#L833)
- command: `nl -ba src/agents/pi-embedded-runner/run/attempt.ts | sed -n '820,930p'`
- sha: [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19f124a95a1ec7d31c366460adaa1f)
- **Plan can decide plugin/channel tool materialization before final filtering:** The construction-plan helper derives `includePluginTools` and ties `includeChannelTools` to that decision, so the direct-lane allowlist/materialization issue belongs in the same fix area as the canonical report.
- file: [src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.ts:112](https://github.com/openclaw/openclaw/blob/bb6c9d210d19f124a95a1ec7d31c366460adaa1f/src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.ts#L112)
- command: `nl -ba src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.ts | sed -n '1,180p'`
- sha: [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19f124a95a1ec7d31c366460adaa1f)
- **Static inventory can differ from live construction:** `resolveEffectiveToolInventory` calls `createOpenClawCodingTools` without the embedded run construction plan/runtime allowlist branch, which matches this issue's static-admin versus live-run divergence.
- file: [src/agents/tools-effective-inventory.ts:209](https://github.com/openclaw/openclaw/blob/bb6c9d210d19f124a95a1ec7d31c366460adaa1f/src/agents/tools-effective-inventory.ts#L209)
- command: `nl -ba src/agents/tools-effective-inventory.ts | sed -n '180,260p'`
- sha: [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19f124a95a1ec7d31c366460adaa1f)
- **Documented optional-tool contract:** Plugin docs say optional tools are enabled through `tools.allow` and that adding a plugin id to `tools.allow` enables all tools from that plugin, so the canonical report tracks a real documented behavior gap rather than a new feature request.
- file: [docs/plugins/building-plugins.md:275](https://github.com/openclaw/openclaw/blob/bb6c9d210d19f124a95a1ec7d31c366460adaa1f/docs/plugins/building-plugins.md#L275)
- command: `nl -ba docs/plugins/building-plugins.md | sed -n '210,295p'`
- sha: [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19f124a95a1ec7d31c366460adaa1f)
- **Existing regression coverage is adjacent but not the full live case:** Current tests cover plugin-only construction plans and optional plugin tool resolution, but not the mixed Telegram/OpenClaw runtime inventory divergence described here; that gap should be closed on the canonical issue.
- file: [src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.test.ts:115](https://github.com/openclaw/openclaw/blob/bb6c9d210d19f124a95a1ec7d31c366460adaa1f/src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.test.ts#L115)
- command: `nl -ba src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.test.ts | sed -n '1,236p'`
- sha: [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19f124a95a1ec7d31c366460adaa1f)
## Likely Related People
- **@steipete:** introduced/current maintainer of embedded runtime allowlist construction
- reason: GitHub commit history for `src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.ts` points to `fix: honor embedded runtime tool allowlists`, which introduced the current construction-plan helper and touched the central embedded/tool files.
- confidence: high
- commits: 25b30c95200d3af384b32878f5c9ed8cbf72fef8, e5ec14a06a670c9ac276f746be6e794748c2cb22
- files: src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.ts, src/agents/pi-embedded-runner/run/attempt.ts, src/agents/pi-tools.ts
- **@vincentkoc:** recent plugin optional-tool policy maintainer
- reason: Recent commits on `src/plugins/tools.ts` and `src/agents/pi-tools.ts` cover optional tool metadata, plugin denylists, and plugin tool discovery, which are adjacent to the reported missing optional plugin tools.
- confidence: medium
- commits: 09e7eb6687a17d5497df118024892731004795e8, e3cba91ef0597a870ed7e64ec4b90dafbd98cd03, 571d75aab351e8938f6deebbccf94367a44c0e62
- files: src/plugins/tools.ts, src/agents/pi-tools.ts, src/plugins/tools.optional.test.ts
## Risks / Open Questions
- This issue includes Telegram-specific and static-inventory divergence details that should remain linked from the canonical fix discussion so they are not lost.
## Close Comment
Thanks for the context here. I swept through the related work, and this is now duplicate or superseded.
Close as a duplicate of https://github.com/openclaw/openclaw/issues/78907: both reports describe OpenClaw 2026.5.6 embedded direct-lane runs failing to materialize allowlisted plugin tools after plugin registration succeeds, and this issue adds useful Telegram/static-inventory evidence without showing a separate source path.
So Im closing this here and keeping the remaining discussion on the canonical linked item.
<details>
<summary>Review details</summary>
Best possible solution:
Keep https://github.com/openclaw/openclaw/issues/78907 as the canonical bug and fold this issue's Telegram, `message`, and static-admin divergence evidence into the same regression fix.
Do we have a high-confidence way to reproduce the issue?
No live current-main reproduction was run in this read-only review. The issue gives concrete reproduction steps and the same source path as the canonical open report, while https://github.com/openclaw/openclaw/issues/78907 already contains runtime logs for the shared failure class.
Is this the best way to solve the issue?
Yes for triage: using the older open bug as canonical is the narrowest maintainable path because the remaining work is one embedded direct-lane plugin-tool materialization fix plus regression coverage, not separate Feishu and Telegram fixes.
Security review:
Security review: This is non-PR issue triage with no proposed patch or security-sensitive report to review.
What I checked:
- **Canonical open report:** https://github.com/openclaw/openclaw/issues/78907 is open and labeled as a behavior bug for embedded direct-lane runs where an explicitly allowlisted plugin tool is not materialized despite plugin registration completing.
- **Same central runtime construction path:** The live embedded run computes a tool construction plan, calls `createOpenClawCodingTools`, and then applies the runtime allowlist before prompt/tool submission, matching the path named in both reports. ([`src/agents/pi-embedded-runner/run/attempt.ts:833`](https://github.com/openclaw/openclaw/blob/bb6c9d210d19/src/agents/pi-embedded-runner/run/attempt.ts#L833), [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19))
- **Plan can decide plugin/channel tool materialization before final filtering:** The construction-plan helper derives `includePluginTools` and ties `includeChannelTools` to that decision, so the direct-lane allowlist/materialization issue belongs in the same fix area as the canonical report. ([`src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.ts:112`](https://github.com/openclaw/openclaw/blob/bb6c9d210d19/src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.ts#L112), [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19))
- **Static inventory can differ from live construction:** `resolveEffectiveToolInventory` calls `createOpenClawCodingTools` without the embedded run construction plan/runtime allowlist branch, which matches this issue's static-admin versus live-run divergence. ([`src/agents/tools-effective-inventory.ts:209`](https://github.com/openclaw/openclaw/blob/bb6c9d210d19/src/agents/tools-effective-inventory.ts#L209), [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19))
- **Documented optional-tool contract:** Plugin docs say optional tools are enabled through `tools.allow` and that adding a plugin id to `tools.allow` enables all tools from that plugin, so the canonical report tracks a real documented behavior gap rather than a new feature request. Public docs: [`docs/plugins/building-plugins.md`](https://docs.openclaw.ai/plugins/building-plugins). ([`docs/plugins/building-plugins.md:275`](https://docs.openclaw.ai/plugins/building-plugins), [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19))
- **Existing regression coverage is adjacent but not the full live case:** Current tests cover plugin-only construction plans and optional plugin tool resolution, but not the mixed Telegram/OpenClaw runtime inventory divergence described here; that gap should be closed on the canonical issue. ([`src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.test.ts:115`](https://github.com/openclaw/openclaw/blob/bb6c9d210d19/src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.test.ts#L115), [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19))
Likely related people:
- **@steipete:** GitHub commit history for `src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.ts` points to `fix: honor embedded runtime tool allowlists`, which introduced the current construction-plan helper and touched the central embedded/tool files. (role: introduced/current maintainer of embedded runtime allowlist construction; confidence: high; commits: [25b30c95200d](https://github.com/openclaw/openclaw/commit/25b30c95200d3af384b32878f5c9ed8cbf72fef8), [e5ec14a06a67](https://github.com/openclaw/openclaw/commit/e5ec14a06a670c9ac276f746be6e794748c2cb22); files: `src/agents/pi-embedded-runner/run/attempt-tool-construction-plan.ts`, `src/agents/pi-embedded-runner/run/attempt.ts`, `src/agents/pi-tools.ts`)
- **@vincentkoc:** Recent commits on `src/plugins/tools.ts` and `src/agents/pi-tools.ts` cover optional tool metadata, plugin denylists, and plugin tool discovery, which are adjacent to the reported missing optional plugin tools. (role: recent plugin optional-tool policy maintainer; confidence: medium; commits: [09e7eb6687a1](https://github.com/openclaw/openclaw/commit/09e7eb6687a17d5497df118024892731004795e8), [e3cba91ef059](https://github.com/openclaw/openclaw/commit/e3cba91ef0597a870ed7e64ec4b90dafbd98cd03), [571d75aab351](https://github.com/openclaw/openclaw/commit/571d75aab351e8938f6deebbccf94367a44c0e62); files: `src/plugins/tools.ts`, `src/agents/pi-tools.ts`, `src/plugins/tools.optional.test.ts`)
Codex review notes: model gpt-5.5, reasoning high; reviewed against [bb6c9d210d19](https://github.com/openclaw/openclaw/commit/bb6c9d210d19f124a95a1ec7d31c366460adaa1f).
</details>
## GitHub Snapshot
- comments: 0
- timeline events: 0
- related items: 0
- PR files: 0
- PR commits: 0
## Review Telemetry
- prompt chars: 47027
- static prompt chars: 33412
- context chars: 12353
- schema chars: 14081
- additional prompt chars: 0
- context collection ms: 1466
- Codex review ms: 469317