Skip to content

ci(publish): handle release-please prefixed tags (wallet-v<semver>)#23

Merged
eskp merged 1 commit intomainfrom
fix/publish-workflow-prefixed-tag-version
May 2, 2026
Merged

ci(publish): handle release-please prefixed tags (wallet-v<semver>)#23
eskp merged 1 commit intomainfrom
fix/publish-workflow-prefixed-tag-version

Conversation

@eskp
Copy link
Copy Markdown
Contributor

@eskp eskp commented May 2, 2026

Summary

  • The Publish workflow trigger was widened in 76be751 to fire on wallet-v* tags, but the version-strip line TAG_VERSION=\"\${REF_NAME#v}\" was left untouched. That strip only removes a leading v, so REF_NAME=wallet-v0.1.9 produces TAG_VERSION=wallet-v0.1.9 (no-op), the guard compares it against package.json 0.1.9, and the publish fails with Tag version (wallet-v0.1.9) does not match package.json version (0.1.9).
  • Net effect: the wallet release for the chain-mismatch + hook-passthrough fixes (PR fix(skill-install): resolve hook command at install time so npx flow works #20, fix(hook): pass through MCP calls with no payment shape (KEEP-392) #21 merged 2026-05-01) tagged a v0.1.9 release on GitHub but never made it to npm. Users on npm install @keeperhub/wallet are still pulling 0.1.8.
  • Fix: strip the longest X-v prefix first, then any remaining leading v. Both legacy v0.1.9 and release-please wallet-v0.1.9 tags now resolve to 0.1.9. Pure shell parameter expansion against the existing REF_NAME env var — no \${{ }} expansion in the script body, no new untrusted input surface.

Repro

  • Failed run: https://github.com/KeeperHub/agentic-wallet/actions/runs/25205203054 (22s, exit 1 on the version guard)
  • After merging this PR, recover the missed release with either: (a) re-run the failed Publish workflow on the existing wallet-v0.1.9 tag, or (b) push an empty commit to main so release-please cuts a wallet-v0.1.10 and the publish workflow re-fires.

Test plan

  • Verified locally: REF_NAME=wallet-v0.1.9TAG_VERSION=0.1.9; REF_NAME=v0.1.9TAG_VERSION=0.1.9; REF_NAME=v0.1.10TAG_VERSION=0.1.10. All match the corresponding package.json version.
  • Workflow re-run after merge confirms publish succeeds.

Commit 76be751 widened the publish trigger to fire on wallet-v* tags but
left the version strip as TAG_VERSION="${REF_NAME#v}". That only strips a
leading 'v', so when REF_NAME=wallet-v0.1.9 the strip is a no-op,
TAG_VERSION ends up as the literal 'wallet-v0.1.9', and the guard fails:

  Tag version (wallet-v0.1.9) does not match package.json version (0.1.9)

The workflow run for wallet-v0.1.9 (run id 25205203054) hit this failure
22s after PR #22 merged, so the wallet release for the chain-mismatch +
hook-passthrough fixes never made it to npm. Users still pulled 0.1.8.

Strip the longest 'X-v' prefix first, then any remaining leading 'v', so
both legacy tags (v0.1.9) and release-please component tags
(wallet-v0.1.9) extract the right semver. Pure shell parameter expansion
with no untrusted input — REF_NAME is the already-validated github.ref_name
env var.

Re-cutting the v0.1.9 release on top of this fix is a one-liner: re-run
the failed Publish workflow on the existing tag, or push an empty commit
on top to bump release-please to v0.1.10.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant