diff --git a/scripts/publish-agent.sh b/scripts/publish-agent.sh old mode 100644 new mode 100755 diff --git a/scripts/release-agent.sh b/scripts/release-agent.sh index ff39876..4b55d2d 100755 --- a/scripts/release-agent.sh +++ b/scripts/release-agent.sh @@ -98,7 +98,13 @@ git push origin "$TAG" || die "tag push failed — refusing to publish an untagg # ── 5. Publish (the existing script; deliberately not reimplemented) ──────────────────────────── log "publishing …" -"$REPO_ROOT/scripts/publish-agent.sh" "$VERSION" "$BIN" || die "publish failed" +# Invoked through `bash` DELIBERATELY, not as an executable. On 2026-08-03 the first real release +# through this script died here — `publish-agent.sh` has been mode 0644 since it was created on +# 2026-06-28, because every earlier caller ran it as `bash scripts/publish-agent.sh`. So the one leg +# R-115 exists to make unforgettable was, on its first use, unrunnable. The mode bit is restored in +# the same commit; this line makes the release independent of it, because a file mode is exactly the +# kind of thing that is lost again by a checkout, an archive, or a copy. +bash "$REPO_ROOT/scripts/publish-agent.sh" "$VERSION" "$BIN" || die "publish failed" # ── 6. Verify by an INDEPENDENT download ──────────────────────────────────────────────────────── # The publish step's own success is not proof: it reports on its own write. What matters is that a