What's Changed
- Bump actions/checkout from 5 to 7 in the actions group by @dependabot[bot] in #1
- Add repository-local SwiftFormat configuration by @adamtheturtle in #18
- Recover abandoned claims despite conflicting pending paths by @adamtheturtle in #81
- Give multiprocess test workers isolated namespaces by @adamtheturtle in #100
- Decode only envelope timestamps when listing pending files by @adamtheturtle in #99
- Fix idempotent enqueue Darwin notifications by @adamtheturtle in #70
- Emit diagnostic when quarantine retention is disabled by @adamtheturtle in #90
- Add ordinalExhausted for ordinal overflow by @adamtheturtle in #74
- Keep idempotent enqueue stable across malformed and quarantined IDs by @adamtheturtle in #71
- Align capacity counting with claimable pending filenames by @adamtheturtle in #72
- Reject claimPending(limit: 0) by @adamtheturtle in #73
- Reject dot-only mailbox namespaces by @adamtheturtle in #75
- Cap maxPayloadBytes and harden safeData arithmetic by @adamtheturtle in #76
- Make MailboxError Hashable and LocalizedError by @adamtheturtle in #77
- Harden claim rollback, release conflicts, and transient reads by @adamtheturtle in #78
- Fail closed when activeMessageCount cannot read file metadata by @adamtheturtle in #79
- Quarantine expired malformed messages with the correct diagnostic by @adamtheturtle in #80
- Document notifications, security filename rules, and 0.2.x changelog by @adamtheturtle in #82
- Require exact 20-digit ordinals in pending filename parsing by @adamtheturtle in #83
- Surface deletion failures in expiry cleanup and quarantine trim by @adamtheturtle in #84
- Count hard-linked mailbox files once toward capacity by @adamtheturtle in #85
- Remove orphan pending and claimed directories during maintenance by @adamtheturtle in #86
- Notify consumers when expired messages are removed by @adamtheturtle in #87
- Defer diagnostic callbacks until after releasing the mailbox lock by @adamtheturtle in #88
- Add Claim.renew() and weak mailbox references by @adamtheturtle in #89
- Quarantine malformed pending files during maintenance by @adamtheturtle in #91
- Use fixed-width quarantine timestamps by @adamtheturtle in #92
- Use Unix-second envelope date encoding by @adamtheturtle in #93
- Raise SwiftLint length limits for nested mailbox types by @adamtheturtle in #103
- Document non-Darwin notifications and notify on discardOldest by @adamtheturtle in #94
- Report unclaimable files when rejectNewest fails by @adamtheturtle in #95
- Guard envelopes with schema version and message type by @adamtheturtle in #96
- Allocate 21-digit pending ordinals by @adamtheturtle in #97
- Raise SwiftLint limits for nested mailbox types by @adamtheturtle in #104
- Decode only envelope timestamps during maintenance by @adamtheturtle in #98
- Malformed overflow detection weakened by @adamtheturtle in #129
- Claimed files trigger unclaimable diagnostic by @adamtheturtle in #118
- Diagnostic fires under lock by @adamtheturtle in #119
- Old envelopes misread after upgrade by @adamtheturtle in #120
- Test helper uses wrong epoch by @adamtheturtle in #121
- Renew leaks non-mailbox errors by @adamtheturtle in #122
- Weak ref misuses claim error by @adamtheturtle in #123
- False success on failed cleanup by @adamtheturtle in #124
- Raw deletion errors escape API by @adamtheturtle in #125
- Decode errors restored as transient by @adamtheturtle in #126
- Conflict recovery discards claimed message by @adamtheturtle in #127
- Contradictory quarantine diagnostics by @adamtheturtle in #128
- Add property-based tests for idempotency and capacity invariants by @adamtheturtle in #144
- Document Darwin notification coalescing semantics by @adamtheturtle in #143
- Document iOS completeFileProtectionUntilFirstUserAuthentication writes by @adamtheturtle in #142
- Defer diagnostics until after releasing the mailbox lock by @adamtheturtle in #141
- Exercise unclaimableFilesPresent diagnostic path in tests by @adamtheturtle in #140
- Scope legacy date remap to envelope timestamps only by @adamtheturtle in #139
- Restore legacy reference-date envelope upgrade regression test by @adamtheturtle in #138
- Use non-expired fixture timestamps in conflict recovery test by @adamtheturtle in #137
- Emit discard diagnostics only after successful quarantine removal by @adamtheturtle in #136
- Fix CI lint and Linux quarantine discard test after #136 by @adamtheturtle in #145
- Fix DocC init parameter docs and topic links by @adamtheturtle in #146
- Fix SwiftLint line_length on DocC parameter by @adamtheturtle in #147
- Align Vale with shared prose checks by @adamtheturtle in #149
New Contributors
- @dependabot[bot] made their first contribution in #1
Full Changelog: 0.2.1...0.3.0