What's new
- Add owner-managed custom symptom lifecycle with create, rename, hide, and restore flows that preserve historical logs, exports, and stats.
- Keep onboarding and settings cycle dates stable in the request-local timezone via the raw
ovumcy_tzIANA cookie contract and an onboardingclient_timezonefallback. - Simplify custom symptom settings UI to name-and-icon management while keeping stored color data backward-compatible.
- Clear owner custom symptoms together with daily logs and cycle settings in the danger-zone reset flow while preserving built-in symptom definitions.
- Tighten custom symptom validation and row-local HTMX feedback for duplicate, built-in, markup-like, and over-limit names.
Verification
go test ./...npm run lintnpm run buildnpm run e2e
Notes
- This release intentionally keeps mobile PWA support install-only; service workers and offline mode remain deferred pending privacy review.