Found during the 2026-08-14 sync (issue #91, PR #101). Upstream moved the Windows server tree out of app.asar into a resources/server.asar sidecar (and deleted WINDOWS_ASAR_UNPACK). scripts/coil/verify-desktop-bundle.mjs still reads only app.asar + app.asar.unpacked (workflow step finds app.asar only, coil-release.yml:657), so on Windows the gate now verifies just the Electron main-process bundle — the entire server graph is unchecked, including the WSL closure the workflow comment at coil-release.yml:650-652 claims is the reason for running on Windows (that comment is now false).
This is the exact bug class #97 fixed (a guard that cannot fail): verifyPackagedApp also has no checked === 0 floor (verify-desktop-bundle.mjs:431-456) — if a future move relocates apps/desktop/dist-electron too, the gate passes having verified nothing.
Fix shape:
- Walk for both
app.asar and resources/server.asar; merge readPackagedFiles() over each (the .unpacked sibling handling at line 204 already works for server.asar.unpacked).
- Hard-fail when
result.checked === 0 on either archive.
- Update the workflow step and the module header (lines 18-23 document the deleted
asarUnpack topology).
Also stale, same mechanism-documentation debt: apps/desktop/src/main.ts:194-196 and apps/web/src/components/coil/UpdateToast.tsx:10-11 still claim upstream's updater is silenced by GITHUB_REPOSITORY=\"\" — #97/#99 replaced that with T3CODE_DESKTOP_UPDATE_REPOSITORY: disabled precisely because the env var cannot be blanked in Actions.
Found during the 2026-08-14 sync (issue #91, PR #101). Upstream moved the Windows server tree out of
app.asarinto aresources/server.asarsidecar (and deletedWINDOWS_ASAR_UNPACK).scripts/coil/verify-desktop-bundle.mjsstill reads onlyapp.asar+app.asar.unpacked(workflow step findsapp.asaronly,coil-release.yml:657), so on Windows the gate now verifies just the Electron main-process bundle — the entire server graph is unchecked, including the WSL closure the workflow comment atcoil-release.yml:650-652claims is the reason for running on Windows (that comment is now false).This is the exact bug class #97 fixed (a guard that cannot fail):
verifyPackagedAppalso has nochecked === 0floor (verify-desktop-bundle.mjs:431-456) — if a future move relocatesapps/desktop/dist-electrontoo, the gate passes having verified nothing.Fix shape:
app.asarandresources/server.asar; mergereadPackagedFiles()over each (the.unpackedsibling handling at line 204 already works forserver.asar.unpacked).result.checked === 0on either archive.asarUnpacktopology).Also stale, same mechanism-documentation debt:
apps/desktop/src/main.ts:194-196andapps/web/src/components/coil/UpdateToast.tsx:10-11still claim upstream's updater is silenced byGITHUB_REPOSITORY=\"\"— #97/#99 replaced that withT3CODE_DESKTOP_UPDATE_REPOSITORY: disabledprecisely because the env var cannot be blanked in Actions.