From 27486f4032542b2e17bf01615cbb9f89fa0bd0c5 Mon Sep 17 00:00:00 2001 From: Aras <72440556+itsmeares@users.noreply.github.com> Date: Fri, 21 Aug 2026 18:11:35 +0100 Subject: [PATCH] fix(desktop): restore missing Start Menu shortcut --- apps/desktop/resources/installer.nsh | 10 ++++++++++ scripts/build-desktop-artifact.test.ts | 5 ++++- scripts/build-desktop-artifact.ts | 5 ++++- 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 apps/desktop/resources/installer.nsh diff --git a/apps/desktop/resources/installer.nsh b/apps/desktop/resources/installer.nsh new file mode 100644 index 000000000000..092f641c3359 --- /dev/null +++ b/apps/desktop/resources/installer.nsh @@ -0,0 +1,10 @@ +!macro customInstall + !ifndef DO_NOT_CREATE_START_MENU_SHORTCUT + ${IfNot} ${FileExists} "$newStartMenuLink" + !insertmacro createMenuDirectory + CreateShortCut "$newStartMenuLink" "$appExe" "" "$appExe" 0 "" "" "${APP_DESCRIPTION}" + ClearErrors + WinShell::SetLnkAUMI "$newStartMenuLink" "${APP_ID}" + ${EndIf} + !endif +!macroend diff --git a/scripts/build-desktop-artifact.test.ts b/scripts/build-desktop-artifact.test.ts index b7383de236aa..4351d4b7d8a6 100644 --- a/scripts/build-desktop-artifact.test.ts +++ b/scripts/build-desktop-artifact.test.ts @@ -451,7 +451,10 @@ it.layer(NodeServices.layer)("build-desktop-artifact", (it) => { }, ...WINDOWS_SERVER_EXTRA_RESOURCES, ]); - assert.deepStrictEqual(win.nsis, { differentialPackage: true }); + assert.deepStrictEqual(win.nsis, { + differentialPackage: true, + include: "apps/desktop/resources/installer.nsh", + }); // Native binaries and helper executables cannot load from inside an // asar; everything else stays packed. The Claude SDK platform packages // and .bin shims never ship. diff --git a/scripts/build-desktop-artifact.ts b/scripts/build-desktop-artifact.ts index bf36029bc75b..85039aad2888 100644 --- a/scripts/build-desktop-artifact.ts +++ b/scripts/build-desktop-artifact.ts @@ -2135,7 +2135,10 @@ export const createBuildConfig = Effect.fn("createBuildConfig")(function* ( // Keep blockmap-based differential downloads enabled while changing the // installed file topology. The optimization is in the payload shape, not // in trading update bandwidth for install speed. - buildConfig.nsis = { differentialPackage: true }; + buildConfig.nsis = { + differentialPackage: true, + include: "apps/desktop/resources/installer.nsh", + }; const winConfig: Record = { target: [target], icon: "icon.ico",