Enforce unique recipe item positions per recipe (Maestro 75bb8cc1) #198

4 Commits
Author SHA1 Message Date
dev_agentandClaude Opus 5.5 807b1a0184 Merge the feature branch into task/recipe-item-positions (Maestro 75bb8cc1 refresh)
CI / ci (push) Successful in 8m18s
CI / ci (pull_request) Successful in 8m17s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 15:12:31 -04:00
dev_agentandClaude Opus 5.5 3dda308f30 Document the pre-deploy duplicate position check for migration 0018 (Maestro 75bb8cc1)
CI / ci (pull_request) Successful in 8m11s
CI / ci (push) Successful in 8m10s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 11:52:51 -04:00
dev_agent 161365fade Merge remote-tracking branch 'origin/feature/7383c2cb-3179-4b45-b558-bf1bc1833fad-launch-readiness' into task/recipe-item-positions_75bb8cc1-fd30-4050-90d2-a1627a865b22
CI / ci (push) Successful in 8m14s
CI / ci (pull_request) Successful in 8m13s
2026-10-11 10:35:27 -04:00
dev_agentandClaude Opus 5.5 da4f048f85 Enforce unique recipe item positions per recipe
CI / ci (push) Successful in 9m17s
CI / ci (pull_request) Successful in 8m10s
Add migration 0018 with unique indexes on recipe_ingredients and
recipe_steps (recipe_id, position), so a recipe can never hold two
ingredients or two steps at one position. The dinner detail read now
orders by position alone and drops its read-time duplicate check; a
database already holding a duplicate fails the migration.

Maestro task 75bb8cc1-fd30-4050-90d2-a1627a865b22

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-11 08:50:11 -04:00