What's Changed
- fix(calc): apply the IOM activity coefficient to the height term too by @simonoppowa in #993
- docs(ai): correct eight claims the code no longer supports by @simonoppowa in #996
- fix(net): stop the plaintext guard being bypassed by a redirect by @simonoppowa in #1002
- chore(docs): delete the pre-2.0 FDC self-hosting redirect by @simonoppowa in #997
- docs(releasing): correct the runbook before it is used for 2.2.0 by @simonoppowa in #998
- docs(export): correct the bundle layout, the CSV import claim and the tracked-day loss by @simonoppowa in #999
- docs(self-hosting): the app calls functions now, not tables by @simonoppowa in #1000
- docs(photo): the 1024px bound is on the shortest edge, not the longest by @simonoppowa in #1001
- docs(readme): a server you run needs no key, and the cache delete is best effort by @simonoppowa in #1003
- fix(ci): stop a skipped retry job taking the whole deploy chain with it by @simonoppowa in #1009
- chore: backport the 2.2.0 release-branch fixes to develop by @simonoppowa in #1006
- chore: ignore the local live-provider probes by @simonoppowa in #1007
- fix(ci): only deploy from main, and never re-release a shipped version by @simonoppowa in #1015
- fix(ci): only deploy from main, and never re-release a shipped version by @simonoppowa in #1014
- ci: make the iOS boot smoke an advisory signal on main by @simonoppowa in #1044
- ci: cancel superseded runs and gate the macOS jobs on changed paths by @simonoppowa in #1043
- docs: correct the store declarations 2.2.0 outgrew (#990) by @simonoppowa in #1049
- docs: correct two claims about Play's Data safety form by @simonoppowa in #1051
- docs: the formatter enforces 80 columns, not the 120 we document by @simonoppowa in #1047
- feat(ci): give Codex review rules to read, and stop AGENTS.md outgrowing them by @simonoppowa in #1045
- ci: put the release jobs behind two environments, split at the store by @simonoppowa in #1055
- ci: assert the release happened, instead of reporting the colour by @simonoppowa in #1053
- docs: two review rules the last two reviews earned by @simonoppowa in #1059
- ci(github-release): give it the branch policy its siblings got by @simonoppowa in #1058
- docs(releasing): ask which lines main has, not which commits by @simonoppowa in #1052
- docs(readme): the own-server row promises a rule the code does not keep by @simonoppowa in #1060
- docs(readme): name every contact in What leaves your device #989 by @AzazelSensei in #1010
- fix(export): gather meal photos from entries, not only from templates by @simonoppowa in #1079
- fix(bulk-add): give the photo failure the route its text already names by @simonoppowa in #1087
- fix(bulk-add): report every bad row, and say what is wrong with each by @simonoppowa in #1088
- ci(play): add a dispatch-only lane to replace the listing screenshots by @simonoppowa in #1085
- test(export): assert the photo bytes reach the archive, not just the path by @simonoppowa in #1084
- fix(bulk-add): re-read the AI setup on return, and send the hint to the AI dialog by @simonoppowa in #1086
- ci(play): put the dispatch-only screenshot lane on main by @simonoppowa in #1090
- ci(play): reject a truncated PNG instead of crashing on it by @simonoppowa in #1091
- fix(bulk-add): notice an own-server probe that lands after the user is back by @simonoppowa in #1092
- docs: the console checklist omitted the item that actually blocks by @simonoppowa in #1095
- fix(store): carry the feature graphic Play actually serves by @simonoppowa in #1098
- fix(store): make the 2.2.0 release note the one that actually shipped by @simonoppowa in #1097
- ci(ios): add a dispatch-only lane for the App Store screenshot sets by @simonoppowa in #1100
- feat(store): put the no-strings promise where Play actually indexes it by @simonoppowa in #1096
- feat(store): put the App Store listing under version control, and fix it by @simonoppowa in #1099
- ci(ios): put the App Store screenshot lane on main by @simonoppowa in #1102
- fix(ios-screenshots): accept the disclaimer before capturing by @simonoppowa in #1105
- ci(ios): accept the disclaimer before capturing, on main by @simonoppowa in #1106
- chore(deps): consolidate stable dependency migrations by @simonoppowa in #1048
- chore(release): bump to 2.3.0+64 and add the build 64 note by @simonoppowa in #1114
- fix(ios-screenshots): dispose the semantics handle inside the test body by @simonoppowa in #1107
- ci(ios): dispose the semantics handle, and keep captures from a failed run by @simonoppowa in #1116
- fix(health): read workouts without the permissions Play refused by @simonoppowa in #1122
- chore(release): bump to 2.3.0+65 and add the build 65 note by @simonoppowa in #1124
- fix(l10n): disclose body fat only where it is read (release/2.3.0) by @simonoppowa in #1132
- Release 2.3.0+65 by @simonoppowa in #1117
New Contributors
- @AzazelSensei made their first contribution in #1010
Full Changelog: v2.2.0...v2.3.0