Breaking, locale/null-correctness release. Fixes Project Hub bugs #1014–#1020.
Breaking
Email.date(+Contact.lastEmailDate,Account.signupDate,Subscription.lastRenewalDate,Newsletter.lastEmailDate) are nowDate | null; parsers emitnullfor a missing/unparseableDate:header instead ofnow(). (#1016)Subscription.monthlyAmountandSubscription.frequencyare optional — set only when a billing cadence is detected. (#1017)Email.sizeis now an uncapped UTF-8 byte count, not a capped character count. (#1019)
Fixed
- #1014 Non-US money formats (
€1.234,56) parse correctly instead of collapsing ~1000x. - #1015 Contacts extracted on large MBOX paths (File >20MB, Buffer >500MB).
- #1016 Time-based detection ignores unknown dates instead of skewing on
now(). - #1020 Newsletter detection no longer flags transactional
mail.*/news.*subdomains as promotional without corroborating signals.
Internal
- Shared
parseMoney/byteLengthhelpers;PurchaseDetectorreusesmatchKnownDomain. (#1018)
See CHANGELOG.md for details.