chore(release): prepare v0.3.0 #45

Merged
jlxq0 merged 1 commit from release-v0.3.0 into main 2026-09-06 01:06:31 +00:00
Owner

Cuts v0.3.0, carrying delete_occurrence and the xff_scopes field.

The release record claims a property it does not have

AGENTS.md:121 and CHANGELOG.md both describe this repo's tags as signed. They are not:

git tag -v v0.2.0   prints the tag object, verifies nothing
git tag -v v0.2.1   same
git tag -v v0.2.2   same

All three are annotated and unsigned. Anyone checking the release record's provenance, which is the reason to write "signed" in the first place, would find nothing to check.

Signing only v0.3.0 would leave the claim false for the other three, so both files now say which tags are signed and which are not. The old three are not re-cut: forcing a ref an image already points at makes it briefly ambiguous which image it names, and that is the worse trade for a record nobody has relied on yet.

What ships

xff_scopes is one token per X-Forwarded-For entry, in order, never an address. It settles trusted_proxy_hops here and three constants elsewhere, and the CHANGELOG entry carries the caveat that public means "not one of the private scopes" rather than "routable", so CGNAT and the documentation ranges land in it as recoverable false positives.

oddie-apps/infrastructure#65 comment 19362 has the same caveat, written before the data arrives rather than alongside it.

Cuts `v0.3.0`, carrying `delete_occurrence` and the `xff_scopes` field. ### The release record claims a property it does not have `AGENTS.md:121` and `CHANGELOG.md` both describe this repo's tags as **signed**. They are not: git tag -v v0.2.0 prints the tag object, verifies nothing git tag -v v0.2.1 same git tag -v v0.2.2 same All three are annotated and unsigned. Anyone checking the release record's provenance, which is the reason to write "signed" in the first place, would find nothing to check. Signing only `v0.3.0` would leave the claim false for the other three, so both files now say which tags are signed and which are not. **The old three are not re-cut**: forcing a ref an image already points at makes it briefly ambiguous which image it names, and that is the worse trade for a record nobody has relied on yet. ### What ships `xff_scopes` is one token per `X-Forwarded-For` entry, in order, never an address. It settles `trusted_proxy_hops` here and three constants elsewhere, and the `CHANGELOG` entry carries the caveat that `public` means "not one of the private scopes" rather than "routable", so CGNAT and the documentation ranges land in it as recoverable false positives. `oddie-apps/infrastructure#65` comment 19362 has the same caveat, written before the data arrives rather than alongside it.
chore(release): prepare v0.3.0
All checks were successful
CI / cargo (pull_request) Successful in 1m20s
CI / docker (pull_request) Successful in 58s
fd279c677f
Adds delete_occurrence and the xff_scopes field on the forwarded-for line.

Also corrects a claim both AGENTS.md and CHANGELOG.md have been making: they
describe this repo's tags as signed and v0.2.0, v0.2.1 and v0.2.2 are annotated
and unsigned. git tag -v on each prints the tag object and verifies nothing, so
anyone checking the release record's provenance would find nothing to check.

Tags from v0.3.0 are signed and the two files now say which are and which are
not. The old three are left alone: forcing a ref an image already points at
makes it briefly ambiguous which image it names, which is the worse trade for a
record nobody has relied on yet.
jlxq0 merged commit 332a98ba57 into main 2026-09-06 01:06:31 +00:00
jlxq0 deleted branch release-v0.3.0 2026-09-06 01:06:32 +00:00
jlxq0 referenced this pull request from a commit 2026-09-06 01:06:32 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
jlxq0/caldav-mcp!45
No description provided.