fix: preserve alarms and harden v0.3.3 release#63
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 34f87e81f4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| actual_assets = [asset.get("name") for asset in assets if isinstance(asset, dict)] | ||
| if sorted(actual_assets) != sorted(expected_assets) or len(actual_assets) != len(expected_assets): | ||
| raise SystemExit(f"published release asset inventory changed: {actual_assets!r}") |
There was a problem hiding this comment.
Verify asset identities after publication
When a draft asset is replaced with the same filename after the final metadata proof but before or during the draft=false PATCH, this check still accepts the publish response because it only compares asset names. That can make the helper publish different asset IDs/sizes/digests than the verified release-proof.json, leaving the now-public release to be caught only by the later verifier instead of failing closed before users can download it.
Useful? React with 👍 / 👎.
Summary
Root cause
Due-date updates implicitly rewrote alarms, while the shared alarm replacement path removed every alarm without distinguishing absolute, relative, or structured-location entries.
Validation
make formatmake check— 73 tests in 22 suites; 91.2% RemindCore coveragemake release-check TAG=v0.3.3make docs-siteNo signing, notarization, release publication, Homebrew mutation, secret retrieval, or VM action was performed.