ci(publish): attach checksums.txt to releases#207
Conversation
The release workflow uploads relayfile-mount + relayfile-cli binaries but stopped publishing checksums.txt (regressed from the old goreleaser layout). agent-relay's relayfile-binary.ts verifyChecksum() is mandatory — it downloads checksums.txt from the release tag and throws on 404 — so consumers pinning a v0.7.x mount-daemon tag cannot install (the cloud Daytona persona path is stuck on v0.1.6 for exactly this reason). Generate + attach checksums.txt (basename entries, matching the downstream parser) on every release to restore the supply-chain-verification contract. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
📝 WalkthroughWalkthroughThe publish workflow now generates and uploads a ChangesRelease Checksum Generation
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
.github/workflows/publish.yml (1)
433-443: ⚡ Quick winConsider verifying CLI binaries presence for consistency.
The mount binaries are explicitly verified in lines 421-431 with clear error messages, but the CLI binaries in
packages/cli/binare not verified before checksumming. While the step will fail if they're missing (due toset -euo pipefail), an explicit verification would provide clearer error messages and maintain consistency with the mount binary handling pattern.📋 Suggested verification step
Add a verification step after line 431:
chmod +x mount-binaries/relayfile-mount-* + - name: Verify CLI binaries present + run: | + set -euo pipefail + if [ ! -d "packages/cli/bin" ]; then + echo "ERROR: packages/cli/bin directory missing" + exit 1 + fi + ls -la packages/cli/bin/ + if ! ls packages/cli/bin/relayfile-cli-* >/dev/null 2>&1; then + echo "ERROR: No relayfile-cli-* binaries found in packages/cli/bin" + exit 1 + fi + - name: Generate checksums🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/workflows/publish.yml around lines 433 - 443, The Generate checksums step omits an explicit existence check for CLI binaries (packages/cli/bin relayfile-cli-*), unlike the mount-binaries verification; add a pre-check before running sha256sum that verifies at least one relayfile-cli-* exists (e.g., using a shell test or ls pattern) and emit a clear error message and non-zero exit if missing so the failure is explicit and consistent with the mount binary verification block.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In @.github/workflows/publish.yml:
- Around line 433-443: The Generate checksums step omits an explicit existence
check for CLI binaries (packages/cli/bin relayfile-cli-*), unlike the
mount-binaries verification; add a pre-check before running sha256sum that
verifies at least one relayfile-cli-* exists (e.g., using a shell test or ls
pattern) and emit a clear error message and non-zero exit if missing so the
failure is explicit and consistent with the mount binary verification block.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 7da65085-511a-4ce8-831c-b9c04548a06d
📒 Files selected for processing (1)
.github/workflows/publish.yml
What
Generate + attach
checksums.txtto every release inpublish.yml(basename entries for relayfile-mount-* + relayfile-cli-*).Why
The release workflow uploads the binaries but stopped publishing
checksums.txt(regressed from the old goreleaser layout — v0.1.6 had it, no v0.7.x does). agent-relay'srelayfile-binary.tsverifyChecksum()is mandatory — it downloadschecksums.txtfrom the release tag and throws on 404. So any consumer pinning a v0.7.x relayfile-mount tag can't install the daemon → the cloud Daytona persona path is stuck on v0.1.6, which predates the workspace-export 413→paginate fallback (v0.7.33/#195) + scoped mount paths (v0.7.39/#206). That's the root blocker for AgentWorkforce/cloud#1028.Robust, not a point-fix
Restores the supply-chain-verification contract (keeps verification mandatory) so every future release works — not just a one-off backfill of v0.7.39.
🤖 Generated with Claude Code