diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4b15170..624506d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -28,6 +28,27 @@ jobs:
with:
dotnet-version: '10.x'
+ # ── Guard: WiX must reference every file in src/CodeShellManager/Assets.
+ # Portable ZIP ships the whole publish output, so this only bites MSI users
+ # (e.g. v0.4.1 silently dropped terminal-init.js → blank terminals).
+ - name: Verify WiX manifest covers all Assets files
+ shell: pwsh
+ run: |
+ $assetFiles = (Get-ChildItem 'src/CodeShellManager/Assets' -File).Name | Sort-Object
+ $wxs = Get-Content 'installer/CodeShellManager.wxs' -Raw
+ $matches = [regex]::Matches($wxs, '\$\(var\.PublishDir\)\\Assets\\([^"]+)')
+ $wxsRefs = ($matches | ForEach-Object { $_.Groups[1].Value } | Sort-Object -Unique)
+ $diff = Compare-Object $assetFiles $wxsRefs
+ if ($diff) {
+ Write-Host "::error::installer/CodeShellManager.wxs is out of sync with src/CodeShellManager/Assets/"
+ $diff | ForEach-Object {
+ $side = if ($_.SideIndicator -eq '<=') { 'missing from WiX' } else { 'not present in Assets/' }
+ Write-Host " $($_.InputObject) — $side"
+ }
+ exit 1
+ }
+ Write-Host "WiX/Assets in sync ($($assetFiles.Count) files)"
+
# ── Build (every push / PR) ──────────────────────────────────────────────
- name: Restore & Build
run: dotnet build src/CodeShellManager/CodeShellManager.csproj -c Release
diff --git a/installer/CodeShellManager.wxs b/installer/CodeShellManager.wxs
index 1089b8b..84d87b0 100644
--- a/installer/CodeShellManager.wxs
+++ b/installer/CodeShellManager.wxs
@@ -54,10 +54,18 @@
-
+
+
+
+
+
+
+