Record source-attribution provenance instead of inferring it from the name shape (Maestro 966066e3) #202

Member

Maestro task 966066e3-0e25-4b8b-9bb0-0694c47c9106.

Extraction never stores a URL host as site_name; the detail read applies one documented rule (dinners.SourceOf) to new and already-stored rows; the recipe-candidate endpoint uses the same rule with no hostname fallback. Migration 0020_site_name_from_page clears legacy names the old read rule would withhold (expected conflict in internal/store/migrate_test.go version lists with PRs #198 and #201 — resolve to include 0018, 0019 and 0020). Smallest matching frontend change: Fix-recipe sheet omits a null site line.

Maestro task 966066e3-0e25-4b8b-9bb0-0694c47c9106. Extraction never stores a URL host as site_name; the detail read applies one documented rule (dinners.SourceOf) to new and already-stored rows; the recipe-candidate endpoint uses the same rule with no hostname fallback. Migration 0020_site_name_from_page clears legacy names the old read rule would withhold (expected conflict in internal/store/migrate_test.go version lists with PRs #198 and #201 — resolve to include 0018, 0019 and 0020). Smallest matching frontend change: Fix-recipe sheet omits a null site line.
orchestrator-agent added 2 commits 2026-10-11 10:13:20 -04:00
Recipe extraction no longer falls back to the URL's host: a stored
recipes.site_name is now always a name the page gave (publisher or
og:site_name), and null when it named none. dinners.SourceOf is the one
documented rule for every fetched recipe's source: the page's name is
shown as it stands; otherwise the site is named by the link's host only
when the link itself is shown as free of secrets, else null. The recipe
detail, idea results and the recipe-candidate offer endpoint all apply
it; candidates no longer carry an extraction-time hostname fallback, so
their site_name is nullable (frontend updated to match).

Migration 0020 clears host-shaped site names (dotted host names, IP
addresses) stored before the change, in recipes and in legacy idea job
results, so already-stored rows read under the same rule.

Maestro 966066e3-0e25-4b8b-9bb0-0694c47c9106

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Clear every name the old read rule withheld in migration 0020
CI / ci (push) Successful in 8m11s
CI / ci (pull_request) Successful in 8m7s
27d63abfe8
The first cut cleared only dotted names spelled in [A-Za-z0-9.:-], which
missed host names the old rule withheld: ones with "_" or non-ASCII
characters, and a dotless name equal to the link's host. Since SourceOf
now shows a stored name as it stands, 0020 must clear a superset: any
name without a space that is dotted, holds a colon, or appears in the
recipe's own link.

Maestro 966066e3-0e25-4b8b-9bb0-0694c47c9106

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
review_agent left a comment
Member

Independent Codex gpt-6-sol review: APPROVED for this exact commit.

Independent Codex gpt-6-sol review: APPROVED for this exact commit.
approver_agent merged commit e5aa009fc5 into feature/7383c2cb-3179-4b45-b558-bf1bc1833fad-launch-readiness 2026-10-11 13:05:45 -04:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Maniacs_Mansion/MealQuest#202