• Joined on 2026-03-17
marcel deleted branch feat/issue-46-wire-suggestions-recipe-picker from marcel/mealprep 2026-04-10 10:18:11 +02:00
marcel merged pull request marcel/mealprep#53 2026-04-10 10:18:10 +02:00
feat(recipes): image upload, fix save 500, HelloFresh seed data
marcel pushed to feat/issue-46-wire-suggestions-recipe-picker at marcel/mealprep 2026-04-10 10:08:44 +02:00
16e1539ac0 chore: merge master — adopt SlotResponse.SlotRecipe in SuggestionItem
f139dce82c docs(specs): add planner desktop redesign spec — flip tiles
0596fddcd3 refactor(planning): extract applyPenalties helper to unify score formula
008c725813 test(planner): verify mobile swap sheet triggers suggestion fetch
1739b70d54 feat(planner): change neutral badge copy to Kein Einfluss
Compare 37 commits »
marcel commented on pull request marcel/mealprep#53 2026-04-10 09:43:01 +02:00
feat(recipes): image upload, fix save 500, HelloFresh seed data

PR review concerns addressed

All 7 blockers and 6 suggestions from the review have been resolved. Here's a summary by commit:

Blockers fixed

marcel pushed to feat/issue-46-wire-suggestions-recipe-picker at marcel/mealprep 2026-04-10 09:42:40 +02:00
e5cdce164a feat(recipes): give 'Bild entfernen' button persistent muted-red color
73b4fb84e7 feat(recipes): add (min) unit hint to Kochzeit label
932155c559 chore(backend): ignore application-dev.yml to prevent leaking local secrets
a5bb5d45a3 docs(config): annotate multipart limits explaining JSON body is not covered
b2a798d90e docs(tests): clarify why fake base64 is acceptable in allowed-image-type test
Compare 10 commits »
marcel commented on pull request marcel/mealprep#53 2026-04-10 09:20:19 +02:00
feat(recipes): image upload, fix save 500, HelloFresh seed data

⚙️ DevOps — Infrastructure & Operations

Verdict: ⚠️ Approved with concerns

Blockers

spring.servlet.multipart size limits are misleading and should be removed or annotated.

marcel commented on pull request marcel/mealprep#53 2026-04-10 09:19:59 +02:00
feat(recipes): image upload, fix save 500, HelloFresh seed data

🎨 UI/UX Expert — Interface & Experience

Verdict: ⚠️ Approved with concerns

The category grouping with German type headings is a clear improvement over the old flat list. The effort…

marcel commented on pull request marcel/mealprep#53 2026-04-10 09:19:41 +02:00
feat(recipes): image upload, fix save 500, HelloFresh seed data

🧪 Tester — Quality & Test Coverage

Verdict: ⚠️ Approved with concerns

Solid test suite overall — ImageCompressorTest covers 8 behaviours including edge cases (null, blank,…

marcel commented on pull request marcel/mealprep#53 2026-04-10 09:19:24 +02:00
feat(recipes): image upload, fix save 500, HelloFresh seed data

🔒 Security Expert — Application Security

Verdict: 🚫 Changes requested

There is one actual security gap that needs closing before merge.

Blockers

**Server-side image size limit is…

marcel commented on pull request marcel/mealprep#53 2026-04-10 09:19:07 +02:00
feat(recipes): image upload, fix save 500, HelloFresh seed data

🏛️ Architect — System Design

Verdict: ⚠️ Approved with concerns

The feature works and the layering is correct — validation in the service, compression as a separate @Component, DTO…

marcel commented on pull request marcel/mealprep#53 2026-04-10 09:18:52 +02:00
feat(recipes): image upload, fix save 500, HelloFresh seed data

👨‍💻 Felix Brandt — Senior Fullstack Developer

Verdict: ⚠️ Approved with concerns

Good TDD discipline throughout — every behaviour change has a corresponding test, and the red/green/re…

marcel pushed to feat/issue-46-wire-suggestions-recipe-picker at marcel/mealprep 2026-04-10 09:17:05 +02:00
f11cca534f feat(recipe): compress hero image to 400px preview on save
822b34cd14 feat(recipe-form): reject files > 5 MB and show Max. 5 MB hint
46f2ec45a3 feat(backend): limit multipart upload to 5 MB file / 6 MB request
90cff0c4d2 feat(recipe): validate heroImageUrl content type before persisting
b1eb9ed964 feat(recipes): send null instead of undefined for blank serves/cookTimeMin
Compare 8 commits »
marcel closed issue marcel/mealprep#42 2026-04-10 09:04:40 +02:00
feat: Add-to-Plan flows — C4 recipe picker, C5 quick actions, C6 day picker
marcel commented on issue marcel/mealprep#50 2026-04-09 21:07:06 +02:00
feat(settings): implement E4 variety score settings (J9)

⚙️ Backend Engineer

Questions & Observations

  • GET 404 for no config — reconsider: Returning 404 when no custom config exists is semantically awkward — it implies "resource not…
marcel commented on issue marcel/mealprep#50 2026-04-09 21:06:48 +02:00
feat(settings): implement E4 variety score settings (J9)

🔒 Sable — Security Engineer

Questions & Observations

  • PATCH /v1/households/mine/variety-config — household ownership: The "mine" route pattern is a household-scoped endpoint.…
marcel commented on issue marcel/mealprep#50 2026-04-09 21:06:31 +02:00
feat(settings): implement E4 variety score settings (J9)

🧪 QA Engineer — Test Coverage

Questions & Observations

  • Auto-save and simulation are two separate async flows — test them independently:
    • Auto-save: preset/weight change →…
marcel commented on issue marcel/mealprep#50 2026-04-09 21:06:13 +02:00
feat(settings): implement E4 variety score settings (J9)

🎨 Atlas — UI/UX Designer

Questions & Observations

  • "Lila Kennzahl" — purple token missing from design system: The E1 tile shows the variety score as a purple metric. Purple is not…
marcel commented on issue marcel/mealprep#50 2026-04-09 21:05:53 +02:00
feat(settings): implement E4 variety score settings (J9)

🧑‍💻 Kai — Frontend Engineer

Questions & Observations

  • Auto-save state machine: Auto-save on every preset/weight change without a save button means the component manages three…
marcel commented on issue marcel/mealprep#51 2026-04-09 21:05:31 +02:00
feat(variety): implement C3 warning cards with recipe names and swap links (V1)

⚙️ Backend Engineer

Questions & Observations

  • No backend changes — confirmed: The derivation runs entirely on weekPlan data already returned by the load function. This is correct…
marcel commented on issue marcel/mealprep#51 2026-04-09 21:05:16 +02:00
feat(variety): implement C3 warning cards with recipe names and swap links (V1)

🔒 Sable — Security Engineer

Questions & Observations

  • slotId in swap link query param: The "Tauschen →" link passes ?swap={slotId} as a URL parameter. The planner page must…