From 36e7698096b878ed8396ed19522312421730d519 Mon Sep 17 00:00:00 2001 From: Arnaud Date: Fri, 10 Jul 2026 08:25:35 +0200 Subject: [PATCH] docs: resolve recipe-quota semantics decision in HANDOFF.md Keep maxRecipes as a creations-per-month counter; deleting a recipe does not free up quota. No code change needed, current behavior already matches. --- HANDOFF.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HANDOFF.md b/HANDOFF.md index 75b57f6..e415d14 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -94,7 +94,7 @@ A full 4-agent audit (bugs / UI-UX / backend consistency / feature gaps) was run - `app/api/v1/search/route.ts:72` — escape `%`/`_` in ilike; `feed/trending/route.ts:6` — parseInt NaN reaches `.limit()`. - `app/api/v1/shopping-lists/[id]/items/[itemId]/route.ts:17` — body cast without Zod. - `app/api/v1/meal-plans/[weekStart]/entries/route.ts:48` — `recipeId` unvalidated → FK violation 500 (sibling shared route validates; copy it). - - Recipe usage counter monthly + never decremented on delete → `maxRecipes` = "creations per month". Decide semantics. + - ~~Recipe usage counter monthly + never decremented on delete~~ — **decided**: keep as-is, `maxRecipes` means "creations per month," deleting a recipe does not free up quota. - `lib/ai/resolve-user-key.ts:18-23,44-62` — BYOK decrypt failures silently fall back to platform key; surface error. - API keys: no expiry/scopes; all of a user's keys share one rate bucket (`api-auth.ts:79`).