Skip to content

PackRelay Launcher v0.1.8

Choose a tag to compare

@github-actions github-actions released this 17 May 14:30

v0.1.8 — Disk reality wins over localStorage

Hotfix. v0.1.7 fixed the chip/button/manifest mismatch when a server pinned a specific version. v0.1.8 closes the next hole: the launcher claiming an install exists when the actual Mods/ folder is empty.

Symptom users saw on v0.1.7 and earlier: the ServerDetailView showed a green INSTALLED chip + a Connect button purely off the localStorage install-history. If the folder had been wiped manually, 7DTD reinstalled over it, or the drive remapped, the launcher would happily launch 7DTD with -connect= args and the player would join the server with no mods loaded → instant kick.

What changed

Disk-presence probe — new check_pack_present Tauri command that opens the sidecar manifest at <dest>/_packrelay-manifest.json and stat-samples up to 8 files evenly spread across manifest.files. Pure metadata reads, no hashing — single-digit ms on a healthy install even on spinning disk. Catches both "sidecar entirely gone" and "sidecar present but files wiped" failure modes (sample spread means we'd see "first dir wiped" and "last dir wiped" both trigger).

Two enforcement points — same probe, used at different entry points so the bug can't slip in through a different door:

  • ServerDetailView pre-flight — fires on mount. Presence-absent flips the install-state truth table from currentnot-installed, the bottom card reverts from "READY TO PLAY" + Connect back to "Install the pack" + Install (or "Update & connect" depending on the version targeting). A visible yellow hint above the card explains why the chip changed: "Found a v0.2.0 install record at but the files aren't on disk anymore (sidecar gone). Installing will refetch everything."
  • InstallView click-time backstop — when the user lands in InstallView via Library / browse → DetailView and clicks Update or Re-install, the probe fires before invoking the smart-update path. Absent verdict downgrades to a fresh install (same dest, same pin), so the user never sees the cryptic "reading _packrelay-manifest.json: file not found (os error 2)" error message regardless of which entry point led there.

Probe errors (Tauri unreachable, permission denied) fall through to the original mode — we never block on probe noise, and the existing visible-error + Retry path is at least recoverable.

Who this affects

Anyone whose Mods/ folder gets wiped out-of-band. Common triggers:

  • 7DTD reinstall (which sometimes scrubs %APPDATA%\7DaysToDie\Mods)
  • Manual cleanup
  • Drive remap / external drive disconnect
  • Profile import from another machine where the install history is portable but the files aren't

Auto-update

v0.1.7 (and v0.1.6) installs see the in-app update toast on next launch. The toast checks latest.json on a periodic interval while open and also on startup — if the launcher session is older than the publish, the toast appears within minutes.

Installation

Windows: SmartScreen flags this unsigned binary as an "unrecognized app" on first run. Click More infoRun anyway. Every binary on this release is built by GitHub Actions directly from the repo's source.

macOS: the .dmg is signed + notarized — open normally.