fix(release): quote $HOME, not ~, in the push-approval token command

`~` inside double quotes is not expanded, so the documented command's
touch targeted a literal ./~/... path and failed; the token never reached
$HOME and the gate kept refusing. Comment-only in release-plugin.mjs
(the script's own error message already printed the right path); the same
line in CLAUDE.md is fixed too. Reported by voyage (release drill 08.10).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-11-03 17:26:48 +01:00
commit 62b46f79a4
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
2 changed files with 2 additions and 2 deletions

View file

@ -160,7 +160,7 @@ their own Forgejo repositories under `https://git.fromaitochitta.com/open/`.
text and cannot see a push this script issues via `execFileSync` inside node — the script
mints+pushes a plugin tag and pushes the catalog itself, both invisible to that gate. So
before either push, run:
`mkdir -p ~/.claude/runtime/push-approvals && touch "~/.claude/runtime/push-approvals/$(pwd | sed 's|/|_|g')"`
`mkdir -p "$HOME/.claude/runtime/push-approvals" && touch "$HOME/.claude/runtime/push-approvals/$(pwd | sed 's|/|_|g')"`
(`pwd` must be this catalog directory — tag-push and catalog-push share ONE token, one
publish from the operator's perspective). The script consumes the token itself right after
a push succeeds, the same way `post-push-consume.sh` does for a direct push; the token stays

View file

@ -30,7 +30,7 @@
// push` in command text and cannot see a push this script issues via execFileSync
// inside node — so `--create-tag --write` and `--push` each REFUSE unless the operator
// has left the approval token first:
// mkdir -p ~/.claude/runtime/push-approvals && touch "~/.claude/runtime/push-approvals/$(pwd | sed 's|/|_|g')"
// mkdir -p "$HOME/.claude/runtime/push-approvals" && touch "$HOME/.claude/runtime/push-approvals/$(pwd | sed 's|/|_|g')"
// The token is scoped to ONE SCRIPT INVOCATION (createPushGate, below) and is consumed as
// soon as any push THAT INVOCATION makes succeeds — the run-scoped gate exists so the tag
// push and the catalog push inside a SINGLE combined `--create-tag --write --commit --push`