• v2.3.0 e35a72336a

    WarpEngine Client 2.3.0
    ci/woodpecker/push/woodpecker Pipeline was successful
    ci/woodpecker/tag/woodpecker Pipeline was successful
    Stable

    mr.zero released this 2026-08-19 06:17:43 +00:00 | 5 commits to master since this release

    WarpEngine Client 2.3.0

    A card says which version you have, and offers the newer one. Where the catalog has
    moved on, an installed title's version line reads 0.1 → 0.3 instead of just the number
    on your disk, so the card answers both questions a person came to it with: what is
    installed, and is there anything better.

    Which version is installed was already recorded — that is what state.json has always
    been for. What was missing was somewhere to act on it.

    The actions moved into a three-dot menu. Installed cards now lead with Play (or
    Open for a hosted title) and put the rest behind the ⋮ button beside it:

    Upgrade fetches whatever the catalog now has, replacing the old payload and menu entry. Greyed out when there is nothing newer
    Uninstall as before — the payload, the icon and the menu entry, and nothing else

    Upgrade stays visible while disabled rather than appearing and disappearing: a menu whose
    items come and go makes a person hunt for the one they used last time, and greyed out
    already says "not now".

    Playing stays the headline action even when an upgrade is waiting. The version on the disk
    still runs, and wanting to play it is not the same as wanting to wait for a download.

    Package names have no spaces. WarpEngineClient-2.3.0-arm64.dmg rather than
    WarpEngine Client-2.3.0-arm64.dmg, and the same for the AppImage and both Windows
    builds — a space in a release asset is a space in every curl, script and shell command
    that ever touches it. The app is still called WarpEngine Client, which is what appears
    in the Dock and in /Applications; only the file names changed.

    Also

    The catalog refresh control's tooltip now says Refresh the catalog, because in Hungarian
    it and the new Upgrade both wanted the word "Frissítés" and only one of them reloads a
    list.

    Opening it on macOS

    Ad-hoc signed, not notarised, so macOS asks first:

    xattr -dr com.apple.quarantine "/Applications/WarpEngine Client.app"
    

    What is attached

    The macOS package, built and verified on a Mac, plus the Linux (AppImage, deb) and
    Windows (installer, portable) packages the pipeline builds when the tag is pushed.

    Verified

    make check is clean: typecheck, lint, the headless smoke test and the window self-test.

    The upgrade path was tested on a sandbox store rather than reasoned about. Two titles were
    installed, then one of their state records was rewritten to claim an older build — which is
    exactly what the engine compares — and the window was asked what it would offer:

    BombExpert    [newer]   Upgrade:on  Uninstall:on
    Rabbit Roller [current] Upgrade:off Uninstall:on
    

    Pressing Upgrade runs the same call the window makes, and the record went from 0.1 to
    0.2 with the old payload removed first. The self-test now asserts that pairing on every
    installed card, because a closed menu photographs identically whether or not its items are
    right.

    The new package names were read off a real build (WarpEngineClient-2.3.0-arm64.dmg,
    …-arm64-mac.zip) and checked against the release script's own file filter, which finds
    both. The Windows names are -Setup- and -Portable- so the two .exe targets cannot
    resolve to one name and overwrite each other.

    Downloads