Skip to content

Commit 0556ac0

Browse files
committed
fix(update): repair plugins for legacy updater doctors
1 parent eb814b0 commit 0556ac0

3 files changed

Lines changed: 13 additions & 18 deletions

File tree

src/commands/doctor/shared/release-configured-plugin-installs.test.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -428,11 +428,9 @@ describe("configured plugin install release step", () => {
428428
});
429429
});
430430

431-
it("defers package-manager plugins for writable legacy parents without explicit deferral", async () => {
431+
it("repairs package-manager plugins for writable legacy parents without explicit deferral", async () => {
432432
mocks.repairMissingPluginInstallsForIds.mockResolvedValue({
433-
changes: [
434-
'Skipped package-manager repair for configured plugin "discord" during package update; rerun "openclaw doctor --fix" after the update completes.',
435-
],
433+
changes: ['Installed missing configured plugin "discord".'],
436434
warnings: [],
437435
});
438436

@@ -459,12 +457,10 @@ describe("configured plugin install release step", () => {
459457
OPENCLAW_UPDATE_PARENT_SUPPORTS_DOCTOR_CONFIG_WRITE: "1",
460458
});
461459
expect(result).toEqual({
462-
changes: [
463-
'Skipped package-manager repair for configured plugin "discord" during package update; rerun "openclaw doctor --fix" after the update completes.',
464-
],
460+
changes: ['Installed missing configured plugin "discord".'],
465461
warnings: [],
466-
completed: false,
467-
touchedConfig: false,
462+
completed: true,
463+
touchedConfig: true,
468464
});
469465
});
470466

src/commands/doctor/shared/update-phase.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ describe("update-phase env helpers", () => {
3636
expect(isPostCoreConvergencePass(env)).toBe(true);
3737
});
3838

39-
it("defers configured plugin repair for explicit or writable-parent update handoffs", () => {
39+
it("defers configured plugin repair only for explicit update handoffs", () => {
4040
expect(
4141
shouldDeferConfiguredPluginInstallRepair({
4242
[UPDATE_IN_PROGRESS_ENV]: "1",
@@ -53,7 +53,7 @@ describe("update-phase env helpers", () => {
5353
[UPDATE_IN_PROGRESS_ENV]: "1",
5454
[UPDATE_PARENT_SUPPORTS_DOCTOR_CONFIG_WRITE_ENV]: "1",
5555
}),
56-
).toBe(true);
56+
).toBe(false);
5757
expect(
5858
shouldDeferConfiguredPluginInstallRepair({
5959
[UPDATE_IN_PROGRESS_ENV]: "1",
@@ -80,7 +80,7 @@ describe("update-phase env helpers", () => {
8080
[UPDATE_IN_PROGRESS_ENV]: "1",
8181
[UPDATE_PARENT_SUPPORTS_DOCTOR_CONFIG_WRITE_ENV]: "1",
8282
}),
83-
).toBe(false);
83+
).toBe(true);
8484
expect(
8585
isLegacyPackageUpdateDoctorPass({
8686
[UPDATE_IN_PROGRESS_ENV]: "1",

src/commands/doctor/shared/update-phase.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,15 @@ export function isUpdatePackageSwapInProgress(env: NodeJS.ProcessEnv): boolean {
3939

4040
/**
4141
* True iff configured plugin install repair should be deferred because the
42-
* updater guarantees a later post-core convergence pass. Shipped writable
43-
* parents predate the explicit defer marker but still resume after the
44-
* candidate doctor exits, so the candidate pass must not install payloads
45-
* that the parent will immediately repair again from stale in-memory records.
42+
* updater guarantees a later post-core convergence pass. Older shipped
43+
* parents may set only the writable-config marker; they still resume after
44+
* the candidate doctor exits, so the candidate must repair payloads before
45+
* control returns to that stale process.
4646
*/
4747
export function shouldDeferConfiguredPluginInstallRepair(env: NodeJS.ProcessEnv): boolean {
4848
return (
4949
isUpdatePackageSwapInProgress(env) &&
50-
(isTruthyEnvValue(env[UPDATE_DEFER_CONFIGURED_PLUGIN_INSTALL_REPAIR_ENV]) ||
51-
isTruthyEnvValue(env[UPDATE_PARENT_SUPPORTS_DOCTOR_CONFIG_WRITE_ENV]))
50+
isTruthyEnvValue(env[UPDATE_DEFER_CONFIGURED_PLUGIN_INSTALL_REPAIR_ENV])
5251
);
5352
}
5453

0 commit comments

Comments
 (0)