fix(update): repair configured plugins during legacy upgrades#82859
Conversation
|
Codex review: needs maintainer review before merge. Summary Reproducibility: yes. for the source path: current main still defers configured plugin repair when a legacy updater supplies only Real behavior proof Next step before merge Security Review detailsBest possible solution: Land the explicit defer-marker split after maintainer review and checks, preserving post-core convergence for current updaters while letting legacy update handoffs repair configured externalized plugins before restart. Do we have a high-confidence way to reproduce the issue? Yes for the source path: current main still defers configured plugin repair when a legacy updater supplies only Is this the best way to solve the issue? Yes: the explicit defer marker is a narrow maintainable split between current update flows that have post-core convergence and legacy update handoffs that must repair immediately; the npm preference is scoped to legacy handoffs with an npm spec. Acceptance criteria:
What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against 39a9a3478f11. |
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
…aw#82859) * fix(update): repair configured plugins during legacy upgrades * docs(changelog): note legacy plugin upgrade repair * test(update): use valid whatsapp upgrade fixture
Summary
Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
Real behavior proof (required for external PRs)
Behavior addressed: configured Discord/Telegram/WhatsApp channel plugin installs survive a 2026.4.27 -> current package upgrade without requiring manual
openclaw plugins install discord.Real environment tested: AWS Crabbox direct-provider Linux host, provider
aws, leasecbx_df0f5805c899, Docker published-upgrade-survivor lane.Exact steps or command run after this patch:
Evidence after fix: Crabbox run
run_40c5ff416aa2, provideraws, leasecbx_df0f5805c899, printedUpgrade survivor Docker E2E passed [email protected] scenario=base candidate=2026.5.17.Observed result after fix: baseline
[email protected]upgraded to the patched current tarball, doctor and post-upgrade survival assertions passed, gateway started, and health/status probes passed.What was not tested: live Discord API traffic was not exercised; channel runtime startup used the upgrade-survivor lane's channel-skipping setup to focus on install/upgrade survival.
Before evidence (optional but encouraged): pre-fix AWS repro showed
openclaw updatepost-update plugin sync made no changes and standalone doctor later reported missing configured plugin installs, including Discord.Root Cause (if applicable)
OPENCLAW_UPDATE_IN_PROGRESS, but legacy 2026.4.x updaters set only that env while running newer doctor code and do not have the newer post-core convergence phase.Regression Test Plan (if applicable)
src/commands/doctor/shared/missing-configured-plugin-install.test.ts,src/commands/doctor/shared/update-phase.test.ts,src/commands/doctor/shared/release-configured-plugin-installs.test.ts,src/infra/update-runner.test.ts,src/cli/update-cli.test.ts.User-visible / Behavior Changes
Users upgrading from older 2026.4.x installs should keep configured externalized channel plugins installed automatically instead of needing manual plugin installation after update.
Diagram (if applicable)
Security Impact (required)
Yes, explain risk + mitigation: N/ARepro + Verification
Environment
channels.discord,channels.telegram, andchannels.whatsappSteps
[email protected]in the upgrade-survivor container.Expected
Actual
run_40c5ff416aa2passed the full published upgrade-survivor lane.Evidence
Human Verification (required)
What you personally verified (not just CI), and how:
Review Conversations
Compatibility / Migration
Risks and Mitigations