heroic 0.1.1 → 0.2.0, minHost 0.32.0 — unblocked, v0.32.0 is tagged #16

Merged
enricobuehler merged 2 commits from heroic-0.2.0 into main 2026-08-27 21:52:05 +00:00
Owner

Pins heroic 0.2.0, which adds the tile that opens Heroic's console mode. Was held as a draft waiting on the host release that carries the value it depends on. That release is now tagged, so this is ready.

The floor changed from what the draft said

The draft pinned minHost: 0.31.5. There is no 0.31.5 — the line went v0.31.4 → v0.32.0. A floor naming a version that never shipped is worse than a merely wrong one: minHost is compared against the host's own CARGO_PKG_VERSION, so every host would have been told it needs something that does not exist.

Corrected to 0.32.0, and not by guessing:

$ git tag --contains ae13b29a
v0.32.0

ae13b29a is the host commit that teaches launcher_ui the heroic-console value. It landed after the v0.31.4 tag, so v0.32.0 is the first — and currently only — release that can serve these tiles.

Why the floor matters here

An unknown launcher_ui value is a hard 400 that refuses the whole reconcile, not a tile that quietly degrades. So a host below the floor would not merely miss the console tile — it would reject the entire library sync. That asymmetry is exactly what minHost exists for, and it is why this PR waited rather than shipping early.

Checks

bun run validate8/8 integrity matches the registry, 0 advisories, exit 0. Heroic 0.2.0's published tarball hash matches the pin.

The rest of the catalog is untouched: epic, gog, lutris, playnite 0.4.5, rom-manager, steam and virtualhere keep their existing versions and floors, all of which name released hosts.

⚠️ After merging — the step that has bitten this repo twice

Confirm publish.yml goes green on main and that v1/index.json.sig regenerates. A merged-but-unsigned catalog is invisible: hosts pin the signing key, so they keep serving the previous catalog and the new pins reach nobody. That is what happened when PR #11 merged and its publish run died on the runner prune-timer, and again when PR #4's merge raced its own reviewedAt commit.

Pins heroic **0.2.0**, which adds the tile that opens Heroic's console mode. Was held as a draft waiting on the host release that carries the value it depends on. **That release is now tagged, so this is ready.** ## The floor changed from what the draft said The draft pinned `minHost: 0.31.5`. **There is no 0.31.5** — the line went v0.31.4 → v0.32.0. A floor naming a version that never shipped is worse than a merely wrong one: `minHost` is compared against the host's own `CARGO_PKG_VERSION`, so every host would have been told it needs something that does not exist. Corrected to **0.32.0**, and not by guessing: ``` $ git tag --contains ae13b29a v0.32.0 ``` `ae13b29a` is the host commit that teaches `launcher_ui` the `heroic-console` value. It landed *after* the v0.31.4 tag, so v0.32.0 is the first — and currently only — release that can serve these tiles. ## Why the floor matters here An unknown `launcher_ui` **value** is a hard 400 that refuses the whole reconcile, not a tile that quietly degrades. So a host below the floor would not merely miss the console tile — it would reject the entire library sync. That asymmetry is exactly what `minHost` exists for, and it is why this PR waited rather than shipping early. ## Checks `bun run validate` — **8/8 integrity matches the registry**, 0 advisories, exit 0. Heroic 0.2.0's published tarball hash matches the pin. The rest of the catalog is untouched: epic, gog, lutris, playnite 0.4.5, rom-manager, steam and virtualhere keep their existing versions and floors, all of which name released hosts. ## ⚠️ After merging — the step that has bitten this repo twice Confirm `publish.yml` goes **green on main** and that `v1/index.json.sig` regenerates. A merged-but-unsigned catalog is invisible: hosts pin the signing key, so they keep serving the previous catalog and the new pins reach nobody. That is what happened when PR #11 merged and its publish run died on the runner prune-timer, and again when PR #4's merge raced its own `reviewedAt` commit.
enricobuehler added 1 commit 2026-08-26 18:18:39 +00:00
heroic 0.1.1 -> 0.2.0, minHost 0.31.5
validate / validate (pull_request) Successful in 15s
be87dc4322
The GOG/Amazon scan fix and the console-mode tile. minHost rises from 0.25.0
because the console tile publishes `launch.value = "heroic-console"`, a
`launcher_ui` value no host before 0.31.5 knows — and an unknown value is a hard
400 that refuses the whole reconcile, not a dropped tile.

DO NOT MERGE until punktfunk v0.31.5 is tagged. The gate is correct as written,
but merging early replaces the 0.1.1 pin with one no host in the field can
satisfy, which makes Heroic uninstallable from the store for everyone until that
release lands — and delivers the fix to nobody, since 0.2.0 needs 0.31.5 anyway.
enricobuehler added 1 commit 2026-08-27 21:31:50 +00:00
heroic: minHost 0.31.5 -> 0.32.0, the release that actually shipped it
validate / validate (pull_request) Successful in 21s
4f3ecfb757
This entry was written against a 0.31.5 that never happened — the line went
v0.31.4 -> v0.32.0. A floor naming an unreleased version is worse than a wrong
number: `minHost` is compared against the host's own `CARGO_PKG_VERSION`, so
every host would have been told it needs something that does not exist.

0.32.0 is not a guess. heroic 0.2.0 publishes `heroic-console` tiles, and the
host-side value they depend on arrived in `ae13b29a`:

    $ git tag --contains ae13b29a
    v0.32.0

That commit landed AFTER the v0.31.4 tag, so v0.32.0 is the first — and
currently only — release that can serve these tiles. An older host rejects an
unknown `launcher_ui` value with a hard 400 that refuses the whole reconcile,
which is exactly what this floor exists to prevent.

`bun run validate`: 8/8 integrity matches the registry, 0 advisories, exit 0.
enricobuehler changed title from WIP: heroic 0.1.1 → 0.2.0, minHost 0.31.5 — hold until v0.31.5 ships to heroic 0.1.1 → 0.2.0, minHost 0.32.0 — unblocked, v0.32.0 is tagged 2026-08-27 21:32:04 +00:00
enricobuehler merged commit 23a1e8d600 into main 2026-08-27 21:52:05 +00:00
enricobuehler deleted branch heroic-0.2.0 2026-08-27 21:52:06 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unom/punktfunk-plugin-index#16