Idea actions: add to Quest log and cook tonight (Feature 18, task 3)
Maestro task 54dcd487-1597-4a91-8493-97f3a7635e2d. The two actions the Cook-from-what-I-have and Quick dinners screens call.
POST /api/v1/ideas/{jobId}/items/{i}/quest-log creates — or reuses, by normalized name — a grounded dinner with status quest_log and origin ingredients or quick, and is idempotent: a repeat call returns the same dinner rather than a second one. POST /api/v1/ideas/{jobId}/items/{i}/cook-tonight creates or reuses the dinner the same way and sets today's day of the current week's plan to it through the plan service, so revision and the "changed after sync" bookkeeping behave exactly as a board swap does. It never fabricates a plan: with no plan for the current week it changes nothing and answers 409 with code: "no_plan" so the screen can offer "Plan this week".
The developer documents the boundaries: today is the date now in the household timezone and the week is that date's Monday, so today is always inside the week; repeating cook tonight swaps the same dinner again and raises the plan revision like a same-dinner board swap; and a name matching an archived dinner is created fresh, matching how adding a Regular behaves.
The developer reports the Go quality floor passing with the four named cases tested.
## Idea actions: add to Quest log and cook tonight (Feature 18, task 3)
Maestro task `54dcd487-1597-4a91-8493-97f3a7635e2d`. The two actions the Cook-from-what-I-have and Quick dinners screens call.
`POST /api/v1/ideas/{jobId}/items/{i}/quest-log` creates — or reuses, by normalized name — a grounded dinner with status `quest_log` and origin `ingredients` or `quick`, and is idempotent: a repeat call returns the same dinner rather than a second one. `POST /api/v1/ideas/{jobId}/items/{i}/cook-tonight` creates or reuses the dinner the same way and sets today's day of the current week's plan to it **through the plan service**, so revision and the "changed after sync" bookkeeping behave exactly as a board swap does. It never fabricates a plan: with no plan for the current week it changes nothing and answers 409 with `code: "no_plan"` so the screen can offer "Plan this week".
The developer documents the boundaries: today is the date now in the household timezone and the week is that date's Monday, so today is always inside the week; repeating cook tonight swaps the same dinner again and raises the plan revision like a same-dinner board swap; and a name matching an *archived* dinner is created fresh, matching how adding a Regular behaves.
The developer reports the Go quality floor passing with the four named cases tested.
POST /api/v1/ideas/{jobId}/items/{i}/quest-log adds idea i of a
succeeded ideas job to the Quest log as a dinner grounded in the idea's
own recipe, with origin ingredients or quick, or answers the dinner it
repeats as it is (the Regular dedupe rule), so repeating the call is
idempotent. POST .../cook-tonight does the same, then puts the dinner on
today (household timezone) of this week's plan through plan.Service.Swap;
with no plan for the week it answers 409 no_plan and changes nothing.
Maestro task 54dcd487-1597-4a91-8493-97f3a7635e2d.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Idea actions: add to Quest log and cook tonight (Feature 18, task 3)
Maestro task
54dcd487-1597-4a91-8493-97f3a7635e2d. The two actions the Cook-from-what-I-have and Quick dinners screens call.POST /api/v1/ideas/{jobId}/items/{i}/quest-logcreates — or reuses, by normalized name — a grounded dinner with statusquest_logand originingredientsorquick, and is idempotent: a repeat call returns the same dinner rather than a second one.POST /api/v1/ideas/{jobId}/items/{i}/cook-tonightcreates or reuses the dinner the same way and sets today's day of the current week's plan to it through the plan service, so revision and the "changed after sync" bookkeeping behave exactly as a board swap does. It never fabricates a plan: with no plan for the current week it changes nothing and answers 409 withcode: "no_plan"so the screen can offer "Plan this week".The developer documents the boundaries: today is the date now in the household timezone and the week is that date's Monday, so today is always inside the week; repeating cook tonight swaps the same dinner again and raises the plan revision like a same-dinner board swap; and a name matching an archived dinner is created fresh, matching how adding a Regular behaves.
The developer reports the Go quality floor passing with the four named cases tested.
POST /api/v1/ideas/{jobId}/items/{i}/quest-log adds idea i of a succeeded ideas job to the Quest log as a dinner grounded in the idea's own recipe, with origin ingredients or quick, or answers the dinner it repeats as it is (the Regular dedupe rule), so repeating the call is idempotent. POST .../cook-tonight does the same, then puts the dinner on today (household timezone) of this week's plan through plan.Service.Swap; with no plan for the week it answers 409 no_plan and changes nothing. Maestro task 54dcd487-1597-4a91-8493-97f3a7635e2d. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>Independent Codex gpt-6-sol review: APPROVED for this exact commit.