@@ -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 ( {
0 commit comments