Skip to content

Commit a8aee1b

Browse files
Treat soft plugin repair warnings as nonfatal
1 parent 92b9cd2 commit a8aee1b

2 files changed

Lines changed: 25 additions & 2 deletions

File tree

src/cli/update-cli/post-core-plugin-convergence.test.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,12 +275,35 @@ describe("runPostCorePluginConvergence", () => {
275275
expect(result.installRecords).toEqual({ brave: baseline.brave });
276276
});
277277

278-
it("flags errored=true and surfaces actionable guidance when repair warns", async () => {
278+
it("surfaces non-fatal repair warnings without marking convergence errored", async () => {
279+
mocks.repairMissingConfiguredPluginInstalls.mockResolvedValue({
280+
changes: [],
281+
warnings: ["ClawHub beta lookup failed; continuing with npm fallback."],
282+
records: {},
283+
});
284+
const result = await runPostCorePluginConvergence({
285+
cfg: {
286+
plugins: { entries: { discord: { enabled: true } } },
287+
} as unknown as OpenClawConfig,
288+
env: {},
289+
});
290+
expect(result.errored).toBe(false);
291+
expect(result.warnings).toStrictEqual([
292+
{
293+
reason: "ClawHub beta lookup failed; continuing with npm fallback.",
294+
message: "ClawHub beta lookup failed; continuing with npm fallback.",
295+
guidance: ["Run `openclaw doctor --fix` to retry plugin repair."],
296+
},
297+
]);
298+
});
299+
300+
it("marks convergence errored when repair reports failed plugin ids", async () => {
279301
mocks.repairMissingConfiguredPluginInstalls.mockResolvedValue({
280302
changes: [],
281303
warnings: [
282304
'Failed to install missing configured plugin "discord" from @openclaw/discord: ENETUNREACH.',
283305
],
306+
failedPluginIds: ["discord"],
284307
records: {},
285308
});
286309
const result = await runPostCorePluginConvergence({

src/cli/update-cli/post-core-plugin-convergence.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ export async function runPostCorePluginConvergence(params: {
155155
...peerLinkRepair.changes,
156156
],
157157
warnings,
158-
errored: warnings.length > 0,
158+
errored: (repair.failedPluginIds?.length ?? 0) > 0 || smoke.failures.length > 0,
159159
smokeFailures: smoke.failures,
160160
installRecords: records,
161161
};

0 commit comments

Comments
 (0)