mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-09 21:10:59 +00:00
- When the sensitive-category encryption preference is on (the default), encrypt the intent-revealing day-log fields (sexual activity, protection, pregnancy/progesterone tests, contraception) into an encrypted envelope and leave the queryable columns null, decrypting on read. The toggle now does what it says rather than storing those fields in plaintext. - Make the day-log write a partial merge so a re-log only overwrites the fields it carries, never nulling untouched ones (no more data loss when the same day is logged again). - Make the upsert collision-safe: a manual entry and an imported entry on the same date adopt one canonical row instead of throwing, and the single POST returns a clean conflict rather than a 500; one bad date no longer aborts a whole import. - Compare the decrypted note, not the ciphertext, so an unchanged re-log is a true no-op and stops needless re-sync. - Hoist cycle attribution out of the per-entry loop; map bulk failures to stable reason codes; audit the import goal change; mask the event name in discreet reminder pushes; add a one-tap hard-delete purge for all cycle data. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>