glp-companion/lib/features
Mike Kell 3d5135c1c5 feat(recipes,settings): add Phase 4B private recipe sources with Mealie integration
- security: add mealie_base_url / mealie_api_token vault keys and
  write/read/deleteMealieCredentials() to CryptoManager; the pairing
  persists only in the platform keystore (Keychain / EncryptedSharedPreferences /
  DPAPI) and never enters controller state
- data: add MealieApiClient - testConnection probes GET /api/app/about with
  GET /api/recipes?perPage=1 fallback (200 = connected); fetchAllRecipes lists
  GET /api/recipes?perPage=-1 and enriches each summary with
  GET /api/recipes/{slug}, mapping recipeIngredient (structured maps + strings),
  recipeInstructions (section flattening), nutrition display strings, ISO-8601
  prep/cook times, yield, image + source URLs; Mealie UUID reused as Recipe.id
- data: add AppDatabase.upsertRecipe (insertOnConflictUpdate) and
  DriftRecipeRepository.syncFromMealie preserving createdAt on re-sync
- presentation: add MealieIntegrationController (async credential load,
  connectivity-gated Test & Save, Sync Now with spinner state, Disconnect,
  isMealieRecipe badge/filter helper) plus api/sync providers
- settings: add Private Recipe Integrations card - Connect Mealie modal with
  server URL hint, obscured API token field, Test & Save before persistence;
  connected state shows endpoint, Sync Now and Disconnect
- recipes: add All / Web Scraped / Mealie source filter chips, subtle Mealie
  badge on synced cards, and AppBar Sync Private Recipes action when configured
- fix _SettingsCard title Row overflow at 390dp (Expanded wrap) caught by the
  mobile navigation widget test; add mealie_parser_test.dart (14 tests), suite
  green at 184/184, flutter analyze clean
- docs: add architecture 4.9 Mealie design and multiplatform UX adaptation
  spec; BUILD_STATE marks Phase 4B complete
2026-10-17 20:46:36 -04:00
..
auth feat(platform,auth,app): align identity to companionglp.com and harden OAuth deep-link handoff 2026-10-17 15:28:22 -04:00
exercise feat(app,exercise,recipes,settings): complete Phase 7 navigation and domain expansion 2026-10-16 19:19:02 -04:00
health_sync feat(platform,settings,nutrition): add Google Health cloud sync for desktop 2026-10-17 18:06:36 -04:00
meal_planner feat(recipes,settings): add Phase 4B private recipe sources with Mealie integration 2026-10-17 20:46:36 -04:00
medication feat(app,exercise,recipes,settings): complete Phase 7 navigation and domain expansion 2026-10-16 19:19:02 -04:00
nutrition feat(nutrition,pantry): add Phase 3C nutritional search engine, barcode scanning, and dual-source food cache 2026-10-17 19:37:06 -04:00
pantry feat(nutrition,pantry): add Phase 3C nutritional search engine, barcode scanning, and dual-source food cache 2026-10-17 19:37:06 -04:00
recipes feat(recipes,settings): add Phase 4B private recipe sources with Mealie integration 2026-10-17 20:46:36 -04:00
settings/presentation feat(recipes,settings): add Phase 4B private recipe sources with Mealie integration 2026-10-17 20:46:36 -04:00