From 0e4e1d216957f8a7f1f37fdf250d59b9bb6a0fe0 Mon Sep 17 00:00:00 2001
From: 4gray <4gray@users.noreply.github.com>
Date: Sat, 26 Sep 2026 17:13:13 +0200
Subject: [PATCH] chore(release): begin 0.25 development and publish 0.24
article (#1674)
---
.claude/skills/release-cut/SKILL.md | 11 ++---
.codex/skills/release-cut/SKILL.md | 11 ++---
CHANGELOG.md | 8 +++-
apps/web/src/index.html | 5 +--
apps/website/README.md | 15 ++++---
apps/website/astro.config.mjs | 13 ++----
apps/website/released-version.json | 3 ++
.../src/content/blog/v0-24-release-notes.mdx | 14 ++++---
apps/website/src/env.d.ts | 8 +---
apps/website/src/lib/downloads.ts | 18 ++++----
docs/architecture/release-pipeline.md | 9 +++-
package.json | 2 +-
tools/testing/website-download-pages.test.mjs | 41 ++++++++++++++++++-
13 files changed, 102 insertions(+), 56 deletions(-)
create mode 100644 apps/website/released-version.json
diff --git a/.claude/skills/release-cut/SKILL.md b/.claude/skills/release-cut/SKILL.md
index 9a2b15540..5b3d7a517 100644
--- a/.claude/skills/release-cut/SKILL.md
+++ b/.claude/skills/release-cut/SKILL.md
@@ -73,11 +73,12 @@ the complete 27-asset set documented in `docs/architecture/release-pipeline.md`.
It is read-only, and fails on an already-published release. Still review the
authored text and generated commits by eye.
-After verification, manually publish the GitHub release. That publication
-automatically verifies its Snap assets and uploads them to `edge`.
-Installed-Snap smoke and candidate/stable promotion remain manual. Keep the
-blog draft during artifact verification; publish it in a follow-up commit and
-verify the website deployment.
+Manually publish the release; this verifies and uploads Snaps
+to `edge`. Installed-Snap smoke and candidate/stable promotion stay manual.
+After public-asset verification, publish the draft blog and update
+`apps/website/released-version.json` to the published version together.
+Follow the release pipeline's offline-download checks and verify deployment;
+never use the development/nightly version for this pin.
## Failure Safety
diff --git a/.codex/skills/release-cut/SKILL.md b/.codex/skills/release-cut/SKILL.md
index 9a2b15540..5b3d7a517 100644
--- a/.codex/skills/release-cut/SKILL.md
+++ b/.codex/skills/release-cut/SKILL.md
@@ -73,11 +73,12 @@ the complete 27-asset set documented in `docs/architecture/release-pipeline.md`.
It is read-only, and fails on an already-published release. Still review the
authored text and generated commits by eye.
-After verification, manually publish the GitHub release. That publication
-automatically verifies its Snap assets and uploads them to `edge`.
-Installed-Snap smoke and candidate/stable promotion remain manual. Keep the
-blog draft during artifact verification; publish it in a follow-up commit and
-verify the website deployment.
+Manually publish the release; this verifies and uploads Snaps
+to `edge`. Installed-Snap smoke and candidate/stable promotion stay manual.
+After public-asset verification, publish the draft blog and update
+`apps/website/released-version.json` to the published version together.
+Follow the release pipeline's offline-download checks and verify deployment;
+never use the development/nightly version for this pin.
## Failure Safety
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ad49538cf..3e0e17385 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -11,7 +11,7 @@ this marker — see `.changes/README.md`.
-# [0.24.0](https://github.com/4gray/iptvnator/compare/v0.23.0...v0.24.0) (2026-09-21)
+# [0.24.0](https://github.com/4gray/iptvnator/compare/v0.23.0...v0.24.0) (2026-09-24)

@@ -40,7 +40,11 @@ Before updating, back up your playlists and important data. Desktop startup appl
## Thanks
-Thank you to [@Bpl5966](https://github.com/Bpl5966) for MPV reconnects and extra options ([#1515](https://github.com/4gray/iptvnator/pull/1515)), [@mark-jardine](https://github.com/mark-jardine) for the EPG time offset ([#1489](https://github.com/4gray/iptvnator/pull/1489)), and [@larsemig](https://github.com/larsemig) for stream information ([#1578](https://github.com/4gray/iptvnator/pull/1578)). A warm thank-you to everyone who reported issues, tested builds, helped in the [Telegram community](https://t.me/iptvnator), or supported development. 💙
+Thank you to [@Bpl5966](https://github.com/Bpl5966) for MPV reconnects and extra options ([#1515](https://github.com/4gray/iptvnator/pull/1515)), [@mark-jardine](https://github.com/mark-jardine) for the EPG time offset ([#1489](https://github.com/4gray/iptvnator/pull/1489)), and [@larsemig](https://github.com/larsemig) for stream information ([#1578](https://github.com/4gray/iptvnator/pull/1578)).
+
+Thank you also to [@thejdubb02](https://github.com/thejdubb02) for the original zoom-persistence, Turkish-search and Xtream EPG-refresh fixes ([#1613](https://github.com/4gray/iptvnator/pull/1613), [#1612](https://github.com/4gray/iptvnator/pull/1612), [#1610](https://github.com/4gray/iptvnator/pull/1610)). This work was incorporated and extended in [#1617](https://github.com/4gray/iptvnator/pull/1617), [#1640](https://github.com/4gray/iptvnator/pull/1640) and [#1647](https://github.com/4gray/iptvnator/pull/1647), with his co-authorship preserved.
+
+A warm thank-you to everyone who reported issues, tested builds, helped in the [Telegram community](https://t.me/iptvnator), or supported development. 💙
If IPTVnator is useful to you, you can help keep it moving through [GitHub Sponsors](https://github.com/sponsors/4gray) or [Ko-fi](https://ko-fi.com/4gray).
diff --git a/apps/web/src/index.html b/apps/web/src/index.html
index a70a34f96..508eb3c9b 100644
--- a/apps/web/src/index.html
+++ b/apps/web/src/index.html
@@ -26,10 +26,7 @@