fix(secrets): register secret targets for installed-origin plugins#104383
fix(secrets): register secret targets for installed-origin plugins#104383zw-xysk wants to merge 2 commits into
Conversation
Fixes openclaw#104320 Include installed/global plugin manifest records in the web-provider and config secret target registry so gateway secrets.resolve accepts Exa SecretRef targets after the web provider split out of bundled origin. Proof: whole-path secrets.resolve handler test with issue params + L3 vitest capture (installed-origin global Exa metadata). Co-authored-by: Cursor <[email protected]>
Capture redacted gateway probe output using the real Exa manifest and the issue's exact secrets.resolve params, including main-vs-fix contrast. Co-authored-by: Cursor <[email protected]>
|
Thanks for the context here. I swept through the related work, and this is now duplicate or superseded. A smaller open PR is now a viable, proof-positive landing path for the same fix. This branch’s unique remainder is a mock-based capture harness that does not preserve distinct production behavior or real integration coverage, so maintaining two candidates would add review and maintenance churn. Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Canonical path: Land #104347 as the focused manifest-scoped fix, retain its real installed-plugin proof, and avoid carrying this branch’s simulated capture harness unless a later narrow test demonstrates a distinct regression boundary. So I’m closing this here and keeping the remaining discussion on #104347. Review detailsBest possible solution: Land #104347 as the focused manifest-scoped fix, retain its real installed-plugin proof, and avoid carrying this branch’s simulated capture harness unless a later narrow test demonstrates a distinct regression boundary. Do we have a high-confidence way to reproduce the issue? Yes. Current main’s bundled-origin filter excludes the installed Exa target, and the canonical report plus the replacement PR’s real installed-package proof establish the failure path with high confidence. Is this the best way to solve the issue? No for this branch as the landing candidate. The same production repair is available in a smaller open PR with stronger real behavior proof, while this branch’s unique test is simulated and redundant. Security review: Security review cleared: The shared production fix keeps target IDs constrained to each plugin’s manifest-declared config namespace and adds no dependency, permission, or executable supply-chain surface. AGENTS.md: found and applied where relevant. What I checked:
Likely related people:
Codex review notes: model internal, reasoning high; reviewed against cbc84767bd7e. |
Fixes #104320
What Problem This Solves
After Exa moved from bundled origin to an installed plugin package,
plugins.entries.exa.config.webSearch.apiKeydisappeared from the gateway known-target registry.secrets.resolverejects the CLI-discovered target withunknown target id, andinfer web searchfails before provider I/O.Changes
origin === "bundled".Evidence
Head:
5071b3e0global) Exa record registers target idcreateSecretsHandlers+ issuesecrets.resolveparamsresolveSecretsreached, respond okextensions/exa/openclaw.plugin.json+ issue gateway probe params (redacted)L3 — issue probe with real Exa manifest (redacted)
Issue params (from #104320):
{ "commandName": "infer web search", "targetIds": ["plugins.entries.exa.config.webSearch.apiKey"], "allowedPaths": ["plugins.entries.exa.config.webSearch.apiKey"], "forcedActivePaths": ["plugins.entries.exa.config.webSearch.apiKey"], "providerOverrides": {"webSearch": "exa"} }Capture (
pnpm exec vitest run src/gateway/server-methods/secrets.installed-origin.test.ts -t "L3 live capture" --reporter=verbose):Tests
@clawsweeper re-review