fix(cli): sync official plugins during update --all#94084
Conversation
863219a to
2b80a40
Compare
|
Codex review: needs maintainer review before merge. Reviewed June 25, 2026, 12:29 PM ET / 16:29 UTC. Summary PR surface: Source +9, Tests +68, Docs +11. Total +88 across 6 files. Reproducibility: yes. Current main and v2026.6.10 route standalone Review metrics: 1 noteworthy metric.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land the narrow trusted-official bulk-sync behavior after maintainer acceptance, keep targeted exact/tagged updates pinned, and leave broader plugin drift policy to the linked issues. Do we have a high-confidence way to reproduce the issue? Yes. Current main and v2026.6.10 route standalone Is this the best way to solve the issue? Yes, if maintainers accept the compatibility boundary. Reusing the existing official-sync updater contract only for bulk AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 19707cce1d73. Label changesLabel justifications:
Evidence reviewedPR surface: Source +9, Tests +68, Docs +11. Total +88 across 6 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
2b80a40 to
4154129
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
I think the fix would involve adjusting ui. Would that work for your use case? |
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. |
|
Closing this as superseded by the clean maintainer landing copy in #96831. Why: this PR was the canonical implementation for #94083, but the branch fell behind Attribution is preserved: #96831's commit author is @ooiuuii using the GitHub noreply address from this PR, and the PR body links back here as the original canonical contributor work. Thank you, @ooiuuii — the fix and proof from this PR are what #96831 is landing. |
Closes #94083
Related: #95541
What Problem This Solves
Fixes an issue where operators using
openclaw plugins update --allfor post-upgrade maintenance could leave trusted official OpenClaw plugins pinned to stale exact beta install records after the core moved to a stable release. The gateway/doctor drift checks could still report official plugin version drift, so the bulk maintenance command did not reliably converge the official plugin set.A live Windows upgrade from
2026.6.10-beta.2to2026.6.10reproduced the operational shape: core upgraded cleanly,doctor --repairreported active official plugin drift forbrave,discord,qqbot, andwhatsapp, and targetedplugins update <id>preserved the beta pins. Currentupstream/mainalready has the narrower per-plugin exact-spec repair hint from #95541; this PR keeps the separate bulkupdate --allconvergence behavior scoped to trusted official plugin records.Why This Change Was Made
plugins update --allnow opts into the existing official catalog sync path, matching the post-core update recovery behavior users expect from a bulk maintenance command. The implementation passes the configured update channel through a new official-only channel parameter, so beta-channel context is available when a trusted official catalog override is selected without rewriting ordinary third-party tracked npm or ClawHub specs.Targeted
openclaw plugins update <id>remains unchanged: recorded exact versions and explicit tags stay pinned unless the operator passes a new package spec. The docs now call out this bulk-vs-targeted boundary, and the tests cover both the official sync routing and the third-party non-regression.User Impact
Operators can use
openclaw plugins update --allafter core upgrades to reconcile trusted official OpenClaw plugins with the current official catalog target. Users who intentionally pin a specific plugin through targeted updates keep that behavior, and third-party plugins are not silently moved to beta-channel selectors just becauseupdate.channelisbeta.Evidence
Live upgrade evidence from the Windows OpenClaw install:
PR-head CLI proof from isolated Windows state, using this branch's built source launcher (
node openclaw.mjs --version->OpenClaw 2026.6.10 (c620265)):Focused and regression checks on this PR branch:
Results: focused tests passed,
src/plugins/update.test.tspassed (98 passed),src/cli/plugins-cli.update.test.tspassed (28 passed), oxlint passed,git diff --checkpassed, and autoreview reportedautoreview clean: no accepted/actionable findings reported.What was not tested: the production gateway was not modified with a packaged PR tarball; the after-fix proof above ran the changed PR-head CLI path in isolated Windows state so the live service was not touched.