Releases: cyph3rpuNk-dev/Nomad-Launcher
Release list
v1.0.5
Fixes the "clicked links open an empty second browser" problem (#34).
Fixed
- If you made the browser your default from inside its own settings, Windows registered the browser exe directly instead of the launcher. Clicked links then opened against a throwaway profile in
%LOCALAPPDATA%, which showed up as a second window with none of your data, and the trace cleanup wiped that profile on exit. The launcher now detects such a registration on every launch and reroutes it through itself, so links open as tabs in the running portable browser and everything stays in the portableDatafolder. Only handler commands that point inside the launcher's own install tree are touched; registrations for other browsers are left alone. - Gecko launchers (Firefox, ESR, Floorp, Waterfox, LibreWolf, Mullvad) no longer pass
--no-remote. Remoting has been per-profile since Firefox 67, so the flag added no isolation and only prevented a clicked URL from reaching the running instance.
Verify
gpg --import nomad-release-signing-key.asc
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
Signing key: Nomad Launcher, fingerprint 4F90CF11723DC3A2E7198331FEF981E909EF44ED.
Built from source by CI with build provenance attestation:
gh attestation verify Nomad-Firefox.exe --repo cyph3rpuNk-dev/Nomad-Launcher
The launchers are intentionally not Authenticode-signed; release integrity relies on the GPG-signed SHA256SUMS plus the build attestation.
Nomad Launcher v1.0.4
Small follow-up to v1.0.3.
Fixed
- Ungoogled Chromium branding: the product-logo resource IDs moved again in ungoogled-chromium 150.x (grit renumbered them from 16325/16327 to 15315/15317), so the logo patch was being skipped with a "PAK resource id not found" warning in
nomad.logon every launch. The IDs are re-derived and the grayscale launcher logo is applied again. This was cosmetic only; nothing else was affected.
Verify
gpg --import nomad-release-signing-key.asc
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
Signing key: Nomad Launcher, fingerprint 4F90CF11723DC3A2E7198331FEF981E909EF44ED.
Like v1.0.3, this release is built from source by CI with build provenance attestation:
gh attestation verify Nomad-Firefox.exe --repo cyph3rpuNk-dev/Nomad-Launcher
The launchers are intentionally not Authenticode-signed; release integrity relies on the GPG-signed SHA256SUMS plus the build attestation.
Nomad Launcher v1.0.3
Bug-fix release, and the first one built and attested by CI.
Fixed
- The cleanup watcher now matches browser processes by executable path instead of file name. Every Chromium-based browser ships as
chrome.exe, so on a machine that also runs a desktop Chrome the watcher could never see the count reach zero; when Chromium retired its initial process while the browser stayed open, the watcher timed out, scrubbed host traces early, and left nothing to scrub at the real exit. With an exact path it now waits on process handles until the portable browser tree has actually exited. - All HTTP clients now refuse redirects that downgrade from https to http. Downloads were already hash- and GPG-pinned, so this closes an exposure of full download URLs to on-path observers rather than an integrity hole.
SHA256SUMSis now written with LF line endings. The CRLF endings in earlier manifests made GNUsha256sum -creport "no file was verified"; comparing hashes by hand was unaffected.
Added
-
SECURITY.md: a private vulnerability-reporting channel and an explicit threat model, including what the post-exit scrub can and cannot remove.
-
Releases are now built from source by GitHub Actions with build provenance attestation. With the GitHub CLI you can check that a binary came from this repository's code rather than from someone's machine:
gh attestation verify Nomad-Firefox.exe --repo cyph3rpuNk-dev/Nomad-LauncherThe attestation is independent of the GPG signature below; the two checks back each other up.
-
The release signing key is also published on keyservers independent of this repository (keys.openpgp.org and keyserver.ubuntu.com), so the repository copy can be cross-checked.
Verify
gpg --import nomad-release-signing-key.asc
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS
Signing key: Nomad Launcher, fingerprint 4F90CF11723DC3A2E7198331FEF981E909EF44ED.
The launchers are intentionally not Authenticode-signed; release integrity relies on the GPG-signed SHA256SUMS plus the build attestation.
Nomad Launcher v1.0.2
Bug-fix release.
Fixed
-
Silent exit when the status window cannot be created (#27). The launcher's status window requires OpenGL 2.0+. Virtual machines without 3D acceleration (VirtualBox without Guest Additions, Hyper-V's basic display adapter, VMware without "Accelerate 3D graphics") only expose Windows' software GL 1.1, so every launcher appeared to simply not run: no window, no error, just a line in
Nomad/nomad.log. Launch failures now surface in an error dialog with VM-specific guidance, and crashes anywhere on the launch path are caught and shown the same way instead of dying silently. The README gained a matching troubleshooting entry.Note that this makes the failure diagnosable rather than the VM supported: running Nomad in a VM still requires enabling 3D acceleration in the hypervisor.
Changed
pgp0.14.2 → 0.20.0. The crate that performs GPG signature verification of browser downloads was upgraded six minor versions, and Nomad's verification code was ported to its reworked API. Verification behavior is unchanged: armored-first/binary-fallback signature parsing, primary-key-then-subkeys checking, and the pinned-fingerprint tests for the embedded Mozilla, Mullvad, and gorhill keys all pass unmodified.
Signing key rotated
Access to the previous release signing key (4D92 5DAD 1DB4 405C 99EA 1FD3 9984 5DA3 20CD 1F37) was lost, so it has not been revoked, and releases up to and including v1.0.1 remain verifiable against it. Starting with this release, SHA256SUMS.asc is signed by a new key:
- New key:
Nomad Launcher, fingerprint4F90 CF11 723D C3A2 E719 8331 FEF9 81E9 09EF 44ED(ed25519, expires 2029-07-11) - The updated
nomad-release-signing-key.ascships with this release and in the repository.
Verify
gpg --import nomad-release-signing-key.asc
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum -c SHA256SUMS
Signing key: Nomad Launcher, fingerprint 4F90CF11723DC3A2E7198331FEF981E909EF44ED.
The launchers are intentionally not Authenticode-signed; release integrity relies on the GPG-signed SHA256SUMS.
Nomad Launcher v1.0.1
Bug-fix release.
Fixed
-
Chromium-family
%LOCALAPPDATA%cleanup (#23). When ungoogled-chromium or Helium'schrome.exeis launched outside Nomad (most commonly a link click routed to the browser's own default-browser registration instead of the Nomad launcher), the browser writes a full default profile to%LOCALAPPDATA%\Chromiumor%LOCALAPPDATA%\imput\Helium. These strays previously persisted indefinitely. Nomad now scrubs them on every Nomad-launched session, alongside the existing Gecko/Mullvad runtime-dir scrubs, so nothing accumulates outside the launcher's folder.To keep links from leaking in the first place, register the Nomad launcher (not the raw browser exe) as your default browser with
Nomad-<Browser>.exe --register-default, then pick it in Settings → Default apps. The scrub cleans up whatever still gets through.
Verify
gpg --import nomad-release-signing-key.asc
gpg --verify SHA256SUMS.asc SHA256SUMS
sha256sum -c SHA256SUMS
Signing key: Nomad Launcher, fingerprint 4D925DAD1DB4405C99EA1FD399845DA320CD1F37.
The launchers are intentionally not Authenticode-signed; release integrity relies on the GPG-signed SHA256SUMS.
Nomad Launcher v1.0.0
Initial public release. See README for supported browsers, configuration, and verification instructions.