From 8358e78e7f012f829e48141363004c01e8e4de5d Mon Sep 17 00:00:00 2001 From: Michael Ramos Date: Fri, 23 Oct 2026 14:35:58 -0400 Subject: [PATCH 1/2] release: ship the annotation editor in helper 0.2.2; plugin 0.9.3 #73 added `e` to edit a saved annotation in the manager, but the change lives in rust/, and installs download the helper pinned by herdr-annotate.version. rust-lite-v0.2.1 was built before #73, so the new manifest description and README key were live while `e` did nothing. Bumping the helper to 0.2.2 lets a rust-lite-v0.2.2 release carry the editor, and the new pin makes existing installs fetch it. --- herdr-annotate.version | 2 +- herdr-plugin.toml | 2 +- links/herdr-plugin.toml | 2 +- lite/herdr-plugin.toml | 2 +- rust/Cargo.lock | 2 +- rust/Cargo.toml | 2 +- scripts/test-windows-full-manifest.py | 4 ++-- windows-full/herdr-plugin.toml | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/herdr-annotate.version b/herdr-annotate.version index 0c62199..ee1372d 100644 --- a/herdr-annotate.version +++ b/herdr-annotate.version @@ -1 +1 @@ -0.2.1 +0.2.2 diff --git a/herdr-plugin.toml b/herdr-plugin.toml index 08de372..0bd8c06 100644 --- a/herdr-plugin.toml +++ b/herdr-plugin.toml @@ -1,6 +1,6 @@ id = "annotate" name = "Annotate" -version = "0.9.2" +version = "0.9.3" min_herdr_version = "0.8.0" description = "Comment on terminal selections and copy annotations as agent context." platforms = ["linux", "macos", "windows"] diff --git a/links/herdr-plugin.toml b/links/herdr-plugin.toml index 60520f4..59963b7 100644 --- a/links/herdr-plugin.toml +++ b/links/herdr-plugin.toml @@ -15,7 +15,7 @@ id = "annotate-links" name = "Annotate Links" -version = "0.9.2" +version = "0.9.3" min_herdr_version = "0.8.0" description = "Open Ctrl-clicked file:// Markdown links in Annotate (needs the Annotate Full plugin)." platforms = ["linux", "macos", "windows"] diff --git a/lite/herdr-plugin.toml b/lite/herdr-plugin.toml index ff14d7e..7f11d87 100644 --- a/lite/herdr-plugin.toml +++ b/lite/herdr-plugin.toml @@ -8,7 +8,7 @@ id = "annotate" name = "Annotate" -version = "0.9.2" +version = "0.9.3" min_herdr_version = "0.8.0" description = "Comment on terminal selections and copy annotations as agent context." platforms = ["linux", "macos", "windows"] diff --git a/rust/Cargo.lock b/rust/Cargo.lock index 5eddcfd..2833e39 100644 --- a/rust/Cargo.lock +++ b/rust/Cargo.lock @@ -505,7 +505,7 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "herdr-annotate" -version = "0.2.1" +version = "0.2.2" dependencies = [ "chrono", "ratatui", diff --git a/rust/Cargo.toml b/rust/Cargo.toml index a96ef28..af4e3ac 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "herdr-annotate" -version = "0.2.1" +version = "0.2.2" edition = "2024" rust-version = "1.96" license = "MIT" diff --git a/scripts/test-windows-full-manifest.py b/scripts/test-windows-full-manifest.py index 49ffbb8..5e4f096 100644 --- a/scripts/test-windows-full-manifest.py +++ b/scripts/test-windows-full-manifest.py @@ -185,8 +185,8 @@ def check_distributed(path: Path, version_path: Path, native_version_path: Path) check_native_lite(path, manifest) if version_path.read_text(encoding="utf-8").strip() != "0.9.4": fail(version_path, "plannotator-tui.version is not 0.9.4") - if native_version_path.read_text(encoding="utf-8").strip() != "0.2.1": - fail(native_version_path, "herdr-annotate.version is not 0.2.1") + if native_version_path.read_text(encoding="utf-8").strip() != "0.2.2": + fail(native_version_path, "herdr-annotate.version is not 0.2.2") build_entries = builds(path, manifest) if len(build_entries) != 3: diff --git a/windows-full/herdr-plugin.toml b/windows-full/herdr-plugin.toml index be8eb42..b60e496 100644 --- a/windows-full/herdr-plugin.toml +++ b/windows-full/herdr-plugin.toml @@ -21,7 +21,7 @@ id = "annotate" name = "Annotate" -version = "0.9.2" +version = "0.9.3" min_herdr_version = "0.9.0" description = "Comment on terminal selections and copy annotations as agent context." platforms = ["windows"] From 6afba966850623ff4d2246b3e094137f7d10af9d Mon Sep 17 00:00:00 2001 From: Michael Ramos Date: Fri, 23 Oct 2026 14:35:58 -0400 Subject: [PATCH 2/2] ci: fail when rust/ changes without a helper version bump Installs fetch the released helper, so a rust/ change that keeps herdr-annotate.version unchanged never reaches users (#74, #73). The new helper-version job diffs rust/ against rust-lite-v and fails when they differ. A version with no tag yet counts as bumped, so release branches pass before their tag is pushed. --- .github/workflows/rust-lite-ci.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/rust-lite-ci.yml b/.github/workflows/rust-lite-ci.yml index 965e750..9f47548 100644 --- a/.github/workflows/rust-lite-ci.yml +++ b/.github/workflows/rust-lite-ci.yml @@ -24,6 +24,34 @@ permissions: contents: read jobs: + helper-version: + # Installs download the released helper pinned by herdr-annotate.version, + # so a rust/ change only reaches users after a version bump and release. + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: rust/ changes come with a helper version bump + run: | + version=$(tr -d '[:space:]' < herdr-annotate.version) + tag="rust-lite-v$version" + if [ -z "$(git tag -l 'rust-lite-v*')" ]; then + echo "::error::no rust-lite-v* tags fetched; cannot compare rust/ with the released helper" + exit 1 + fi + if ! git rev-parse -q --verify "refs/tags/$tag" > /dev/null; then + echo "$tag is not released yet; treating herdr-annotate.version as bumped" + exit 0 + fi + if ! git diff --quiet "$tag" HEAD -- rust/; then + git diff --stat "$tag" HEAD -- rust/ + echo "::error::rust/ differs from $tag but herdr-annotate.version is still $version. Bump the helper version (herdr-annotate.version, rust/Cargo.toml, rust/Cargo.lock) so the change ships in a release." + exit 1 + fi + echo "rust/ matches $tag" + check: runs-on: ubuntu-latest timeout-minutes: 15