Skip to content

Fix for windows update channel - #54

Merged
dimitriosGX merged 7 commits into
mainfrom
dk-build
Aug 18, 2026
Merged

Fix for windows update channel#54
dimitriosGX merged 7 commits into
mainfrom
dk-build

Conversation

@dimitriosGX

@dimitriosGX dimitriosGX commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Summary by cubic

Ensure Windows updates always use a merged manifest and never offer the wrong installer. Previously, a build leg could upload a plain latest.yml/beta.yml that caused arm64 users to get the x64 installer; now only a merge job creates the plain manifest from per‑arch manifests.

Key changes

  • Split Windows build channels to latest-x64/latest-arm64 and beta-x64/beta-arm64; each leg writes latest-x64.yml/latest-arm64.yml or beta-x64.yml/beta-arm64.yml.
  • Make windows-manifest the sole writer of latest.yml/beta.yml by merging the two per‑arch manifests; workflows now download suffixed files and upload the merged unsuffixed manifest.
  • Harden scripts/merge-win-update-manifest.cjs to require exactly one installer per arch and reject any URL that matches zero or multiple arch tokens.
  • Document and enforce that early manual publish or a failed merge yields no Windows manifest (update check no‑ops) rather than publishing a wrong installer.
  • Clarify in updateManager.ts that clients poll the unsuffixed channel; GitHubProvider and environment pinning take precedence over app‑baked channels, and electron-updater selects by process.arch.

Written for commit ac3a0ea. Summary will update on new commits.

Review in cubic

@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 4 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="packages/desktop/scripts/merge-win-update-manifest.cjs">

<violation number="1" location="packages/desktop/scripts/merge-win-update-manifest.cjs:93">
P3: In the per-arch count failure, `matches` is now `byArch.get(arch)` yet the message lists every merged file via `files.map(...)`. List only the failing arch's bucket (`matches`) so the message identifies which installer is short or duplicated; the current output obfuscates the offending arch.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

}
for (const arch of ARCHES) {
const matches = files.filter((f) => f.url.includes(arch))
const matches = byArch.get(arch)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: In the per-arch count failure, matches is now byArch.get(arch) yet the message lists every merged file via files.map(...). List only the failing arch's bucket (matches) so the message identifies which installer is short or duplicated; the current output obfuscates the offending arch.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/desktop/scripts/merge-win-update-manifest.cjs, line 93:

<comment>In the per-arch count failure, `matches` is now `byArch.get(arch)` yet the message lists every merged file via `files.map(...)`. List only the failing arch's bucket (`matches`) so the message identifies which installer is short or duplicated; the current output obfuscates the offending arch.</comment>

<file context>
@@ -75,9 +75,22 @@ for (const file of [...x64.files, ...arm64.files]) {
+}
 for (const arch of ARCHES) {
-  const matches = files.filter((f) => f.url.includes(arch))
+  const matches = byArch.get(arch)
   if (matches.length !== 1) {
     fail(`expected exactly 1 ${arch} installer in the merged manifest, found ${matches.length}: ` +
</file context>

@dimitriosGX
dimitriosGX merged commit b4ae616 into main Aug 18, 2026
7 checks passed
@dimitriosGX
dimitriosGX deleted the dk-build branch August 18, 2026 16:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant