Skip to content

Releases: AdaInTheLab/packrelay-launcher

PackRelay Launcher v0.2.0

28 May 19:15

Choose a tag to compare

Pre-built binaries for the PackRelay launcher.

Every binary attached to this release is built by
GitHub Actions directly from this repo's source. SHA-256
hashes appear on packrelay.cloud/download — verify
before running if you'd like.

Windows: when code-signing is configured the binary
is signed via Azure Trusted Signing (Microsoft attested
publisher). When it isn't, you may see a SmartScreen
prompt on first run — see
https://packrelay.cloud/docs/windows-first-run for
details on the warning and how to verify the binary.

macOS: the .dmg is signed + notarized. Open
normally. (Older v0.1.x builds that pre-date notarization
need right-click → Open the first time.)

See the README for what's in this release.

PackRelay Launcher v0.1.12

20 May 23:09

Choose a tag to compare

Pre-built binaries for the PackRelay launcher.

Every binary attached to this release is built by
GitHub Actions directly from this repo's source. SHA-256
hashes appear on packrelay.cloud/download — verify
before running if you'd like.

Windows: when code-signing is configured the binary
is signed via Azure Trusted Signing (Microsoft attested
publisher). When it isn't, you may see a SmartScreen
prompt on first run — see
https://packrelay.cloud/docs/windows-first-run for
details on the warning and how to verify the binary.

macOS: the .dmg is signed + notarized. Open
normally. (Older v0.1.x builds that pre-date notarization
need right-click → Open the first time.)

See the README for what's in this release.

PackRelay Launcher v0.1.8

17 May 14:30

Choose a tag to compare

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.

PackRelay Launcher v0.1.7

17 May 12:58

Choose a tag to compare

v0.1.7 — Honor server-pinned versions

Hotfix. v0.1.6 silently substituted the publisher's latest for any server-pinned version when the user clicked through ServerDetailView → InstallView. A server pinned to v0.2.0 with a player on local v0.3.0 would correctly say "Update to v0.2.0 & connect" on the server card — then install v0.4.0 (latest) instead and get the player kicked again.

This release threads the pin through end-to-end and adds a hard "thicc check" so a silent fallback to latest cannot happen.

What changed

  • Pinned manifest fetch — new /api/v1/packs/<slug>/manifest/<version> route on the install/update path. The cloud already exposed it; the launcher just wasn't calling it.
  • Pin survives the dockActiveInstall carries targetVersion, so jumping back to InstallView mid-download via the bottom-of-LeftRail dock no longer loses the pin context.
  • Honest UI — InstallView's cover-version stamp, the vX → vY chip, and the primary-button label all key off the pinned version. No more "Update to v0.4.0" when the server pinned v0.2.0.
  • Thicc check — three layers now refuse to install a mismatched version:
    • fetch_manifest_at asserts the returned manifest's version field equals the requested version. A cloud-side bug serving the wrong row errors loudly instead of downloading several GB of the wrong pack.
    • After install/update completes, the launcher asserts report.version === targetVersion. Mismatch produces a hard error instead of letting the player click "Connect" into an instant kick.
    • When a pinned version doesn't exist on the cloud, the error message is human-readable and tells the player the likely fix ("ask the server admin to refresh the pin").

Who this affects

Anyone playing on a server that pins to a specific pack version (servers.attachedVersion set on the cloud). If your servers all auto-track latest, v0.1.6's behavior was identical to v0.1.7's behavior for you.

Auto-update

v0.1.6 installs see the update toast on next launch.

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.

PackRelay Launcher v0.1.6

17 May 12:15

Choose a tag to compare

v0.1.6 — Deep links + dock + catalog polling

User-facing

  • Deep-link joinpackrelay://join/<server-slug> from the cloud's new Install+Join button and /join/<slug> landing page drops you straight into the matching server's detail page. ServerDetailView's three-state card then offers the right one-click affordance (Connect / Update & connect / Install pack & get connect address) based on your local install history. Kicked from a server with a vague version-mismatch error? Click the link in the kick message and you're back in.
  • Deep-link installpackrelay://install/<pack-slug> from a cloud pack page lands you straight in InstallView with that pack pre-selected.
  • Active-downloads dock — a bottom-of-LeftRail strip surfaces in-flight installs from any view. Pulsing dot, mode label (Installing / Updating / Reinstalling), pack name, percentage, last completed file. Click to jump back to InstallView.
  • Library cover-image fallback — install-history rows now stash the pack's cover at install time, so a pack delisted from the public catalog still renders its cover in the My Library sidebar.
  • Catalog polling while open — server state refreshes every 30s (heartbeat-driven; player counts and online/offline stay live) and pack state every 5min (publish-driven). No more relaunch-to-see-fresh-data.

Plumbing

  • LeftRail + FooterStrip read the version straight from package.json, so the "launcher · v0.1.6" line stays in sync with the actual build.

Installation

Windows: the binary isn't yet code-signed, so Windows SmartScreen will flag it as an "unrecognized app" on first run. Click More infoRun anyway. The launcher is open source — every binary attached to this release is built by GitHub Actions directly from this repo's source.

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

Existing v0.1.5 installs will see the in-app update toast on next launch.

PackRelay Launcher v0.1.5

15 May 10:54

Choose a tag to compare

Pre-built binaries for the PackRelay launcher.

Windows users: the binary isn't yet code-signed, so
Windows SmartScreen will flag it as an "unrecognized
app" on first run. Click More infoRun anyway.
The launcher is open source — every binary attached to
this release is built by GitHub Actions directly from
this repo's source.

macOS users: the .dmg is signed + notarized — open
normally. (If you happen to land on an older v0.1.x
release that pre-dates this, you'll need to right-click
→ Open the first time.)

See the README for what's in this release.

PackRelay Launcher v0.1.1

14 May 13:11

Choose a tag to compare

Pre-built binaries for the PackRelay launcher.

Windows users: the binary isn't yet code-signed, so
Windows SmartScreen will flag it as an "unrecognized
app" on first run. Click More infoRun anyway.
The launcher is open source — every binary attached to
this release is built by GitHub Actions directly from
this repo's source.

macOS users: the .app isn't notarized yet either, so
you'll need to right-click → Open the first time
instead of double-clicking.

See the README for what's in this release.

PackRelay Launcher v0.1.0

14 May 10:34

Choose a tag to compare

First tagged build of the PackRelay launcher.

Download

  • Windows: PackRelay_0.1.0_x64-setup.exe (NSIS installer) or PackRelay_0.1.0_x64_en-US.msi
  • macOS (Apple Silicon + Intel universal): PackRelay_0.1.0_universal.dmg
  • Linux: landing in v0.1.1 — the CI Linux job had a system-deps conflict that's now fixed. Build from source via npm run tauri build for now.

First-run notes

Windows users: the binary isn't yet code-signed, so Windows SmartScreen will flag it as an "unrecognized app". Click More infoRun anyway. The launcher is open source — every binary attached to this release is built by GitHub Actions directly from this repo's source (release.yml), and the SHA-256 of each file is in the asset metadata GitHub publishes.

macOS users: the .app isn't notarized yet either. Right-click → Open the first time instead of double-clicking, or in Terminal: xattr -d com.apple.quarantine /Applications/PackRelay.app.

What's in v0.1.0

  • Browse modpacks from packrelay.cloud's public catalog
  • One-click install into your 7DTD Mods/ folder, with every file SHA-256-verified against a signed manifest as it streams to disk
  • Verify + Repair installed packs
  • Smart Update — diffs the installed manifest against the latest and refetches only changed files
  • Uninstall a pack cleanly (sidecar-driven, won't touch other packs in the same folder)
  • Browse public servers + one-click Steam launch with the connect address on your clipboard
  • Sign in to packrelay.cloud via API token to save your install history server-side

See the README for build-from-source instructions.