• v2.4.0 3d42355189

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

    mr.zero released this 2026-08-19 09:58:21 +00:00 | 3 commits to master since this release

    WarpEngine Client 2.4.0

    The catalog can now say a title is not yours, and the client can do something about
    it.
    Where a store sells things, a card shows the price and a Buy button that
    opens the store's own page; where you own it, an Install as before. Two new
    categories go with it — Owned and To buy — because owning something is not the
    same as having installed it.

    Signing in, without a password ever reaching this window. The side menu grows an
    Account block, and signing in shows a short code: your browser opens on the store's
    own page and you type it there. That detour is the point — a desktop application asking
    for a password is a desktop application people should not be giving one to. The token
    lives in the OS keychain (Keychain, libsecret, DPAPI), one per store, and Sign out
    revokes it at the server as well as forgetting it here.

    None of this is knowledge about any particular store. It all arrives from the
    catalog's own server: WarpEngine 0.5 answers GET /api/service with what it offers, and
    puts an access block on every entry. A client that carried those facts would work for
    exactly one shop — this one asks, which is why the same build serves any of them.

    A store with no sign-in shows none. Every WarpEngine before 0.5 has no descriptor at
    all, and a 0.5 store that sells nothing reports none either. Both read as "a plain
    catalog", which is what this client assumed for its whole life until now, and the window
    behaves accordingly: no Account block, no prices, no new categories.

    A title nobody has bought is not dimmed. The dimming and the dashed badge belong to
    what this machine cannot do — an unsupported platform, no build for this architecture
    — and there is nothing wrong with the machine when a title simply costs money.

    A bearer token is never sent to a host that did not issue it. A gated download
    answers with a redirect to signed storage, often somebody else's server, and some object
    stores refuse a request outright when an Authorization header rides along with the
    signature. The credential stops at the origin it belongs to; a redirect back to the
    catalog keeps it.

    Downloads