diff --git a/.github/workflows/packaging-lint.yml b/.github/workflows/packaging-lint.yml index f39de00b9..8953710ce 100644 --- a/.github/workflows/packaging-lint.yml +++ b/.github/workflows/packaging-lint.yml @@ -58,6 +58,11 @@ jobs: 'Key="Software\LightCraft" Name="InstallFolder"' 'Value="LaunchLightcraft"'; do grep -qF "$want" packaging/windows/lightcraft.wxs || { echo "::error::lightcraft.wxs lost: $want"; exit 1; } done + # The completion page the Publish events point at must actually exist: a Publish alone + # does not pull the dialog fragment into the MSI, and without the DialogRef the + # installer finishes silently (issues #790, #892). + grep -qF '' packaging/windows/lightcraft.wxs \ + || { echo "::error::ExitDialog is not referenced; installs and removes end without a completion dialog"; exit 1; } desktop-file-validate packaging/linux/ai.storyteller.lightcraft.desktop sed -e 's/@VERSION@/0.0.0/' -e 's/@DATE@/2026-01-01/' packaging/linux/ai.storyteller.lightcraft.metainfo.xml.in >"$RUNNER_TEMP/ai.storyteller.lightcraft.metainfo.xml" appstreamcli validate --no-net --explain "$RUNNER_TEMP/ai.storyteller.lightcraft.metainfo.xml" diff --git a/packaging/windows/lightcraft.wxs b/packaging/windows/lightcraft.wxs index a20254098..38fe8f391 100644 --- a/packaging/windows/lightcraft.wxs +++ b/packaging/windows/lightcraft.wxs @@ -80,7 +80,9 @@ upgrade; Change... browses, and a folder that can't be used (InvalidDirDlg) is refused before anything is installed. Failure and cancellation end on WiX's standard FatalError / UserExit dialogs instead of the completion page. Maintenance (running the MSI again, Repair/Remove from - Apps) uses the standard maintenance dialogs. + Apps) uses the standard maintenance dialogs; every successful run — install, repair or + remove — then ends on the shared completion page, so a successful uninstall is confirmed + with a visible final dialog (issue #892; the page itself is issue #790's fix). This is WixUI_InstallDir without its licence-acceptance page: LightCraft is MIT OR Apache-2.0, which ask nothing of people who just install and run it, so a click-through EULA would only @@ -128,6 +130,11 @@ + +