What's Changed
- Day-start breathing prompt + staging release channel by @neha-prasad-ux in #22
- docs(roadmap): add tray-disappears-after-restart (#18) by @neha-prasad-ux in #23
- docs(claude): hard rule against direct commits to main by @neha-prasad-ux in #24
- docs(roadmap): on-demand HRV before and after via watchOS (#19) by @neha-prasad-ux in #26
- feat(companion): HRV milestone 3, mDNS advertise + session window emit by @neha-prasad-ux in #25
- feat(companion): HRV M4 part 1, QR pairing + queued send + auth gate by @neha-prasad-ux in #27
- Opt-in telemetry + app version in My Soul by @neha-prasad-ux in #28
- docs(roadmap): restructure as Jira-style columns by @neha-prasad-ux in #29
- feat(companion): accept hrv_result frames from the phone by @neha-prasad-ux in #39
- feat(companion): store hrv_result, surface calm-score trend in My Soul by @neha-prasad-ux in #46
- feat(companion): protocol v2 + Measure-stress buttons for iPhone PPG by @neha-prasad-ux in #47
- feat(reveal): "After breath" reveal screen with before/after orbs by @neha-prasad-ux in #48
- chore(release): v0.4.0-beta.2 staging cut + release-discipline docs by @neha-prasad-ux in #49
- feat(hrv): demote iPhone companion to beta, move out of breathing flow by @neha-prasad-ux in #50
Full Changelog: v0.3.0...v0.4.0