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 @@
+
+