Code-Review-Finding zu commit6c8de6f: INSERT OR REPLACE ist intern DELETE+INSERT, das wuerde eventuelle FK-Children kuenftig stillschweigend mitloeschen. ON CONFLICT DO UPDATE bumpt nur das Timestamp-Feld und matcht den Stil der anderen Repos (shopping/repository.ts:43). Migration-Dateiname zu recipe_view (singular) angeglichen, matcht jetzt den Tabellennamen aus543008b. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>