Skip to main content
← Back to list
01Issue
BugShippedSwamp CLIPublic
Assigneesstack72

Relationships

#1963 Self-update broken on Windows: tar.gz format and zip extraction missing

Opened by stack72 · 9/2/2026· Shipped 9/2/2026

Description

The self-update mechanism (swamp update) does not work on Windows due to two related bugs:

  1. src/domain/update/platform.tstarballName() always generates a .tar.gz extension regardless of platform. On Windows the published artifact is a .zip, so the generated download URL points to a file that doesn't exist.

  2. src/infrastructure/update/http_update_checker.tsdownloadAndInstall() only has an extractTarGz() code path. Even if the correct .zip URL were generated, there is no zip extraction logic to handle it.

Steps to Reproduce

  1. Install swamp on Windows
  2. Run swamp update when a newer version is available
  3. Update fails — either a 404 on the .tar.gz URL or an extraction error

Expected Behavior

swamp update should download the .zip artifact for Windows and extract it correctly.

Proposed Fix

  • In platform.ts, branch on Deno.build.os === "windows" to return .zip instead of .tar.gz in tarballName() and stableUrl()
  • In http_update_checker.ts, add a extractZip() path alongside extractTarGz(), selected based on the archive format. Deno's @std/archive or fflate via CDN could handle zip extraction, or use System.IO.Compression via a PowerShell subprocess as the install script already does.

Environment

  • Platform: Windows (x86_64)
  • Files: src/domain/update/platform.ts, src/infrastructure/update/http_update_checker.ts
02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 2 MOREREVIEW+ 7 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

9/2/2026, 6:25:31 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack729/2/2026, 5:40:29 PM

Sign in to post a ripple.