- Caption-localized the 5 iPhone 6.7" + 5 iPad 12.9" screenshots into the 5
non-English locales, reusing the en-US framed captures (in-frame UI stays EN).
Tooling in fastlane/screenshot_localize/ (Pillow: repaints the pastel caption
band, re-renders headline/subtitle in SF Pro; auto-fits + wraps per language).
- Rewrote release_notes 1.2.0 in all 6 languages: since 1.1.5 never shipped
publicly (last public = 1.1.4), the notes consolidate 1.1.5 + 1.2.0 features.
- Fastfile: new `publish` lane — uploads metadata + screenshots for an existing
TestFlight build (skip_binary_upload, no submit) so offer codes can be set up
before submission.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BkanrydYtrme8wipTzWssG
Build 50 uploaded to TestFlight. Also migrates Fastfile from
Apple ID + app-specific-password to App Store Connect API key
(via pass) to avoid session expiry on future uploads.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Switch premium to AutoRenewable subscription (com.mealmood.premium.monthly.sub);
legacy one-time purchasers retain lifetime access via StoreManager fallback
- Add ITSAppUsesNonExemptEncryption=false to Info.plist (no custom encryption)
- Update storekit config with both legacy NonConsumable and new subscription
- Bump version 1.1.1 build 46; update fastlane metadata and release notes (6 langs)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- AutocompleteEngine: no-repeat rule now applies to all dishes (not just tagless ones); fallback still allows repeats when no alternative exists
- CalendarService: update existing events instead of delete+create to prevent duplicates; fix weekStartDate using plan date instead of currentWeekStart
- DishFormView: form stays open after saving in create mode for quick multi-dish entry; Done button to close; saved feedback banner
- OnboardingViewModel/FirstDishesStepView: dishes are now optional during onboarding; Finish button always enabled
- AnalyticsService: new events — onboarding_step_viewed(step) and auto_assign_used(filled, unfilled)
- Localization: dish_done and first_dishes_optional_hint added in 6 languages; release notes updated in all 6 languages
- Version bump: 1.0.3 → 1.0.4 (build 19)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>