From 9da35726afdccb789d9a34ee1fcfcfed28935d54 Mon Sep 17 00:00:00 2001 From: RealZST Date: Tue, 16 Jun 2026 22:01:07 +0300 Subject: [PATCH 1/2] fix(badges): serve release badge via shields endpoint, cache downloads badge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The README release and downloads badges use shields.io's dynamic GitHub-API endpoints, which intermittently fail with "Unable to select next GitHub token from pool" when shields' shared token pool is rate-limited (the static badges on the same line never fail). Render the release badge via shields' endpoint type backed by .github/badges/release.json, which a new workflow updates on 'release: published' — so it never calls the GitHub API at render time. Add cacheSeconds=86400 to the downloads badge to cut its exposure to the same error. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/badges/release.json | 6 +++ .github/workflows/update-release-badge.yml | 58 ++++++++++++++++++++++ README.md | 4 +- README.zh-CN.md | 4 +- 4 files changed, 68 insertions(+), 4 deletions(-) create mode 100644 .github/badges/release.json create mode 100644 .github/workflows/update-release-badge.yml diff --git a/.github/badges/release.json b/.github/badges/release.json new file mode 100644 index 00000000..8c99b535 --- /dev/null +++ b/.github/badges/release.json @@ -0,0 +1,6 @@ +{ + "schemaVersion": 1, + "label": "release", + "message": "v1.6.1", + "color": "brightgreen" +} diff --git a/.github/workflows/update-release-badge.yml b/.github/workflows/update-release-badge.yml new file mode 100644 index 00000000..c0a1119a --- /dev/null +++ b/.github/workflows/update-release-badge.yml @@ -0,0 +1,58 @@ +name: Update Release Badge + +# Keeps .github/badges/release.json in sync with the latest published release. +# The README renders the release badge via shields.io's `endpoint` type, which +# reads this committed JSON instead of calling the GitHub API live — avoiding +# shields.io's intermittent "Unable to select next GitHub token from pool" +# failures on the dynamic github/v/release badge. +on: + release: + types: [published] + workflow_dispatch: + +permissions: + contents: write + +jobs: + update-badge: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: main + + - name: Resolve latest release tag + id: tag + env: + GH_TOKEN: ${{ github.token }} + run: | + if [ "${{ github.event_name }}" = "release" ]; then + VERSION="${{ github.event.release.tag_name }}" + else + VERSION="$(gh release view --json tagName -q .tagName)" + fi + echo "version=${VERSION}" >> "$GITHUB_OUTPUT" + + - name: Write badge JSON + run: | + mkdir -p .github/badges + cat > .github/badges/release.json <

- Latest Release - Total Downloads + Latest Release + Total Downloads License Platform

diff --git a/README.zh-CN.md b/README.zh-CN.md index 320761b3..aaff7ec9 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -14,8 +14,8 @@

- Latest Release - Total Downloads + Latest Release + Total Downloads License Platform

From e30042f4127cdc23e085668a07e7a5c4a1c26b7a Mon Sep 17 00:00:00 2001 From: RealZST Date: Tue, 16 Jun 2026 22:01:07 +0300 Subject: [PATCH 2/2] fix(updater): correct release-notes heading hierarchy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ChangelogMarkdown only overrode h2 (small/gray) and let h3 fall through to the browser default (large/bold), inverting the heading hierarchy in the in-app updater dialog — top-level ## sections looked smaller than their ### children. Make h2 the prominent heading and h3 the subdued subheading. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/components/layout/changelog-markdown.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/components/layout/changelog-markdown.tsx b/src/components/layout/changelog-markdown.tsx index 9848e648..8f1158c3 100644 --- a/src/components/layout/changelog-markdown.tsx +++ b/src/components/layout/changelog-markdown.tsx @@ -11,11 +11,19 @@ const components = { {children} ), + // Restore visual hierarchy: release notes use `## Section` (top level) and + // `### Subsection`. Without an h3 override, h2 rendered small/gray while h3 + // fell through to the browser default (large/bold), inverting the hierarchy. h2: ({ children }: { children?: React.ReactNode }) => ( -

+

{children}

), + h3: ({ children }: { children?: React.ReactNode }) => ( +
+ {children} +
+ ), ul: ({ children }: { children?: React.ReactNode }) => (
    {children}