plugin-kit 0.3.1 #2

Merged
enricobuehler merged 1 commits from chore/plugin-kit-0.3.1 into main 2026-08-06 19:06:29 +00:00
Owner

Picks up punktfunk#78, published as plugin-kit 0.3.1.

Which half of #78 matters here

The headline fix there — the kit's read-only SQLite reader never opening a database on Linux — does not affect this plugin. Heroic's library is read from the JSON store_cache, not a database. It is the lutris plugin that was reporting zero games.

The second fix does matter here, because it is about this repo's release gate: parity --compare set process.exitCode = 1 on a mismatch and then returned normally, and runPluginCli overwrote it with 0. So the verb this README calls the release gate — "exits non-zero on any difference", "do not publish a version whose parity run is red" — always exited 0, and any scripted use of it passed regardless of the result. That fix is what makes the parity run below trustworthy.

package.json already ranged ^0.3.0, but bun.lock pinned 0.3.0 exactly.

Gates

biome clean, tsc --noEmit clean, 7/7 tests, bundle builds.

Parity — run, and green

Heroic has now been launched and signed in on .21 (v2.22.0 flatpak), so store_cache is populated: 89 Epic titles owned, 1 installed (GOG and Amazon are not signed in — their caches are empty).

Run against the live host with the published kit 0.3.1, this plugin still unregistered so the host was on its built-in scanner:

captured 1 "heroic" entries to /tmp/heroic-before.json
parity OK — 1 entries identical
  (+1 launcher entry, expected: heroic:launcher)

The single entry is Chess Ultra, matched identically — id legendary:fc0b13b7b17b4a46933756fb2786cdc4, launch.kind: "heroic", detect.install_dir plus the HEROIC_APP_NAME env marker, and art resolving to Epic CDN URLs.

Honest limits

  • The sample is n=1. A library source only surfaces installed games, and exactly one of the 89 owned titles is installed — so 88 owned-but-not-installed titles are on neither side of the comparison. This proves the installed-game path reproduces the built-in scanner; it does not exercise breadth.
  • GOG and Amazon are untested — not signed in, so neither the gog_ nor nile_ parsers ran at all.
  • Parity compares this plugin against the host's built-in scanner, so it cannot catch a bug the two share.
  • Art is compared by presence, not value, so the covers still want one by-eye check.

After merge

Tag v0.1.0 to publish — this plugin has never been released, so the version already in package.json is the first one, and ci.yml's publish job is gated on refs/tags/v*.

Picks up [punktfunk#78](https://git.unom.io/unom/punktfunk/pulls/78), published as plugin-kit **0.3.1**. ## Which half of #78 matters here The headline fix there — the kit's read-only SQLite reader never opening a database on Linux — **does not affect this plugin.** Heroic's library is read from the JSON `store_cache`, not a database. It is the lutris plugin that was reporting zero games. The **second** fix does matter here, because it is about *this* repo's release gate: `parity --compare` set `process.exitCode = 1` on a mismatch and then returned normally, and `runPluginCli` overwrote it with 0. So the verb this README calls the release gate — "exits non-zero on any difference", "do not publish a version whose parity run is red" — always exited 0, and any scripted use of it passed regardless of the result. **That fix is what makes the parity run below trustworthy.** `package.json` already ranged `^0.3.0`, but `bun.lock` pinned `0.3.0` exactly. ## Gates biome clean, `tsc --noEmit` clean, **7/7 tests**, bundle builds. ## Parity — run, and green Heroic has now been launched and signed in on `.21` (v2.22.0 flatpak), so `store_cache` is populated: **89 Epic titles owned, 1 installed** (GOG and Amazon are not signed in — their caches are empty). Run against the live host with the published kit 0.3.1, this plugin still unregistered so the host was on its built-in scanner: ``` captured 1 "heroic" entries to /tmp/heroic-before.json parity OK — 1 entries identical (+1 launcher entry, expected: heroic:launcher) ``` The single entry is Chess Ultra, matched identically — id `legendary:fc0b13b7b17b4a46933756fb2786cdc4`, `launch.kind: "heroic"`, `detect.install_dir` plus the `HEROIC_APP_NAME` env marker, and art resolving to Epic CDN URLs. ## Honest limits - **The sample is n=1.** A library source only surfaces *installed* games, and exactly one of the 89 owned titles is installed — so 88 owned-but-not-installed titles are on neither side of the comparison. This proves the installed-game path reproduces the built-in scanner; it does not exercise breadth. - **GOG and Amazon are untested** — not signed in, so neither the `gog_` nor `nile_` parsers ran at all. - Parity compares this plugin against the host's built-in scanner, so it cannot catch a bug the two share. - Art is compared by presence, not value, so the covers still want one by-eye check. ## After merge Tag **`v0.1.0`** to publish — this plugin has never been released, so the version already in `package.json` is the first one, and `ci.yml`'s `publish` job is gated on `refs/tags/v*`.
enricobuehler added 1 commit 2026-08-06 18:30:06 +00:00
chore: plugin-kit 0.3.1
CI / build (pull_request) Successful in 22s
CI / publish (pull_request) Skipped
e3514e7f6c
Picks up punktfunk#78. The headline fix there — the kit's read-only SQLite reader
never opening a database on Linux — does NOT affect this plugin: Heroic's library
is read from the JSON `store_cache`, not a database. The second fix does matter
here, because it is about this plugin's release gate: `parity --compare` set a
non-zero exit code and `runPluginCli` then overwrote it with 0, so a red parity
run always exited 0 and any scripted use of it passed.

The caret range already allowed 0.3.1, but bun.lock pinned 0.3.0 exactly.

Gates: biome clean, tsc clean, 7/7 tests, bundle builds.

⚠ Parity is NOT yet meaningful for this plugin: Heroic is installed on .21 but has
never been launched, so there is no store_cache and no library — both sides of the
comparison are empty and a green run would prove nothing. It needs a signed-in
Heroic before its v0.1.0 tag.
enricobuehler merged commit c59d845100 into main 2026-08-06 19:06:28 +00:00
enricobuehler deleted branch chore/plugin-kit-0.3.1 2026-08-06 19:06:34 +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-heroic#2