Grounding (F2–F5):
- Each ground_dinner job carries the dinner's new grounding_revision
(migration 0010). Renaming a pending Regular raises the revision, and a
job only grounds and writes a dinner still at its revision, so a queued
original job no longer grounds the new name or decides the outcome.
- Background grounding keeps a method, minutes or difficulty a member saved
while the Regular was pending, and fills only those left empty.
- Grounding by hand clears the pasted recipe_url, and link deduplication
uses the source_url of the attached recipe, else the pending link.
- Archived dinners are not grounded: the job checks before any search,
fetch or model call, and its final update requires an unarchived row.
Onboarding (F6, F7):
- Step 3 shows "Add Regulars" back to step 2 when the server refuses to
finish with fewer than three Regulars.
- Common picks are hidden by a copy of harness Normalize/Similar, checked
against the same shared cases as the Go code.
Docs (F8): ARCHITECTURE.md covers the three-Regular minimum, step-3
recovery, the grounding revision and the dedupe rules.
F1 was fixed in 1304487; its test now also asserts the old link is never
grounded and recipe_url stays cleared.
Maestro task 5037ff86-181d-448e-927b-c2fd2258a25d.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>