From 7034d87e471dd73705b4463f12137fcc5709cd8b Mon Sep 17 00:00:00 2001 From: fadeltd Date: Fri, 25 Sep 2026 14:43:22 +0700 Subject: [PATCH] Pass release notes via env; add changelog for HTML to Text The Release workflow interpolated the notes into the gh command with ${{ }}, so backticks in the changelog ran as command substitution. The v0.2.3 run died after pushing its tag, leaving no GitHub release and no deploy. Also records HTML to Text under [Unreleased] (PR #5 shipped without an entry, so its merge released nothing) and ignores tmp/. --- .github/workflows/release.yml | 10 +++++++--- .gitignore | 1 + CHANGELOG.md | 14 +++++++++++++- 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 58482d7..ac719a4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -76,14 +76,18 @@ jobs: git push origin "${TAG}" fi + # The notes go through env, never through ${{ }} in the script. Expression + # substitution pastes the text into the script BEFORE bash parses it, so + # every backtick in the changelog (`display: flex`) was run as a command + # and the step died -- after the tag was pushed, so Deploy never started. - name: Create the GitHub release if: steps.cut.outputs.released == 'true' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + TAG: ${{ steps.cut.outputs.tag }} + NOTES: ${{ steps.cut.outputs.notes }} run: | - gh release create "${{ steps.cut.outputs.tag }}" \ - --title "${{ steps.cut.outputs.tag }}" \ - --notes "${{ steps.cut.outputs.notes }}" \ + gh release create "$TAG" --title "$TAG" --notes "$NOTES" \ || echo "::notice::Release already exists." # Always dispatch, unconditionally. diff --git a/.gitignore b/.gitignore index 7306d56..2190ff0 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ dist/ # Planning docs stay local: direction and the task board are not published. # They exist in the working tree, just not in the repo. +tmp ROADMAP.md TODO.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 3270ce5..870cb6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,19 @@ this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [Unreleased] -Nothing yet. +### Added +- HTML to Text: paste HTML and get readable plain text back. Paragraphs, lists + and tables keep their structure; `script`, `style`, `head`, `svg`, hidden + elements and icon ligatures (`role="img"`) are dropped, and entities are + decoded. Link URLs and class-based hidden detection (`.hidden`, `.sr-only`) + are optional toggles. + +### Fixed +- v0.2.3 was tagged but never released or deployed. The Release workflow + pasted the changelog notes straight into a shell command, so the backticks in + them were executed as command substitution and the step failed after the tag + had been pushed, skipping Deploy. The notes are now passed through an + environment variable. This release ships the 0.2.3 fixes as well. ## [0.2.3] — 2026-09-24