Skip to content

Release bundle verify checks the wrong layer on Windows since upstream's server.asar sidecar #102

Description

@radroid

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions