From 3fe61030be2c3d6a750067d2d3a834d5064608ca Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 11 Jul 2026 18:00:42 -0700 Subject: [PATCH] fix: rebuild mac app for generated protocol changes (#104839) --- .../openclaw-live-updater/scripts/update-main.mjs | 8 +++++++- test/scripts/openclaw-live-updater.test.ts | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/.agents/skills/openclaw-live-updater/scripts/update-main.mjs b/.agents/skills/openclaw-live-updater/scripts/update-main.mjs index 9e0f415cdb34..7b1f9fc56088 100644 --- a/.agents/skills/openclaw-live-updater/scripts/update-main.mjs +++ b/.agents/skills/openclaw-live-updater/scripts/update-main.mjs @@ -118,7 +118,13 @@ export function classifyActions( changedPaths, { buildProvenanceKnown, buildRequired, nodeModulesPresent }, ) { - const runMacos = changedPaths.length > 0 && detectChangedScope(changedPaths).runMacos; + // CI skips generated protocol-only macOS jobs, but the live app embeds these Swift sources. + const generatedMacProtocolChanged = changedPaths.some((changedPath) => + /^apps\/shared\/OpenClawKit\/Sources\/OpenClawProtocol\//u.test(changedPath), + ); + const runMacos = + changedPaths.length > 0 && + (detectChangedScope(changedPaths).runMacos || generatedMacProtocolChanged); const macUiVerification = runMacos && changedPaths.some((changedPath) => diff --git a/test/scripts/openclaw-live-updater.test.ts b/test/scripts/openclaw-live-updater.test.ts index dddf92fe517f..c09c33f6c8ed 100644 --- a/test/scripts/openclaw-live-updater.test.ts +++ b/test/scripts/openclaw-live-updater.test.ts @@ -337,6 +337,21 @@ describe("openclaw live updater", () => { macAppRebuild: true, macUiVerification: true, }); + expect( + classifyActions(["apps/shared/OpenClawKit/Sources/OpenClawProtocol/GatewayModels.swift"], { + buildProvenanceKnown: true, + buildRequired: true, + nodeModulesPresent: true, + }), + ).toEqual({ + dependencyInstall: false, + gatewayBuild: true, + gatewayProbe: true, + gatewayRestart: true, + gatewaySelfHeal: false, + macAppRebuild: true, + macUiVerification: true, + }); }); test("accepts only the delayed exact target bundle process", () => {