Tell people where the .pext comes from, and cut real releases so there is somewhere to send them (0.4.3) #5

Merged
enricobuehler merged 1 commits from feat/pext-discovery-and-releases into main 2026-08-14 16:07:48 +00:00
1 Commits
Author SHA1 Message Date
enricobuehler 7409b21494 feat: tell people where the .pext comes from, and cut real releases so there is somewhere to send them (0.4.3)
CI / build (pull_request) Successful in 45s
CI / exporter (pull_request) Successful in 37s
CI / publish (pull_request) Skipped
The first-run screen said "double-click punktfunk-sync.pext" and stopped
there — no hint the file is a download, let alone where from. Nothing in the
console linked to it on any screen. The only copy that existed was in the
README, and it pointed at the repo's Actions tab: sign in to Gitea, find the
newest run, download a zip artifact, unzip it. That is not a download link,
and it is not something a user discovers.

(The README of the very first commit did promise the console "can also deploy
the exporter for you", dropping the extension into %APPDATA%\Playnite\
Extensions\. No commit ever implemented it — `git grep -i deploy` finds that
sentence and nothing else — and the claim was later deleted. So there is no
lost capability here to restore; the discoverability gap has been there since
day one.)

Two halves to the fix, because a link needs somewhere to point:

- **Real releases.** A `v*` tag now creates a Gitea release with the freshly
  built `punktfunk-sync.pext` attached, plus a `.sha256` sidecar so the
  download can be verified, and a body that carries the install instructions —
  that page is now the destination for every "where do I get this" link, so it
  has to answer on its own. `scripts/ci/gitea-release.sh` is a trimmed sibling
  of the monorepo helper, carrying over its two hard-won behaviours: a plain
  asset POST 409s on a duplicate name (so re-running a tag fails after
  publishing fine), and every asset gets a checksum sidecar.

  The branch-build artifact stays, for testing an unreleased exporter. It is
  just no longer where users are sent.

- **Links in the console.** Overview's first-run state and the Library empty
  state both grow a "Download punktfunk-sync.pext" button pointing at
  /releases/latest. Gitea serves that as a 303 to the current tag; it has no
  GitHub-style /releases/latest/download/<file> route (that 404s), so this
  lands on the page rather than faking a direct file link that would break the
  moment it was clicked. The console frames plugin UIs cross-origin with
  `allow-popups`, so a new tab is the one navigation that works from in there.

Also surfaces the `launcher` toggle in Settings. It was config-file-only,
which made it a dead end: a host that cannot open Playnite's Fullscreen app
refuses that tile, and until the host learned to drop just the tile, that
refusal cost the entire library. The escape hatch existed and nobody could
find it.
2026-08-14 15:39:54 +02:00