Public Access
- config: switch Settings to ConfigDict(extra='ignore') so extra env vars (spoonacular_api_key, SWIFTLY_BEARER_TOKEN) don't crash import. Remove deprecated class Config. - email: wrap SendGrid imports in try/except so the module loads without the optional dependency. Update test_email_backend to patch Mail/RepyTo. - planner_select: default PlannerConfig.set_size=21 (3 meals/day × 7) is way too large for the unit test assertion that checks 3-recipe diversity. Introduced _CFG_3 with set_size=3 and applied to all tests. - Delete stale test_matcher.py importing removed functions. Full suite: 46 passed, 74 skipped (Postgres), 0 failed, 120 collected.
33619 lines
1.1 MiB
Plaintext
33619 lines
1.1 MiB
Plaintext
{
|
|
"directed": false,
|
|
"multigraph": false,
|
|
"graph": {},
|
|
"nodes": [
|
|
{
|
|
"label": "database.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/database.py",
|
|
"source_location": "L1",
|
|
"community": 27,
|
|
"norm_label": "database.py",
|
|
"id": "backend_app_database_py"
|
|
},
|
|
{
|
|
"label": "get_db()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/database.py",
|
|
"source_location": "L11",
|
|
"community": 27,
|
|
"norm_label": "get_db()",
|
|
"id": "database_get_db"
|
|
},
|
|
{
|
|
"label": "security.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L1",
|
|
"community": 27,
|
|
"norm_label": "security.py",
|
|
"id": "backend_app_security_py"
|
|
},
|
|
{
|
|
"label": "require_admin()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L29",
|
|
"community": 27,
|
|
"norm_label": "require_admin()",
|
|
"id": "security_require_admin"
|
|
},
|
|
{
|
|
"label": "_signer()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L45",
|
|
"community": 27,
|
|
"norm_label": "_signer()",
|
|
"id": "security_signer"
|
|
},
|
|
{
|
|
"label": "issue_session()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L49",
|
|
"community": 27,
|
|
"norm_label": "issue_session()",
|
|
"id": "security_issue_session"
|
|
},
|
|
{
|
|
"label": "require_session()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L54",
|
|
"community": 27,
|
|
"norm_label": "require_session()",
|
|
"id": "security_require_session"
|
|
},
|
|
{
|
|
"label": "Auth dependencies for the MealPlanner backend. Two flavors: - ``require_admin``",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L1",
|
|
"community": 27,
|
|
"norm_label": "auth dependencies for the mealplanner backend. two flavors: - ``require_admin``",
|
|
"id": "security_rationale_1"
|
|
},
|
|
{
|
|
"label": "Enforce a shared bearer token. 401 on bad/missing token, 503 if unset.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L30",
|
|
"community": 27,
|
|
"norm_label": "enforce a shared bearer token. 401 on bad/missing token, 503 if unset.",
|
|
"id": "security_rationale_30"
|
|
},
|
|
{
|
|
"label": "Sign the family_profile_id and return the cookie value.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L50",
|
|
"community": 27,
|
|
"norm_label": "sign the family_profile_id and return the cookie value.",
|
|
"id": "security_rationale_50"
|
|
},
|
|
{
|
|
"label": "Auto-authenticate: return the first family_profile_id from the DB. No cooki",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L55",
|
|
"community": 27,
|
|
"norm_label": "auto-authenticate: return the first family_profile_id from the db. no cooki",
|
|
"id": "security_rationale_55"
|
|
},
|
|
{
|
|
"label": "main.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/main.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "main.py",
|
|
"id": "backend_app_main_py"
|
|
},
|
|
{
|
|
"label": "health_check()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/main.py",
|
|
"source_location": "L19",
|
|
"community": 0,
|
|
"norm_label": "health_check()",
|
|
"id": "main_health_check"
|
|
},
|
|
{
|
|
"label": "health_check_db()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/main.py",
|
|
"source_location": "L24",
|
|
"community": 0,
|
|
"norm_label": "health_check_db()",
|
|
"id": "main_health_check_db"
|
|
},
|
|
{
|
|
"label": "config.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/config.py",
|
|
"source_location": "L1",
|
|
"community": 20,
|
|
"norm_label": "config.py",
|
|
"id": "backend_app_config_py"
|
|
},
|
|
{
|
|
"label": "Settings",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/config.py",
|
|
"source_location": "L6",
|
|
"community": 20,
|
|
"norm_label": "settings",
|
|
"id": "config_settings"
|
|
},
|
|
{
|
|
"label": "BaseSettings",
|
|
"file_type": "code",
|
|
"source_file": "",
|
|
"source_location": "",
|
|
"community": 20,
|
|
"norm_label": "basesettings",
|
|
"id": "basesettings"
|
|
},
|
|
{
|
|
"label": "Config",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/config.py",
|
|
"source_location": "L41",
|
|
"community": 20,
|
|
"norm_label": "config",
|
|
"id": "config_config"
|
|
},
|
|
{
|
|
"label": "_require_database_url()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/config.py",
|
|
"source_location": "L45",
|
|
"community": 20,
|
|
"norm_label": "_require_database_url()",
|
|
"id": "config_require_database_url"
|
|
},
|
|
{
|
|
"label": "__init__.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "__init__.py",
|
|
"id": "backend_app_models_init_py"
|
|
},
|
|
{
|
|
"label": "DayOfWeek",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L13",
|
|
"community": 0,
|
|
"norm_label": "dayofweek",
|
|
"id": "init_dayofweek"
|
|
},
|
|
{
|
|
"label": "MealType",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L23",
|
|
"community": 0,
|
|
"norm_label": "mealtype",
|
|
"id": "init_mealtype"
|
|
},
|
|
{
|
|
"label": "MealPlanStatus",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L29",
|
|
"community": 0,
|
|
"norm_label": "mealplanstatus",
|
|
"id": "init_mealplanstatus"
|
|
},
|
|
{
|
|
"label": "MealPlanItemStatus",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L36",
|
|
"community": 0,
|
|
"norm_label": "mealplanitemstatus",
|
|
"id": "init_mealplanitemstatus"
|
|
},
|
|
{
|
|
"label": "str",
|
|
"file_type": "code",
|
|
"source_file": "",
|
|
"source_location": "",
|
|
"community": 0,
|
|
"norm_label": "str",
|
|
"id": "str"
|
|
},
|
|
{
|
|
"label": "ApprovalTokenStatus",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L43",
|
|
"community": 0,
|
|
"norm_label": "approvaltokenstatus",
|
|
"id": "init_approvaltokenstatus"
|
|
},
|
|
{
|
|
"label": "FamilyMemberRole",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L49",
|
|
"community": 0,
|
|
"norm_label": "familymemberrole",
|
|
"id": "init_familymemberrole"
|
|
},
|
|
{
|
|
"label": "DenialReason",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L54",
|
|
"community": 0,
|
|
"norm_label": "denialreason",
|
|
"id": "init_denialreason"
|
|
},
|
|
{
|
|
"label": "NeverSuggestReason",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L62",
|
|
"community": 0,
|
|
"norm_label": "neversuggestreason",
|
|
"id": "init_neversuggestreason"
|
|
},
|
|
{
|
|
"label": "ScrapeStatus",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L69",
|
|
"community": 0,
|
|
"norm_label": "scrapestatus",
|
|
"id": "init_scrapestatus"
|
|
},
|
|
{
|
|
"label": "EmailStatus",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L75",
|
|
"community": 0,
|
|
"norm_label": "emailstatus",
|
|
"id": "init_emailstatus"
|
|
},
|
|
{
|
|
"label": "IngredientMatchSource",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L82",
|
|
"community": 0,
|
|
"norm_label": "ingredientmatchsource",
|
|
"id": "init_ingredientmatchsource"
|
|
},
|
|
{
|
|
"label": "FamilyProfile",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L88",
|
|
"community": 0,
|
|
"norm_label": "familyprofile",
|
|
"id": "init_familyprofile"
|
|
},
|
|
{
|
|
"label": "Base",
|
|
"file_type": "code",
|
|
"source_file": "",
|
|
"source_location": "",
|
|
"community": 0,
|
|
"norm_label": "base",
|
|
"id": "base"
|
|
},
|
|
{
|
|
"label": "FamilyMember",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L120",
|
|
"community": 0,
|
|
"norm_label": "familymember",
|
|
"id": "init_familymember"
|
|
},
|
|
{
|
|
"label": "Ingredient",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L141",
|
|
"community": 0,
|
|
"norm_label": "ingredient",
|
|
"id": "init_ingredient"
|
|
},
|
|
{
|
|
"label": "Recipe",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L161",
|
|
"community": 0,
|
|
"norm_label": "recipe",
|
|
"id": "init_recipe"
|
|
},
|
|
{
|
|
"label": "total_time_minutes()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L191",
|
|
"community": 0,
|
|
"norm_label": "total_time_minutes()",
|
|
"id": "init_total_time_minutes"
|
|
},
|
|
{
|
|
"label": "MealPlan",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L195",
|
|
"community": 0,
|
|
"norm_label": "mealplan",
|
|
"id": "init_mealplan"
|
|
},
|
|
{
|
|
"label": "MealPlanItem",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L216",
|
|
"community": 0,
|
|
"norm_label": "mealplanitem",
|
|
"id": "init_mealplanitem"
|
|
},
|
|
{
|
|
"label": "MealPlanVote",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L243",
|
|
"community": 5,
|
|
"norm_label": "mealplanvote",
|
|
"id": "init_mealplanvote"
|
|
},
|
|
{
|
|
"label": "ApprovalToken",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L260",
|
|
"community": 0,
|
|
"norm_label": "approvaltoken",
|
|
"id": "init_approvaltoken"
|
|
},
|
|
{
|
|
"label": "HomePantry",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L280",
|
|
"community": 0,
|
|
"norm_label": "homepantry",
|
|
"id": "init_homepantry"
|
|
},
|
|
{
|
|
"label": "Feedback",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L300",
|
|
"community": 0,
|
|
"norm_label": "feedback",
|
|
"id": "init_feedback"
|
|
},
|
|
{
|
|
"label": "NeverSuggest",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L322",
|
|
"community": 0,
|
|
"norm_label": "neversuggest",
|
|
"id": "init_neversuggest"
|
|
},
|
|
{
|
|
"label": "GroceryItem",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L337",
|
|
"community": 0,
|
|
"norm_label": "groceryitem",
|
|
"id": "init_groceryitem"
|
|
},
|
|
{
|
|
"label": "ScrapeLog",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L364",
|
|
"community": 0,
|
|
"norm_label": "scrapelog",
|
|
"id": "init_scrapelog"
|
|
},
|
|
{
|
|
"label": "EmailLog",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L378",
|
|
"community": 0,
|
|
"norm_label": "emaillog",
|
|
"id": "init_emaillog"
|
|
},
|
|
{
|
|
"label": "IngredientGroceryMatch",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L397",
|
|
"community": 0,
|
|
"norm_label": "ingredientgrocerymatch",
|
|
"id": "init_ingredientgrocerymatch"
|
|
},
|
|
{
|
|
"label": "WeeklyRun",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L415",
|
|
"community": 5,
|
|
"norm_label": "weeklyrun",
|
|
"id": "init_weeklyrun"
|
|
},
|
|
{
|
|
"label": "__init__.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L1",
|
|
"community": 2,
|
|
"norm_label": "__init__.py",
|
|
"id": "backend_app_schemas_init_py"
|
|
},
|
|
{
|
|
"label": "Enum",
|
|
"file_type": "code",
|
|
"source_file": "",
|
|
"source_location": "",
|
|
"community": 0,
|
|
"norm_label": "enum",
|
|
"id": "enum"
|
|
},
|
|
{
|
|
"label": "IngredientBase",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L48",
|
|
"community": 2,
|
|
"norm_label": "ingredientbase",
|
|
"id": "init_ingredientbase"
|
|
},
|
|
{
|
|
"label": "BaseModel",
|
|
"file_type": "code",
|
|
"source_file": "",
|
|
"source_location": "",
|
|
"community": 2,
|
|
"norm_label": "basemodel",
|
|
"id": "basemodel"
|
|
},
|
|
{
|
|
"label": "IngredientResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L58",
|
|
"community": 2,
|
|
"norm_label": "ingredientresponse",
|
|
"id": "init_ingredientresponse"
|
|
},
|
|
{
|
|
"label": "Config",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L62",
|
|
"community": 2,
|
|
"norm_label": "config",
|
|
"id": "init_config"
|
|
},
|
|
{
|
|
"label": "IngredientCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L66",
|
|
"community": 2,
|
|
"norm_label": "ingredientcreate",
|
|
"id": "init_ingredientcreate"
|
|
},
|
|
{
|
|
"label": "FamilyMemberBase",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L70",
|
|
"community": 2,
|
|
"norm_label": "familymemberbase",
|
|
"id": "init_familymemberbase"
|
|
},
|
|
{
|
|
"label": "FamilyMemberResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L77",
|
|
"community": 2,
|
|
"norm_label": "familymemberresponse",
|
|
"id": "init_familymemberresponse"
|
|
},
|
|
{
|
|
"label": "FamilyMemberCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L87",
|
|
"community": 2,
|
|
"norm_label": "familymembercreate",
|
|
"id": "init_familymembercreate"
|
|
},
|
|
{
|
|
"label": "FamilyProfileBase",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L91",
|
|
"community": 2,
|
|
"norm_label": "familyprofilebase",
|
|
"id": "init_familyprofilebase"
|
|
},
|
|
{
|
|
"label": "FamilyProfileResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L100",
|
|
"community": 2,
|
|
"norm_label": "familyprofileresponse",
|
|
"id": "init_familyprofileresponse"
|
|
},
|
|
{
|
|
"label": "FamilyProfileCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L110",
|
|
"community": 2,
|
|
"norm_label": "familyprofilecreate",
|
|
"id": "init_familyprofilecreate"
|
|
},
|
|
{
|
|
"label": "FamilyProfileUpdate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L114",
|
|
"community": 2,
|
|
"norm_label": "familyprofileupdate",
|
|
"id": "init_familyprofileupdate"
|
|
},
|
|
{
|
|
"label": "RecipeIngredient",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L123",
|
|
"community": 2,
|
|
"norm_label": "recipeingredient",
|
|
"id": "init_recipeingredient"
|
|
},
|
|
{
|
|
"label": "_normalize()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L133",
|
|
"community": 2,
|
|
"norm_label": "_normalize()",
|
|
"id": "init_normalize"
|
|
},
|
|
{
|
|
"label": "RecipeBase",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L142",
|
|
"community": 2,
|
|
"norm_label": "recipebase",
|
|
"id": "init_recipebase"
|
|
},
|
|
{
|
|
"label": "RecipeResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L161",
|
|
"community": 2,
|
|
"norm_label": "reciperesponse",
|
|
"id": "init_reciperesponse"
|
|
},
|
|
{
|
|
"label": "RecipeCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L173",
|
|
"community": 2,
|
|
"norm_label": "recipecreate",
|
|
"id": "init_recipecreate"
|
|
},
|
|
{
|
|
"label": "MealPlanItemBase",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L177",
|
|
"community": 2,
|
|
"norm_label": "mealplanitembase",
|
|
"id": "init_mealplanitembase"
|
|
},
|
|
{
|
|
"label": "MealPlanItemResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L184",
|
|
"community": 2,
|
|
"norm_label": "mealplanitemresponse",
|
|
"id": "init_mealplanitemresponse"
|
|
},
|
|
{
|
|
"label": "MealPlanItemCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L199",
|
|
"community": 2,
|
|
"norm_label": "mealplanitemcreate",
|
|
"id": "init_mealplanitemcreate"
|
|
},
|
|
{
|
|
"label": "MealPlanBase",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L203",
|
|
"community": 2,
|
|
"norm_label": "mealplanbase",
|
|
"id": "init_mealplanbase"
|
|
},
|
|
{
|
|
"label": "MealPlanResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L210",
|
|
"community": 2,
|
|
"norm_label": "mealplanresponse",
|
|
"id": "init_mealplanresponse"
|
|
},
|
|
{
|
|
"label": "MealPlanCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L222",
|
|
"community": 2,
|
|
"norm_label": "mealplancreate",
|
|
"id": "init_mealplancreate"
|
|
},
|
|
{
|
|
"label": "VoteRequest",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L226",
|
|
"community": 2,
|
|
"norm_label": "voterequest",
|
|
"id": "init_voterequest"
|
|
},
|
|
{
|
|
"label": "VoteResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L232",
|
|
"community": 2,
|
|
"norm_label": "voteresponse",
|
|
"id": "init_voteresponse"
|
|
},
|
|
{
|
|
"label": "HomePantryBase",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L243",
|
|
"community": 2,
|
|
"norm_label": "homepantrybase",
|
|
"id": "init_homepantrybase"
|
|
},
|
|
{
|
|
"label": "HomePantryResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L250",
|
|
"community": 2,
|
|
"norm_label": "homepantryresponse",
|
|
"id": "init_homepantryresponse"
|
|
},
|
|
{
|
|
"label": "HomePantryCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L261",
|
|
"community": 2,
|
|
"norm_label": "homepantrycreate",
|
|
"id": "init_homepantrycreate"
|
|
},
|
|
{
|
|
"label": "FeedbackBase",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L265",
|
|
"community": 2,
|
|
"norm_label": "feedbackbase",
|
|
"id": "init_feedbackbase"
|
|
},
|
|
{
|
|
"label": "FeedbackResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L272",
|
|
"community": 2,
|
|
"norm_label": "feedbackresponse",
|
|
"id": "init_feedbackresponse"
|
|
},
|
|
{
|
|
"label": "FeedbackCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L283",
|
|
"community": 2,
|
|
"norm_label": "feedbackcreate",
|
|
"id": "init_feedbackcreate"
|
|
},
|
|
{
|
|
"label": "ShoppingListItem",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L287",
|
|
"community": 2,
|
|
"norm_label": "shoppinglistitem",
|
|
"id": "init_shoppinglistitem"
|
|
},
|
|
{
|
|
"label": "ShoppingListResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L300",
|
|
"community": 2,
|
|
"norm_label": "shoppinglistresponse",
|
|
"id": "init_shoppinglistresponse"
|
|
},
|
|
{
|
|
"label": "ingredient.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L1",
|
|
"community": 2,
|
|
"norm_label": "ingredient.py",
|
|
"id": "backend_app_schemas_ingredient_py"
|
|
},
|
|
{
|
|
"label": "IngredientBase",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L10",
|
|
"community": 2,
|
|
"norm_label": "ingredientbase",
|
|
"id": "ingredient_ingredientbase"
|
|
},
|
|
{
|
|
"label": "_strip_and_drop_empty()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L19",
|
|
"community": 2,
|
|
"norm_label": "_strip_and_drop_empty()",
|
|
"id": "ingredient_strip_and_drop_empty"
|
|
},
|
|
{
|
|
"label": "IngredientCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L23",
|
|
"community": 2,
|
|
"norm_label": "ingredientcreate",
|
|
"id": "ingredient_ingredientcreate"
|
|
},
|
|
{
|
|
"label": "IngredientUpdate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L27",
|
|
"community": 2,
|
|
"norm_label": "ingredientupdate",
|
|
"id": "ingredient_ingredientupdate"
|
|
},
|
|
{
|
|
"label": "IngredientRead",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L42",
|
|
"community": 2,
|
|
"norm_label": "ingredientread",
|
|
"id": "ingredient_ingredientread"
|
|
},
|
|
{
|
|
"label": "IngredientGroceryMatchRead",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L48",
|
|
"community": 2,
|
|
"norm_label": "ingredientgrocerymatchread",
|
|
"id": "ingredient_ingredientgrocerymatchread"
|
|
},
|
|
{
|
|
"label": "recipe.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L1",
|
|
"community": 2,
|
|
"norm_label": "recipe.py",
|
|
"id": "backend_app_schemas_recipe_py"
|
|
},
|
|
{
|
|
"label": "RecipeIngredientRef",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L10",
|
|
"community": 2,
|
|
"norm_label": "recipeingredientref",
|
|
"id": "recipe_recipeingredientref"
|
|
},
|
|
{
|
|
"label": "RecipeBase",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L17",
|
|
"community": 2,
|
|
"norm_label": "recipebase",
|
|
"id": "recipe_recipebase"
|
|
},
|
|
{
|
|
"label": "RecipeCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L34",
|
|
"community": 2,
|
|
"norm_label": "recipecreate",
|
|
"id": "recipe_recipecreate"
|
|
},
|
|
{
|
|
"label": "RecipeUpdate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L38",
|
|
"community": 2,
|
|
"norm_label": "recipeupdate",
|
|
"id": "recipe_recipeupdate"
|
|
},
|
|
{
|
|
"label": "RecipeRead",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L54",
|
|
"community": 2,
|
|
"norm_label": "reciperead",
|
|
"id": "recipe_reciperead"
|
|
},
|
|
{
|
|
"label": "ResolveIngredientRequest",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L60",
|
|
"community": 2,
|
|
"norm_label": "resolveingredientrequest",
|
|
"id": "recipe_resolveingredientrequest"
|
|
},
|
|
{
|
|
"label": "ResolveIngredientCandidate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L64",
|
|
"community": 2,
|
|
"norm_label": "resolveingredientcandidate",
|
|
"id": "recipe_resolveingredientcandidate"
|
|
},
|
|
{
|
|
"label": "ResolveIngredientResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L71",
|
|
"community": 2,
|
|
"norm_label": "resolveingredientresponse",
|
|
"id": "recipe_resolveingredientresponse"
|
|
},
|
|
{
|
|
"label": "never_suggest.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/never_suggest.py",
|
|
"source_location": "L1",
|
|
"community": 2,
|
|
"norm_label": "never_suggest.py",
|
|
"id": "backend_app_schemas_never_suggest_py"
|
|
},
|
|
{
|
|
"label": "NeverSuggestCreate",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/never_suggest.py",
|
|
"source_location": "L9",
|
|
"community": 2,
|
|
"norm_label": "neversuggestcreate",
|
|
"id": "never_suggest_neversuggestcreate"
|
|
},
|
|
{
|
|
"label": "_exactly_one_target()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/never_suggest.py",
|
|
"source_location": "L17",
|
|
"community": 2,
|
|
"norm_label": "_exactly_one_target()",
|
|
"id": "never_suggest_exactly_one_target"
|
|
},
|
|
{
|
|
"label": "NeverSuggestRead",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/never_suggest.py",
|
|
"source_location": "L24",
|
|
"community": 2,
|
|
"norm_label": "neversuggestread",
|
|
"id": "never_suggest_neversuggestread"
|
|
},
|
|
{
|
|
"label": "meal_plan_generation.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L1",
|
|
"community": 2,
|
|
"norm_label": "meal_plan_generation.py",
|
|
"id": "backend_app_schemas_meal_plan_generation_py"
|
|
},
|
|
{
|
|
"label": "GenerateRequest",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L11",
|
|
"community": 2,
|
|
"norm_label": "generaterequest",
|
|
"id": "meal_plan_generation_generaterequest"
|
|
},
|
|
{
|
|
"label": "RegenerateRequest",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L16",
|
|
"community": 2,
|
|
"norm_label": "regeneraterequest",
|
|
"id": "meal_plan_generation_regeneraterequest"
|
|
},
|
|
{
|
|
"label": "GenerationItem",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L25",
|
|
"community": 2,
|
|
"norm_label": "generationitem",
|
|
"id": "meal_plan_generation_generationitem"
|
|
},
|
|
{
|
|
"label": "GenerationDebug",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L33",
|
|
"community": 2,
|
|
"norm_label": "generationdebug",
|
|
"id": "meal_plan_generation_generationdebug"
|
|
},
|
|
{
|
|
"label": "GenerationResponse",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L39",
|
|
"community": 2,
|
|
"norm_label": "generationresponse",
|
|
"id": "meal_plan_generation_generationresponse"
|
|
},
|
|
{
|
|
"label": "profile.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "profile.py",
|
|
"id": "backend_app_api_profile_py"
|
|
},
|
|
{
|
|
"label": "get_profile()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L17",
|
|
"community": 0,
|
|
"norm_label": "get_profile()",
|
|
"id": "profile_get_profile"
|
|
},
|
|
{
|
|
"label": "update_profile()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L25",
|
|
"community": 0,
|
|
"norm_label": "update_profile()",
|
|
"id": "profile_update_profile"
|
|
},
|
|
{
|
|
"label": "get_members()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L40",
|
|
"community": 0,
|
|
"norm_label": "get_members()",
|
|
"id": "profile_get_members"
|
|
},
|
|
{
|
|
"label": "add_member()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L48",
|
|
"community": 0,
|
|
"norm_label": "add_member()",
|
|
"id": "profile_add_member"
|
|
},
|
|
{
|
|
"label": "delete_member()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L74",
|
|
"community": 0,
|
|
"norm_label": "delete_member()",
|
|
"id": "profile_delete_member"
|
|
},
|
|
{
|
|
"label": "pantry.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/pantry.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "pantry.py",
|
|
"id": "backend_app_api_pantry_py"
|
|
},
|
|
{
|
|
"label": "get_pantry_items()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/pantry.py",
|
|
"source_location": "L14",
|
|
"community": 0,
|
|
"norm_label": "get_pantry_items()",
|
|
"id": "pantry_get_pantry_items"
|
|
},
|
|
{
|
|
"label": "add_pantry_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/pantry.py",
|
|
"source_location": "L26",
|
|
"community": 0,
|
|
"norm_label": "add_pantry_item()",
|
|
"id": "pantry_add_pantry_item"
|
|
},
|
|
{
|
|
"label": "remove_pantry_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/pantry.py",
|
|
"source_location": "L59",
|
|
"community": 0,
|
|
"norm_label": "remove_pantry_item()",
|
|
"id": "pantry_remove_pantry_item"
|
|
},
|
|
{
|
|
"label": "update_pantry_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/pantry.py",
|
|
"source_location": "L70",
|
|
"community": 0,
|
|
"norm_label": "update_pantry_item()",
|
|
"id": "pantry_update_pantry_item"
|
|
},
|
|
{
|
|
"label": "auth.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L1",
|
|
"community": 27,
|
|
"norm_label": "auth.py",
|
|
"id": "backend_app_api_auth_py"
|
|
},
|
|
{
|
|
"label": "LoginRequest",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L26",
|
|
"community": 27,
|
|
"norm_label": "loginrequest",
|
|
"id": "auth_loginrequest"
|
|
},
|
|
{
|
|
"label": "login()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L31",
|
|
"community": 27,
|
|
"norm_label": "login()",
|
|
"id": "auth_login"
|
|
},
|
|
{
|
|
"label": "logout()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L64",
|
|
"community": 27,
|
|
"norm_label": "logout()",
|
|
"id": "auth_logout"
|
|
},
|
|
{
|
|
"label": "Family-shared session login. POST /api/auth/login \u2014 body ``{\"password\": \"...\"}`",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L1",
|
|
"community": 27,
|
|
"norm_label": "family-shared session login. post /api/auth/login \u2014 body ``{\"password\": \"...\"}`",
|
|
"id": "auth_rationale_1"
|
|
},
|
|
{
|
|
"label": "shopping_list.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/shopping_list.py",
|
|
"source_location": "L1",
|
|
"community": 2,
|
|
"norm_label": "shopping_list.py",
|
|
"id": "backend_app_api_shopping_list_py"
|
|
},
|
|
{
|
|
"label": "_parse_uuid()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/shopping_list.py",
|
|
"source_location": "L18",
|
|
"community": 2,
|
|
"norm_label": "_parse_uuid()",
|
|
"id": "shopping_list_parse_uuid"
|
|
},
|
|
{
|
|
"label": "get_shopping_list()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/shopping_list.py",
|
|
"source_location": "L28",
|
|
"community": 2,
|
|
"norm_label": "get_shopping_list()",
|
|
"id": "shopping_list_get_shopping_list"
|
|
},
|
|
{
|
|
"label": "print_shopping_list()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/shopping_list.py",
|
|
"source_location": "L155",
|
|
"community": 2,
|
|
"norm_label": "print_shopping_list()",
|
|
"id": "shopping_list_print_shopping_list"
|
|
},
|
|
{
|
|
"label": "recipes.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L1",
|
|
"community": 2,
|
|
"norm_label": "recipes.py",
|
|
"id": "backend_app_api_recipes_py"
|
|
},
|
|
{
|
|
"label": "_validate_ingredient_ids()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L32",
|
|
"community": 2,
|
|
"norm_label": "_validate_ingredient_ids()",
|
|
"id": "recipes_validate_ingredient_ids"
|
|
},
|
|
{
|
|
"label": "_serialize()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L46",
|
|
"community": 2,
|
|
"norm_label": "_serialize()",
|
|
"id": "recipes_serialize"
|
|
},
|
|
{
|
|
"label": "list_recipes()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L67",
|
|
"community": 2,
|
|
"norm_label": "list_recipes()",
|
|
"id": "recipes_list_recipes"
|
|
},
|
|
{
|
|
"label": "get_recipe()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L81",
|
|
"community": 2,
|
|
"norm_label": "get_recipe()",
|
|
"id": "recipes_get_recipe"
|
|
},
|
|
{
|
|
"label": "create_recipe()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L89",
|
|
"community": 2,
|
|
"norm_label": "create_recipe()",
|
|
"id": "recipes_create_recipe"
|
|
},
|
|
{
|
|
"label": "update_recipe()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L115",
|
|
"community": 2,
|
|
"norm_label": "update_recipe()",
|
|
"id": "recipes_update_recipe"
|
|
},
|
|
{
|
|
"label": "delete_recipe()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L132",
|
|
"community": 2,
|
|
"norm_label": "delete_recipe()",
|
|
"id": "recipes_delete_recipe"
|
|
},
|
|
{
|
|
"label": "_parse_qty_unit()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L152",
|
|
"community": 2,
|
|
"norm_label": "_parse_qty_unit()",
|
|
"id": "recipes_parse_qty_unit"
|
|
},
|
|
{
|
|
"label": "resolve_ingredient()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L171",
|
|
"community": 2,
|
|
"norm_label": "resolve_ingredient()",
|
|
"id": "recipes_resolve_ingredient"
|
|
},
|
|
{
|
|
"label": "ingredients.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "ingredients.py",
|
|
"id": "backend_app_api_ingredients_py"
|
|
},
|
|
{
|
|
"label": "list_ingredients()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L33",
|
|
"community": 0,
|
|
"norm_label": "list_ingredients()",
|
|
"id": "ingredients_list_ingredients"
|
|
},
|
|
{
|
|
"label": "get_ingredient()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L51",
|
|
"community": 0,
|
|
"norm_label": "get_ingredient()",
|
|
"id": "ingredients_get_ingredient"
|
|
},
|
|
{
|
|
"label": "create_ingredient()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L59",
|
|
"community": 0,
|
|
"norm_label": "create_ingredient()",
|
|
"id": "ingredients_create_ingredient"
|
|
},
|
|
{
|
|
"label": "update_ingredient()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L79",
|
|
"community": 0,
|
|
"norm_label": "update_ingredient()",
|
|
"id": "ingredients_update_ingredient"
|
|
},
|
|
{
|
|
"label": "delete_ingredient()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L108",
|
|
"community": 0,
|
|
"norm_label": "delete_ingredient()",
|
|
"id": "ingredients_delete_ingredient"
|
|
},
|
|
{
|
|
"label": "_PinMatchBody",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L117",
|
|
"community": 2,
|
|
"norm_label": "_pinmatchbody",
|
|
"id": "ingredients_pinmatchbody"
|
|
},
|
|
{
|
|
"label": "pin_match()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L127",
|
|
"community": 0,
|
|
"norm_label": "pin_match()",
|
|
"id": "ingredients_pin_match"
|
|
},
|
|
{
|
|
"label": "unpin_match()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L170",
|
|
"community": 0,
|
|
"norm_label": "unpin_match()",
|
|
"id": "ingredients_unpin_match"
|
|
},
|
|
{
|
|
"label": "never_suggest.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "never_suggest.py",
|
|
"id": "backend_app_api_never_suggest_py"
|
|
},
|
|
{
|
|
"label": "_coerce_reason()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L23",
|
|
"community": 0,
|
|
"norm_label": "_coerce_reason()",
|
|
"id": "never_suggest_coerce_reason"
|
|
},
|
|
{
|
|
"label": "list_for_family()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L33",
|
|
"community": 0,
|
|
"norm_label": "list_for_family()",
|
|
"id": "never_suggest_list_for_family"
|
|
},
|
|
{
|
|
"label": "block()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L45",
|
|
"community": 0,
|
|
"norm_label": "block()",
|
|
"id": "never_suggest_block"
|
|
},
|
|
{
|
|
"label": "unblock()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L64",
|
|
"community": 0,
|
|
"norm_label": "unblock()",
|
|
"id": "never_suggest_unblock"
|
|
},
|
|
{
|
|
"label": "meal_plans.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L1",
|
|
"community": 2,
|
|
"norm_label": "meal_plans.py",
|
|
"id": "backend_app_api_meal_plans_py"
|
|
},
|
|
{
|
|
"label": "_to_response()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L33",
|
|
"community": 2,
|
|
"norm_label": "_to_response()",
|
|
"id": "meal_plans_to_response"
|
|
},
|
|
{
|
|
"label": "generate()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L60",
|
|
"community": 2,
|
|
"norm_label": "generate()",
|
|
"id": "meal_plans_generate"
|
|
},
|
|
{
|
|
"label": "regenerate()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L82",
|
|
"community": 2,
|
|
"norm_label": "regenerate()",
|
|
"id": "meal_plans_regenerate"
|
|
},
|
|
{
|
|
"label": "get_plan()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L120",
|
|
"community": 2,
|
|
"norm_label": "get_plan()",
|
|
"id": "meal_plans_get_plan"
|
|
},
|
|
{
|
|
"label": "admin.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "admin.py",
|
|
"id": "backend_app_api_admin_py"
|
|
},
|
|
{
|
|
"label": "trigger_scrape()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L14",
|
|
"community": 0,
|
|
"norm_label": "trigger_scrape()",
|
|
"id": "admin_trigger_scrape"
|
|
},
|
|
{
|
|
"label": "get_logs()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L30",
|
|
"community": 0,
|
|
"norm_label": "get_logs()",
|
|
"id": "admin_get_logs"
|
|
},
|
|
{
|
|
"label": "get_log()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L60",
|
|
"community": 0,
|
|
"norm_label": "get_log()",
|
|
"id": "admin_get_log"
|
|
},
|
|
{
|
|
"label": "get_email_logs()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L78",
|
|
"community": 0,
|
|
"norm_label": "get_email_logs()",
|
|
"id": "admin_get_email_logs"
|
|
},
|
|
{
|
|
"label": "get_all_meal_plans()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L107",
|
|
"community": 0,
|
|
"norm_label": "get_all_meal_plans()",
|
|
"id": "admin_get_all_meal_plans"
|
|
},
|
|
{
|
|
"label": "test_email()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L134",
|
|
"community": 0,
|
|
"norm_label": "test_email()",
|
|
"id": "admin_test_email"
|
|
},
|
|
{
|
|
"label": "get_stats()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L171",
|
|
"community": 0,
|
|
"norm_label": "get_stats()",
|
|
"id": "admin_get_stats"
|
|
},
|
|
{
|
|
"label": "feedback.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/feedback.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "feedback.py",
|
|
"id": "backend_app_api_feedback_py"
|
|
},
|
|
{
|
|
"label": "get_feedback()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/feedback.py",
|
|
"source_location": "L17",
|
|
"community": 0,
|
|
"norm_label": "get_feedback()",
|
|
"id": "feedback_get_feedback"
|
|
},
|
|
{
|
|
"label": "create_feedback()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/feedback.py",
|
|
"source_location": "L39",
|
|
"community": 0,
|
|
"norm_label": "create_feedback()",
|
|
"id": "feedback_create_feedback"
|
|
},
|
|
{
|
|
"label": "Get existing feedback for a meal plan item.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/api/feedback.py",
|
|
"source_location": "L22",
|
|
"community": 0,
|
|
"norm_label": "get existing feedback for a meal plan item.",
|
|
"id": "feedback_rationale_22"
|
|
},
|
|
{
|
|
"label": "Create or update feedback for a meal plan item.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/api/feedback.py",
|
|
"source_location": "L44",
|
|
"community": 0,
|
|
"norm_label": "create or update feedback for a meal plan item.",
|
|
"id": "feedback_rationale_44"
|
|
},
|
|
{
|
|
"label": "meals.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L1",
|
|
"community": 10,
|
|
"norm_label": "meals.py",
|
|
"id": "backend_app_api_meals_py"
|
|
},
|
|
{
|
|
"label": "get_planned_meals()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L30",
|
|
"community": 10,
|
|
"norm_label": "get_planned_meals()",
|
|
"id": "meals_get_planned_meals"
|
|
},
|
|
{
|
|
"label": "create_meal_plan()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L46",
|
|
"community": 0,
|
|
"norm_label": "create_meal_plan()",
|
|
"id": "meals_create_meal_plan"
|
|
},
|
|
{
|
|
"label": "get_meal_plan()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L85",
|
|
"community": 10,
|
|
"norm_label": "get_meal_plan()",
|
|
"id": "meals_get_meal_plan"
|
|
},
|
|
{
|
|
"label": "lock_meal_plan()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L93",
|
|
"community": 10,
|
|
"norm_label": "lock_meal_plan()",
|
|
"id": "meals_lock_meal_plan"
|
|
},
|
|
{
|
|
"label": "VoteSubmission",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L109",
|
|
"community": 10,
|
|
"norm_label": "votesubmission",
|
|
"id": "meals_votesubmission"
|
|
},
|
|
{
|
|
"label": "get_vote_page()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L119",
|
|
"community": 10,
|
|
"norm_label": "get_vote_page()",
|
|
"id": "meals_get_vote_page"
|
|
},
|
|
{
|
|
"label": "submit_vote()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L251",
|
|
"community": 10,
|
|
"norm_label": "submit_vote()",
|
|
"id": "meals_submit_vote"
|
|
},
|
|
{
|
|
"label": "get_meal_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L301",
|
|
"community": 10,
|
|
"norm_label": "get_meal_item()",
|
|
"id": "meals_get_meal_item"
|
|
},
|
|
{
|
|
"label": "swap_meal_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L323",
|
|
"community": 10,
|
|
"norm_label": "swap_meal_item()",
|
|
"id": "meals_swap_meal_item"
|
|
},
|
|
{
|
|
"label": "approve_meal_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L342",
|
|
"community": 10,
|
|
"norm_label": "approve_meal_item()",
|
|
"id": "meals_approve_meal_item"
|
|
},
|
|
{
|
|
"label": "deny_meal_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L353",
|
|
"community": 10,
|
|
"norm_label": "deny_meal_item()",
|
|
"id": "meals_deny_meal_item"
|
|
},
|
|
{
|
|
"label": "generate_single_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L364",
|
|
"community": 0,
|
|
"norm_label": "generate_single_item()",
|
|
"id": "meals_generate_single_item"
|
|
},
|
|
{
|
|
"label": "move_meal_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L413",
|
|
"community": 10,
|
|
"norm_label": "move_meal_item()",
|
|
"id": "meals_move_meal_item"
|
|
},
|
|
{
|
|
"label": "Body for POST /vote/{item_id}?token=... Spec body: {\"vote\": \"approve\" | \"de",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L110",
|
|
"community": 10,
|
|
"norm_label": "body for post /vote/{item_id}?token=... spec body: {\"vote\": \"approve\" | \"de",
|
|
"id": "meals_rationale_110"
|
|
},
|
|
{
|
|
"label": "Render the per-voter approval confirmation page. Verifies the signed token",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L124",
|
|
"community": 10,
|
|
"norm_label": "render the per-voter approval confirmation page. verifies the signed token",
|
|
"id": "meals_rationale_124"
|
|
},
|
|
{
|
|
"label": "Record a per-voter vote and apply the approval rule. - Single-use enforceme",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L257",
|
|
"community": 10,
|
|
"norm_label": "record a per-voter vote and apply the approval rule. - single-use enforceme",
|
|
"id": "meals_rationale_257"
|
|
},
|
|
{
|
|
"label": "Directly approve a meal plan item from the dashboard.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L343",
|
|
"community": 10,
|
|
"norm_label": "directly approve a meal plan item from the dashboard.",
|
|
"id": "meals_rationale_343"
|
|
},
|
|
{
|
|
"label": "Directly deny a meal plan item from the dashboard.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L354",
|
|
"community": 10,
|
|
"norm_label": "directly deny a meal plan item from the dashboard.",
|
|
"id": "meals_rationale_354"
|
|
},
|
|
{
|
|
"label": "Generate a single meal for an empty slot.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L370",
|
|
"community": 0,
|
|
"norm_label": "generate a single meal for an empty slot.",
|
|
"id": "meals_rationale_370"
|
|
},
|
|
{
|
|
"label": "Move a meal to a new day/type slot. If the target slot is occupied by anoth",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L419",
|
|
"community": 10,
|
|
"norm_label": "move a meal to a new day/type slot. if the target slot is occupied by anoth",
|
|
"id": "meals_rationale_419"
|
|
},
|
|
{
|
|
"label": "orchestrate.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/orchestrate.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "orchestrate.py",
|
|
"id": "backend_app_api_orchestrate_py"
|
|
},
|
|
{
|
|
"label": "orchestrate_status()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/orchestrate.py",
|
|
"source_location": "L15",
|
|
"community": 0,
|
|
"norm_label": "orchestrate_status()",
|
|
"id": "orchestrate_orchestrate_status"
|
|
},
|
|
{
|
|
"label": "orchestrate_run_week()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/orchestrate.py",
|
|
"source_location": "L41",
|
|
"community": 0,
|
|
"norm_label": "orchestrate_run_week()",
|
|
"id": "orchestrate_orchestrate_run_week"
|
|
},
|
|
{
|
|
"label": "orchestrate_step()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/api/orchestrate.py",
|
|
"source_location": "L51",
|
|
"community": 0,
|
|
"norm_label": "orchestrate_step()",
|
|
"id": "orchestrate_orchestrate_step"
|
|
},
|
|
{
|
|
"label": "__init__.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/__init__.py",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "__init__.py",
|
|
"id": "backend_app_services_init_py"
|
|
},
|
|
{
|
|
"label": "approval.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L1",
|
|
"community": 10,
|
|
"norm_label": "approval.py",
|
|
"id": "backend_app_services_approval_py"
|
|
},
|
|
{
|
|
"label": "_serializer()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L33",
|
|
"community": 10,
|
|
"norm_label": "_serializer()",
|
|
"id": "approval_serializer"
|
|
},
|
|
{
|
|
"label": "issue_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L37",
|
|
"community": 10,
|
|
"norm_label": "issue_token()",
|
|
"id": "approval_issue_token"
|
|
},
|
|
{
|
|
"label": "verify_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L45",
|
|
"community": 10,
|
|
"norm_label": "verify_token()",
|
|
"id": "approval_verify_token"
|
|
},
|
|
{
|
|
"label": "consume_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L57",
|
|
"community": 10,
|
|
"norm_label": "consume_token()",
|
|
"id": "approval_consume_token"
|
|
},
|
|
{
|
|
"label": "Per-voter approval tokens. Stateless signed tokens (itsdangerous) keyed on sett",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L1",
|
|
"community": 10,
|
|
"norm_label": "per-voter approval tokens. stateless signed tokens (itsdangerous) keyed on sett",
|
|
"id": "approval_rationale_1"
|
|
},
|
|
{
|
|
"label": "Verify + match URL + enforce single-use. Returns the voter on success. Sing",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L63",
|
|
"community": 10,
|
|
"norm_label": "verify + match url + enforce single-use. returns the voter on success. sing",
|
|
"id": "approval_rationale_63"
|
|
},
|
|
{
|
|
"label": "swiftly_auth.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "swiftly_auth.py",
|
|
"id": "backend_app_services_swiftly_auth_py"
|
|
},
|
|
{
|
|
"label": "SwiftlyAuthMintError",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L28",
|
|
"community": 4,
|
|
"norm_label": "swiftlyauthminterror",
|
|
"id": "swiftly_auth_swiftlyauthminterror"
|
|
},
|
|
{
|
|
"label": "Exception",
|
|
"file_type": "code",
|
|
"source_file": "",
|
|
"source_location": "",
|
|
"community": 4,
|
|
"norm_label": "exception",
|
|
"id": "exception"
|
|
},
|
|
{
|
|
"label": "_reset_cache_for_tests()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L51",
|
|
"community": 4,
|
|
"norm_label": "_reset_cache_for_tests()",
|
|
"id": "swiftly_auth_reset_cache_for_tests"
|
|
},
|
|
{
|
|
"label": "_decode_jwt_payload()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L59",
|
|
"community": 4,
|
|
"norm_label": "_decode_jwt_payload()",
|
|
"id": "swiftly_auth_decode_jwt_payload"
|
|
},
|
|
{
|
|
"label": "_fetch_firebase_api_key()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L72",
|
|
"community": 4,
|
|
"norm_label": "_fetch_firebase_api_key()",
|
|
"id": "swiftly_auth_fetch_firebase_api_key"
|
|
},
|
|
{
|
|
"label": "mint_anonymous_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L105",
|
|
"community": 4,
|
|
"norm_label": "mint_anonymous_token()",
|
|
"id": "swiftly_auth_mint_anonymous_token"
|
|
},
|
|
{
|
|
"label": "get_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L160",
|
|
"community": 4,
|
|
"norm_label": "get_token()",
|
|
"id": "swiftly_auth_get_token"
|
|
},
|
|
{
|
|
"label": "Swiftly bearer-JWT auto-mint via Firebase REST. Replaces the static ``SWIFTLY_B",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "swiftly bearer-jwt auto-mint via firebase rest. replaces the static ``swiftly_b",
|
|
"id": "swiftly_auth_rationale_1"
|
|
},
|
|
{
|
|
"label": "Raised when minting a fresh Swiftly JWT fails. Surface the message verbatim",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L29",
|
|
"community": 4,
|
|
"norm_label": "raised when minting a fresh swiftly jwt fails. surface the message verbatim",
|
|
"id": "swiftly_auth_rationale_29"
|
|
},
|
|
{
|
|
"label": "Clear the process-local cache. Test-only helper.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L52",
|
|
"community": 4,
|
|
"norm_label": "clear the process-local cache. test-only helper.",
|
|
"id": "swiftly_auth_rationale_52"
|
|
},
|
|
{
|
|
"label": "Mint a fresh anonymous Firebase ID token. Returns ``(token, exp_epoch_secon",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L106",
|
|
"community": 4,
|
|
"norm_label": "mint a fresh anonymous firebase id token. returns ``(token, exp_epoch_secon",
|
|
"id": "swiftly_auth_rationale_106"
|
|
},
|
|
{
|
|
"label": "Return a valid Swiftly bearer JWT, minting one if needed. A cached token is",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L161",
|
|
"community": 4,
|
|
"norm_label": "return a valid swiftly bearer jwt, minting one if needed. a cached token is",
|
|
"id": "swiftly_auth_rationale_161"
|
|
},
|
|
{
|
|
"label": "email.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "email.py",
|
|
"id": "backend_app_services_email_py"
|
|
},
|
|
{
|
|
"label": "EmailBackend",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L29",
|
|
"community": 5,
|
|
"norm_label": "emailbackend",
|
|
"id": "email_emailbackend"
|
|
},
|
|
{
|
|
"label": "Protocol",
|
|
"file_type": "code",
|
|
"source_file": "",
|
|
"source_location": "",
|
|
"community": 5,
|
|
"norm_label": "protocol",
|
|
"id": "protocol"
|
|
},
|
|
{
|
|
"label": ".send()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L30",
|
|
"community": 5,
|
|
"norm_label": ".send()",
|
|
"id": "email_emailbackend_send"
|
|
},
|
|
{
|
|
"label": "ConsoleEmailBackend",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L40",
|
|
"community": 5,
|
|
"norm_label": "consoleemailbackend",
|
|
"id": "email_consoleemailbackend"
|
|
},
|
|
{
|
|
"label": ".send()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L46",
|
|
"community": 5,
|
|
"norm_label": ".send()",
|
|
"id": "email_consoleemailbackend_send"
|
|
},
|
|
{
|
|
"label": "SendGridEmailBackend",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L70",
|
|
"community": 5,
|
|
"norm_label": "sendgridemailbackend",
|
|
"id": "email_sendgridemailbackend"
|
|
},
|
|
{
|
|
"label": ".__init__()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L71",
|
|
"community": 5,
|
|
"norm_label": ".__init__()",
|
|
"id": "email_sendgridemailbackend_init"
|
|
},
|
|
{
|
|
"label": ".send()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L76",
|
|
"community": 5,
|
|
"norm_label": ".send()",
|
|
"id": "email_sendgridemailbackend_send"
|
|
},
|
|
{
|
|
"label": "get_email_backend()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L98",
|
|
"community": 5,
|
|
"norm_label": "get_email_backend()",
|
|
"id": "email_get_email_backend"
|
|
},
|
|
{
|
|
"label": "Email backends. R2-B spike: only ConsoleEmailBackend is functional. SendGrid is",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "email backends. r2-b spike: only consoleemailbackend is functional. sendgrid is",
|
|
"id": "email_rationale_1"
|
|
},
|
|
{
|
|
"label": "Dev/spike backend. Prints to stdout AND appends a JSON line to backend/var/e",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L41",
|
|
"community": 5,
|
|
"norm_label": "dev/spike backend. prints to stdout and appends a json line to backend/var/e",
|
|
"id": "email_rationale_41"
|
|
},
|
|
{
|
|
"label": "matcher.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L1",
|
|
"community": 24,
|
|
"norm_label": "matcher.py",
|
|
"id": "backend_app_services_matcher_py"
|
|
},
|
|
{
|
|
"label": "_singularize()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L42",
|
|
"community": 24,
|
|
"norm_label": "_singularize()",
|
|
"id": "matcher_singularize"
|
|
},
|
|
{
|
|
"label": "MatchResult",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L87",
|
|
"community": 24,
|
|
"norm_label": "matchresult",
|
|
"id": "matcher_matchresult"
|
|
},
|
|
{
|
|
"label": "_sig_words()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L93",
|
|
"community": 24,
|
|
"norm_label": "_sig_words()",
|
|
"id": "matcher_sig_words"
|
|
},
|
|
{
|
|
"label": "run_match_job()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L103",
|
|
"community": 0,
|
|
"norm_label": "run_match_job()",
|
|
"id": "matcher_run_match_job"
|
|
},
|
|
{
|
|
"label": "Fuzzy ingredient\u2192grocery_item matcher. Ingredient-centric: for each ingredient,",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L1",
|
|
"community": 24,
|
|
"norm_label": "fuzzy ingredient\u2192grocery_item matcher. ingredient-centric: for each ingredient,",
|
|
"id": "matcher_rationale_1"
|
|
},
|
|
{
|
|
"label": "Best-effort English singularization for grocery product names. Handles 'tor",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L43",
|
|
"community": 24,
|
|
"norm_label": "best-effort english singularization for grocery product names. handles 'tor",
|
|
"id": "matcher_rationale_43"
|
|
},
|
|
{
|
|
"label": "Lowercase alpha tokens >2 chars, stop-words removed, plurals normalized.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L94",
|
|
"community": 24,
|
|
"norm_label": "lowercase alpha tokens >2 chars, stop-words removed, plurals normalized.",
|
|
"id": "matcher_rationale_94"
|
|
},
|
|
{
|
|
"label": "Refresh AUTO ingredient_grocery_match rows for grocery items from `source_filter",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L109",
|
|
"community": 0,
|
|
"norm_label": "refresh auto ingredient_grocery_match rows for grocery items from `source_filter",
|
|
"id": "matcher_rationale_109"
|
|
},
|
|
{
|
|
"label": "scraper_service.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "scraper_service.py",
|
|
"id": "backend_app_services_scraper_service_py"
|
|
},
|
|
{
|
|
"label": "enqueue_scrape()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L36",
|
|
"community": 0,
|
|
"norm_label": "enqueue_scrape()",
|
|
"id": "scraper_service_enqueue_scrape"
|
|
},
|
|
{
|
|
"label": "_run_scrape_in_background()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L65",
|
|
"community": 4,
|
|
"norm_label": "_run_scrape_in_background()",
|
|
"id": "scraper_service_run_scrape_in_background"
|
|
},
|
|
{
|
|
"label": "ScraperService",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L123",
|
|
"community": 0,
|
|
"norm_label": "scraperservice",
|
|
"id": "scraper_service_scraperservice"
|
|
},
|
|
{
|
|
"label": ".__init__()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L124",
|
|
"community": 0,
|
|
"norm_label": ".__init__()",
|
|
"id": "scraper_service_scraperservice_init"
|
|
},
|
|
{
|
|
"label": ".run_scrape()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L127",
|
|
"community": 0,
|
|
"norm_label": ".run_scrape()",
|
|
"id": "scraper_service_scraperservice_run_scrape"
|
|
},
|
|
{
|
|
"label": "._do_scrape()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L180",
|
|
"community": 4,
|
|
"norm_label": "._do_scrape()",
|
|
"id": "scraper_service_scraperservice_do_scrape"
|
|
},
|
|
{
|
|
"label": "._save_grocery_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L200",
|
|
"community": 0,
|
|
"norm_label": "._save_grocery_item()",
|
|
"id": "scraper_service_scraperservice_save_grocery_item"
|
|
},
|
|
{
|
|
"label": ".get_sale_items()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L285",
|
|
"community": 0,
|
|
"norm_label": ".get_sale_items()",
|
|
"id": "scraper_service_scraperservice_get_sale_items"
|
|
},
|
|
{
|
|
"label": "Scraper service. Two entry points: - ``enqueue_scrape(db, source, scrape_type,",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "scraper service. two entry points: - ``enqueue_scrape(db, source, scrape_type,",
|
|
"id": "scraper_service_rationale_1"
|
|
},
|
|
{
|
|
"label": "Create the ScrapeLog row, commit, and schedule the background scrape. Retur",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L43",
|
|
"community": 0,
|
|
"norm_label": "create the scrapelog row, commit, and schedule the background scrape. retur",
|
|
"id": "scraper_service_rationale_43"
|
|
},
|
|
{
|
|
"label": "Background entry point. Opens a fresh DB session \u2014 the request-scoped sessio",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L68",
|
|
"community": 4,
|
|
"norm_label": "background entry point. opens a fresh db session \u2014 the request-scoped sessio",
|
|
"id": "scraper_service_rationale_68"
|
|
},
|
|
{
|
|
"label": "Synchronous end-to-end scrape (legacy path). Creates the log row, runs t",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L130",
|
|
"community": 0,
|
|
"norm_label": "synchronous end-to-end scrape (legacy path). creates the log row, runs t",
|
|
"id": "scraper_service_rationale_130"
|
|
},
|
|
{
|
|
"label": "Run the scraper and persist items. Returns (saved, found). Raises any s",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L181",
|
|
"community": 4,
|
|
"norm_label": "run the scraper and persist items. returns (saved, found). raises any s",
|
|
"id": "scraper_service_rationale_181"
|
|
},
|
|
{
|
|
"label": "llm_matcher.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L1",
|
|
"community": 24,
|
|
"norm_label": "llm_matcher.py",
|
|
"id": "backend_app_services_llm_matcher_py"
|
|
},
|
|
{
|
|
"label": "_get_candidates()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L38",
|
|
"community": 24,
|
|
"norm_label": "_get_candidates()",
|
|
"id": "llm_matcher_get_candidates"
|
|
},
|
|
{
|
|
"label": "_get_unmatched_ingredients()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L86",
|
|
"community": 24,
|
|
"norm_label": "_get_unmatched_ingredients()",
|
|
"id": "llm_matcher_get_unmatched_ingredients"
|
|
},
|
|
{
|
|
"label": "_ask_ollama()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L97",
|
|
"community": 24,
|
|
"norm_label": "_ask_ollama()",
|
|
"id": "llm_matcher_ask_ollama"
|
|
},
|
|
{
|
|
"label": "run_llm_match_job()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L147",
|
|
"community": 24,
|
|
"norm_label": "run_llm_match_job()",
|
|
"id": "llm_matcher_run_llm_match_job"
|
|
},
|
|
{
|
|
"label": "LLM-powered second-pass ingredient\u2192grocery matcher. After the deterministic AUT",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L1",
|
|
"community": 24,
|
|
"norm_label": "llm-powered second-pass ingredient\u2192grocery matcher. after the deterministic aut",
|
|
"id": "llm_matcher_rationale_1"
|
|
},
|
|
{
|
|
"label": "Return up to ``_CANDIDATE_LIMIT`` grocery items ranked by fuzzy\u00d7precision.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L42",
|
|
"community": 24,
|
|
"norm_label": "return up to ``_candidate_limit`` grocery items ranked by fuzzy\u00d7precision.",
|
|
"id": "llm_matcher_rationale_42"
|
|
},
|
|
{
|
|
"label": "Ingredients with no existing match in ingredient_grocery_match.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L87",
|
|
"community": 24,
|
|
"norm_label": "ingredients with no existing match in ingredient_grocery_match.",
|
|
"id": "llm_matcher_rationale_87"
|
|
},
|
|
{
|
|
"label": "Ask the LLM to pick the best grocery item for the ingredient. Returns the 0",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L98",
|
|
"community": 24,
|
|
"norm_label": "ask the llm to pick the best grocery item for the ingredient. returns the 0",
|
|
"id": "llm_matcher_rationale_98"
|
|
},
|
|
{
|
|
"label": "LLM second pass: match remaining unmatched ingredients. For each ingredient",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L152",
|
|
"community": 24,
|
|
"norm_label": "llm second pass: match remaining unmatched ingredients. for each ingredient",
|
|
"id": "llm_matcher_rationale_152"
|
|
},
|
|
{
|
|
"label": "__init__.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/__init__.py",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "__init__.py",
|
|
"id": "backend_app_services_planner_init_py"
|
|
},
|
|
{
|
|
"label": "config.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/config.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "config.py",
|
|
"id": "backend_app_services_planner_config_py"
|
|
},
|
|
{
|
|
"label": "PlannerConfig",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/config.py",
|
|
"source_location": "L8",
|
|
"community": 6,
|
|
"norm_label": "plannerconfig",
|
|
"id": "config_plannerconfig"
|
|
},
|
|
{
|
|
"label": ".validate()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/config.py",
|
|
"source_location": "L35",
|
|
"community": 6,
|
|
"norm_label": ".validate()",
|
|
"id": "config_plannerconfig_validate"
|
|
},
|
|
{
|
|
"label": "Planner constants. Tune here without touching algorithm code.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/planner/config.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "planner constants. tune here without touching algorithm code.",
|
|
"id": "config_rationale_1"
|
|
},
|
|
{
|
|
"label": "types.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "types.py",
|
|
"id": "backend_app_services_planner_types_py"
|
|
},
|
|
{
|
|
"label": "IngredientCost",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L11",
|
|
"community": 32,
|
|
"norm_label": "ingredientcost",
|
|
"id": "types_ingredientcost"
|
|
},
|
|
{
|
|
"label": "RecipeCost",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L26",
|
|
"community": 6,
|
|
"norm_label": "recipecost",
|
|
"id": "types_recipecost"
|
|
},
|
|
{
|
|
"label": "sale_coverage_pct()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L37",
|
|
"community": 6,
|
|
"norm_label": "sale_coverage_pct()",
|
|
"id": "types_sale_coverage_pct"
|
|
},
|
|
{
|
|
"label": "pantry_hit_pct()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L43",
|
|
"community": 6,
|
|
"norm_label": "pantry_hit_pct()",
|
|
"id": "types_pantry_hit_pct"
|
|
},
|
|
{
|
|
"label": "FilterResult",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L50",
|
|
"community": 6,
|
|
"norm_label": "filterresult",
|
|
"id": "types_filterresult"
|
|
},
|
|
{
|
|
"label": "ScoredRecipe",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L56",
|
|
"community": 6,
|
|
"norm_label": "scoredrecipe",
|
|
"id": "types_scoredrecipe"
|
|
},
|
|
{
|
|
"label": "GenerationResult",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L66",
|
|
"community": 6,
|
|
"norm_label": "generationresult",
|
|
"id": "types_generationresult"
|
|
},
|
|
{
|
|
"label": "Shared planner data structures.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "shared planner data structures.",
|
|
"id": "types_rationale_1"
|
|
},
|
|
{
|
|
"label": "cost.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L1",
|
|
"community": 32,
|
|
"norm_label": "cost.py",
|
|
"id": "backend_app_services_planner_cost_py"
|
|
},
|
|
{
|
|
"label": "_decimal()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L30",
|
|
"community": 32,
|
|
"norm_label": "_decimal()",
|
|
"id": "cost_decimal"
|
|
},
|
|
{
|
|
"label": "_scale()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L36",
|
|
"community": 32,
|
|
"norm_label": "_scale()",
|
|
"id": "cost_scale"
|
|
},
|
|
{
|
|
"label": "compute_recipe_cost()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L40",
|
|
"community": 32,
|
|
"norm_label": "compute_recipe_cost()",
|
|
"id": "cost_compute_recipe_cost"
|
|
},
|
|
{
|
|
"label": "Compute per-recipe cost and savings against ingredient_grocery_match. Inputs:",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L1",
|
|
"community": 32,
|
|
"norm_label": "compute per-recipe cost and savings against ingredient_grocery_match. inputs:",
|
|
"id": "cost_rationale_1"
|
|
},
|
|
{
|
|
"label": "filter.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "filter.py",
|
|
"id": "backend_app_services_planner_filter_py"
|
|
},
|
|
{
|
|
"label": "_calorie_band()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L12",
|
|
"community": 6,
|
|
"norm_label": "_calorie_band()",
|
|
"id": "filter_calorie_band"
|
|
},
|
|
{
|
|
"label": "filter_recipes()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L17",
|
|
"community": 6,
|
|
"norm_label": "filter_recipes()",
|
|
"id": "filter_filter_recipes"
|
|
},
|
|
{
|
|
"label": "Hard-constraint filter (constraints #1-#6 from the spec).",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "hard-constraint filter (constraints #1-#6 from the spec).",
|
|
"id": "filter_rationale_1"
|
|
},
|
|
{
|
|
"label": "score.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "score.py",
|
|
"id": "backend_app_services_planner_score_py"
|
|
},
|
|
{
|
|
"label": "time_bonus()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L13",
|
|
"community": 6,
|
|
"norm_label": "time_bonus()",
|
|
"id": "score_time_bonus"
|
|
},
|
|
{
|
|
"label": "recency_bonus()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L23",
|
|
"community": 6,
|
|
"norm_label": "recency_bonus()",
|
|
"id": "score_recency_bonus"
|
|
},
|
|
{
|
|
"label": "normalize_savings()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L42",
|
|
"community": 6,
|
|
"norm_label": "normalize_savings()",
|
|
"id": "score_normalize_savings"
|
|
},
|
|
{
|
|
"label": "score_recipes()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L52",
|
|
"community": 6,
|
|
"norm_label": "score_recipes()",
|
|
"id": "score_score_recipes"
|
|
},
|
|
{
|
|
"label": "Per-recipe scoring with the 5 weighted signals from the spec.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "per-recipe scoring with the 5 weighted signals from the spec.",
|
|
"id": "score_rationale_1"
|
|
},
|
|
{
|
|
"label": "Returns recipes scored DESC. Caller passes only the feasible set.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L60",
|
|
"community": 6,
|
|
"norm_label": "returns recipes scored desc. caller passes only the feasible set.",
|
|
"id": "score_rationale_60"
|
|
},
|
|
{
|
|
"label": "select.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "select.py",
|
|
"id": "backend_app_services_planner_select_py"
|
|
},
|
|
{
|
|
"label": "set_diversity_penalty()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L16",
|
|
"community": 6,
|
|
"norm_label": "set_diversity_penalty()",
|
|
"id": "select_set_diversity_penalty"
|
|
},
|
|
{
|
|
"label": "_set_score()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L29",
|
|
"community": 6,
|
|
"norm_label": "_set_score()",
|
|
"id": "select_set_score"
|
|
},
|
|
{
|
|
"label": "select_set()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L33",
|
|
"community": 6,
|
|
"norm_label": "select_set()",
|
|
"id": "select_select_set"
|
|
},
|
|
{
|
|
"label": "Top-K set enumeration with diversity penalty. Takes the top K (=20) scored reci",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "top-k set enumeration with diversity penalty. takes the top k (=20) scored reci",
|
|
"id": "select_rationale_1"
|
|
},
|
|
{
|
|
"label": "generate.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "generate.py",
|
|
"id": "backend_app_services_planner_generate_py"
|
|
},
|
|
{
|
|
"label": "_load_match_index()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L32",
|
|
"community": 6,
|
|
"norm_label": "_load_match_index()",
|
|
"id": "generate_load_match_index"
|
|
},
|
|
{
|
|
"label": "_load_blocklists()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L55",
|
|
"community": 6,
|
|
"norm_label": "_load_blocklists()",
|
|
"id": "generate_load_blocklists"
|
|
},
|
|
{
|
|
"label": "_load_pantry()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L68",
|
|
"community": 6,
|
|
"norm_label": "_load_pantry()",
|
|
"id": "generate_load_pantry"
|
|
},
|
|
{
|
|
"label": "_load_last_cooked()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L76",
|
|
"community": 6,
|
|
"norm_label": "_load_last_cooked()",
|
|
"id": "generate_load_last_cooked"
|
|
},
|
|
{
|
|
"label": "generate_meal_plan()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L92",
|
|
"community": 6,
|
|
"norm_label": "generate_meal_plan()",
|
|
"id": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"label": "End-to-end planner orchestration: load \u2192 filter \u2192 score \u2192 select \u2192 persist.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "end-to-end planner orchestration: load \u2192 filter \u2192 score \u2192 select \u2192 persist.",
|
|
"id": "generate_rationale_1"
|
|
},
|
|
{
|
|
"label": "ingredient_id \u2192 list of match dicts ordered by confidence DESC.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L33",
|
|
"community": 6,
|
|
"norm_label": "ingredient_id \u2192 list of match dicts ordered by confidence desc.",
|
|
"id": "generate_rationale_33"
|
|
},
|
|
{
|
|
"label": "__init__.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/__init__.py",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "__init__.py",
|
|
"id": "backend_app_services_orchestrator_init_py"
|
|
},
|
|
{
|
|
"label": "alerts.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/alerts.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "alerts.py",
|
|
"id": "backend_app_services_orchestrator_alerts_py"
|
|
},
|
|
{
|
|
"label": "send_admin_alert()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/alerts.py",
|
|
"source_location": "L9",
|
|
"community": 5,
|
|
"norm_label": "send_admin_alert()",
|
|
"id": "alerts_send_admin_alert"
|
|
},
|
|
{
|
|
"label": "runner.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "runner.py",
|
|
"id": "backend_app_services_orchestrator_runner_py"
|
|
},
|
|
{
|
|
"label": "_current_week_start()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L20",
|
|
"community": 5,
|
|
"norm_label": "_current_week_start()",
|
|
"id": "runner_current_week_start"
|
|
},
|
|
{
|
|
"label": "_get_or_create_run()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L27",
|
|
"community": 5,
|
|
"norm_label": "_get_or_create_run()",
|
|
"id": "runner_get_or_create_run"
|
|
},
|
|
{
|
|
"label": "run_step()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L50",
|
|
"community": 5,
|
|
"norm_label": "run_step()",
|
|
"id": "runner_run_step"
|
|
},
|
|
{
|
|
"label": "run_week()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L84",
|
|
"community": 5,
|
|
"norm_label": "run_week()",
|
|
"id": "runner_run_week"
|
|
},
|
|
{
|
|
"label": "Orchestrator runner. run_step(step_name, week_start_date) \u2014 execute one step f",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "orchestrator runner. run_step(step_name, week_start_date) \u2014 execute one step f",
|
|
"id": "runner_rationale_1"
|
|
},
|
|
{
|
|
"label": "Return the most recent Friday (today if today is Friday).",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L21",
|
|
"community": 5,
|
|
"norm_label": "return the most recent friday (today if today is friday).",
|
|
"id": "runner_rationale_21"
|
|
},
|
|
{
|
|
"label": "steps.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "steps.py",
|
|
"id": "backend_app_services_orchestrator_steps_py"
|
|
},
|
|
{
|
|
"label": "step_scrape()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L34",
|
|
"community": 5,
|
|
"norm_label": "step_scrape()",
|
|
"id": "steps_step_scrape"
|
|
},
|
|
{
|
|
"label": "step_generate()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L67",
|
|
"community": 5,
|
|
"norm_label": "step_generate()",
|
|
"id": "steps_step_generate"
|
|
},
|
|
{
|
|
"label": "step_email()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L92",
|
|
"community": 5,
|
|
"norm_label": "step_email()",
|
|
"id": "steps_step_email"
|
|
},
|
|
{
|
|
"label": "step_deadline()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L297",
|
|
"community": 5,
|
|
"norm_label": "step_deadline()",
|
|
"id": "steps_step_deadline"
|
|
},
|
|
{
|
|
"label": "step_finalize()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L335",
|
|
"community": 5,
|
|
"norm_label": "step_finalize()",
|
|
"id": "steps_step_finalize"
|
|
},
|
|
{
|
|
"label": "step_reminder()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L460",
|
|
"community": 5,
|
|
"norm_label": "step_reminder()",
|
|
"id": "steps_step_reminder"
|
|
},
|
|
{
|
|
"label": "Orchestrator step functions. Each step receives a WeeklyRun row and an open Ses",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "orchestrator step functions. each step receives a weeklyrun row and an open ses",
|
|
"id": "steps_rationale_1"
|
|
},
|
|
{
|
|
"label": "base.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L1",
|
|
"community": 25,
|
|
"norm_label": "base.py",
|
|
"id": "backend_app_scraper_base_py"
|
|
},
|
|
{
|
|
"label": "BaseScraper",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L14",
|
|
"community": 25,
|
|
"norm_label": "basescraper",
|
|
"id": "base_basescraper"
|
|
},
|
|
{
|
|
"label": "ABC",
|
|
"file_type": "code",
|
|
"source_file": "",
|
|
"source_location": "",
|
|
"community": 25,
|
|
"norm_label": "abc",
|
|
"id": "abc"
|
|
},
|
|
{
|
|
"label": ".__init__()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L15",
|
|
"community": 25,
|
|
"norm_label": ".__init__()",
|
|
"id": "base_basescraper_init"
|
|
},
|
|
{
|
|
"label": "._create_session()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L29",
|
|
"community": 25,
|
|
"norm_label": "._create_session()",
|
|
"id": "base_basescraper_create_session"
|
|
},
|
|
{
|
|
"label": "._rate_limit()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L51",
|
|
"community": 25,
|
|
"norm_label": "._rate_limit()",
|
|
"id": "base_basescraper_rate_limit"
|
|
},
|
|
{
|
|
"label": "._get()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L59",
|
|
"community": 25,
|
|
"norm_label": "._get()",
|
|
"id": "base_basescraper_get"
|
|
},
|
|
{
|
|
"label": "._post()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L80",
|
|
"community": 25,
|
|
"norm_label": "._post()",
|
|
"id": "base_basescraper_post"
|
|
},
|
|
{
|
|
"label": "scrape()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L102",
|
|
"community": 25,
|
|
"norm_label": "scrape()",
|
|
"id": "base_scrape"
|
|
},
|
|
{
|
|
"label": ".log_scrape()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L105",
|
|
"community": 25,
|
|
"norm_label": ".log_scrape()",
|
|
"id": "base_basescraper_log_scrape"
|
|
},
|
|
{
|
|
"label": "SeleniumScraper",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L109",
|
|
"community": 25,
|
|
"norm_label": "seleniumscraper",
|
|
"id": "base_seleniumscraper"
|
|
},
|
|
{
|
|
"label": ".__init__()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L110",
|
|
"community": 25,
|
|
"norm_label": ".__init__()",
|
|
"id": "base_seleniumscraper_init"
|
|
},
|
|
{
|
|
"label": "._init_playwright()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L114",
|
|
"community": 25,
|
|
"norm_label": "._init_playwright()",
|
|
"id": "base_seleniumscraper_init_playwright"
|
|
},
|
|
{
|
|
"label": "._get_playwright()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L123",
|
|
"community": 25,
|
|
"norm_label": "._get_playwright()",
|
|
"id": "base_seleniumscraper_get_playwright"
|
|
},
|
|
{
|
|
"label": ".get_browser_page()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L127",
|
|
"community": 25,
|
|
"norm_label": ".get_browser_page()",
|
|
"id": "base_seleniumscraper_get_browser_page"
|
|
},
|
|
{
|
|
"label": ".cleanup()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L133",
|
|
"community": 25,
|
|
"norm_label": ".cleanup()",
|
|
"id": "base_seleniumscraper_cleanup"
|
|
},
|
|
{
|
|
"label": "__init__.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/__init__.py",
|
|
"source_location": "L1",
|
|
"community": 25,
|
|
"norm_label": "__init__.py",
|
|
"id": "backend_app_scraper_init_py"
|
|
},
|
|
{
|
|
"label": "lucky_ca_scraper.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "lucky_ca_scraper.py",
|
|
"id": "backend_app_scraper_lucky_ca_scraper_py"
|
|
},
|
|
{
|
|
"label": "SwiftlyAuthError",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L49",
|
|
"community": 4,
|
|
"norm_label": "swiftlyautherror",
|
|
"id": "lucky_ca_scraper_swiftlyautherror"
|
|
},
|
|
{
|
|
"label": "LuckyCaliforniaScraper",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L67",
|
|
"community": 4,
|
|
"norm_label": "luckycaliforniascraper",
|
|
"id": "lucky_ca_scraper_luckycaliforniascraper"
|
|
},
|
|
{
|
|
"label": ".__init__()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L86",
|
|
"community": 4,
|
|
"norm_label": ".__init__()",
|
|
"id": "lucky_ca_scraper_luckycaliforniascraper_init"
|
|
},
|
|
{
|
|
"label": ".cleanup()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L129",
|
|
"community": 4,
|
|
"norm_label": ".cleanup()",
|
|
"id": "lucky_ca_scraper_luckycaliforniascraper_cleanup"
|
|
},
|
|
{
|
|
"label": ".scrape()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L138",
|
|
"community": 4,
|
|
"norm_label": ".scrape()",
|
|
"id": "lucky_ca_scraper_luckycaliforniascraper_scrape"
|
|
},
|
|
{
|
|
"label": ".fetch_all()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L157",
|
|
"community": 4,
|
|
"norm_label": ".fetch_all()",
|
|
"id": "lucky_ca_scraper_luckycaliforniascraper_fetch_all"
|
|
},
|
|
{
|
|
"label": ".discover_categories()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L179",
|
|
"community": 4,
|
|
"norm_label": ".discover_categories()",
|
|
"id": "lucky_ca_scraper_luckycaliforniascraper_discover_categories"
|
|
},
|
|
{
|
|
"label": "parse_categories_html()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L191",
|
|
"community": 4,
|
|
"norm_label": "parse_categories_html()",
|
|
"id": "lucky_ca_scraper_parse_categories_html"
|
|
},
|
|
{
|
|
"label": ".fetch_category()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L208",
|
|
"community": 4,
|
|
"norm_label": ".fetch_category()",
|
|
"id": "lucky_ca_scraper_luckycaliforniascraper_fetch_category"
|
|
},
|
|
{
|
|
"label": "parse_category_response()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L226",
|
|
"community": 4,
|
|
"norm_label": "parse_category_response()",
|
|
"id": "lucky_ca_scraper_parse_category_response"
|
|
},
|
|
{
|
|
"label": "map_product()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L240",
|
|
"community": 4,
|
|
"norm_label": "map_product()",
|
|
"id": "lucky_ca_scraper_map_product"
|
|
},
|
|
{
|
|
"label": "_parse_price()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L297",
|
|
"community": 4,
|
|
"norm_label": "_parse_price()",
|
|
"id": "lucky_ca_scraper_parse_price"
|
|
},
|
|
{
|
|
"label": "_aisle_from_slug()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L317",
|
|
"community": 4,
|
|
"norm_label": "_aisle_from_slug()",
|
|
"id": "lucky_ca_scraper_aisle_from_slug"
|
|
},
|
|
{
|
|
"label": "._rate_limit()",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L325",
|
|
"community": 4,
|
|
"norm_label": "._rate_limit()",
|
|
"id": "lucky_ca_scraper_luckycaliforniascraper_rate_limit"
|
|
},
|
|
{
|
|
"label": "Lucky California / Swiftly product API client. Replaces the prior Playwright +",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "lucky california / swiftly product api client. replaces the prior playwright +",
|
|
"id": "lucky_ca_scraper_rationale_1"
|
|
},
|
|
{
|
|
"label": "Raised when the Swiftly API returns 401. The exception message is surfaced",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L50",
|
|
"community": 4,
|
|
"norm_label": "raised when the swiftly api returns 401. the exception message is surfaced",
|
|
"id": "lucky_ca_scraper_rationale_50"
|
|
},
|
|
{
|
|
"label": "Swiftly product-API client for the Lucky California banner. The class name",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L68",
|
|
"community": 4,
|
|
"norm_label": "swiftly product-api client for the lucky california banner. the class name",
|
|
"id": "lucky_ca_scraper_rationale_68"
|
|
},
|
|
{
|
|
"label": "Synchronous top-level scrape. Kept for the legacy ``ScraperService.run_",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L139",
|
|
"community": 4,
|
|
"norm_label": "synchronous top-level scrape. kept for the legacy ``scraperservice.run_",
|
|
"id": "lucky_ca_scraper_rationale_139"
|
|
},
|
|
{
|
|
"label": "Yield mapped product dicts across every discovered category.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L158",
|
|
"community": 4,
|
|
"norm_label": "yield mapped product dicts across every discovered category.",
|
|
"id": "lucky_ca_scraper_rationale_158"
|
|
},
|
|
{
|
|
"label": "Fetch the categories page and return the list of API slugs. The slugs l",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L180",
|
|
"community": 4,
|
|
"norm_label": "fetch the categories page and return the list of api slugs. the slugs l",
|
|
"id": "lucky_ca_scraper_rationale_180"
|
|
},
|
|
{
|
|
"label": "Pure parser used by tests against a saved fixture.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L192",
|
|
"community": 4,
|
|
"norm_label": "pure parser used by tests against a saved fixture.",
|
|
"id": "lucky_ca_scraper_rationale_192"
|
|
},
|
|
{
|
|
"label": "Fetch every product in a category. Raises ``SwiftlyAuthError`` on 401.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L209",
|
|
"community": 4,
|
|
"norm_label": "fetch every product in a category. raises ``swiftlyautherror`` on 401.",
|
|
"id": "lucky_ca_scraper_rationale_209"
|
|
},
|
|
{
|
|
"label": "Pure parser used by tests against a saved fixture.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L227",
|
|
"community": 4,
|
|
"norm_label": "pure parser used by tests against a saved fixture.",
|
|
"id": "lucky_ca_scraper_rationale_227"
|
|
},
|
|
{
|
|
"label": "Convert one Swiftly product dict to a grocery_item-ready dict. Returns",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L247",
|
|
"community": 4,
|
|
"norm_label": "convert one swiftly product dict to a grocery_item-ready dict. returns",
|
|
"id": "lucky_ca_scraper_rationale_247"
|
|
},
|
|
{
|
|
"label": "Extract ``(price, unit)`` from strings like ``\"$3.49 /lb\"``. Returns ``",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L298",
|
|
"community": 4,
|
|
"norm_label": "extract ``(price, unit)`` from strings like ``\"$3.49 /lb\"``. returns ``",
|
|
"id": "lucky_ca_scraper_rationale_298"
|
|
},
|
|
{
|
|
"label": "``Product/meat_seafood`` \u2192 ``meat_seafood``.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L318",
|
|
"community": 4,
|
|
"norm_label": "``product/meat_seafood`` \u2192 ``meat_seafood``.",
|
|
"id": "lucky_ca_scraper_rationale_318"
|
|
},
|
|
{
|
|
"label": "__init__.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scheduler/__init__.py",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "__init__.py",
|
|
"id": "backend_app_scheduler_init_py"
|
|
},
|
|
{
|
|
"label": "__main__.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/app/scheduler/__main__.py",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "__main__.py",
|
|
"id": "backend_app_scheduler_main_py"
|
|
},
|
|
{
|
|
"label": "APScheduler entry point for the scheduler container. Run: python -m app.schedul",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/app/scheduler/__main__.py",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "apscheduler entry point for the scheduler container. run: python -m app.schedul",
|
|
"id": "main_rationale_1"
|
|
},
|
|
{
|
|
"label": "env.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/env.py",
|
|
"source_location": "L1",
|
|
"community": 53,
|
|
"norm_label": "env.py",
|
|
"id": "backend_alembic_env_py"
|
|
},
|
|
{
|
|
"label": "run_migrations_offline()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/env.py",
|
|
"source_location": "L22",
|
|
"community": 53,
|
|
"norm_label": "run_migrations_offline()",
|
|
"id": "env_run_migrations_offline"
|
|
},
|
|
{
|
|
"label": "run_migrations_online()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/env.py",
|
|
"source_location": "L35",
|
|
"community": 53,
|
|
"norm_label": "run_migrations_online()",
|
|
"id": "env_run_migrations_online"
|
|
},
|
|
{
|
|
"label": "0003_grocery_item_description.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0003_grocery_item_description.py",
|
|
"source_location": "L1",
|
|
"community": 44,
|
|
"norm_label": "0003_grocery_item_description.py",
|
|
"id": "backend_alembic_versions_0003_grocery_item_description_py"
|
|
},
|
|
{
|
|
"label": "upgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0003_grocery_item_description.py",
|
|
"source_location": "L24",
|
|
"community": 44,
|
|
"norm_label": "upgrade()",
|
|
"id": "0003_grocery_item_description_upgrade"
|
|
},
|
|
{
|
|
"label": "downgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0003_grocery_item_description.py",
|
|
"source_location": "L31",
|
|
"community": 44,
|
|
"norm_label": "downgrade()",
|
|
"id": "0003_grocery_item_description_downgrade"
|
|
},
|
|
{
|
|
"label": "Add nullable description column to grocery_item. The Lucky California parser pr",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0003_grocery_item_description.py",
|
|
"source_location": "L1",
|
|
"community": 44,
|
|
"norm_label": "add nullable description column to grocery_item. the lucky california parser pr",
|
|
"id": "0003_grocery_item_description_rationale_1"
|
|
},
|
|
{
|
|
"label": "0002_seed_data.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0002_seed_data.py",
|
|
"source_location": "L1",
|
|
"community": 45,
|
|
"norm_label": "0002_seed_data.py",
|
|
"id": "backend_alembic_versions_0002_seed_data_py"
|
|
},
|
|
{
|
|
"label": "upgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0002_seed_data.py",
|
|
"source_location": "L17",
|
|
"community": 45,
|
|
"norm_label": "upgrade()",
|
|
"id": "0002_seed_data_upgrade"
|
|
},
|
|
{
|
|
"label": "downgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0002_seed_data.py",
|
|
"source_location": "L112",
|
|
"community": 45,
|
|
"norm_label": "downgrade()",
|
|
"id": "0002_seed_data_downgrade"
|
|
},
|
|
{
|
|
"label": "Seed initial data Revision ID: 0002 Revises: 0001 Create Date: 2026-05-04",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0002_seed_data.py",
|
|
"source_location": "L1",
|
|
"community": 45,
|
|
"norm_label": "seed initial data revision id: 0002 revises: 0001 create date: 2026-05-04",
|
|
"id": "0002_seed_data_rationale_1"
|
|
},
|
|
{
|
|
"label": "0004_family_profile_calorie_target.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0004_family_profile_calorie_target.py",
|
|
"source_location": "L1",
|
|
"community": 46,
|
|
"norm_label": "0004_family_profile_calorie_target.py",
|
|
"id": "backend_alembic_versions_0004_family_profile_calorie_target_py"
|
|
},
|
|
{
|
|
"label": "upgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0004_family_profile_calorie_target.py",
|
|
"source_location": "L22",
|
|
"community": 46,
|
|
"norm_label": "upgrade()",
|
|
"id": "0004_family_profile_calorie_target_upgrade"
|
|
},
|
|
{
|
|
"label": "downgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0004_family_profile_calorie_target.py",
|
|
"source_location": "L29",
|
|
"community": 46,
|
|
"norm_label": "downgrade()",
|
|
"id": "0004_family_profile_calorie_target_downgrade"
|
|
},
|
|
{
|
|
"label": "Add calorie_target to family_profile Revision ID: 0004 Revises: 0003 Create Dat",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0004_family_profile_calorie_target.py",
|
|
"source_location": "L1",
|
|
"community": 46,
|
|
"norm_label": "add calorie_target to family_profile revision id: 0004 revises: 0003 create dat",
|
|
"id": "0004_family_profile_calorie_target_rationale_1"
|
|
},
|
|
{
|
|
"label": "0001_initial_migration.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0001_initial_migration.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "0001_initial_migration.py",
|
|
"id": "backend_alembic_versions_0001_initial_migration_py"
|
|
},
|
|
{
|
|
"label": "upgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0001_initial_migration.py",
|
|
"source_location": "L18",
|
|
"community": 0,
|
|
"norm_label": "upgrade()",
|
|
"id": "0001_initial_migration_upgrade"
|
|
},
|
|
{
|
|
"label": "downgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0001_initial_migration.py",
|
|
"source_location": "L288",
|
|
"community": 0,
|
|
"norm_label": "downgrade()",
|
|
"id": "0001_initial_migration_downgrade"
|
|
},
|
|
{
|
|
"label": "Initial migration Revision ID: 0001 Revises: Create Date: 2026-05-04",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0001_initial_migration.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "initial migration revision id: 0001 revises: create date: 2026-05-04",
|
|
"id": "0001_initial_migration_rationale_1"
|
|
},
|
|
{
|
|
"label": "0005_grocery_item_external_id.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0005_grocery_item_external_id.py",
|
|
"source_location": "L1",
|
|
"community": 47,
|
|
"norm_label": "0005_grocery_item_external_id.py",
|
|
"id": "backend_alembic_versions_0005_grocery_item_external_id_py"
|
|
},
|
|
{
|
|
"label": "upgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0005_grocery_item_external_id.py",
|
|
"source_location": "L26",
|
|
"community": 47,
|
|
"norm_label": "upgrade()",
|
|
"id": "0005_grocery_item_external_id_upgrade"
|
|
},
|
|
{
|
|
"label": "downgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0005_grocery_item_external_id.py",
|
|
"source_location": "L45",
|
|
"community": 47,
|
|
"norm_label": "downgrade()",
|
|
"id": "0005_grocery_item_external_id_downgrade"
|
|
},
|
|
{
|
|
"label": "Add nullable indexed external_id and source columns to grocery_item. The Swiftl",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0005_grocery_item_external_id.py",
|
|
"source_location": "L1",
|
|
"community": 47,
|
|
"norm_label": "add nullable indexed external_id and source columns to grocery_item. the swiftl",
|
|
"id": "0005_grocery_item_external_id_rationale_1"
|
|
},
|
|
{
|
|
"label": "0006_recipe_engine_thin.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0006_recipe_engine_thin.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "0006_recipe_engine_thin.py",
|
|
"id": "backend_alembic_versions_0006_recipe_engine_thin_py"
|
|
},
|
|
{
|
|
"label": "upgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0006_recipe_engine_thin.py",
|
|
"source_location": "L19",
|
|
"community": 0,
|
|
"norm_label": "upgrade()",
|
|
"id": "0006_recipe_engine_thin_upgrade"
|
|
},
|
|
{
|
|
"label": "downgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0006_recipe_engine_thin.py",
|
|
"source_location": "L88",
|
|
"community": 0,
|
|
"norm_label": "downgrade()",
|
|
"id": "0006_recipe_engine_thin_downgrade"
|
|
},
|
|
{
|
|
"label": "thin phase 4: ingredient.aliases, recipe.calories_per_serving, ingredient_grocer",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0006_recipe_engine_thin.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "thin phase 4: ingredient.aliases, recipe.calories_per_serving, ingredient_grocer",
|
|
"id": "0006_recipe_engine_thin_rationale_1"
|
|
},
|
|
{
|
|
"label": "0007_seed_recipes.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L1",
|
|
"community": 35,
|
|
"norm_label": "0007_seed_recipes.py",
|
|
"id": "backend_alembic_versions_0007_seed_recipes_py"
|
|
},
|
|
{
|
|
"label": "_upsert_ingredients()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L82",
|
|
"community": 35,
|
|
"norm_label": "_upsert_ingredients()",
|
|
"id": "0007_seed_recipes_upsert_ingredients"
|
|
},
|
|
{
|
|
"label": "_insert_recipes()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L767",
|
|
"community": 35,
|
|
"norm_label": "_insert_recipes()",
|
|
"id": "0007_seed_recipes_insert_recipes"
|
|
},
|
|
{
|
|
"label": "_delete_recipes()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L823",
|
|
"community": 35,
|
|
"norm_label": "_delete_recipes()",
|
|
"id": "0007_seed_recipes_delete_recipes"
|
|
},
|
|
{
|
|
"label": "_delete_ingredients()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L832",
|
|
"community": 35,
|
|
"norm_label": "_delete_ingredients()",
|
|
"id": "0007_seed_recipes_delete_ingredients"
|
|
},
|
|
{
|
|
"label": "upgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L846",
|
|
"community": 35,
|
|
"norm_label": "upgrade()",
|
|
"id": "0007_seed_recipes_upgrade"
|
|
},
|
|
{
|
|
"label": "downgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L851",
|
|
"community": 35,
|
|
"norm_label": "downgrade()",
|
|
"id": "0007_seed_recipes_downgrade"
|
|
},
|
|
{
|
|
"label": "seed canonical ingredients (and 30 starter recipes in P4-14) Revision ID: 0007",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L1",
|
|
"community": 35,
|
|
"norm_label": "seed canonical ingredients (and 30 starter recipes in p4-14) revision id: 0007",
|
|
"id": "0007_seed_recipes_rationale_1"
|
|
},
|
|
{
|
|
"label": "Best-effort: only remove rows whose name_lower matches one of our seeds. Pre",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L833",
|
|
"community": 35,
|
|
"norm_label": "best-effort: only remove rows whose name_lower matches one of our seeds. pre",
|
|
"id": "0007_seed_recipes_rationale_833"
|
|
},
|
|
{
|
|
"label": "0008_phase5_orchestration.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0008_phase5_orchestration.py",
|
|
"source_location": "L1",
|
|
"community": 48,
|
|
"norm_label": "0008_phase5_orchestration.py",
|
|
"id": "backend_alembic_versions_0008_phase5_orchestration_py"
|
|
},
|
|
{
|
|
"label": "upgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0008_phase5_orchestration.py",
|
|
"source_location": "L17",
|
|
"community": 48,
|
|
"norm_label": "upgrade()",
|
|
"id": "0008_phase5_orchestration_upgrade"
|
|
},
|
|
{
|
|
"label": "downgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0008_phase5_orchestration.py",
|
|
"source_location": "L67",
|
|
"community": 48,
|
|
"norm_label": "downgrade()",
|
|
"id": "0008_phase5_orchestration_downgrade"
|
|
},
|
|
{
|
|
"label": "Phase 5 orchestration: weekly_run table + pending_approval_policy Revision ID:",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0008_phase5_orchestration.py",
|
|
"source_location": "L1",
|
|
"community": 48,
|
|
"norm_label": "phase 5 orchestration: weekly_run table + pending_approval_policy revision id:",
|
|
"id": "0008_phase5_orchestration_rationale_1"
|
|
},
|
|
{
|
|
"label": "0009_phase6_reminded_at.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0009_phase6_reminded_at.py",
|
|
"source_location": "L1",
|
|
"community": 49,
|
|
"norm_label": "0009_phase6_reminded_at.py",
|
|
"id": "backend_alembic_versions_0009_phase6_reminded_at_py"
|
|
},
|
|
{
|
|
"label": "upgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0009_phase6_reminded_at.py",
|
|
"source_location": "L16",
|
|
"community": 49,
|
|
"norm_label": "upgrade()",
|
|
"id": "0009_phase6_reminded_at_upgrade"
|
|
},
|
|
{
|
|
"label": "downgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0009_phase6_reminded_at.py",
|
|
"source_location": "L23",
|
|
"community": 49,
|
|
"norm_label": "downgrade()",
|
|
"id": "0009_phase6_reminded_at_downgrade"
|
|
},
|
|
{
|
|
"label": "Phase 6: add reminded_at to weekly_run Revision ID: 0009 Revises: 0008 Create D",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0009_phase6_reminded_at.py",
|
|
"source_location": "L1",
|
|
"community": 49,
|
|
"norm_label": "phase 6: add reminded_at to weekly_run revision id: 0009 revises: 0008 create d",
|
|
"id": "0009_phase6_reminded_at_rationale_1"
|
|
},
|
|
{
|
|
"label": "0010_auto_llm_source.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0010_auto_llm_source.py",
|
|
"source_location": "L1",
|
|
"community": 50,
|
|
"norm_label": "0010_auto_llm_source.py",
|
|
"id": "backend_alembic_versions_0010_auto_llm_source_py"
|
|
},
|
|
{
|
|
"label": "upgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0010_auto_llm_source.py",
|
|
"source_location": "L15",
|
|
"community": 50,
|
|
"norm_label": "upgrade()",
|
|
"id": "0010_auto_llm_source_upgrade"
|
|
},
|
|
{
|
|
"label": "downgrade()",
|
|
"file_type": "code",
|
|
"source_file": "backend/alembic/versions/0010_auto_llm_source.py",
|
|
"source_location": "L21",
|
|
"community": 50,
|
|
"norm_label": "downgrade()",
|
|
"id": "0010_auto_llm_source_downgrade"
|
|
},
|
|
{
|
|
"label": "Add auto_llm to ingredient_match_source_enum Revision ID: 0010 Revises: 0009 Cr",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/alembic/versions/0010_auto_llm_source.py",
|
|
"source_location": "L1",
|
|
"community": 50,
|
|
"norm_label": "add auto_llm to ingredient_match_source_enum revision id: 0010 revises: 0009 cr",
|
|
"id": "0010_auto_llm_source_rationale_1"
|
|
},
|
|
{
|
|
"label": "__init__.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/__init__.py",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "__init__.py",
|
|
"id": "backend_tests_init_py"
|
|
},
|
|
{
|
|
"label": "test_alembic.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_alembic.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "test_alembic.py",
|
|
"id": "backend_tests_test_alembic_py"
|
|
},
|
|
{
|
|
"label": "test_alembic_upgrade_head_roundtrip()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_alembic.py",
|
|
"source_location": "L21",
|
|
"community": 0,
|
|
"norm_label": "test_alembic_upgrade_head_roundtrip()",
|
|
"id": "test_alembic_test_alembic_upgrade_head_roundtrip"
|
|
},
|
|
{
|
|
"label": "Alembic round-trip test. Verifies that ``alembic upgrade head`` followed by ``a",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_alembic.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "alembic round-trip test. verifies that ``alembic upgrade head`` followed by ``a",
|
|
"id": "test_alembic_rationale_1"
|
|
},
|
|
{
|
|
"label": "test_smoke.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L1",
|
|
"community": 36,
|
|
"norm_label": "test_smoke.py",
|
|
"id": "backend_tests_test_smoke_py"
|
|
},
|
|
{
|
|
"label": "test_app_imports()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L15",
|
|
"community": 36,
|
|
"norm_label": "test_app_imports()",
|
|
"id": "test_smoke_test_app_imports"
|
|
},
|
|
{
|
|
"label": "test_health()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L21",
|
|
"community": 36,
|
|
"norm_label": "test_health()",
|
|
"id": "test_smoke_test_health"
|
|
},
|
|
{
|
|
"label": "test_health_db()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L28",
|
|
"community": 36,
|
|
"norm_label": "test_health_db()",
|
|
"id": "test_smoke_test_health_db"
|
|
},
|
|
{
|
|
"label": "test_router_list_endpoints()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L49",
|
|
"community": 36,
|
|
"norm_label": "test_router_list_endpoints()",
|
|
"id": "test_smoke_test_router_list_endpoints"
|
|
},
|
|
{
|
|
"label": "Smoke tests: app boots, routers wire up, no import-time crashes. The router-lis",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L1",
|
|
"community": 36,
|
|
"norm_label": "smoke tests: app boots, routers wire up, no import-time crashes. the router-lis",
|
|
"id": "test_smoke_rationale_1"
|
|
},
|
|
{
|
|
"label": "Each canonical GET must respond. 200 (handled), 401 (admin-gated), 404 (hand",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L50",
|
|
"community": 36,
|
|
"norm_label": "each canonical get must respond. 200 (handled), 401 (admin-gated), 404 (hand",
|
|
"id": "test_smoke_rationale_50"
|
|
},
|
|
{
|
|
"label": "test_auth.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L1",
|
|
"community": 20,
|
|
"norm_label": "test_auth.py",
|
|
"id": "backend_tests_test_auth_py"
|
|
},
|
|
{
|
|
"label": "_reload_settings()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L25",
|
|
"community": 20,
|
|
"norm_label": "_reload_settings()",
|
|
"id": "test_auth_reload_settings"
|
|
},
|
|
{
|
|
"label": "test_admin_requires_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L41",
|
|
"community": 20,
|
|
"norm_label": "test_admin_requires_token()",
|
|
"id": "test_auth_test_admin_requires_token"
|
|
},
|
|
{
|
|
"label": "test_admin_logs_requires_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L55",
|
|
"community": 20,
|
|
"norm_label": "test_admin_logs_requires_token()",
|
|
"id": "test_auth_test_admin_logs_requires_token"
|
|
},
|
|
{
|
|
"label": "test_session_required_for_mutation()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L69",
|
|
"community": 20,
|
|
"norm_label": "test_session_required_for_mutation()",
|
|
"id": "test_auth_test_session_required_for_mutation"
|
|
},
|
|
{
|
|
"label": "test_session_open_for_reads()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L79",
|
|
"community": 20,
|
|
"norm_label": "test_session_open_for_reads()",
|
|
"id": "test_auth_test_session_open_for_reads"
|
|
},
|
|
{
|
|
"label": "test_session_login_logout()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L90",
|
|
"community": 20,
|
|
"norm_label": "test_session_login_logout()",
|
|
"id": "test_auth_test_session_login_logout"
|
|
},
|
|
{
|
|
"label": "Auth gate tests for R1-B+D. Covers: - /api/admin/* requires bearer token (401 w",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L1",
|
|
"community": 20,
|
|
"norm_label": "auth gate tests for r1-b+d. covers: - /api/admin/* requires bearer token (401 w",
|
|
"id": "test_auth_rationale_1"
|
|
},
|
|
{
|
|
"label": "Force ``settings`` to re-read env (test isolation).",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L26",
|
|
"community": 20,
|
|
"norm_label": "force ``settings`` to re-read env (test isolation).",
|
|
"id": "test_auth_rationale_26"
|
|
},
|
|
{
|
|
"label": "No bearer \u2192 401. Valid bearer \u2192 not 401 (handler runs).",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L42",
|
|
"community": 20,
|
|
"norm_label": "no bearer \u2192 401. valid bearer \u2192 not 401 (handler runs).",
|
|
"id": "test_auth_rationale_42"
|
|
},
|
|
{
|
|
"label": "POST /api/profile/members without cookie \u2192 401.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L70",
|
|
"community": 20,
|
|
"norm_label": "post /api/profile/members without cookie \u2192 401.",
|
|
"id": "test_auth_rationale_70"
|
|
},
|
|
{
|
|
"label": "GET /api/profile is NOT auth-gated (reads stay open).",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L80",
|
|
"community": 20,
|
|
"norm_label": "get /api/profile is not auth-gated (reads stay open).",
|
|
"id": "test_auth_rationale_80"
|
|
},
|
|
{
|
|
"label": "test_scrape_endpoint.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_scrape_endpoint.py",
|
|
"source_location": "L1",
|
|
"community": 40,
|
|
"norm_label": "test_scrape_endpoint.py",
|
|
"id": "backend_tests_test_scrape_endpoint_py"
|
|
},
|
|
{
|
|
"label": "_admin_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_scrape_endpoint.py",
|
|
"source_location": "L20",
|
|
"community": 40,
|
|
"norm_label": "_admin_token()",
|
|
"id": "test_scrape_endpoint_admin_token"
|
|
},
|
|
{
|
|
"label": "test_scrape_returns_202_and_log_id()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_scrape_endpoint.py",
|
|
"source_location": "L26",
|
|
"community": 40,
|
|
"norm_label": "test_scrape_returns_202_and_log_id()",
|
|
"id": "test_scrape_endpoint_test_scrape_returns_202_and_log_id"
|
|
},
|
|
{
|
|
"label": "Async scrape endpoint contract. Verifies that ``POST /api/admin/scrape``: - r",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_scrape_endpoint.py",
|
|
"source_location": "L1",
|
|
"community": 40,
|
|
"norm_label": "async scrape endpoint contract. verifies that ``post /api/admin/scrape``: - r",
|
|
"id": "test_scrape_endpoint_rationale_1"
|
|
},
|
|
{
|
|
"label": "Endpoint enqueues the scrape and returns 202 + scrape_log_id. We replace th",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_scrape_endpoint.py",
|
|
"source_location": "L27",
|
|
"community": 40,
|
|
"norm_label": "endpoint enqueues the scrape and returns 202 + scrape_log_id. we replace th",
|
|
"id": "test_scrape_endpoint_rationale_27"
|
|
},
|
|
{
|
|
"label": "test_approval.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L1",
|
|
"community": 10,
|
|
"norm_label": "test_approval.py",
|
|
"id": "backend_tests_test_approval_py"
|
|
},
|
|
{
|
|
"label": "test_issue_and_verify_token_roundtrip()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L23",
|
|
"community": 10,
|
|
"norm_label": "test_issue_and_verify_token_roundtrip()",
|
|
"id": "test_approval_test_issue_and_verify_token_roundtrip"
|
|
},
|
|
{
|
|
"label": "test_verify_rejects_tampered_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L32",
|
|
"community": 10,
|
|
"norm_label": "test_verify_rejects_tampered_token()",
|
|
"id": "test_approval_test_verify_rejects_tampered_token"
|
|
},
|
|
{
|
|
"label": "test_verify_rejects_expired_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L42",
|
|
"community": 10,
|
|
"norm_label": "test_verify_rejects_expired_token()",
|
|
"id": "test_approval_test_verify_rejects_expired_token"
|
|
},
|
|
{
|
|
"label": "scenario()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L74",
|
|
"community": 0,
|
|
"norm_label": "scenario()",
|
|
"id": "test_approval_scenario"
|
|
},
|
|
{
|
|
"label": "test_consume_token_single_use()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L159",
|
|
"community": 10,
|
|
"norm_label": "test_consume_token_single_use()",
|
|
"id": "test_approval_test_consume_token_single_use"
|
|
},
|
|
{
|
|
"label": "test_vote_get_renders_html()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L186",
|
|
"community": 10,
|
|
"norm_label": "test_vote_get_renders_html()",
|
|
"id": "test_approval_test_vote_get_renders_html"
|
|
},
|
|
{
|
|
"label": "test_vote_post_records_and_decides()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L207",
|
|
"community": 10,
|
|
"norm_label": "test_vote_post_records_and_decides()",
|
|
"id": "test_approval_test_vote_post_records_and_decides"
|
|
},
|
|
{
|
|
"label": "R2-B: approval-token + per-voter vote round-trip tests. - Pure unit tests for `",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L1",
|
|
"community": 10,
|
|
"norm_label": "r2-b: approval-token + per-voter vote round-trip tests. - pure unit tests for `",
|
|
"id": "test_approval_rationale_1"
|
|
},
|
|
{
|
|
"label": "itsdangerous reads `time.time()` \u2014 patch the time module's `time` attribute",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L43",
|
|
"community": 10,
|
|
"norm_label": "itsdangerous reads `time.time()` \u2014 patch the time module's `time` attribute",
|
|
"id": "test_approval_rationale_43"
|
|
},
|
|
{
|
|
"label": "Create profile + 2 voters + recipe + plan + item, all in one shot. Uses the",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L75",
|
|
"community": 0,
|
|
"norm_label": "create profile + 2 voters + recipe + plan + item, all in one shot. uses the",
|
|
"id": "test_approval_rationale_75"
|
|
},
|
|
{
|
|
"label": "First voter approves -> still pending (Bob hasn't voted). Then Bob approves",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L208",
|
|
"community": 10,
|
|
"norm_label": "first voter approves -> still pending (bob hasn't voted). then bob approves",
|
|
"id": "test_approval_rationale_208"
|
|
},
|
|
{
|
|
"label": "test_config.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_config.py",
|
|
"source_location": "L1",
|
|
"community": 20,
|
|
"norm_label": "test_config.py",
|
|
"id": "backend_tests_test_config_py"
|
|
},
|
|
{
|
|
"label": "test_database_url_required()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_config.py",
|
|
"source_location": "L12",
|
|
"community": 20,
|
|
"norm_label": "test_database_url_required()",
|
|
"id": "test_config_test_database_url_required"
|
|
},
|
|
{
|
|
"label": "Config fail-fast: importing app.config with DATABASE_URL unset must raise.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_config.py",
|
|
"source_location": "L1",
|
|
"community": 20,
|
|
"norm_label": "config fail-fast: importing app.config with database_url unset must raise.",
|
|
"id": "test_config_rationale_1"
|
|
},
|
|
{
|
|
"label": "Settings() with empty DATABASE_URL \u2192 RuntimeError at instantiation.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_config.py",
|
|
"source_location": "L13",
|
|
"community": 20,
|
|
"norm_label": "settings() with empty database_url \u2192 runtimeerror at instantiation.",
|
|
"id": "test_config_rationale_13"
|
|
},
|
|
{
|
|
"label": "test_ingredient_schema.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_schema.py",
|
|
"source_location": "L1",
|
|
"community": 2,
|
|
"norm_label": "test_ingredient_schema.py",
|
|
"id": "backend_tests_test_ingredient_schema_py"
|
|
},
|
|
{
|
|
"label": "test_ingredient_create_normalizes_aliases()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_schema.py",
|
|
"source_location": "L7",
|
|
"community": 2,
|
|
"norm_label": "test_ingredient_create_normalizes_aliases()",
|
|
"id": "test_ingredient_schema_test_ingredient_create_normalizes_aliases"
|
|
},
|
|
{
|
|
"label": "test_ingredient_match_read_round_trip()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_schema.py",
|
|
"source_location": "L18",
|
|
"community": 2,
|
|
"norm_label": "test_ingredient_match_read_round_trip()",
|
|
"id": "test_ingredient_schema_test_ingredient_match_read_round_trip"
|
|
},
|
|
{
|
|
"label": "test_recipe_schema.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L1",
|
|
"community": 2,
|
|
"norm_label": "test_recipe_schema.py",
|
|
"id": "backend_tests_test_recipe_schema_py"
|
|
},
|
|
{
|
|
"label": "test_recipe_create_requires_canonical_ingredient_ids()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L9",
|
|
"community": 2,
|
|
"norm_label": "test_recipe_create_requires_canonical_ingredient_ids()",
|
|
"id": "test_recipe_schema_test_recipe_create_requires_canonical_ingredient_ids"
|
|
},
|
|
{
|
|
"label": "test_recipe_create_rejects_empty_ingredients()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L25",
|
|
"community": 2,
|
|
"norm_label": "test_recipe_create_rejects_empty_ingredients()",
|
|
"id": "test_recipe_schema_test_recipe_create_rejects_empty_ingredients"
|
|
},
|
|
{
|
|
"label": "test_resolve_ingredient_request_round_trip()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L39",
|
|
"community": 2,
|
|
"norm_label": "test_resolve_ingredient_request_round_trip()",
|
|
"id": "test_recipe_schema_test_resolve_ingredient_request_round_trip"
|
|
},
|
|
{
|
|
"label": "test_recipe_api.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L1",
|
|
"community": 37,
|
|
"norm_label": "test_recipe_api.py",
|
|
"id": "backend_tests_test_recipe_api_py"
|
|
},
|
|
{
|
|
"label": "_admin_headers()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L6",
|
|
"community": 37,
|
|
"norm_label": "_admin_headers()",
|
|
"id": "test_recipe_api_admin_headers"
|
|
},
|
|
{
|
|
"label": "_new_ingredient()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L10",
|
|
"community": 37,
|
|
"norm_label": "_new_ingredient()",
|
|
"id": "test_recipe_api_new_ingredient"
|
|
},
|
|
{
|
|
"label": "test_create_recipe_with_canonical_ingredients()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L20",
|
|
"community": 37,
|
|
"norm_label": "test_create_recipe_with_canonical_ingredients()",
|
|
"id": "test_recipe_api_test_create_recipe_with_canonical_ingredients"
|
|
},
|
|
{
|
|
"label": "test_create_recipe_rejects_unknown_ingredient_id()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L45",
|
|
"community": 37,
|
|
"norm_label": "test_create_recipe_rejects_unknown_ingredient_id()",
|
|
"id": "test_recipe_api_test_create_recipe_rejects_unknown_ingredient_id"
|
|
},
|
|
{
|
|
"label": "test_list_recipes_returns_seeded_data()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L63",
|
|
"community": 37,
|
|
"norm_label": "test_list_recipes_returns_seeded_data()",
|
|
"id": "test_recipe_api_test_list_recipes_returns_seeded_data"
|
|
},
|
|
{
|
|
"label": "test_resolve_ingredient.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L1",
|
|
"community": 41,
|
|
"norm_label": "test_resolve_ingredient.py",
|
|
"id": "backend_tests_test_resolve_ingredient_py"
|
|
},
|
|
{
|
|
"label": "_admin()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L6",
|
|
"community": 41,
|
|
"norm_label": "_admin()",
|
|
"id": "test_resolve_ingredient_admin"
|
|
},
|
|
{
|
|
"label": "_seed_ingredient()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L10",
|
|
"community": 41,
|
|
"norm_label": "_seed_ingredient()",
|
|
"id": "test_resolve_ingredient_seed_ingredient"
|
|
},
|
|
{
|
|
"label": "test_resolve_ingredient_returns_top_three_candidates()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L19",
|
|
"community": 41,
|
|
"norm_label": "test_resolve_ingredient_returns_top_three_candidates()",
|
|
"id": "test_resolve_ingredient_test_resolve_ingredient_returns_top_three_candidates"
|
|
},
|
|
{
|
|
"label": "test_resolve_ingredient_handles_no_unit()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L38",
|
|
"community": 41,
|
|
"norm_label": "test_resolve_ingredient_handles_no_unit()",
|
|
"id": "test_resolve_ingredient_test_resolve_ingredient_handles_no_unit"
|
|
},
|
|
{
|
|
"label": "test_matcher.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_matcher.py",
|
|
"source_location": "L1",
|
|
"community": 51,
|
|
"norm_label": "test_matcher.py",
|
|
"id": "backend_tests_test_matcher_py"
|
|
},
|
|
{
|
|
"label": "test_build_match_pool_includes_aliases()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_matcher.py",
|
|
"source_location": "L6",
|
|
"community": 51,
|
|
"norm_label": "test_build_match_pool_includes_aliases()",
|
|
"id": "test_matcher_test_build_match_pool_includes_aliases"
|
|
},
|
|
{
|
|
"label": "test_rank_candidates_top_n_with_threshold()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_matcher.py",
|
|
"source_location": "L18",
|
|
"community": 51,
|
|
"norm_label": "test_rank_candidates_top_n_with_threshold()",
|
|
"id": "test_matcher_test_rank_candidates_top_n_with_threshold"
|
|
},
|
|
{
|
|
"label": "test_rank_candidates_drops_below_threshold()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_matcher.py",
|
|
"source_location": "L36",
|
|
"community": 51,
|
|
"norm_label": "test_rank_candidates_drops_below_threshold()",
|
|
"id": "test_matcher_test_rank_candidates_drops_below_threshold"
|
|
},
|
|
{
|
|
"label": "test_match_hook.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_match_hook.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "test_match_hook.py",
|
|
"id": "backend_tests_test_match_hook_py"
|
|
},
|
|
{
|
|
"label": "test_run_match_job_persists_top_matches()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_match_hook.py",
|
|
"source_location": "L6",
|
|
"community": 0,
|
|
"norm_label": "test_run_match_job_persists_top_matches()",
|
|
"id": "test_match_hook_test_run_match_job_persists_top_matches"
|
|
},
|
|
{
|
|
"label": "End-to-end: seed Ingredient + GroceryItem rows, run the matcher, verify ingr",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_match_hook.py",
|
|
"source_location": "L7",
|
|
"community": 0,
|
|
"norm_label": "end-to-end: seed ingredient + groceryitem rows, run the matcher, verify ingr",
|
|
"id": "test_match_hook_rationale_7"
|
|
},
|
|
{
|
|
"label": "conftest.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L1",
|
|
"community": 26,
|
|
"norm_label": "conftest.py",
|
|
"id": "backend_tests_conftest_py"
|
|
},
|
|
{
|
|
"label": "_resolve_test_dsn()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L45",
|
|
"community": 26,
|
|
"norm_label": "_resolve_test_dsn()",
|
|
"id": "conftest_resolve_test_dsn"
|
|
},
|
|
{
|
|
"label": "_postgres_reachable()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L54",
|
|
"community": 26,
|
|
"norm_label": "_postgres_reachable()",
|
|
"id": "conftest_postgres_reachable"
|
|
},
|
|
{
|
|
"label": "pytest_collection_modifyitems()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L72",
|
|
"community": 26,
|
|
"norm_label": "pytest_collection_modifyitems()",
|
|
"id": "conftest_pytest_collection_modifyitems"
|
|
},
|
|
{
|
|
"label": "pytest_configure()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L84",
|
|
"community": 26,
|
|
"norm_label": "pytest_configure()",
|
|
"id": "conftest_pytest_configure"
|
|
},
|
|
{
|
|
"label": "_schema()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L105",
|
|
"community": 26,
|
|
"norm_label": "_schema()",
|
|
"id": "conftest_schema"
|
|
},
|
|
{
|
|
"label": "_engine()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L129",
|
|
"community": 26,
|
|
"norm_label": "_engine()",
|
|
"id": "conftest_engine"
|
|
},
|
|
{
|
|
"label": "db()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L142",
|
|
"community": 26,
|
|
"norm_label": "db()",
|
|
"id": "conftest_db"
|
|
},
|
|
{
|
|
"label": "db_session()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L159",
|
|
"community": 26,
|
|
"norm_label": "db_session()",
|
|
"id": "conftest_db_session"
|
|
},
|
|
{
|
|
"label": "client()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L172",
|
|
"community": 26,
|
|
"norm_label": "client()",
|
|
"id": "conftest_client"
|
|
},
|
|
{
|
|
"label": "client_no_db()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L193",
|
|
"community": 26,
|
|
"norm_label": "client_no_db()",
|
|
"id": "conftest_client_no_db"
|
|
},
|
|
{
|
|
"label": "Pytest fixtures for MealPlanner backend. DB strategy ----------- - If env ``TES",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L1",
|
|
"community": 26,
|
|
"norm_label": "pytest fixtures for mealplanner backend. db strategy ----------- - if env ``tes",
|
|
"id": "conftest_rationale_1"
|
|
},
|
|
{
|
|
"label": "Skip postgres-only tests when no live Postgres is available.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L73",
|
|
"community": 26,
|
|
"norm_label": "skip postgres-only tests when no live postgres is available.",
|
|
"id": "conftest_rationale_73"
|
|
},
|
|
{
|
|
"label": "Per-test transactional session that rolls back at teardown.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L143",
|
|
"community": 26,
|
|
"norm_label": "per-test transactional session that rolls back at teardown.",
|
|
"id": "conftest_rationale_143"
|
|
},
|
|
{
|
|
"label": "Plain SessionLocal for tests that need to seed data outside the transactiona",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L160",
|
|
"community": 26,
|
|
"norm_label": "plain sessionlocal for tests that need to seed data outside the transactiona",
|
|
"id": "conftest_rationale_160"
|
|
},
|
|
{
|
|
"label": "TestClient with get_db overridden to yield the test session.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L173",
|
|
"community": 26,
|
|
"norm_label": "testclient with get_db overridden to yield the test session.",
|
|
"id": "conftest_rationale_173"
|
|
},
|
|
{
|
|
"label": "TestClient that does NOT require a live DB \u2014 for pure import/wiring smoke.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L194",
|
|
"community": 26,
|
|
"norm_label": "testclient that does not require a live db \u2014 for pure import/wiring smoke.",
|
|
"id": "conftest_rationale_194"
|
|
},
|
|
{
|
|
"label": "test_ingredient_api.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L1",
|
|
"community": 34,
|
|
"norm_label": "test_ingredient_api.py",
|
|
"id": "backend_tests_test_ingredient_api_py"
|
|
},
|
|
{
|
|
"label": "_admin_headers()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L6",
|
|
"community": 34,
|
|
"norm_label": "_admin_headers()",
|
|
"id": "test_ingredient_api_admin_headers"
|
|
},
|
|
{
|
|
"label": "test_create_ingredient_returns_201_with_id()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L10",
|
|
"community": 34,
|
|
"norm_label": "test_create_ingredient_returns_201_with_id()",
|
|
"id": "test_ingredient_api_test_create_ingredient_returns_201_with_id"
|
|
},
|
|
{
|
|
"label": "test_create_ingredient_rejects_duplicate_name()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L24",
|
|
"community": 34,
|
|
"norm_label": "test_create_ingredient_rejects_duplicate_name()",
|
|
"id": "test_ingredient_api_test_create_ingredient_rejects_duplicate_name"
|
|
},
|
|
{
|
|
"label": "test_list_ingredients_supports_search()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L32",
|
|
"community": 34,
|
|
"norm_label": "test_list_ingredients_supports_search()",
|
|
"id": "test_ingredient_api_test_list_ingredients_supports_search"
|
|
},
|
|
{
|
|
"label": "test_create_ingredient_requires_admin_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L44",
|
|
"community": 34,
|
|
"norm_label": "test_create_ingredient_requires_admin_token()",
|
|
"id": "test_ingredient_api_test_create_ingredient_requires_admin_token"
|
|
},
|
|
{
|
|
"label": "test_update_ingredient_replaces_aliases()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L50",
|
|
"community": 34,
|
|
"norm_label": "test_update_ingredient_replaces_aliases()",
|
|
"id": "test_ingredient_api_test_update_ingredient_replaces_aliases"
|
|
},
|
|
{
|
|
"label": "_seed_grocery()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L66",
|
|
"community": 34,
|
|
"norm_label": "_seed_grocery()",
|
|
"id": "test_ingredient_api_seed_grocery"
|
|
},
|
|
{
|
|
"label": "test_pin_manual_match()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L90",
|
|
"community": 34,
|
|
"norm_label": "test_pin_manual_match()",
|
|
"id": "test_ingredient_api_test_pin_manual_match"
|
|
},
|
|
{
|
|
"label": "test_unpin_manual_match()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L110",
|
|
"community": 34,
|
|
"norm_label": "test_unpin_manual_match()",
|
|
"id": "test_ingredient_api_test_unpin_manual_match"
|
|
},
|
|
{
|
|
"label": "test_delete_ingredient_removes_row()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L128",
|
|
"community": 34,
|
|
"norm_label": "test_delete_ingredient_removes_row()",
|
|
"id": "test_ingredient_api_test_delete_ingredient_removes_row"
|
|
},
|
|
{
|
|
"label": "test_never_suggest_api.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "test_never_suggest_api.py",
|
|
"id": "backend_tests_test_never_suggest_api_py"
|
|
},
|
|
{
|
|
"label": "_admin()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L6",
|
|
"community": 0,
|
|
"norm_label": "_admin()",
|
|
"id": "test_never_suggest_api_admin"
|
|
},
|
|
{
|
|
"label": "_seed_family()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L10",
|
|
"community": 0,
|
|
"norm_label": "_seed_family()",
|
|
"id": "test_never_suggest_api_seed_family"
|
|
},
|
|
{
|
|
"label": "test_block_ingredient()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L29",
|
|
"community": 0,
|
|
"norm_label": "test_block_ingredient()",
|
|
"id": "test_never_suggest_api_test_block_ingredient"
|
|
},
|
|
{
|
|
"label": "test_list_never_suggest_for_family()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L46",
|
|
"community": 0,
|
|
"norm_label": "test_list_never_suggest_for_family()",
|
|
"id": "test_never_suggest_api_test_list_never_suggest_for_family"
|
|
},
|
|
{
|
|
"label": "test_unblock_removes_row()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L63",
|
|
"community": 0,
|
|
"norm_label": "test_unblock_removes_row()",
|
|
"id": "test_never_suggest_api_test_unblock_removes_row"
|
|
},
|
|
{
|
|
"label": "test_thin_phase4_smoke.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L1",
|
|
"community": 38,
|
|
"norm_label": "test_thin_phase4_smoke.py",
|
|
"id": "backend_tests_test_thin_phase4_smoke_py"
|
|
},
|
|
{
|
|
"label": "_admin()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L7",
|
|
"community": 38,
|
|
"norm_label": "_admin()",
|
|
"id": "test_thin_phase4_smoke_admin"
|
|
},
|
|
{
|
|
"label": "test_seed_data_present_and_resolvable()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L11",
|
|
"community": 38,
|
|
"norm_label": "test_seed_data_present_and_resolvable()",
|
|
"id": "test_thin_phase4_smoke_test_seed_data_present_and_resolvable"
|
|
},
|
|
{
|
|
"label": "test_resolve_against_seeded_ingredients()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L18",
|
|
"community": 38,
|
|
"norm_label": "test_resolve_against_seeded_ingredients()",
|
|
"id": "test_thin_phase4_smoke_test_resolve_against_seeded_ingredients"
|
|
},
|
|
{
|
|
"label": "test_match_job_runs_against_seeded_data()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L30",
|
|
"community": 38,
|
|
"norm_label": "test_match_job_runs_against_seeded_data()",
|
|
"id": "test_thin_phase4_smoke_test_match_job_runs_against_seeded_data"
|
|
},
|
|
{
|
|
"label": "End-to-end: ingredient + recipe + match all wired together.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L1",
|
|
"community": 38,
|
|
"norm_label": "end-to-end: ingredient + recipe + match all wired together.",
|
|
"id": "test_thin_phase4_smoke_rationale_1"
|
|
},
|
|
{
|
|
"label": "test_planner_cost.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L1",
|
|
"community": 32,
|
|
"norm_label": "test_planner_cost.py",
|
|
"id": "backend_tests_test_planner_cost_py"
|
|
},
|
|
{
|
|
"label": "_ingredient()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L10",
|
|
"community": 32,
|
|
"norm_label": "_ingredient()",
|
|
"id": "test_planner_cost_ingredient"
|
|
},
|
|
{
|
|
"label": "_match()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L14",
|
|
"community": 32,
|
|
"norm_label": "_match()",
|
|
"id": "test_planner_cost_match"
|
|
},
|
|
{
|
|
"label": "test_compute_recipe_cost_sums_ingredient_costs()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L25",
|
|
"community": 32,
|
|
"norm_label": "test_compute_recipe_cost_sums_ingredient_costs()",
|
|
"id": "test_planner_cost_test_compute_recipe_cost_sums_ingredient_costs"
|
|
},
|
|
{
|
|
"label": "test_unmatched_ingredient_zero_cost_and_savings()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L51",
|
|
"community": 32,
|
|
"norm_label": "test_unmatched_ingredient_zero_cost_and_savings()",
|
|
"id": "test_planner_cost_test_unmatched_ingredient_zero_cost_and_savings"
|
|
},
|
|
{
|
|
"label": "test_pantry_hits_counted()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L65",
|
|
"community": 32,
|
|
"norm_label": "test_pantry_hits_counted()",
|
|
"id": "test_planner_cost_test_pantry_hits_counted"
|
|
},
|
|
{
|
|
"label": "test_planner_filter.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "test_planner_filter.py",
|
|
"id": "backend_tests_test_planner_filter_py"
|
|
},
|
|
{
|
|
"label": "_recipe()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L15",
|
|
"community": 6,
|
|
"norm_label": "_recipe()",
|
|
"id": "test_planner_filter_recipe"
|
|
},
|
|
{
|
|
"label": "_cost()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L35",
|
|
"community": 6,
|
|
"norm_label": "_cost()",
|
|
"id": "test_planner_filter_cost"
|
|
},
|
|
{
|
|
"label": "test_filter_blocks_by_never_suggest_ingredient()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L48",
|
|
"community": 6,
|
|
"norm_label": "test_filter_blocks_by_never_suggest_ingredient()",
|
|
"id": "test_planner_filter_test_filter_blocks_by_never_suggest_ingredient"
|
|
},
|
|
{
|
|
"label": "test_filter_blocks_by_never_suggest_recipe()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L70",
|
|
"community": 6,
|
|
"norm_label": "test_filter_blocks_by_never_suggest_recipe()",
|
|
"id": "test_planner_filter_test_filter_blocks_by_never_suggest_recipe"
|
|
},
|
|
{
|
|
"label": "test_filter_blocks_by_recency()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L87",
|
|
"community": 6,
|
|
"norm_label": "test_filter_blocks_by_recency()",
|
|
"id": "test_planner_filter_test_filter_blocks_by_recency"
|
|
},
|
|
{
|
|
"label": "test_filter_blocks_by_calories()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L104",
|
|
"community": 6,
|
|
"norm_label": "test_filter_blocks_by_calories()",
|
|
"id": "test_planner_filter_test_filter_blocks_by_calories"
|
|
},
|
|
{
|
|
"label": "test_filter_blocks_by_time()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L122",
|
|
"community": 6,
|
|
"norm_label": "test_filter_blocks_by_time()",
|
|
"id": "test_planner_filter_test_filter_blocks_by_time"
|
|
},
|
|
{
|
|
"label": "test_filter_blocks_by_cost()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L140",
|
|
"community": 6,
|
|
"norm_label": "test_filter_blocks_by_cost()",
|
|
"id": "test_planner_filter_test_filter_blocks_by_cost"
|
|
},
|
|
{
|
|
"label": "test_filter_passes_when_calorie_target_is_none()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L158",
|
|
"community": 6,
|
|
"norm_label": "test_filter_passes_when_calorie_target_is_none()",
|
|
"id": "test_planner_filter_test_filter_passes_when_calorie_target_is_none"
|
|
},
|
|
{
|
|
"label": "test_filter_blocks_recipe_with_null_calories_when_target_set()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L174",
|
|
"community": 6,
|
|
"norm_label": "test_filter_blocks_recipe_with_null_calories_when_target_set()",
|
|
"id": "test_planner_filter_test_filter_blocks_recipe_with_null_calories_when_target_set"
|
|
},
|
|
{
|
|
"label": "test_planner_score.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "test_planner_score.py",
|
|
"id": "backend_tests_test_planner_score_py"
|
|
},
|
|
{
|
|
"label": "test_time_bonus_capped_at_ideal()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L18",
|
|
"community": 6,
|
|
"norm_label": "test_time_bonus_capped_at_ideal()",
|
|
"id": "test_planner_score_test_time_bonus_capped_at_ideal"
|
|
},
|
|
{
|
|
"label": "test_time_bonus_decays_to_zero_at_full()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L23",
|
|
"community": 6,
|
|
"norm_label": "test_time_bonus_decays_to_zero_at_full()",
|
|
"id": "test_planner_score_test_time_bonus_decays_to_zero_at_full"
|
|
},
|
|
{
|
|
"label": "test_time_bonus_linear_midpoint()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L27",
|
|
"community": 6,
|
|
"norm_label": "test_time_bonus_linear_midpoint()",
|
|
"id": "test_planner_score_test_time_bonus_linear_midpoint"
|
|
},
|
|
{
|
|
"label": "test_recency_bonus_full_when_long_ago()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L32",
|
|
"community": 6,
|
|
"norm_label": "test_recency_bonus_full_when_long_ago()",
|
|
"id": "test_planner_score_test_recency_bonus_full_when_long_ago"
|
|
},
|
|
{
|
|
"label": "test_recency_bonus_zero_when_just_eligible()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L38",
|
|
"community": 6,
|
|
"norm_label": "test_recency_bonus_zero_when_just_eligible()",
|
|
"id": "test_planner_score_test_recency_bonus_zero_when_just_eligible"
|
|
},
|
|
{
|
|
"label": "test_recency_bonus_full_when_never_cooked()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L45",
|
|
"community": 6,
|
|
"norm_label": "test_recency_bonus_full_when_never_cooked()",
|
|
"id": "test_planner_score_test_recency_bonus_full_when_never_cooked"
|
|
},
|
|
{
|
|
"label": "test_normalize_savings_minmax()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L49",
|
|
"community": 6,
|
|
"norm_label": "test_normalize_savings_minmax()",
|
|
"id": "test_planner_score_test_normalize_savings_minmax"
|
|
},
|
|
{
|
|
"label": "test_normalize_savings_uniform_returns_zeros()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L54",
|
|
"community": 6,
|
|
"norm_label": "test_normalize_savings_uniform_returns_zeros()",
|
|
"id": "test_planner_score_test_normalize_savings_uniform_returns_zeros"
|
|
},
|
|
{
|
|
"label": "test_score_recipes_orders_by_combined_score()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L59",
|
|
"community": 6,
|
|
"norm_label": "test_score_recipes_orders_by_combined_score()",
|
|
"id": "test_planner_score_test_score_recipes_orders_by_combined_score"
|
|
},
|
|
{
|
|
"label": "test_planner_select.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L1",
|
|
"community": 6,
|
|
"norm_label": "test_planner_select.py",
|
|
"id": "backend_tests_test_planner_select_py"
|
|
},
|
|
{
|
|
"label": "_mk()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L12",
|
|
"community": 6,
|
|
"norm_label": "_mk()",
|
|
"id": "test_planner_select_mk"
|
|
},
|
|
{
|
|
"label": "test_diversity_penalty_zero_when_all_unique()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L33",
|
|
"community": 6,
|
|
"norm_label": "test_diversity_penalty_zero_when_all_unique()",
|
|
"id": "test_planner_select_test_diversity_penalty_zero_when_all_unique"
|
|
},
|
|
{
|
|
"label": "test_diversity_penalty_three_chickens()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L40",
|
|
"community": 6,
|
|
"norm_label": "test_diversity_penalty_three_chickens()",
|
|
"id": "test_planner_select_test_diversity_penalty_three_chickens"
|
|
},
|
|
{
|
|
"label": "test_select_set_picks_diverse_over_homogeneous()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L49",
|
|
"community": 6,
|
|
"norm_label": "test_select_set_picks_diverse_over_homogeneous()",
|
|
"id": "test_planner_select_test_select_set_picks_diverse_over_homogeneous"
|
|
},
|
|
{
|
|
"label": "test_select_set_handles_too_few()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L68",
|
|
"community": 6,
|
|
"norm_label": "test_select_set_handles_too_few()",
|
|
"id": "test_planner_select_test_select_set_handles_too_few"
|
|
},
|
|
{
|
|
"label": "test_select_set_empty_input()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L75",
|
|
"community": 6,
|
|
"norm_label": "test_select_set_empty_input()",
|
|
"id": "test_planner_select_test_select_set_empty_input"
|
|
},
|
|
{
|
|
"label": "Three chicken/american (each 0.95) lose to fully-diverse mixed (each 0.90) o",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L50",
|
|
"community": 6,
|
|
"norm_label": "three chicken/american (each 0.95) lose to fully-diverse mixed (each 0.90) o",
|
|
"id": "test_planner_select_rationale_50"
|
|
},
|
|
{
|
|
"label": "test_planner_generate.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_generate.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "test_planner_generate.py",
|
|
"id": "backend_tests_test_planner_generate_py"
|
|
},
|
|
{
|
|
"label": "test_generate_meal_plan_against_seeded_data()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_planner_generate.py",
|
|
"source_location": "L10",
|
|
"community": 0,
|
|
"norm_label": "test_generate_meal_plan_against_seeded_data()",
|
|
"id": "test_planner_generate_test_generate_meal_plan_against_seeded_data"
|
|
},
|
|
{
|
|
"label": "Smoke test: with the seeded 30 recipes and a seeded grocery scrape, generate",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_planner_generate.py",
|
|
"source_location": "L11",
|
|
"community": 0,
|
|
"norm_label": "smoke test: with the seeded 30 recipes and a seeded grocery scrape, generate",
|
|
"id": "test_planner_generate_rationale_11"
|
|
},
|
|
{
|
|
"label": "test_meal_plan_generate_api.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "test_meal_plan_generate_api.py",
|
|
"id": "backend_tests_test_meal_plan_generate_api_py"
|
|
},
|
|
{
|
|
"label": "_admin()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L10",
|
|
"community": 0,
|
|
"norm_label": "_admin()",
|
|
"id": "test_meal_plan_generate_api_admin"
|
|
},
|
|
{
|
|
"label": "family_with_groceries()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L15",
|
|
"community": 0,
|
|
"norm_label": "family_with_groceries()",
|
|
"id": "test_meal_plan_generate_api_family_with_groceries"
|
|
},
|
|
{
|
|
"label": "test_generate_endpoint_returns_meal_plan()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L50",
|
|
"community": 0,
|
|
"norm_label": "test_generate_endpoint_returns_meal_plan()",
|
|
"id": "test_meal_plan_generate_api_test_generate_endpoint_returns_meal_plan"
|
|
},
|
|
{
|
|
"label": "test_generate_endpoint_requires_admin_token()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L64",
|
|
"community": 0,
|
|
"norm_label": "test_generate_endpoint_requires_admin_token()",
|
|
"id": "test_meal_plan_generate_api_test_generate_endpoint_requires_admin_token"
|
|
},
|
|
{
|
|
"label": "test_generate_endpoint_returns_404_for_unknown_family()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L73",
|
|
"community": 0,
|
|
"norm_label": "test_generate_endpoint_returns_404_for_unknown_family()",
|
|
"id": "test_meal_plan_generate_api_test_generate_endpoint_returns_404_for_unknown_family"
|
|
},
|
|
{
|
|
"label": "test_swiftly_auth.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "test_swiftly_auth.py",
|
|
"id": "backend_tests_test_swiftly_auth_py"
|
|
},
|
|
{
|
|
"label": "_clear_cache()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L34",
|
|
"community": 4,
|
|
"norm_label": "_clear_cache()",
|
|
"id": "test_swiftly_auth_clear_cache"
|
|
},
|
|
{
|
|
"label": "_b64url()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L40",
|
|
"community": 4,
|
|
"norm_label": "_b64url()",
|
|
"id": "test_swiftly_auth_b64url"
|
|
},
|
|
{
|
|
"label": "_make_jwt()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L44",
|
|
"community": 4,
|
|
"norm_label": "_make_jwt()",
|
|
"id": "test_swiftly_auth_make_jwt"
|
|
},
|
|
{
|
|
"label": "_config_response()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L53",
|
|
"community": 4,
|
|
"norm_label": "_config_response()",
|
|
"id": "test_swiftly_auth_config_response"
|
|
},
|
|
{
|
|
"label": "_signup_response()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L60",
|
|
"community": 4,
|
|
"norm_label": "_signup_response()",
|
|
"id": "test_swiftly_auth_signup_response"
|
|
},
|
|
{
|
|
"label": "test_get_token_mints_fresh_when_cache_empty()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L71",
|
|
"community": 4,
|
|
"norm_label": "test_get_token_mints_fresh_when_cache_empty()",
|
|
"id": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty"
|
|
},
|
|
{
|
|
"label": "test_get_token_returns_cached_without_reminting()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L99",
|
|
"community": 4,
|
|
"norm_label": "test_get_token_returns_cached_without_reminting()",
|
|
"id": "test_swiftly_auth_test_get_token_returns_cached_without_reminting"
|
|
},
|
|
{
|
|
"label": "test_get_token_remints_when_cached_token_near_expiry()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L118",
|
|
"community": 4,
|
|
"norm_label": "test_get_token_remints_when_cached_token_near_expiry()",
|
|
"id": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry"
|
|
},
|
|
{
|
|
"label": "test_mint_raises_on_firebase_non_200()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L140",
|
|
"community": 4,
|
|
"norm_label": "test_mint_raises_on_firebase_non_200()",
|
|
"id": "test_swiftly_auth_test_mint_raises_on_firebase_non_200"
|
|
},
|
|
{
|
|
"label": "Offline tests for swiftly_auth \u2014 Firebase REST anon-signUp + cache. All tests r",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "offline tests for swiftly_auth \u2014 firebase rest anon-signup + cache. all tests r",
|
|
"id": "test_swiftly_auth_rationale_1"
|
|
},
|
|
{
|
|
"label": "First call fetches config.json, posts to Firebase, returns idToken.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L72",
|
|
"community": 4,
|
|
"norm_label": "first call fetches config.json, posts to firebase, returns idtoken.",
|
|
"id": "test_swiftly_auth_rationale_72"
|
|
},
|
|
{
|
|
"label": "Second call within the refresh window does NOT re-hit Firebase.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L100",
|
|
"community": 4,
|
|
"norm_label": "second call within the refresh window does not re-hit firebase.",
|
|
"id": "test_swiftly_auth_rationale_100"
|
|
},
|
|
{
|
|
"label": "A cached token within the refresh-margin window triggers a re-mint.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L119",
|
|
"community": 4,
|
|
"norm_label": "a cached token within the refresh-margin window triggers a re-mint.",
|
|
"id": "test_swiftly_auth_rationale_119"
|
|
},
|
|
{
|
|
"label": "Firebase 403/400/etc. surfaces as SwiftlyAuthMintError with status detail.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L141",
|
|
"community": 4,
|
|
"norm_label": "firebase 403/400/etc. surfaces as swiftlyauthminterror with status detail.",
|
|
"id": "test_swiftly_auth_rationale_141"
|
|
},
|
|
{
|
|
"label": "test_swiftly_api.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "test_swiftly_api.py",
|
|
"id": "backend_tests_test_swiftly_api_py"
|
|
},
|
|
{
|
|
"label": "test_parse_categories_fixture()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L40",
|
|
"community": 4,
|
|
"norm_label": "test_parse_categories_fixture()",
|
|
"id": "test_swiftly_api_test_parse_categories_fixture"
|
|
},
|
|
{
|
|
"label": "test_parse_category_response_fixture()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L57",
|
|
"community": 4,
|
|
"norm_label": "test_parse_category_response_fixture()",
|
|
"id": "test_swiftly_api_test_parse_category_response_fixture"
|
|
},
|
|
{
|
|
"label": "test_map_product_returns_none_for_unparseable()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L107",
|
|
"community": 4,
|
|
"norm_label": "test_map_product_returns_none_for_unparseable()",
|
|
"id": "test_swiftly_api_test_map_product_returns_none_for_unparseable"
|
|
},
|
|
{
|
|
"label": "_mock_response()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L121",
|
|
"community": 4,
|
|
"norm_label": "_mock_response()",
|
|
"id": "test_swiftly_api_mock_response"
|
|
},
|
|
{
|
|
"label": "test_swiftly_auth_error_on_401_from_api()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L135",
|
|
"community": 4,
|
|
"norm_label": "test_swiftly_auth_error_on_401_from_api()",
|
|
"id": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api"
|
|
},
|
|
{
|
|
"label": "test_fetch_category_mints_token_when_none_pinned()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L146",
|
|
"community": 4,
|
|
"norm_label": "test_fetch_category_mints_token_when_none_pinned()",
|
|
"id": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned"
|
|
},
|
|
{
|
|
"label": "test_background_runner_writes_failed_with_token_message()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L171",
|
|
"community": 4,
|
|
"norm_label": "test_background_runner_writes_failed_with_token_message()",
|
|
"id": "test_swiftly_api_test_background_runner_writes_failed_with_token_message"
|
|
},
|
|
{
|
|
"label": "Offline tests for the Swiftly product-API client (R3-0). All tests run against",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "offline tests for the swiftly product-api client (r3-0). all tests run against",
|
|
"id": "test_swiftly_api_rationale_1"
|
|
},
|
|
{
|
|
"label": "Parser returns >=10 distinct API slugs from the captured page.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L41",
|
|
"community": 4,
|
|
"norm_label": "parser returns >=10 distinct api slugs from the captured page.",
|
|
"id": "test_swiftly_api_rationale_41"
|
|
},
|
|
{
|
|
"label": "Parser returns >=10 product dicts each with the mapped fields populated.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L58",
|
|
"community": 4,
|
|
"norm_label": "parser returns >=10 product dicts each with the mapped fields populated.",
|
|
"id": "test_swiftly_api_rationale_58"
|
|
},
|
|
{
|
|
"label": "Products with no name AND no parseable price are dropped.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L108",
|
|
"community": 4,
|
|
"norm_label": "products with no name and no parseable price are dropped.",
|
|
"id": "test_swiftly_api_rationale_108"
|
|
},
|
|
{
|
|
"label": "A 401 from the API host raises SwiftlyAuthError before raise_for_status.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L136",
|
|
"community": 4,
|
|
"norm_label": "a 401 from the api host raises swiftlyautherror before raise_for_status.",
|
|
"id": "test_swiftly_api_rationale_136"
|
|
},
|
|
{
|
|
"label": "With no explicit bearer_token, fetch_category calls swiftly_auth.get_token()",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L147",
|
|
"community": 4,
|
|
"norm_label": "with no explicit bearer_token, fetch_category calls swiftly_auth.get_token()",
|
|
"id": "test_swiftly_api_rationale_147"
|
|
},
|
|
{
|
|
"label": "A 401 during the background scrape lands in ScrapeLog as FAILED + message.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L172",
|
|
"community": 4,
|
|
"norm_label": "a 401 during the background scrape lands in scrapelog as failed + message.",
|
|
"id": "test_swiftly_api_rationale_172"
|
|
},
|
|
{
|
|
"label": "test_email_backend.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "test_email_backend.py",
|
|
"id": "backend_tests_test_email_backend_py"
|
|
},
|
|
{
|
|
"label": "test_sendgrid_send_calls_api()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L5",
|
|
"community": 5,
|
|
"norm_label": "test_sendgrid_send_calls_api()",
|
|
"id": "test_email_backend_test_sendgrid_send_calls_api"
|
|
},
|
|
{
|
|
"label": "test_sendgrid_raises_on_4xx()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L26",
|
|
"community": 5,
|
|
"norm_label": "test_sendgrid_raises_on_4xx()",
|
|
"id": "test_email_backend_test_sendgrid_raises_on_4xx"
|
|
},
|
|
{
|
|
"label": "Unit tests for SendGridEmailBackend \u2014 no Postgres needed.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "unit tests for sendgridemailbackend \u2014 no postgres needed.",
|
|
"id": "test_email_backend_rationale_1"
|
|
},
|
|
{
|
|
"label": "test_orchestrator.py",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "test_orchestrator.py",
|
|
"id": "backend_tests_test_orchestrator_py"
|
|
},
|
|
{
|
|
"label": "family()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L15",
|
|
"community": 0,
|
|
"norm_label": "family()",
|
|
"id": "test_orchestrator_family"
|
|
},
|
|
{
|
|
"label": "member()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L31",
|
|
"community": 0,
|
|
"norm_label": "member()",
|
|
"id": "test_orchestrator_member"
|
|
},
|
|
{
|
|
"label": "weekly_run()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L46",
|
|
"community": 5,
|
|
"norm_label": "weekly_run()",
|
|
"id": "test_orchestrator_weekly_run"
|
|
},
|
|
{
|
|
"label": "weekly_run_scraped()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L55",
|
|
"community": 5,
|
|
"norm_label": "weekly_run_scraped()",
|
|
"id": "test_orchestrator_weekly_run_scraped"
|
|
},
|
|
{
|
|
"label": "weekly_run_generated()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L69",
|
|
"community": 5,
|
|
"norm_label": "weekly_run_generated()",
|
|
"id": "test_orchestrator_weekly_run_generated"
|
|
},
|
|
{
|
|
"label": "meal_plan()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L84",
|
|
"community": 0,
|
|
"norm_label": "meal_plan()",
|
|
"id": "test_orchestrator_meal_plan"
|
|
},
|
|
{
|
|
"label": "pending_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L98",
|
|
"community": 0,
|
|
"norm_label": "pending_item()",
|
|
"id": "test_orchestrator_pending_item"
|
|
},
|
|
{
|
|
"label": "weekly_run_emailed()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L123",
|
|
"community": 5,
|
|
"norm_label": "weekly_run_emailed()",
|
|
"id": "test_orchestrator_weekly_run_emailed"
|
|
},
|
|
{
|
|
"label": "weekly_run_reminded()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L139",
|
|
"community": 5,
|
|
"norm_label": "weekly_run_reminded()",
|
|
"id": "test_orchestrator_weekly_run_reminded"
|
|
},
|
|
{
|
|
"label": "test_send_admin_alert_noop_when_email_unset()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L159",
|
|
"community": 5,
|
|
"norm_label": "test_send_admin_alert_noop_when_email_unset()",
|
|
"id": "test_orchestrator_test_send_admin_alert_noop_when_email_unset"
|
|
},
|
|
{
|
|
"label": "test_send_admin_alert_calls_backend()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L168",
|
|
"community": 5,
|
|
"norm_label": "test_send_admin_alert_calls_backend()",
|
|
"id": "test_orchestrator_test_send_admin_alert_calls_backend"
|
|
},
|
|
{
|
|
"label": "test_step_scrape_idempotent()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L194",
|
|
"community": 5,
|
|
"norm_label": "test_step_scrape_idempotent()",
|
|
"id": "test_orchestrator_test_step_scrape_idempotent"
|
|
},
|
|
{
|
|
"label": "test_step_scrape_success()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L201",
|
|
"community": 5,
|
|
"norm_label": "test_step_scrape_success()",
|
|
"id": "test_orchestrator_test_step_scrape_success"
|
|
},
|
|
{
|
|
"label": "test_step_scrape_both_fail_marks_stale()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L212",
|
|
"community": 5,
|
|
"norm_label": "test_step_scrape_both_fail_marks_stale()",
|
|
"id": "test_orchestrator_test_step_scrape_both_fail_marks_stale"
|
|
},
|
|
{
|
|
"label": "test_step_generate_idempotent()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L231",
|
|
"community": 5,
|
|
"norm_label": "test_step_generate_idempotent()",
|
|
"id": "test_orchestrator_test_step_generate_idempotent"
|
|
},
|
|
{
|
|
"label": "test_step_generate_creates_plan()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L238",
|
|
"community": 5,
|
|
"norm_label": "test_step_generate_creates_plan()",
|
|
"id": "test_orchestrator_test_step_generate_creates_plan"
|
|
},
|
|
{
|
|
"label": "test_step_generate_records_error_on_failure()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L257",
|
|
"community": 5,
|
|
"norm_label": "test_step_generate_records_error_on_failure()",
|
|
"id": "test_orchestrator_test_step_generate_records_error_on_failure"
|
|
},
|
|
{
|
|
"label": "test_step_email_idempotent()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L276",
|
|
"community": 5,
|
|
"norm_label": "test_step_email_idempotent()",
|
|
"id": "test_orchestrator_test_step_email_idempotent"
|
|
},
|
|
{
|
|
"label": "test_step_email_sends_per_member()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L283",
|
|
"community": 5,
|
|
"norm_label": "test_step_email_sends_per_member()",
|
|
"id": "test_orchestrator_test_step_email_sends_per_member"
|
|
},
|
|
{
|
|
"label": "test_step_email_stale_banner()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L302",
|
|
"community": 5,
|
|
"norm_label": "test_step_email_stale_banner()",
|
|
"id": "test_orchestrator_test_step_email_stale_banner"
|
|
},
|
|
{
|
|
"label": "test_step_email_escapes_recipe_name()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L319",
|
|
"community": 5,
|
|
"norm_label": "test_step_email_escapes_recipe_name()",
|
|
"id": "test_orchestrator_test_step_email_escapes_recipe_name"
|
|
},
|
|
{
|
|
"label": "test_step_reminder_idempotent()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L345",
|
|
"community": 5,
|
|
"norm_label": "test_step_reminder_idempotent()",
|
|
"id": "test_orchestrator_test_step_reminder_idempotent"
|
|
},
|
|
{
|
|
"label": "test_step_reminder_skips_when_not_emailed()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L352",
|
|
"community": 5,
|
|
"norm_label": "test_step_reminder_skips_when_not_emailed()",
|
|
"id": "test_orchestrator_test_step_reminder_skips_when_not_emailed"
|
|
},
|
|
{
|
|
"label": "test_step_reminder_sends_to_non_voter()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L370",
|
|
"community": 5,
|
|
"norm_label": "test_step_reminder_sends_to_non_voter()",
|
|
"id": "test_orchestrator_test_step_reminder_sends_to_non_voter"
|
|
},
|
|
{
|
|
"label": "test_step_reminder_skips_voter()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L391",
|
|
"community": 5,
|
|
"norm_label": "test_step_reminder_skips_voter()",
|
|
"id": "test_orchestrator_test_step_reminder_skips_voter"
|
|
},
|
|
{
|
|
"label": "test_step_reminder_no_sends_when_all_voted()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L420",
|
|
"community": 5,
|
|
"norm_label": "test_step_reminder_no_sends_when_all_voted()",
|
|
"id": "test_orchestrator_test_step_reminder_no_sends_when_all_voted"
|
|
},
|
|
{
|
|
"label": "test_step_deadline_idempotent()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L454",
|
|
"community": 5,
|
|
"norm_label": "test_step_deadline_idempotent()",
|
|
"id": "test_orchestrator_test_step_deadline_idempotent"
|
|
},
|
|
{
|
|
"label": "test_step_deadline_resolves_pending_to_approved()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L463",
|
|
"community": 5,
|
|
"norm_label": "test_step_deadline_resolves_pending_to_approved()",
|
|
"id": "test_orchestrator_test_step_deadline_resolves_pending_to_approved"
|
|
},
|
|
{
|
|
"label": "test_step_deadline_resolves_pending_to_denied()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L474",
|
|
"community": 5,
|
|
"norm_label": "test_step_deadline_resolves_pending_to_denied()",
|
|
"id": "test_orchestrator_test_step_deadline_resolves_pending_to_denied"
|
|
},
|
|
{
|
|
"label": "weekly_run_deadline_passed()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L489",
|
|
"community": 5,
|
|
"norm_label": "weekly_run_deadline_passed()",
|
|
"id": "test_orchestrator_weekly_run_deadline_passed"
|
|
},
|
|
{
|
|
"label": "approved_item()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L506",
|
|
"community": 0,
|
|
"norm_label": "approved_item()",
|
|
"id": "test_orchestrator_approved_item"
|
|
},
|
|
{
|
|
"label": "test_step_finalize_idempotent()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L530",
|
|
"community": 5,
|
|
"norm_label": "test_step_finalize_idempotent()",
|
|
"id": "test_orchestrator_test_step_finalize_idempotent"
|
|
},
|
|
{
|
|
"label": "test_step_finalize_sends_shopping_list()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L539",
|
|
"community": 5,
|
|
"norm_label": "test_step_finalize_sends_shopping_list()",
|
|
"id": "test_orchestrator_test_step_finalize_sends_shopping_list"
|
|
},
|
|
{
|
|
"label": "test_step_finalize_no_approved_sends_empty_message()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L559",
|
|
"community": 5,
|
|
"norm_label": "test_step_finalize_no_approved_sends_empty_message()",
|
|
"id": "test_orchestrator_test_step_finalize_no_approved_sends_empty_message"
|
|
},
|
|
{
|
|
"label": "test_run_step_upserts_weekly_run()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L580",
|
|
"community": 5,
|
|
"norm_label": "test_run_step_upserts_weekly_run()",
|
|
"id": "test_orchestrator_test_run_step_upserts_weekly_run"
|
|
},
|
|
{
|
|
"label": "test_run_step_invalid_raises()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L606",
|
|
"community": 5,
|
|
"norm_label": "test_run_step_invalid_raises()",
|
|
"id": "test_orchestrator_test_run_step_invalid_raises"
|
|
},
|
|
{
|
|
"label": "test_run_week_calls_all_steps()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L612",
|
|
"community": 5,
|
|
"norm_label": "test_run_week_calls_all_steps()",
|
|
"id": "test_orchestrator_test_run_week_calls_all_steps"
|
|
},
|
|
{
|
|
"label": "admin_client()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L632",
|
|
"community": 5,
|
|
"norm_label": "admin_client()",
|
|
"id": "test_orchestrator_admin_client"
|
|
},
|
|
{
|
|
"label": "test_orchestrate_status_returns_list()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L646",
|
|
"community": 5,
|
|
"norm_label": "test_orchestrate_status_returns_list()",
|
|
"id": "test_orchestrator_test_orchestrate_status_returns_list"
|
|
},
|
|
{
|
|
"label": "test_orchestrate_step_invalid_returns_400()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L654",
|
|
"community": 5,
|
|
"norm_label": "test_orchestrate_step_invalid_returns_400()",
|
|
"id": "test_orchestrator_test_orchestrate_step_invalid_returns_400"
|
|
},
|
|
{
|
|
"label": "test_orchestrate_run_week_returns_202()",
|
|
"file_type": "code",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L663",
|
|
"community": 5,
|
|
"norm_label": "test_orchestrate_run_week_returns_202()",
|
|
"id": "test_orchestrator_test_orchestrate_run_week_returns_202"
|
|
},
|
|
{
|
|
"label": "Tests for the Phase 5 weekly orchestration.",
|
|
"file_type": "rationale",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L1",
|
|
"community": 5,
|
|
"norm_label": "tests for the phase 5 weekly orchestration.",
|
|
"id": "test_orchestrator_rationale_1"
|
|
},
|
|
{
|
|
"label": "vite.config.ts",
|
|
"file_type": "code",
|
|
"source_file": "frontend/vite.config.ts",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "vite.config.ts",
|
|
"id": "frontend_vite_config_ts"
|
|
},
|
|
{
|
|
"label": "tailwind.config.js",
|
|
"file_type": "code",
|
|
"source_file": "frontend/tailwind.config.js",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "tailwind.config.js",
|
|
"id": "frontend_tailwind_config_js"
|
|
},
|
|
{
|
|
"label": "postcss.config.js",
|
|
"file_type": "code",
|
|
"source_file": "frontend/postcss.config.js",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "postcss.config.js",
|
|
"id": "frontend_postcss_config_js"
|
|
},
|
|
{
|
|
"label": "main.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/main.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "main.tsx",
|
|
"id": "frontend_src_main_tsx"
|
|
},
|
|
{
|
|
"label": "vite-env.d.ts",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/vite-env.d.ts",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "vite-env.d.ts",
|
|
"id": "frontend_src_vite_env_d_ts"
|
|
},
|
|
{
|
|
"label": "App.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/App.tsx",
|
|
"source_location": "L1",
|
|
"community": 54,
|
|
"norm_label": "app.tsx",
|
|
"id": "frontend_src_app_tsx"
|
|
},
|
|
{
|
|
"label": "isActive()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/App.tsx",
|
|
"source_location": "L13",
|
|
"community": 54,
|
|
"norm_label": "isactive()",
|
|
"id": "app_isactive"
|
|
},
|
|
{
|
|
"label": "linkClass()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/App.tsx",
|
|
"source_location": "L15",
|
|
"community": 54,
|
|
"norm_label": "linkclass()",
|
|
"id": "app_linkclass"
|
|
},
|
|
{
|
|
"label": "ErrorBoundary.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ErrorBoundary.tsx",
|
|
"source_location": "L1",
|
|
"community": 55,
|
|
"norm_label": "errorboundary.tsx",
|
|
"id": "frontend_src_components_errorboundary_tsx"
|
|
},
|
|
{
|
|
"label": "getDerivedStateFromError()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ErrorBoundary.tsx",
|
|
"source_location": "L19",
|
|
"community": 55,
|
|
"norm_label": "getderivedstatefromerror()",
|
|
"id": "errorboundary_getderivedstatefromerror"
|
|
},
|
|
{
|
|
"label": "componentDidCatch()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ErrorBoundary.tsx",
|
|
"source_location": "L23",
|
|
"community": 55,
|
|
"norm_label": "componentdidcatch()",
|
|
"id": "errorboundary_componentdidcatch"
|
|
},
|
|
{
|
|
"label": "Button.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Button.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "button.tsx",
|
|
"id": "frontend_src_components_ui_button_tsx"
|
|
},
|
|
{
|
|
"label": "Button()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Button.tsx",
|
|
"source_location": "L11",
|
|
"community": 8,
|
|
"norm_label": "button()",
|
|
"id": "button_button"
|
|
},
|
|
{
|
|
"label": "Badge.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Badge.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "badge.tsx",
|
|
"id": "frontend_src_components_ui_badge_tsx"
|
|
},
|
|
{
|
|
"label": "Badge()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Badge.tsx",
|
|
"source_location": "L9",
|
|
"community": 8,
|
|
"norm_label": "badge()",
|
|
"id": "badge_badge"
|
|
},
|
|
{
|
|
"label": "Card.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Card.tsx",
|
|
"source_location": "L1",
|
|
"community": 42,
|
|
"norm_label": "card.tsx",
|
|
"id": "frontend_src_components_ui_card_tsx"
|
|
},
|
|
{
|
|
"label": "Card()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Card.tsx",
|
|
"source_location": "L8",
|
|
"community": 42,
|
|
"norm_label": "card()",
|
|
"id": "card_card"
|
|
},
|
|
{
|
|
"label": "CardHeader()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Card.tsx",
|
|
"source_location": "L17",
|
|
"community": 42,
|
|
"norm_label": "cardheader()",
|
|
"id": "card_cardheader"
|
|
},
|
|
{
|
|
"label": "CardBody()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Card.tsx",
|
|
"source_location": "L26",
|
|
"community": 42,
|
|
"norm_label": "cardbody()",
|
|
"id": "card_cardbody"
|
|
},
|
|
{
|
|
"label": "CardFooter()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Card.tsx",
|
|
"source_location": "L35",
|
|
"community": 42,
|
|
"norm_label": "cardfooter()",
|
|
"id": "card_cardfooter"
|
|
},
|
|
{
|
|
"label": "Input.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Input.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "input.tsx",
|
|
"id": "frontend_src_components_ui_input_tsx"
|
|
},
|
|
{
|
|
"label": "cn()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Input.tsx",
|
|
"source_location": "L17",
|
|
"community": 8,
|
|
"norm_label": "cn()",
|
|
"id": "input_cn"
|
|
},
|
|
{
|
|
"label": "EmptyState.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/EmptyState.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "emptystate.tsx",
|
|
"id": "frontend_src_components_ui_emptystate_tsx"
|
|
},
|
|
{
|
|
"label": "Skeleton.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Skeleton.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "skeleton.tsx",
|
|
"id": "frontend_src_components_ui_skeleton_tsx"
|
|
},
|
|
{
|
|
"label": "LoadingSpinner.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/LoadingSpinner.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "loadingspinner.tsx",
|
|
"id": "frontend_src_components_ui_loadingspinner_tsx"
|
|
},
|
|
{
|
|
"label": "LoadingSpinner()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/LoadingSpinner.tsx",
|
|
"source_location": "L10",
|
|
"community": 8,
|
|
"norm_label": "loadingspinner()",
|
|
"id": "loadingspinner_loadingspinner"
|
|
},
|
|
{
|
|
"label": "Select.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Select.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "select.tsx",
|
|
"id": "frontend_src_components_ui_select_tsx"
|
|
},
|
|
{
|
|
"label": "Textarea.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Textarea.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "textarea.tsx",
|
|
"id": "frontend_src_components_ui_textarea_tsx"
|
|
},
|
|
{
|
|
"label": "cn()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/components/ui/Textarea.tsx",
|
|
"source_location": "L17",
|
|
"community": 8,
|
|
"norm_label": "cn()",
|
|
"id": "textarea_cn"
|
|
},
|
|
{
|
|
"label": "Dashboard.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/Dashboard.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "dashboard.tsx",
|
|
"id": "frontend_src_pages_dashboard_tsx"
|
|
},
|
|
{
|
|
"label": "handleSend()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/Dashboard.tsx",
|
|
"source_location": "L282",
|
|
"community": 8,
|
|
"norm_label": "handlesend()",
|
|
"id": "dashboard_handlesend"
|
|
},
|
|
{
|
|
"label": "MealDetail.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/MealDetail.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "mealdetail.tsx",
|
|
"id": "frontend_src_pages_mealdetail_tsx"
|
|
},
|
|
{
|
|
"label": "Pantry.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/Pantry.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "pantry.tsx",
|
|
"id": "frontend_src_pages_pantry_tsx"
|
|
},
|
|
{
|
|
"label": "handleAdd()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/Pantry.tsx",
|
|
"source_location": "L59",
|
|
"community": 8,
|
|
"norm_label": "handleadd()",
|
|
"id": "pantry_handleadd"
|
|
},
|
|
{
|
|
"label": "ShoppingList.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L1",
|
|
"community": 39,
|
|
"norm_label": "shoppinglist.tsx",
|
|
"id": "frontend_src_pages_shoppinglist_tsx"
|
|
},
|
|
{
|
|
"label": "ShoppingListSkeleton()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L12",
|
|
"community": 39,
|
|
"norm_label": "shoppinglistskeleton()",
|
|
"id": "shoppinglist_shoppinglistskeleton"
|
|
},
|
|
{
|
|
"label": "SkeletonCard()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L33",
|
|
"community": 39,
|
|
"norm_label": "skeletoncard()",
|
|
"id": "shoppinglist_skeletoncard"
|
|
},
|
|
{
|
|
"label": "storageKey()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L44",
|
|
"community": 39,
|
|
"norm_label": "storagekey()",
|
|
"id": "shoppinglist_storagekey"
|
|
},
|
|
{
|
|
"label": "toggle()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L77",
|
|
"community": 39,
|
|
"norm_label": "toggle()",
|
|
"id": "shoppinglist_toggle"
|
|
},
|
|
{
|
|
"label": "clearAll()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L86",
|
|
"community": 39,
|
|
"norm_label": "clearall()",
|
|
"id": "shoppinglist_clearall"
|
|
},
|
|
{
|
|
"label": "Login.tsx",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/Login.tsx",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "login.tsx",
|
|
"id": "frontend_src_pages_login_tsx"
|
|
},
|
|
{
|
|
"label": "Login()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/pages/Login.tsx",
|
|
"source_location": "L8",
|
|
"community": 8,
|
|
"norm_label": "login()",
|
|
"id": "login_login"
|
|
},
|
|
{
|
|
"label": "index.ts",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/api/index.ts",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "index.ts",
|
|
"id": "frontend_src_api_index_ts"
|
|
},
|
|
{
|
|
"label": "index.ts",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/types/index.ts",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "index.ts",
|
|
"id": "frontend_src_types_index_ts"
|
|
},
|
|
{
|
|
"label": "utils.ts",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/lib/utils.ts",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "utils.ts",
|
|
"id": "frontend_src_lib_utils_ts"
|
|
},
|
|
{
|
|
"label": "cn()",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/lib/utils.ts",
|
|
"source_location": "L4",
|
|
"community": 8,
|
|
"norm_label": "cn()",
|
|
"id": "utils_cn"
|
|
},
|
|
{
|
|
"label": "toast.ts",
|
|
"file_type": "code",
|
|
"source_file": "frontend/src/lib/toast.ts",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "toast.ts",
|
|
"id": "frontend_src_lib_toast_ts"
|
|
},
|
|
{
|
|
"label": "spike_lucky_scrape.py",
|
|
"file_type": "code",
|
|
"source_file": "scripts/spike_lucky_scrape.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "spike_lucky_scrape.py",
|
|
"id": "scripts_spike_lucky_scrape_py"
|
|
},
|
|
{
|
|
"label": "main()",
|
|
"file_type": "code",
|
|
"source_file": "scripts/spike_lucky_scrape.py",
|
|
"source_location": "L38",
|
|
"community": 4,
|
|
"norm_label": "main()",
|
|
"id": "spike_lucky_scrape_main"
|
|
},
|
|
{
|
|
"label": "R2-A live-scrape spike for Lucky California weekly ad. Performs ONE live fetch",
|
|
"file_type": "rationale",
|
|
"source_file": "scripts/spike_lucky_scrape.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "r2-a live-scrape spike for lucky california weekly ad. performs one live fetch",
|
|
"id": "spike_lucky_scrape_rationale_1"
|
|
},
|
|
{
|
|
"label": "send_test_approval.py",
|
|
"file_type": "code",
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L1",
|
|
"community": 0,
|
|
"norm_label": "send_test_approval.py",
|
|
"id": "scripts_send_test_approval_py"
|
|
},
|
|
{
|
|
"label": "main()",
|
|
"file_type": "code",
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L44",
|
|
"community": 0,
|
|
"norm_label": "main()",
|
|
"id": "send_test_approval_main"
|
|
},
|
|
{
|
|
"label": "spike_swiftly_ingest.py",
|
|
"file_type": "code",
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "spike_swiftly_ingest.py",
|
|
"id": "scripts_spike_swiftly_ingest_py"
|
|
},
|
|
{
|
|
"label": "main()",
|
|
"file_type": "code",
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L33",
|
|
"community": 4,
|
|
"norm_label": "main()",
|
|
"id": "spike_swiftly_ingest_main"
|
|
},
|
|
{
|
|
"label": "Live spike for the Swiftly product API (R3-0, ad-hoc admin tool). Usage: py",
|
|
"file_type": "rationale",
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L1",
|
|
"community": 4,
|
|
"norm_label": "live spike for the swiftly product api (r3-0, ad-hoc admin tool). usage: py",
|
|
"id": "spike_swiftly_ingest_rationale_1"
|
|
},
|
|
{
|
|
"label": "seed_family.py",
|
|
"file_type": "code",
|
|
"source_file": "scripts/seed_family.py",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "seed_family.py",
|
|
"id": "scripts_seed_family_py"
|
|
},
|
|
{
|
|
"label": "enrich_recipes_spoonacular.py",
|
|
"file_type": "code",
|
|
"source_file": "scripts/enrich_recipes_spoonacular.py",
|
|
"source_location": "L1",
|
|
"community": 52,
|
|
"norm_label": "enrich_recipes_spoonacular.py",
|
|
"id": "scripts_enrich_recipes_spoonacular_py"
|
|
},
|
|
{
|
|
"label": "strip_html()",
|
|
"file_type": "code",
|
|
"source_file": "scripts/enrich_recipes_spoonacular.py",
|
|
"source_location": "L30",
|
|
"community": 52,
|
|
"norm_label": "strip_html()",
|
|
"id": "enrich_recipes_spoonacular_strip_html"
|
|
},
|
|
{
|
|
"label": "search_recipe()",
|
|
"file_type": "code",
|
|
"source_file": "scripts/enrich_recipes_spoonacular.py",
|
|
"source_location": "L34",
|
|
"community": 52,
|
|
"norm_label": "search_recipe()",
|
|
"id": "enrich_recipes_spoonacular_search_recipe"
|
|
},
|
|
{
|
|
"label": "main()",
|
|
"file_type": "code",
|
|
"source_file": "scripts/enrich_recipes_spoonacular.py",
|
|
"source_location": "L53",
|
|
"community": 52,
|
|
"norm_label": "main()",
|
|
"id": "enrich_recipes_spoonacular_main"
|
|
},
|
|
{
|
|
"label": "meal-planner-plan.md",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": null,
|
|
"community": 28,
|
|
"norm_label": "meal-planner-plan.md",
|
|
"id": "meal_planner_plan_md"
|
|
},
|
|
{
|
|
"label": "Meal Planner System",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L1",
|
|
"community": 28,
|
|
"norm_label": "meal planner system",
|
|
"id": "meal_planner_plan_md_meal_planner_system"
|
|
},
|
|
{
|
|
"label": "Goal",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L3",
|
|
"community": 28,
|
|
"norm_label": "goal",
|
|
"id": "meal_planner_plan_md_goal"
|
|
},
|
|
{
|
|
"label": "Architecture",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L6",
|
|
"community": 28,
|
|
"norm_label": "architecture",
|
|
"id": "meal_planner_plan_md_architecture"
|
|
},
|
|
{
|
|
"label": "Tech Stack",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L26",
|
|
"community": 28,
|
|
"norm_label": "tech stack",
|
|
"id": "meal_planner_plan_md_tech_stack"
|
|
},
|
|
{
|
|
"label": "Project Structure",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L35",
|
|
"community": 28,
|
|
"norm_label": "project structure",
|
|
"id": "meal_planner_plan_md_project_structure"
|
|
},
|
|
{
|
|
"label": "Tasks",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L54",
|
|
"community": 28,
|
|
"norm_label": "tasks",
|
|
"id": "meal_planner_plan_md_tasks"
|
|
},
|
|
{
|
|
"label": "Phase 1: Foundation",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L56",
|
|
"community": 28,
|
|
"norm_label": "phase 1: foundation",
|
|
"id": "meal_planner_plan_md_phase_1_foundation"
|
|
},
|
|
{
|
|
"label": "Phase 2: Scraping",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L62",
|
|
"community": 28,
|
|
"norm_label": "phase 2: scraping",
|
|
"id": "meal_planner_plan_md_phase_2_scraping"
|
|
},
|
|
{
|
|
"label": "Phase 3: Recipe & Meal Engine",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L67",
|
|
"community": 28,
|
|
"norm_label": "phase 3: recipe & meal engine",
|
|
"id": "meal_planner_plan_md_phase_3_recipe_meal_engine"
|
|
},
|
|
{
|
|
"label": "Phase 4: Notifications & Approval",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L73",
|
|
"community": 28,
|
|
"norm_label": "phase 4: notifications & approval",
|
|
"id": "meal_planner_plan_md_phase_4_notifications_approval"
|
|
},
|
|
{
|
|
"label": "Phase 5: Shopping List & UI",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L79",
|
|
"community": 28,
|
|
"norm_label": "phase 5: shopping list & ui",
|
|
"id": "meal_planner_plan_md_phase_5_shopping_list_ui"
|
|
},
|
|
{
|
|
"label": "Phase 6: Polish",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L85",
|
|
"community": 28,
|
|
"norm_label": "phase 6: polish",
|
|
"id": "meal_planner_plan_md_phase_6_polish"
|
|
},
|
|
{
|
|
"label": "Done When",
|
|
"file_type": "document",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L90",
|
|
"community": 28,
|
|
"norm_label": "done when",
|
|
"id": "meal_planner_plan_md_done_when"
|
|
},
|
|
{
|
|
"label": "README.md",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": null,
|
|
"community": 7,
|
|
"norm_label": "readme.md",
|
|
"id": "readme_md"
|
|
},
|
|
{
|
|
"label": "Meal Planner",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L1",
|
|
"community": 7,
|
|
"norm_label": "meal planner",
|
|
"id": "readme_md_meal_planner"
|
|
},
|
|
{
|
|
"label": "Background",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L5",
|
|
"community": 7,
|
|
"norm_label": "background",
|
|
"id": "readme_md_background"
|
|
},
|
|
{
|
|
"label": "Features",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L13",
|
|
"community": 7,
|
|
"norm_label": "features",
|
|
"id": "readme_md_features"
|
|
},
|
|
{
|
|
"label": "Architecture",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L23",
|
|
"community": 7,
|
|
"norm_label": "architecture",
|
|
"id": "readme_md_architecture"
|
|
},
|
|
{
|
|
"label": "Documentation",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L31",
|
|
"community": 7,
|
|
"norm_label": "documentation",
|
|
"id": "readme_md_documentation"
|
|
},
|
|
{
|
|
"label": "Quick Start",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L39",
|
|
"community": 7,
|
|
"norm_label": "quick start",
|
|
"id": "readme_md_quick_start"
|
|
},
|
|
{
|
|
"label": "Clone and start",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L42",
|
|
"community": 7,
|
|
"norm_label": "clone and start",
|
|
"id": "readme_md_clone_and_start"
|
|
},
|
|
{
|
|
"label": "View logs",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L45",
|
|
"community": 7,
|
|
"norm_label": "view logs",
|
|
"id": "readme_md_view_logs"
|
|
},
|
|
{
|
|
"label": "Stop",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L48",
|
|
"community": 7,
|
|
"norm_label": "stop",
|
|
"id": "readme_md_stop"
|
|
},
|
|
{
|
|
"label": "Family Profile",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L52",
|
|
"community": 7,
|
|
"norm_label": "family profile",
|
|
"id": "readme_md_family_profile"
|
|
},
|
|
{
|
|
"label": "Approval Workflow",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L60",
|
|
"community": 7,
|
|
"norm_label": "approval workflow",
|
|
"id": "readme_md_approval_workflow"
|
|
},
|
|
{
|
|
"label": "Tech Stack",
|
|
"file_type": "document",
|
|
"source_file": "README.md",
|
|
"source_location": "L67",
|
|
"community": 7,
|
|
"norm_label": "tech stack",
|
|
"id": "readme_md_tech_stack"
|
|
},
|
|
{
|
|
"label": "CLAUDE.md",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": null,
|
|
"community": 29,
|
|
"norm_label": "claude.md",
|
|
"id": "claude_md"
|
|
},
|
|
{
|
|
"label": "context-mode \u2014 MANDATORY routing rules",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L1",
|
|
"community": 29,
|
|
"norm_label": "context-mode \u2014 mandatory routing rules",
|
|
"id": "claude_md_context_mode_mandatory_routing_rules"
|
|
},
|
|
{
|
|
"label": "BLOCKED commands \u2014 do NOT attempt these",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L5",
|
|
"community": 29,
|
|
"norm_label": "blocked commands \u2014 do not attempt these",
|
|
"id": "claude_md_blocked_commands_do_not_attempt_these"
|
|
},
|
|
{
|
|
"label": "curl / wget \u2014 BLOCKED",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L7",
|
|
"community": 29,
|
|
"norm_label": "curl / wget \u2014 blocked",
|
|
"id": "claude_md_curl_wget_blocked"
|
|
},
|
|
{
|
|
"label": "Inline HTTP \u2014 BLOCKED",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L13",
|
|
"community": 29,
|
|
"norm_label": "inline http \u2014 blocked",
|
|
"id": "claude_md_inline_http_blocked"
|
|
},
|
|
{
|
|
"label": "WebFetch \u2014 BLOCKED",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L18",
|
|
"community": 29,
|
|
"norm_label": "webfetch \u2014 blocked",
|
|
"id": "claude_md_webfetch_blocked"
|
|
},
|
|
{
|
|
"label": "REDIRECTED tools \u2014 use sandbox equivalents",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L23",
|
|
"community": 29,
|
|
"norm_label": "redirected tools \u2014 use sandbox equivalents",
|
|
"id": "claude_md_redirected_tools_use_sandbox_equivalents"
|
|
},
|
|
{
|
|
"label": "Bash (>20 lines output)",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L25",
|
|
"community": 29,
|
|
"norm_label": "bash (>20 lines output)",
|
|
"id": "claude_md_bash_20_lines_output"
|
|
},
|
|
{
|
|
"label": "Read (for analysis)",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L31",
|
|
"community": 29,
|
|
"norm_label": "read (for analysis)",
|
|
"id": "claude_md_read_for_analysis"
|
|
},
|
|
{
|
|
"label": "Grep (large results)",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L35",
|
|
"community": 29,
|
|
"norm_label": "grep (large results)",
|
|
"id": "claude_md_grep_large_results"
|
|
},
|
|
{
|
|
"label": "Tool selection hierarchy",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L38",
|
|
"community": 29,
|
|
"norm_label": "tool selection hierarchy",
|
|
"id": "claude_md_tool_selection_hierarchy"
|
|
},
|
|
{
|
|
"label": "Subagent routing",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L46",
|
|
"community": 29,
|
|
"norm_label": "subagent routing",
|
|
"id": "claude_md_subagent_routing"
|
|
},
|
|
{
|
|
"label": "Output constraints",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L50",
|
|
"community": 29,
|
|
"norm_label": "output constraints",
|
|
"id": "claude_md_output_constraints"
|
|
},
|
|
{
|
|
"label": "ctx commands",
|
|
"file_type": "document",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L56",
|
|
"community": 29,
|
|
"norm_label": "ctx commands",
|
|
"id": "claude_md_ctx_commands"
|
|
},
|
|
{
|
|
"label": "SPEC.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": null,
|
|
"community": 12,
|
|
"norm_label": "spec.md",
|
|
"id": "docs_spec_md"
|
|
},
|
|
{
|
|
"label": "Meal Planner - Project Specification",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L1",
|
|
"community": 12,
|
|
"norm_label": "meal planner - project specification",
|
|
"id": "docs_spec_md_meal_planner_project_specification"
|
|
},
|
|
{
|
|
"label": "1. Overview",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L3",
|
|
"community": 12,
|
|
"norm_label": "1. overview",
|
|
"id": "docs_spec_md_1_overview"
|
|
},
|
|
{
|
|
"label": "2. Problem Statement",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L12",
|
|
"community": 12,
|
|
"norm_label": "2. problem statement",
|
|
"id": "docs_spec_md_2_problem_statement"
|
|
},
|
|
{
|
|
"label": "3. Goals",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L29",
|
|
"community": 12,
|
|
"norm_label": "3. goals",
|
|
"id": "docs_spec_md_3_goals"
|
|
},
|
|
{
|
|
"label": "Primary Goals",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L31",
|
|
"community": 12,
|
|
"norm_label": "primary goals",
|
|
"id": "docs_spec_md_primary_goals"
|
|
},
|
|
{
|
|
"label": "Secondary Goals",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L40",
|
|
"community": 12,
|
|
"norm_label": "secondary goals",
|
|
"id": "docs_spec_md_secondary_goals"
|
|
},
|
|
{
|
|
"label": "4. Non-Goals (Out of Scope)",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L48",
|
|
"community": 12,
|
|
"norm_label": "4. non-goals (out of scope)",
|
|
"id": "docs_spec_md_4_non_goals_out_of_scope"
|
|
},
|
|
{
|
|
"label": "5. User Stories",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L59",
|
|
"community": 12,
|
|
"norm_label": "5. user stories",
|
|
"id": "docs_spec_md_5_user_stories"
|
|
},
|
|
{
|
|
"label": "As a family member, I can:",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L61",
|
|
"community": 12,
|
|
"norm_label": "as a family member, i can:",
|
|
"id": "docs_spec_md_as_a_family_member_i_can"
|
|
},
|
|
{
|
|
"label": "As the system administrator, I can:",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L69",
|
|
"community": 12,
|
|
"norm_label": "as the system administrator, i can:",
|
|
"id": "docs_spec_md_as_the_system_administrator_i_can"
|
|
},
|
|
{
|
|
"label": "6. Family Profile",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L77",
|
|
"community": 12,
|
|
"norm_label": "6. family profile",
|
|
"id": "docs_spec_md_6_family_profile"
|
|
},
|
|
{
|
|
"label": "Household",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L79",
|
|
"community": 12,
|
|
"norm_label": "household",
|
|
"id": "docs_spec_md_household"
|
|
},
|
|
{
|
|
"label": "Family Members",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L84",
|
|
"community": 12,
|
|
"norm_label": "family members",
|
|
"id": "docs_spec_md_family_members"
|
|
},
|
|
{
|
|
"label": "Dietary Constraints",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L92",
|
|
"community": 12,
|
|
"norm_label": "dietary constraints",
|
|
"id": "docs_spec_md_dietary_constraints"
|
|
},
|
|
{
|
|
"label": "Preference Signals",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L96",
|
|
"community": 12,
|
|
"norm_label": "preference signals",
|
|
"id": "docs_spec_md_preference_signals"
|
|
},
|
|
{
|
|
"label": "7. Approval Workflow",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L104",
|
|
"community": 12,
|
|
"norm_label": "7. approval workflow",
|
|
"id": "docs_spec_md_7_approval_workflow"
|
|
},
|
|
{
|
|
"label": "Weekly Flow",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L106",
|
|
"community": 12,
|
|
"norm_label": "weekly flow",
|
|
"id": "docs_spec_md_weekly_flow"
|
|
},
|
|
{
|
|
"label": "Approval Token Security",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L138",
|
|
"community": 12,
|
|
"norm_label": "approval token security",
|
|
"id": "docs_spec_md_approval_token_security"
|
|
},
|
|
{
|
|
"label": "8. Technical Constraints",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L146",
|
|
"community": 12,
|
|
"norm_label": "8. technical constraints",
|
|
"id": "docs_spec_md_8_technical_constraints"
|
|
},
|
|
{
|
|
"label": "Self-Hosting Requirements",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L148",
|
|
"community": 12,
|
|
"norm_label": "self-hosting requirements",
|
|
"id": "docs_spec_md_self_hosting_requirements"
|
|
},
|
|
{
|
|
"label": "Authentication & Authorization",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L153",
|
|
"community": 12,
|
|
"norm_label": "authentication & authorization",
|
|
"id": "docs_spec_md_authentication_authorization"
|
|
},
|
|
{
|
|
"label": "Lucky California Integration",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L159",
|
|
"community": 12,
|
|
"norm_label": "lucky california integration",
|
|
"id": "docs_spec_md_lucky_california_integration"
|
|
},
|
|
{
|
|
"label": "Email",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L166",
|
|
"community": 12,
|
|
"norm_label": "email",
|
|
"id": "docs_spec_md_email"
|
|
},
|
|
{
|
|
"label": "External Dependencies",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L172",
|
|
"community": 12,
|
|
"norm_label": "external dependencies",
|
|
"id": "docs_spec_md_external_dependencies"
|
|
},
|
|
{
|
|
"label": "9. Accessibility (WCAG 2.1 AA)",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L182",
|
|
"community": 12,
|
|
"norm_label": "9. accessibility (wcag 2.1 aa)",
|
|
"id": "docs_spec_md_9_accessibility_wcag_2_1_aa"
|
|
},
|
|
{
|
|
"label": "Web UI",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L184",
|
|
"community": 12,
|
|
"norm_label": "web ui",
|
|
"id": "docs_spec_md_web_ui"
|
|
},
|
|
{
|
|
"label": "10. Data Retention",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L199",
|
|
"community": 12,
|
|
"norm_label": "10. data retention",
|
|
"id": "docs_spec_md_10_data_retention"
|
|
},
|
|
{
|
|
"label": "Stored Data",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L201",
|
|
"community": 12,
|
|
"norm_label": "stored data",
|
|
"id": "docs_spec_md_stored_data"
|
|
},
|
|
{
|
|
"label": "Retention Period",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L208",
|
|
"community": 12,
|
|
"norm_label": "retention period",
|
|
"id": "docs_spec_md_retention_period"
|
|
},
|
|
{
|
|
"label": "11. Success Metrics",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L215",
|
|
"community": 12,
|
|
"norm_label": "11. success metrics",
|
|
"id": "docs_spec_md_11_success_metrics"
|
|
},
|
|
{
|
|
"label": "12. Future Considerations",
|
|
"file_type": "document",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L225",
|
|
"community": 12,
|
|
"norm_label": "12. future considerations",
|
|
"id": "docs_spec_md_12_future_considerations"
|
|
},
|
|
{
|
|
"label": "ARCHITECTURE.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": null,
|
|
"community": 13,
|
|
"norm_label": "architecture.md",
|
|
"id": "docs_architecture_md"
|
|
},
|
|
{
|
|
"label": "Meal Planner - Architecture",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L1",
|
|
"community": 13,
|
|
"norm_label": "meal planner - architecture",
|
|
"id": "docs_architecture_md_meal_planner_architecture"
|
|
},
|
|
{
|
|
"label": "1. System Overview",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L3",
|
|
"community": 13,
|
|
"norm_label": "1. system overview",
|
|
"id": "docs_architecture_md_1_system_overview"
|
|
},
|
|
{
|
|
"label": "2. Component Descriptions",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L52",
|
|
"community": 13,
|
|
"norm_label": "2. component descriptions",
|
|
"id": "docs_architecture_md_2_component_descriptions"
|
|
},
|
|
{
|
|
"label": "2.1 Scraper Service",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L54",
|
|
"community": 13,
|
|
"norm_label": "2.1 scraper service",
|
|
"id": "docs_architecture_md_2_1_scraper_service"
|
|
},
|
|
{
|
|
"label": "2.2 Recipe Engine",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L76",
|
|
"community": 13,
|
|
"norm_label": "2.2 recipe engine",
|
|
"id": "docs_architecture_md_2_2_recipe_engine"
|
|
},
|
|
{
|
|
"label": "2.3 Meal Planner Service",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L91",
|
|
"community": 13,
|
|
"norm_label": "2.3 meal planner service",
|
|
"id": "docs_architecture_md_2_3_meal_planner_service"
|
|
},
|
|
{
|
|
"label": "2.4 Notification Service",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L112",
|
|
"community": 13,
|
|
"norm_label": "2.4 notification service",
|
|
"id": "docs_architecture_md_2_4_notification_service"
|
|
},
|
|
{
|
|
"label": "2.5 Feedback Service",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L147",
|
|
"community": 13,
|
|
"norm_label": "2.5 feedback service",
|
|
"id": "docs_architecture_md_2_5_feedback_service"
|
|
},
|
|
{
|
|
"label": "2.6 Web UI (React + Tailwind)",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L164",
|
|
"community": 13,
|
|
"norm_label": "2.6 web ui (react + tailwind)",
|
|
"id": "docs_architecture_md_2_6_web_ui_react_tailwind"
|
|
},
|
|
{
|
|
"label": "3. Data Architecture",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L183",
|
|
"community": 13,
|
|
"norm_label": "3. data architecture",
|
|
"id": "docs_architecture_md_3_data_architecture"
|
|
},
|
|
{
|
|
"label": "3.1 PostgreSQL Schema Overview",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L185",
|
|
"community": 13,
|
|
"norm_label": "3.1 postgresql schema overview",
|
|
"id": "docs_architecture_md_3_1_postgresql_schema_overview"
|
|
},
|
|
{
|
|
"label": "3.2 Key Relationships",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L267",
|
|
"community": 13,
|
|
"norm_label": "3.2 key relationships",
|
|
"id": "docs_architecture_md_3_2_key_relationships"
|
|
},
|
|
{
|
|
"label": "4. API Design",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L284",
|
|
"community": 13,
|
|
"norm_label": "4. api design",
|
|
"id": "docs_architecture_md_4_api_design"
|
|
},
|
|
{
|
|
"label": "4.1 Core Endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L286",
|
|
"community": 13,
|
|
"norm_label": "4.1 core endpoints",
|
|
"id": "docs_architecture_md_4_1_core_endpoints"
|
|
},
|
|
{
|
|
"label": "4.2 Email Approval Links",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L306",
|
|
"community": 13,
|
|
"norm_label": "4.2 email approval links",
|
|
"id": "docs_architecture_md_4_2_email_approval_links"
|
|
},
|
|
{
|
|
"label": "5. Deployment Architecture",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L313",
|
|
"community": 13,
|
|
"norm_label": "5. deployment architecture",
|
|
"id": "docs_architecture_md_5_deployment_architecture"
|
|
},
|
|
{
|
|
"label": "5.1 Docker Compose Services",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L315",
|
|
"community": 13,
|
|
"norm_label": "5.1 docker compose services",
|
|
"id": "docs_architecture_md_5_1_docker_compose_services"
|
|
},
|
|
{
|
|
"label": "5.2 Reverse Proxy (Nginx)",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L365",
|
|
"community": 13,
|
|
"norm_label": "5.2 reverse proxy (nginx)",
|
|
"id": "docs_architecture_md_5_2_reverse_proxy_nginx"
|
|
},
|
|
{
|
|
"label": "5.3 Remote Access Security",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L373",
|
|
"community": 13,
|
|
"norm_label": "5.3 remote access security",
|
|
"id": "docs_architecture_md_5_3_remote_access_security"
|
|
},
|
|
{
|
|
"label": "6. Image Strategy",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L380",
|
|
"community": 13,
|
|
"norm_label": "6. image strategy",
|
|
"id": "docs_architecture_md_6_image_strategy"
|
|
},
|
|
{
|
|
"label": "6.1 Primary: Scraped Images",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L382",
|
|
"community": 13,
|
|
"norm_label": "6.1 primary: scraped images",
|
|
"id": "docs_architecture_md_6_1_primary_scraped_images"
|
|
},
|
|
{
|
|
"label": "6.2 Fallback: AI Generation",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L387",
|
|
"community": 13,
|
|
"norm_label": "6.2 fallback: ai generation",
|
|
"id": "docs_architecture_md_6_2_fallback_ai_generation"
|
|
},
|
|
{
|
|
"label": "6.3 Email Image Handling",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L393",
|
|
"community": 13,
|
|
"norm_label": "6.3 email image handling",
|
|
"id": "docs_architecture_md_6_3_email_image_handling"
|
|
},
|
|
{
|
|
"label": "7. Error Handling Strategy",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L400",
|
|
"community": 13,
|
|
"norm_label": "7. error handling strategy",
|
|
"id": "docs_architecture_md_7_error_handling_strategy"
|
|
},
|
|
{
|
|
"label": "7.1 Scraper Failures",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L402",
|
|
"community": 13,
|
|
"norm_label": "7.1 scraper failures",
|
|
"id": "docs_architecture_md_7_1_scraper_failures"
|
|
},
|
|
{
|
|
"label": "7.2 Email Failures",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L409",
|
|
"community": 13,
|
|
"norm_label": "7.2 email failures",
|
|
"id": "docs_architecture_md_7_2_email_failures"
|
|
},
|
|
{
|
|
"label": "7.3 Database Failures",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L415",
|
|
"community": 13,
|
|
"norm_label": "7.3 database failures",
|
|
"id": "docs_architecture_md_7_3_database_failures"
|
|
},
|
|
{
|
|
"label": "8. Logging & Monitoring",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L422",
|
|
"community": 13,
|
|
"norm_label": "8. logging & monitoring",
|
|
"id": "docs_architecture_md_8_logging_monitoring"
|
|
},
|
|
{
|
|
"label": "8.1 Log Categories",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L424",
|
|
"community": 13,
|
|
"norm_label": "8.1 log categories",
|
|
"id": "docs_architecture_md_8_1_log_categories"
|
|
},
|
|
{
|
|
"label": "8.2 Log Storage",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L431",
|
|
"community": 13,
|
|
"norm_label": "8.2 log storage",
|
|
"id": "docs_architecture_md_8_2_log_storage"
|
|
},
|
|
{
|
|
"label": "8.3 Monitoring (Future)",
|
|
"file_type": "document",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L436",
|
|
"community": 13,
|
|
"norm_label": "8.3 monitoring (future)",
|
|
"id": "docs_architecture_md_8_3_monitoring_future"
|
|
},
|
|
{
|
|
"label": "database-schema.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": null,
|
|
"community": 7,
|
|
"norm_label": "database-schema.md",
|
|
"id": "docs_database_schema_md"
|
|
},
|
|
{
|
|
"label": "Meal Planner - Database Schema",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L1",
|
|
"community": 7,
|
|
"norm_label": "meal planner - database schema",
|
|
"id": "docs_database_schema_md_meal_planner_database_schema"
|
|
},
|
|
{
|
|
"label": "1. Schema Overview",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L3",
|
|
"community": 7,
|
|
"norm_label": "1. schema overview",
|
|
"id": "docs_database_schema_md_1_schema_overview"
|
|
},
|
|
{
|
|
"label": "2. Enums",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L11",
|
|
"community": 7,
|
|
"norm_label": "2. enums",
|
|
"id": "docs_database_schema_md_2_enums"
|
|
},
|
|
{
|
|
"label": "3. Tables",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L27",
|
|
"community": 7,
|
|
"norm_label": "3. tables",
|
|
"id": "docs_database_schema_md_3_tables"
|
|
},
|
|
{
|
|
"label": "3.1 `family_profile`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L29",
|
|
"community": 7,
|
|
"norm_label": "3.1 `family_profile`",
|
|
"id": "docs_database_schema_md_3_1_family_profile"
|
|
},
|
|
{
|
|
"label": "3.2 `family_member`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L49",
|
|
"community": 7,
|
|
"norm_label": "3.2 `family_member`",
|
|
"id": "docs_database_schema_md_3_2_family_member"
|
|
},
|
|
{
|
|
"label": "3.3 `ingredient`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L66",
|
|
"community": 7,
|
|
"norm_label": "3.3 `ingredient`",
|
|
"id": "docs_database_schema_md_3_3_ingredient"
|
|
},
|
|
{
|
|
"label": "3.4 `recipe`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L82",
|
|
"community": 7,
|
|
"norm_label": "3.4 `recipe`",
|
|
"id": "docs_database_schema_md_3_4_recipe"
|
|
},
|
|
{
|
|
"label": "3.5 `meal_plan`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L112",
|
|
"community": 7,
|
|
"norm_label": "3.5 `meal_plan`",
|
|
"id": "docs_database_schema_md_3_5_meal_plan"
|
|
},
|
|
{
|
|
"label": "3.6 `meal_plan_item`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L130",
|
|
"community": 7,
|
|
"norm_label": "3.6 `meal_plan_item`",
|
|
"id": "docs_database_schema_md_3_6_meal_plan_item"
|
|
},
|
|
{
|
|
"label": "3.7 `meal_plan_vote`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L151",
|
|
"community": 7,
|
|
"norm_label": "3.7 `meal_plan_vote`",
|
|
"id": "docs_database_schema_md_3_7_meal_plan_vote"
|
|
},
|
|
{
|
|
"label": "3.8 `approval_token`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L165",
|
|
"community": 7,
|
|
"norm_label": "3.8 `approval_token`",
|
|
"id": "docs_database_schema_md_3_8_approval_token"
|
|
},
|
|
{
|
|
"label": "3.9 `home_pantry`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L182",
|
|
"community": 7,
|
|
"norm_label": "3.9 `home_pantry`",
|
|
"id": "docs_database_schema_md_3_9_home_pantry"
|
|
},
|
|
{
|
|
"label": "3.10 `feedback`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L199",
|
|
"community": 7,
|
|
"norm_label": "3.10 `feedback`",
|
|
"id": "docs_database_schema_md_3_10_feedback"
|
|
},
|
|
{
|
|
"label": "3.11 `never_suggest`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L217",
|
|
"community": 7,
|
|
"norm_label": "3.11 `never_suggest`",
|
|
"id": "docs_database_schema_md_3_11_never_suggest"
|
|
},
|
|
{
|
|
"label": "3.12 `grocery_item`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L231",
|
|
"community": 7,
|
|
"norm_label": "3.12 `grocery_item`",
|
|
"id": "docs_database_schema_md_3_12_grocery_item"
|
|
},
|
|
{
|
|
"label": "3.13 `scrape_log`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L254",
|
|
"community": 7,
|
|
"norm_label": "3.13 `scrape_log`",
|
|
"id": "docs_database_schema_md_3_13_scrape_log"
|
|
},
|
|
{
|
|
"label": "3.14 `email_log`",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L270",
|
|
"community": 7,
|
|
"norm_label": "3.14 `email_log`",
|
|
"id": "docs_database_schema_md_3_14_email_log"
|
|
},
|
|
{
|
|
"label": "4. Indexes",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L290",
|
|
"community": 7,
|
|
"norm_label": "4. indexes",
|
|
"id": "docs_database_schema_md_4_indexes"
|
|
},
|
|
{
|
|
"label": "4.1 Primary Indexes",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L292",
|
|
"community": 7,
|
|
"norm_label": "4.1 primary indexes",
|
|
"id": "docs_database_schema_md_4_1_primary_indexes"
|
|
},
|
|
{
|
|
"label": "4.2 Foreign Key Indexes",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L295",
|
|
"community": 7,
|
|
"norm_label": "4.2 foreign key indexes",
|
|
"id": "docs_database_schema_md_4_2_foreign_key_indexes"
|
|
},
|
|
{
|
|
"label": "4.3 Full-Text Search Indexes",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L316",
|
|
"community": 7,
|
|
"norm_label": "4.3 full-text search indexes",
|
|
"id": "docs_database_schema_md_4_3_full_text_search_indexes"
|
|
},
|
|
{
|
|
"label": "5. Day of Week Convention",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L324",
|
|
"community": 7,
|
|
"norm_label": "5. day of week convention",
|
|
"id": "docs_database_schema_md_5_day_of_week_convention"
|
|
},
|
|
{
|
|
"label": "6. Data Migration Strategy",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L341",
|
|
"community": 7,
|
|
"norm_label": "6. data migration strategy",
|
|
"id": "docs_database_schema_md_6_data_migration_strategy"
|
|
},
|
|
{
|
|
"label": "6.1 Initial Schema",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L343",
|
|
"community": 7,
|
|
"norm_label": "6.1 initial schema",
|
|
"id": "docs_database_schema_md_6_1_initial_schema"
|
|
},
|
|
{
|
|
"label": "6.2 Migration Policy",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L346",
|
|
"community": 7,
|
|
"norm_label": "6.2 migration policy",
|
|
"id": "docs_database_schema_md_6_2_migration_policy"
|
|
},
|
|
{
|
|
"label": "6.3 Seed Data",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L351",
|
|
"community": 7,
|
|
"norm_label": "6.3 seed data",
|
|
"id": "docs_database_schema_md_6_3_seed_data"
|
|
},
|
|
{
|
|
"label": "7. Data Retention",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L359",
|
|
"community": 7,
|
|
"norm_label": "7. data retention",
|
|
"id": "docs_database_schema_md_7_data_retention"
|
|
},
|
|
{
|
|
"label": "8. Row-Level Security (Future)",
|
|
"file_type": "document",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L374",
|
|
"community": 7,
|
|
"norm_label": "8. row-level security (future)",
|
|
"id": "docs_database_schema_md_8_row_level_security_future"
|
|
},
|
|
{
|
|
"label": "implementation-plan.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": null,
|
|
"community": 3,
|
|
"norm_label": "implementation-plan.md",
|
|
"id": "docs_implementation_plan_md"
|
|
},
|
|
{
|
|
"label": "Meal Planner - Implementation Plan",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L1",
|
|
"community": 3,
|
|
"norm_label": "meal planner - implementation plan",
|
|
"id": "docs_implementation_plan_md_meal_planner_implementation_plan"
|
|
},
|
|
{
|
|
"label": "Overview",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L3",
|
|
"community": 3,
|
|
"norm_label": "overview",
|
|
"id": "docs_implementation_plan_md_overview"
|
|
},
|
|
{
|
|
"label": "Phase 1: Infrastructure & Foundation",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L9",
|
|
"community": 3,
|
|
"norm_label": "phase 1: infrastructure & foundation",
|
|
"id": "docs_implementation_plan_md_phase_1_infrastructure_foundation"
|
|
},
|
|
{
|
|
"label": "1.1 Project Setup",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L11",
|
|
"community": 3,
|
|
"norm_label": "1.1 project setup",
|
|
"id": "docs_implementation_plan_md_1_1_project_setup"
|
|
},
|
|
{
|
|
"label": "1.2 Backend Skeleton",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L21",
|
|
"community": 3,
|
|
"norm_label": "1.2 backend skeleton",
|
|
"id": "docs_implementation_plan_md_1_2_backend_skeleton"
|
|
},
|
|
{
|
|
"label": "1.3 Frontend Skeleton",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L42",
|
|
"community": 3,
|
|
"norm_label": "1.3 frontend skeleton",
|
|
"id": "docs_implementation_plan_md_1_3_frontend_skeleton"
|
|
},
|
|
{
|
|
"label": "1.4 Reverse Proxy (Nginx)",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L59",
|
|
"community": 3,
|
|
"norm_label": "1.4 reverse proxy (nginx)",
|
|
"id": "docs_implementation_plan_md_1_4_reverse_proxy_nginx"
|
|
},
|
|
{
|
|
"label": "Phase 2: Database & Models",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L70",
|
|
"community": 3,
|
|
"norm_label": "phase 2: database & models",
|
|
"id": "docs_implementation_plan_md_phase_2_database_models"
|
|
},
|
|
{
|
|
"label": "2.1 SQLAlchemy Models",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L72",
|
|
"community": 3,
|
|
"norm_label": "2.1 sqlalchemy models",
|
|
"id": "docs_implementation_plan_md_2_1_sqlalchemy_models"
|
|
},
|
|
{
|
|
"label": "2.2 Pydantic Schemas",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L86",
|
|
"community": 3,
|
|
"norm_label": "2.2 pydantic schemas",
|
|
"id": "docs_implementation_plan_md_2_2_pydantic_schemas"
|
|
},
|
|
{
|
|
"label": "2.3 Database Migrations",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L91",
|
|
"community": 3,
|
|
"norm_label": "2.3 database migrations",
|
|
"id": "docs_implementation_plan_md_2_3_database_migrations"
|
|
},
|
|
{
|
|
"label": "Phase 3: API Endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L100",
|
|
"community": 3,
|
|
"norm_label": "phase 3: api endpoints",
|
|
"id": "docs_implementation_plan_md_phase_3_api_endpoints"
|
|
},
|
|
{
|
|
"label": "3.1 Core CRUD Endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L102",
|
|
"community": 3,
|
|
"norm_label": "3.1 core crud endpoints",
|
|
"id": "docs_implementation_plan_md_3_1_core_crud_endpoints"
|
|
},
|
|
{
|
|
"label": "3.2 Meal Plan Endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L110",
|
|
"community": 3,
|
|
"norm_label": "3.2 meal plan endpoints",
|
|
"id": "docs_implementation_plan_md_3_2_meal_plan_endpoints"
|
|
},
|
|
{
|
|
"label": "3.3 Shopping List Endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L116",
|
|
"community": 3,
|
|
"norm_label": "3.3 shopping list endpoints",
|
|
"id": "docs_implementation_plan_md_3_3_shopping_list_endpoints"
|
|
},
|
|
{
|
|
"label": "3.4 Feedback Endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L120",
|
|
"community": 3,
|
|
"norm_label": "3.4 feedback endpoints",
|
|
"id": "docs_implementation_plan_md_3_4_feedback_endpoints"
|
|
},
|
|
{
|
|
"label": "3.5 Admin Endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L124",
|
|
"community": 3,
|
|
"norm_label": "3.5 admin endpoints",
|
|
"id": "docs_implementation_plan_md_3_5_admin_endpoints"
|
|
},
|
|
{
|
|
"label": "Phase 4: Lucky California Scraper",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L132",
|
|
"community": 3,
|
|
"norm_label": "phase 4: lucky california scraper",
|
|
"id": "docs_implementation_plan_md_phase_4_lucky_california_scraper"
|
|
},
|
|
{
|
|
"label": "4.1 Scraper Infrastructure",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L134",
|
|
"community": 3,
|
|
"norm_label": "4.1 scraper infrastructure",
|
|
"id": "docs_implementation_plan_md_4_1_scraper_infrastructure"
|
|
},
|
|
{
|
|
"label": "4.2 Weekly Ad Scraper",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L141",
|
|
"community": 3,
|
|
"norm_label": "4.2 weekly ad scraper",
|
|
"id": "docs_implementation_plan_md_4_2_weekly_ad_scraper"
|
|
},
|
|
{
|
|
"label": "4.3 Product Catalog Scraper (Future)",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L148",
|
|
"community": 3,
|
|
"norm_label": "4.3 product catalog scraper (future)",
|
|
"id": "docs_implementation_plan_md_4_3_product_catalog_scraper_future"
|
|
},
|
|
{
|
|
"label": "4.4 Scrape Scheduling",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L153",
|
|
"community": 3,
|
|
"norm_label": "4.4 scrape scheduling",
|
|
"id": "docs_implementation_plan_md_4_4_scrape_scheduling"
|
|
},
|
|
{
|
|
"label": "4.5 Error Handling",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L158",
|
|
"community": 3,
|
|
"norm_label": "4.5 error handling",
|
|
"id": "docs_implementation_plan_md_4_5_error_handling"
|
|
},
|
|
{
|
|
"label": "Phase 5: Recipe Engine",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L167",
|
|
"community": 3,
|
|
"norm_label": "phase 5: recipe engine",
|
|
"id": "docs_implementation_plan_md_phase_5_recipe_engine"
|
|
},
|
|
{
|
|
"label": "5.1 Recipe Database",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L169",
|
|
"community": 3,
|
|
"norm_label": "5.1 recipe database",
|
|
"id": "docs_implementation_plan_md_5_1_recipe_database"
|
|
},
|
|
{
|
|
"label": "5.2 Recipe Importing",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L175",
|
|
"community": 3,
|
|
"norm_label": "5.2 recipe importing",
|
|
"id": "docs_implementation_plan_md_5_2_recipe_importing"
|
|
},
|
|
{
|
|
"label": "5.3 Ingredient Mapping",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L180",
|
|
"community": 3,
|
|
"norm_label": "5.3 ingredient mapping",
|
|
"id": "docs_implementation_plan_md_5_3_ingredient_mapping"
|
|
},
|
|
{
|
|
"label": "Phase 6: Meal Planner Engine",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L189",
|
|
"community": 3,
|
|
"norm_label": "phase 6: meal planner engine",
|
|
"id": "docs_implementation_plan_md_phase_6_meal_planner_engine"
|
|
},
|
|
{
|
|
"label": "6.1 Plan Generation Algorithm",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L191",
|
|
"community": 3,
|
|
"norm_label": "6.1 plan generation algorithm",
|
|
"id": "docs_implementation_plan_md_6_1_plan_generation_algorithm"
|
|
},
|
|
{
|
|
"label": "6.2 Substitution Logic",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L200",
|
|
"community": 3,
|
|
"norm_label": "6.2 substitution logic",
|
|
"id": "docs_implementation_plan_md_6_2_substitution_logic"
|
|
},
|
|
{
|
|
"label": "6.3 Cost Calculation",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L205",
|
|
"community": 3,
|
|
"norm_label": "6.3 cost calculation",
|
|
"id": "docs_implementation_plan_md_6_3_cost_calculation"
|
|
},
|
|
{
|
|
"label": "6.4 Plan Persistence",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L210",
|
|
"community": 3,
|
|
"norm_label": "6.4 plan persistence",
|
|
"id": "docs_implementation_plan_md_6_4_plan_persistence"
|
|
},
|
|
{
|
|
"label": "Phase 7: SendGrid Email Integration",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L219",
|
|
"community": 3,
|
|
"norm_label": "phase 7: sendgrid email integration",
|
|
"id": "docs_implementation_plan_md_phase_7_sendgrid_email_integration"
|
|
},
|
|
{
|
|
"label": "7.1 SendGrid Setup",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L221",
|
|
"community": 3,
|
|
"norm_label": "7.1 sendgrid setup",
|
|
"id": "docs_implementation_plan_md_7_1_sendgrid_setup"
|
|
},
|
|
{
|
|
"label": "7.2 Meal Proposal Email",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L227",
|
|
"community": 3,
|
|
"norm_label": "7.2 meal proposal email",
|
|
"id": "docs_implementation_plan_md_7_2_meal_proposal_email"
|
|
},
|
|
{
|
|
"label": "7.3 Reminder Email",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L236",
|
|
"community": 3,
|
|
"norm_label": "7.3 reminder email",
|
|
"id": "docs_implementation_plan_md_7_3_reminder_email"
|
|
},
|
|
{
|
|
"label": "7.4 Confirmation Email",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L241",
|
|
"community": 3,
|
|
"norm_label": "7.4 confirmation email",
|
|
"id": "docs_implementation_plan_md_7_4_confirmation_email"
|
|
},
|
|
{
|
|
"label": "Phase 8: Web UI - Core Features",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L250",
|
|
"community": 3,
|
|
"norm_label": "phase 8: web ui - core features",
|
|
"id": "docs_implementation_plan_md_phase_8_web_ui_core_features"
|
|
},
|
|
{
|
|
"label": "8.1 Dashboard",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L252",
|
|
"community": 3,
|
|
"norm_label": "8.1 dashboard",
|
|
"id": "docs_implementation_plan_md_8_1_dashboard"
|
|
},
|
|
{
|
|
"label": "8.2 Meal Detail Page",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L259",
|
|
"community": 3,
|
|
"norm_label": "8.2 meal detail page",
|
|
"id": "docs_implementation_plan_md_8_2_meal_detail_page"
|
|
},
|
|
{
|
|
"label": "8.3 Approval Center",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L266",
|
|
"community": 3,
|
|
"norm_label": "8.3 approval center",
|
|
"id": "docs_implementation_plan_md_8_3_approval_center"
|
|
},
|
|
{
|
|
"label": "8.4 Pantry Manager",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L272",
|
|
"community": 3,
|
|
"norm_label": "8.4 pantry manager",
|
|
"id": "docs_implementation_plan_md_8_4_pantry_manager"
|
|
},
|
|
{
|
|
"label": "Phase 9: Web UI - Feedback & Learning",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L282",
|
|
"community": 3,
|
|
"norm_label": "phase 9: web ui - feedback & learning",
|
|
"id": "docs_implementation_plan_md_phase_9_web_ui_feedback_learning"
|
|
},
|
|
{
|
|
"label": "9.1 Feedback Portal",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L284",
|
|
"community": 3,
|
|
"norm_label": "9.1 feedback portal",
|
|
"id": "docs_implementation_plan_md_9_1_feedback_portal"
|
|
},
|
|
{
|
|
"label": "9.2 Learning Integration",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L290",
|
|
"community": 3,
|
|
"norm_label": "9.2 learning integration",
|
|
"id": "docs_implementation_plan_md_9_2_learning_integration"
|
|
},
|
|
{
|
|
"label": "9.3 Recipe Discovery",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L295",
|
|
"community": 3,
|
|
"norm_label": "9.3 recipe discovery",
|
|
"id": "docs_implementation_plan_md_9_3_recipe_discovery"
|
|
},
|
|
{
|
|
"label": "Phase 10: Shopping List & Print",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L305",
|
|
"community": 3,
|
|
"norm_label": "phase 10: shopping list & print",
|
|
"id": "docs_implementation_plan_md_phase_10_shopping_list_print"
|
|
},
|
|
{
|
|
"label": "10.1 Shopping List Generation",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L307",
|
|
"community": 3,
|
|
"norm_label": "10.1 shopping list generation",
|
|
"id": "docs_implementation_plan_md_10_1_shopping_list_generation"
|
|
},
|
|
{
|
|
"label": "10.2 Printable Shopping List",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L314",
|
|
"community": 3,
|
|
"norm_label": "10.2 printable shopping list",
|
|
"id": "docs_implementation_plan_md_10_2_printable_shopping_list"
|
|
},
|
|
{
|
|
"label": "10.3 Web UI Shopping List View",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L320",
|
|
"community": 3,
|
|
"norm_label": "10.3 web ui shopping list view",
|
|
"id": "docs_implementation_plan_md_10_3_web_ui_shopping_list_view"
|
|
},
|
|
{
|
|
"label": "Phase 11: Image Strategy Implementation",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L331",
|
|
"community": 3,
|
|
"norm_label": "phase 11: image strategy implementation",
|
|
"id": "docs_implementation_plan_md_phase_11_image_strategy_implementation"
|
|
},
|
|
{
|
|
"label": "11.1 Scraped Images",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L333",
|
|
"community": 3,
|
|
"norm_label": "11.1 scraped images",
|
|
"id": "docs_implementation_plan_md_11_1_scraped_images"
|
|
},
|
|
{
|
|
"label": "11.2 AI Image Generation (Fallback)",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L338",
|
|
"community": 3,
|
|
"norm_label": "11.2 ai image generation (fallback)",
|
|
"id": "docs_implementation_plan_md_11_2_ai_image_generation_fallback"
|
|
},
|
|
{
|
|
"label": "11.3 Email Image Handling",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L345",
|
|
"community": 3,
|
|
"norm_label": "11.3 email image handling",
|
|
"id": "docs_implementation_plan_md_11_3_email_image_handling"
|
|
},
|
|
{
|
|
"label": "Phase 12: Polish & Future Features",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L354",
|
|
"community": 3,
|
|
"norm_label": "phase 12: polish & future features",
|
|
"id": "docs_implementation_plan_md_phase_12_polish_future_features"
|
|
},
|
|
{
|
|
"label": "12.1 Variety Analysis",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L356",
|
|
"community": 3,
|
|
"norm_label": "12.1 variety analysis",
|
|
"id": "docs_implementation_plan_md_12_1_variety_analysis"
|
|
},
|
|
{
|
|
"label": "12.2 Budget Tracking",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L361",
|
|
"community": 3,
|
|
"norm_label": "12.2 budget tracking",
|
|
"id": "docs_implementation_plan_md_12_2_budget_tracking"
|
|
},
|
|
{
|
|
"label": "12.3 WhatsApp Integration (Future)",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L366",
|
|
"community": 3,
|
|
"norm_label": "12.3 whatsapp integration (future)",
|
|
"id": "docs_implementation_plan_md_12_3_whatsapp_integration_future"
|
|
},
|
|
{
|
|
"label": "12.4 Recipe Scraping (Future)",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L371",
|
|
"community": 3,
|
|
"norm_label": "12.4 recipe scraping (future)",
|
|
"id": "docs_implementation_plan_md_12_4_recipe_scraping_future"
|
|
},
|
|
{
|
|
"label": "Verification Commands",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L378",
|
|
"community": 3,
|
|
"norm_label": "verification commands",
|
|
"id": "docs_implementation_plan_md_verification_commands"
|
|
},
|
|
{
|
|
"label": "Backend Tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L380",
|
|
"community": 3,
|
|
"norm_label": "backend tests",
|
|
"id": "docs_implementation_plan_md_backend_tests"
|
|
},
|
|
{
|
|
"label": "Health check",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L382",
|
|
"community": 3,
|
|
"norm_label": "health check",
|
|
"id": "docs_implementation_plan_md_health_check"
|
|
},
|
|
{
|
|
"label": "API tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L385",
|
|
"community": 3,
|
|
"norm_label": "api tests",
|
|
"id": "docs_implementation_plan_md_api_tests"
|
|
},
|
|
{
|
|
"label": "Frontend Tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L391",
|
|
"community": 3,
|
|
"norm_label": "frontend tests",
|
|
"id": "docs_implementation_plan_md_frontend_tests"
|
|
},
|
|
{
|
|
"label": "Build test",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L393",
|
|
"community": 3,
|
|
"norm_label": "build test",
|
|
"id": "docs_implementation_plan_md_build_test"
|
|
},
|
|
{
|
|
"label": "Dev server",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L396",
|
|
"community": 3,
|
|
"norm_label": "dev server",
|
|
"id": "docs_implementation_plan_md_dev_server"
|
|
},
|
|
{
|
|
"label": "Full Stack Tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L400",
|
|
"community": 3,
|
|
"norm_label": "full stack tests",
|
|
"id": "docs_implementation_plan_md_full_stack_tests"
|
|
},
|
|
{
|
|
"label": "Start all services",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L402",
|
|
"community": 3,
|
|
"norm_label": "start all services",
|
|
"id": "docs_implementation_plan_md_start_all_services"
|
|
},
|
|
{
|
|
"label": "Check all services running",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L405",
|
|
"community": 3,
|
|
"norm_label": "check all services running",
|
|
"id": "docs_implementation_plan_md_check_all_services_running"
|
|
},
|
|
{
|
|
"label": "View logs",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L408",
|
|
"community": 3,
|
|
"norm_label": "view logs",
|
|
"id": "docs_implementation_plan_md_view_logs"
|
|
},
|
|
{
|
|
"label": "Stop all services",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L411",
|
|
"community": 3,
|
|
"norm_label": "stop all services",
|
|
"id": "docs_implementation_plan_md_stop_all_services"
|
|
},
|
|
{
|
|
"label": "File Structure",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L417",
|
|
"community": 3,
|
|
"norm_label": "file structure",
|
|
"id": "docs_implementation_plan_md_file_structure"
|
|
},
|
|
{
|
|
"label": "Dependencies",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L484",
|
|
"community": 3,
|
|
"norm_label": "dependencies",
|
|
"id": "docs_implementation_plan_md_dependencies"
|
|
},
|
|
{
|
|
"label": "Backend (Python 3.11+)",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L486",
|
|
"community": 3,
|
|
"norm_label": "backend (python 3.11+)",
|
|
"id": "docs_implementation_plan_md_backend_python_3_11"
|
|
},
|
|
{
|
|
"label": "Frontend (Node 18+)",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L500",
|
|
"community": 3,
|
|
"norm_label": "frontend (node 18+)",
|
|
"id": "docs_implementation_plan_md_frontend_node_18"
|
|
},
|
|
{
|
|
"label": "Environment Variables",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L516",
|
|
"community": 3,
|
|
"norm_label": "environment variables",
|
|
"id": "docs_implementation_plan_md_environment_variables"
|
|
},
|
|
{
|
|
"label": "Backend",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L519",
|
|
"community": 3,
|
|
"norm_label": "backend",
|
|
"id": "docs_implementation_plan_md_backend"
|
|
},
|
|
{
|
|
"label": "Frontend",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L528",
|
|
"community": 3,
|
|
"norm_label": "frontend",
|
|
"id": "docs_implementation_plan_md_frontend"
|
|
},
|
|
{
|
|
"label": "Docker",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L531",
|
|
"community": 3,
|
|
"norm_label": "docker",
|
|
"id": "docs_implementation_plan_md_docker"
|
|
},
|
|
{
|
|
"label": "Notes",
|
|
"file_type": "document",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L537",
|
|
"community": 3,
|
|
"norm_label": "notes",
|
|
"id": "docs_implementation_plan_md_notes"
|
|
},
|
|
{
|
|
"label": "RUNNING.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": null,
|
|
"community": 1,
|
|
"norm_label": "running.md",
|
|
"id": "docs_running_md"
|
|
},
|
|
{
|
|
"label": "Running the Meal Planner",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L1",
|
|
"community": 1,
|
|
"norm_label": "running the meal planner",
|
|
"id": "docs_running_md_running_the_meal_planner"
|
|
},
|
|
{
|
|
"label": "Prerequisites",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L3",
|
|
"community": 1,
|
|
"norm_label": "prerequisites",
|
|
"id": "docs_running_md_prerequisites"
|
|
},
|
|
{
|
|
"label": "Environment Setup",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L10",
|
|
"community": 1,
|
|
"norm_label": "environment setup",
|
|
"id": "docs_running_md_environment_setup"
|
|
},
|
|
{
|
|
"label": "1. Clone Repository",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L12",
|
|
"community": 1,
|
|
"norm_label": "1. clone repository",
|
|
"id": "docs_running_md_1_clone_repository"
|
|
},
|
|
{
|
|
"label": "2. Create Environment File",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L19",
|
|
"community": 1,
|
|
"norm_label": "2. create environment file",
|
|
"id": "docs_running_md_2_create_environment_file"
|
|
},
|
|
{
|
|
"label": "Database",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L28",
|
|
"community": 1,
|
|
"norm_label": "database",
|
|
"id": "docs_running_md_database"
|
|
},
|
|
{
|
|
"label": "SendGrid",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L31",
|
|
"community": 1,
|
|
"norm_label": "sendgrid",
|
|
"id": "docs_running_md_sendgrid"
|
|
},
|
|
{
|
|
"label": "Family Emails",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L34",
|
|
"community": 1,
|
|
"norm_label": "family emails",
|
|
"id": "docs_running_md_family_emails"
|
|
},
|
|
{
|
|
"label": "Lucky California (for scraping)",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L38",
|
|
"community": 1,
|
|
"norm_label": "lucky california (for scraping)",
|
|
"id": "docs_running_md_lucky_california_for_scraping"
|
|
},
|
|
{
|
|
"label": "AI Images (optional)",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L41",
|
|
"community": 1,
|
|
"norm_label": "ai images (optional)",
|
|
"id": "docs_running_md_ai_images_optional"
|
|
},
|
|
{
|
|
"label": "3. Create SSL Certificates (for remote access)",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L47",
|
|
"community": 1,
|
|
"norm_label": "3. create ssl certificates (for remote access)",
|
|
"id": "docs_running_md_3_create_ssl_certificates_for_remote_acc"
|
|
},
|
|
{
|
|
"label": "Option 1: Let's Encrypt with Certbot",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L51",
|
|
"community": 1,
|
|
"norm_label": "option 1: let's encrypt with certbot",
|
|
"id": "docs_running_md_option_1_let_s_encrypt_with_certbot"
|
|
},
|
|
{
|
|
"label": "Option 2: Self-signed for local testing",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L54",
|
|
"community": 1,
|
|
"norm_label": "option 2: self-signed for local testing",
|
|
"id": "docs_running_md_option_2_self_signed_for_local_testing"
|
|
},
|
|
{
|
|
"label": "Starting Services",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L59",
|
|
"community": 1,
|
|
"norm_label": "starting services",
|
|
"id": "docs_running_md_starting_services"
|
|
},
|
|
{
|
|
"label": "Local Development",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L61",
|
|
"community": 1,
|
|
"norm_label": "local development",
|
|
"id": "docs_running_md_local_development"
|
|
},
|
|
{
|
|
"label": "Start all services",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L64",
|
|
"community": 1,
|
|
"norm_label": "start all services",
|
|
"id": "docs_running_md_start_all_services"
|
|
},
|
|
{
|
|
"label": "View logs",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L67",
|
|
"community": 1,
|
|
"norm_label": "view logs",
|
|
"id": "docs_running_md_view_logs"
|
|
},
|
|
{
|
|
"label": "Stop all services",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L71",
|
|
"community": 1,
|
|
"norm_label": "stop all services",
|
|
"id": "docs_running_md_stop_all_services"
|
|
},
|
|
{
|
|
"label": "Production Deployment",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L75",
|
|
"community": 1,
|
|
"norm_label": "production deployment",
|
|
"id": "docs_running_md_production_deployment"
|
|
},
|
|
{
|
|
"label": "Start with production settings",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L78",
|
|
"community": 1,
|
|
"norm_label": "start with production settings",
|
|
"id": "docs_running_md_start_with_production_settings"
|
|
},
|
|
{
|
|
"label": "Check service status",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L81",
|
|
"community": 1,
|
|
"norm_label": "check service status",
|
|
"id": "docs_running_md_check_service_status"
|
|
},
|
|
{
|
|
"label": "View resource usage",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L84",
|
|
"community": 1,
|
|
"norm_label": "view resource usage",
|
|
"id": "docs_running_md_view_resource_usage"
|
|
},
|
|
{
|
|
"label": "Accessing the Application",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L88",
|
|
"community": 1,
|
|
"norm_label": "accessing the application",
|
|
"id": "docs_running_md_accessing_the_application"
|
|
},
|
|
{
|
|
"label": "Local Access",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L90",
|
|
"community": 1,
|
|
"norm_label": "local access",
|
|
"id": "docs_running_md_local_access"
|
|
},
|
|
{
|
|
"label": "Remote Access (with reverse proxy)",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L96",
|
|
"community": 1,
|
|
"norm_label": "remote access (with reverse proxy)",
|
|
"id": "docs_running_md_remote_access_with_reverse_proxy"
|
|
},
|
|
{
|
|
"label": "Database Management",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L102",
|
|
"community": 1,
|
|
"norm_label": "database management",
|
|
"id": "docs_running_md_database_management"
|
|
},
|
|
{
|
|
"label": "Initial Migration",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L104",
|
|
"community": 1,
|
|
"norm_label": "initial migration",
|
|
"id": "docs_running_md_initial_migration"
|
|
},
|
|
{
|
|
"label": "Run migrations",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L107",
|
|
"community": 1,
|
|
"norm_label": "run migrations",
|
|
"id": "docs_running_md_run_migrations"
|
|
},
|
|
{
|
|
"label": "Check current migration",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L110",
|
|
"community": 1,
|
|
"norm_label": "check current migration",
|
|
"id": "docs_running_md_check_current_migration"
|
|
},
|
|
{
|
|
"label": "Create new migration after model changes",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L113",
|
|
"community": 1,
|
|
"norm_label": "create new migration after model changes",
|
|
"id": "docs_running_md_create_new_migration_after_model_changes"
|
|
},
|
|
{
|
|
"label": "Backup Database",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L117",
|
|
"community": 1,
|
|
"norm_label": "backup database",
|
|
"id": "docs_running_md_backup_database"
|
|
},
|
|
{
|
|
"label": "Backup to file",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L120",
|
|
"community": 1,
|
|
"norm_label": "backup to file",
|
|
"id": "docs_running_md_backup_to_file"
|
|
},
|
|
{
|
|
"label": "Restore from backup",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L123",
|
|
"community": 1,
|
|
"norm_label": "restore from backup",
|
|
"id": "docs_running_md_restore_from_backup"
|
|
},
|
|
{
|
|
"label": "Reset Database",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L127",
|
|
"community": 1,
|
|
"norm_label": "reset database",
|
|
"id": "docs_running_md_reset_database"
|
|
},
|
|
{
|
|
"label": "Danger: Drops and recreates all data",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L130",
|
|
"community": 1,
|
|
"norm_label": "danger: drops and recreates all data",
|
|
"id": "docs_running_md_danger_drops_and_recreates_all_data"
|
|
},
|
|
{
|
|
"label": "Scraping",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L136",
|
|
"community": 1,
|
|
"norm_label": "scraping",
|
|
"id": "docs_running_md_scraping"
|
|
},
|
|
{
|
|
"label": "Manual Scrape Trigger",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L138",
|
|
"community": 1,
|
|
"norm_label": "manual scrape trigger",
|
|
"id": "docs_running_md_manual_scrape_trigger"
|
|
},
|
|
{
|
|
"label": "Scrape Lucky California weekly ad",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L141",
|
|
"community": 1,
|
|
"norm_label": "scrape lucky california weekly ad",
|
|
"id": "docs_running_md_scrape_lucky_california_weekly_ad"
|
|
},
|
|
{
|
|
"label": "Check Scrape Logs",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L147",
|
|
"community": 1,
|
|
"norm_label": "check scrape logs",
|
|
"id": "docs_running_md_check_scrape_logs"
|
|
},
|
|
{
|
|
"label": "View recent scrape operations",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L150",
|
|
"community": 1,
|
|
"norm_label": "view recent scrape operations",
|
|
"id": "docs_running_md_view_recent_scrape_operations"
|
|
},
|
|
{
|
|
"label": "Scheduling",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L154",
|
|
"community": 1,
|
|
"norm_label": "scheduling",
|
|
"id": "docs_running_md_scheduling"
|
|
},
|
|
{
|
|
"label": "Email Testing",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L160",
|
|
"community": 1,
|
|
"norm_label": "email testing",
|
|
"id": "docs_running_md_email_testing"
|
|
},
|
|
{
|
|
"label": "Test Email Send",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L162",
|
|
"community": 1,
|
|
"norm_label": "test email send",
|
|
"id": "docs_running_md_test_email_send"
|
|
},
|
|
{
|
|
"label": "Send test email",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L165",
|
|
"community": 1,
|
|
"norm_label": "send test email",
|
|
"id": "docs_running_md_send_test_email"
|
|
},
|
|
{
|
|
"label": "View Email Logs",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L171",
|
|
"community": 1,
|
|
"norm_label": "view email logs",
|
|
"id": "docs_running_md_view_email_logs"
|
|
},
|
|
{
|
|
"label": "Troubleshooting",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L177",
|
|
"community": 1,
|
|
"norm_label": "troubleshooting",
|
|
"id": "docs_running_md_troubleshooting"
|
|
},
|
|
{
|
|
"label": "Backend Won't Start",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L179",
|
|
"community": 1,
|
|
"norm_label": "backend won't start",
|
|
"id": "docs_running_md_backend_won_t_start"
|
|
},
|
|
{
|
|
"label": "Check logs",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L182",
|
|
"community": 1,
|
|
"norm_label": "check logs",
|
|
"id": "docs_running_md_check_logs"
|
|
},
|
|
{
|
|
"label": "Common issues:",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L185",
|
|
"community": 1,
|
|
"norm_label": "common issues:",
|
|
"id": "docs_running_md_common_issues"
|
|
},
|
|
{
|
|
"label": "- Database not ready: wait for db to be healthy",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L186",
|
|
"community": 1,
|
|
"norm_label": "- database not ready: wait for db to be healthy",
|
|
"id": "docs_running_md_database_not_ready_wait_for_db_to_be_hea"
|
|
},
|
|
{
|
|
"label": "- Port conflict: check if port 8000 is in use",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L187",
|
|
"community": 1,
|
|
"norm_label": "- port conflict: check if port 8000 is in use",
|
|
"id": "docs_running_md_port_conflict_check_if_port_8000_is_in_u"
|
|
},
|
|
{
|
|
"label": "- Missing env vars: verify .env file exists and is valid",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L188",
|
|
"community": 1,
|
|
"norm_label": "- missing env vars: verify .env file exists and is valid",
|
|
"id": "docs_running_md_missing_env_vars_verify_env_file_exists_"
|
|
},
|
|
{
|
|
"label": "Frontend Build Fails",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L191",
|
|
"community": 1,
|
|
"norm_label": "frontend build fails",
|
|
"id": "docs_running_md_frontend_build_fails"
|
|
},
|
|
{
|
|
"label": "Check for Node version issues",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L194",
|
|
"community": 1,
|
|
"norm_label": "check for node version issues",
|
|
"id": "docs_running_md_check_for_node_version_issues"
|
|
},
|
|
{
|
|
"label": "Clear cache and rebuild",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L197",
|
|
"community": 1,
|
|
"norm_label": "clear cache and rebuild",
|
|
"id": "docs_running_md_clear_cache_and_rebuild"
|
|
},
|
|
{
|
|
"label": "Database Connection Errors",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L203",
|
|
"community": 1,
|
|
"norm_label": "database connection errors",
|
|
"id": "docs_running_md_database_connection_errors"
|
|
},
|
|
{
|
|
"label": "Verify database is running",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L206",
|
|
"community": 1,
|
|
"norm_label": "verify database is running",
|
|
"id": "docs_running_md_verify_database_is_running"
|
|
},
|
|
{
|
|
"label": "Test connection from backend",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L209",
|
|
"community": 1,
|
|
"norm_label": "test connection from backend",
|
|
"id": "docs_running_md_test_connection_from_backend"
|
|
},
|
|
{
|
|
"label": "Check credentials",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L212",
|
|
"community": 1,
|
|
"norm_label": "check credentials",
|
|
"id": "docs_running_md_check_credentials"
|
|
},
|
|
{
|
|
"label": "Scraping Failures",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L216",
|
|
"community": 1,
|
|
"norm_label": "scraping failures",
|
|
"id": "docs_running_md_scraping_failures"
|
|
},
|
|
{
|
|
"label": "Check Lucky California is accessible",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L219",
|
|
"community": 1,
|
|
"norm_label": "check lucky california is accessible",
|
|
"id": "docs_running_md_check_lucky_california_is_accessible"
|
|
},
|
|
{
|
|
"label": "Verify Playwright browser installed",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L222",
|
|
"community": 1,
|
|
"norm_label": "verify playwright browser installed",
|
|
"id": "docs_running_md_verify_playwright_browser_installed"
|
|
},
|
|
{
|
|
"label": "Manual retry",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L225",
|
|
"community": 1,
|
|
"norm_label": "manual retry",
|
|
"id": "docs_running_md_manual_retry"
|
|
},
|
|
{
|
|
"label": "Email Not Sending",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L229",
|
|
"community": 1,
|
|
"norm_label": "email not sending",
|
|
"id": "docs_running_md_email_not_sending"
|
|
},
|
|
{
|
|
"label": "Verify SendGrid API key",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L232",
|
|
"community": 1,
|
|
"norm_label": "verify sendgrid api key",
|
|
"id": "docs_running_md_verify_sendgrid_api_key"
|
|
},
|
|
{
|
|
"label": "Check SendGrid dashboard for failures",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L235",
|
|
"community": 1,
|
|
"norm_label": "check sendgrid dashboard for failures",
|
|
"id": "docs_running_md_check_sendgrid_dashboard_for_failures"
|
|
},
|
|
{
|
|
"label": "Ensure sender email is verified in SendGrid",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L236",
|
|
"community": 1,
|
|
"norm_label": "ensure sender email is verified in sendgrid",
|
|
"id": "docs_running_md_ensure_sender_email_is_verified_in_sendg"
|
|
},
|
|
{
|
|
"label": "Development",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L239",
|
|
"community": 1,
|
|
"norm_label": "development",
|
|
"id": "docs_running_md_development"
|
|
},
|
|
{
|
|
"label": "Backend Development",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L241",
|
|
"community": 1,
|
|
"norm_label": "backend development",
|
|
"id": "docs_running_md_backend_development"
|
|
},
|
|
{
|
|
"label": "Enter backend container",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L244",
|
|
"community": 1,
|
|
"norm_label": "enter backend container",
|
|
"id": "docs_running_md_enter_backend_container"
|
|
},
|
|
{
|
|
"label": "Run tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L247",
|
|
"community": 1,
|
|
"norm_label": "run tests",
|
|
"id": "docs_running_md_run_tests"
|
|
},
|
|
{
|
|
"label": "Run with hot reload",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L250",
|
|
"community": 1,
|
|
"norm_label": "run with hot reload",
|
|
"id": "docs_running_md_run_with_hot_reload"
|
|
},
|
|
{
|
|
"label": "Frontend Development",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L254",
|
|
"community": 1,
|
|
"norm_label": "frontend development",
|
|
"id": "docs_running_md_frontend_development"
|
|
},
|
|
{
|
|
"label": "Enter frontend container",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L257",
|
|
"community": 1,
|
|
"norm_label": "enter frontend container",
|
|
"id": "docs_running_md_enter_frontend_container"
|
|
},
|
|
{
|
|
"label": "Run dev server with hot reload",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L260",
|
|
"community": 1,
|
|
"norm_label": "run dev server with hot reload",
|
|
"id": "docs_running_md_run_dev_server_with_hot_reload"
|
|
},
|
|
{
|
|
"label": "Database Migrations",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L264",
|
|
"community": 1,
|
|
"norm_label": "database migrations",
|
|
"id": "docs_running_md_database_migrations"
|
|
},
|
|
{
|
|
"label": "Create migration",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L267",
|
|
"community": 1,
|
|
"norm_label": "create migration",
|
|
"id": "docs_running_md_create_migration"
|
|
},
|
|
{
|
|
"label": "Upgrade",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L270",
|
|
"community": 1,
|
|
"norm_label": "upgrade",
|
|
"id": "docs_running_md_upgrade"
|
|
},
|
|
{
|
|
"label": "Downgrade",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L273",
|
|
"community": 1,
|
|
"norm_label": "downgrade",
|
|
"id": "docs_running_md_downgrade"
|
|
},
|
|
{
|
|
"label": "Show migration history",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L276",
|
|
"community": 1,
|
|
"norm_label": "show migration history",
|
|
"id": "docs_running_md_show_migration_history"
|
|
},
|
|
{
|
|
"label": "Health Checks",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L280",
|
|
"community": 1,
|
|
"norm_label": "health checks",
|
|
"id": "docs_running_md_health_checks"
|
|
},
|
|
{
|
|
"label": "Check backend health",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L283",
|
|
"community": 1,
|
|
"norm_label": "check backend health",
|
|
"id": "docs_running_md_check_backend_health"
|
|
},
|
|
{
|
|
"label": "Check database connectivity",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L286",
|
|
"community": 1,
|
|
"norm_label": "check database connectivity",
|
|
"id": "docs_running_md_check_database_connectivity"
|
|
},
|
|
{
|
|
"label": "Check all services",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L289",
|
|
"community": 1,
|
|
"norm_label": "check all services",
|
|
"id": "docs_running_md_check_all_services"
|
|
},
|
|
{
|
|
"label": "Logs",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L293",
|
|
"community": 1,
|
|
"norm_label": "logs",
|
|
"id": "docs_running_md_logs"
|
|
},
|
|
{
|
|
"label": "View All Logs",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L295",
|
|
"community": 1,
|
|
"norm_label": "view all logs",
|
|
"id": "docs_running_md_view_all_logs"
|
|
},
|
|
{
|
|
"label": "View Specific Service",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L301",
|
|
"community": 1,
|
|
"norm_label": "view specific service",
|
|
"id": "docs_running_md_view_specific_service"
|
|
},
|
|
{
|
|
"label": "Configure Log Level",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L309",
|
|
"community": 1,
|
|
"norm_label": "configure log level",
|
|
"id": "docs_running_md_configure_log_level"
|
|
},
|
|
{
|
|
"label": "Security Notes",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L316",
|
|
"community": 1,
|
|
"norm_label": "security notes",
|
|
"id": "docs_running_md_security_notes"
|
|
},
|
|
{
|
|
"label": "Updating",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L324",
|
|
"community": 1,
|
|
"norm_label": "updating",
|
|
"id": "docs_running_md_updating"
|
|
},
|
|
{
|
|
"label": "Pull latest code",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L327",
|
|
"community": 1,
|
|
"norm_label": "pull latest code",
|
|
"id": "docs_running_md_pull_latest_code"
|
|
},
|
|
{
|
|
"label": "Rebuild images",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L330",
|
|
"community": 1,
|
|
"norm_label": "rebuild images",
|
|
"id": "docs_running_md_rebuild_images"
|
|
},
|
|
{
|
|
"label": "Restart services",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L336",
|
|
"community": 1,
|
|
"norm_label": "restart services",
|
|
"id": "docs_running_md_restart_services"
|
|
},
|
|
{
|
|
"label": "Stopping Completely",
|
|
"file_type": "document",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L340",
|
|
"community": 1,
|
|
"norm_label": "stopping completely",
|
|
"id": "docs_running_md_stopping_completely"
|
|
},
|
|
{
|
|
"label": "ORIENTATION.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": null,
|
|
"community": 18,
|
|
"norm_label": "orientation.md",
|
|
"id": "docs_orientation_md"
|
|
},
|
|
{
|
|
"label": "Meal Planner \u2014 Orientation",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L1",
|
|
"community": 18,
|
|
"norm_label": "meal planner \u2014 orientation",
|
|
"id": "docs_orientation_md_meal_planner_orientation"
|
|
},
|
|
{
|
|
"label": "What this project is",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L7",
|
|
"community": 18,
|
|
"norm_label": "what this project is",
|
|
"id": "docs_orientation_md_what_this_project_is"
|
|
},
|
|
{
|
|
"label": "Architecture (current)",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L15",
|
|
"community": 18,
|
|
"norm_label": "architecture (current)",
|
|
"id": "docs_orientation_md_architecture_current"
|
|
},
|
|
{
|
|
"label": "Phase status (2026-05-08)",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L39",
|
|
"community": 18,
|
|
"norm_label": "phase status (2026-05-08)",
|
|
"id": "docs_orientation_md_phase_status_2026_05_08"
|
|
},
|
|
{
|
|
"label": "Auth model (R1-B+D, locked in)",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L59",
|
|
"community": 18,
|
|
"norm_label": "auth model (r1-b+d, locked in)",
|
|
"id": "docs_orientation_md_auth_model_r1_b_d_locked_in"
|
|
},
|
|
{
|
|
"label": "Database schema highlights",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L69",
|
|
"community": 18,
|
|
"norm_label": "database schema highlights",
|
|
"id": "docs_orientation_md_database_schema_highlights"
|
|
},
|
|
{
|
|
"label": "Environment variables (verified)",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L83",
|
|
"community": 18,
|
|
"norm_label": "environment variables (verified)",
|
|
"id": "docs_orientation_md_environment_variables_verified"
|
|
},
|
|
{
|
|
"label": "Database",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L86",
|
|
"community": 18,
|
|
"norm_label": "database",
|
|
"id": "docs_orientation_md_database"
|
|
},
|
|
{
|
|
"label": "Auth",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L90",
|
|
"community": 18,
|
|
"norm_label": "auth",
|
|
"id": "docs_orientation_md_auth"
|
|
},
|
|
{
|
|
"label": "Email",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L95",
|
|
"community": 18,
|
|
"norm_label": "email",
|
|
"id": "docs_orientation_md_email"
|
|
},
|
|
{
|
|
"label": "Phase 5 orchestration",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L101",
|
|
"community": 18,
|
|
"norm_label": "phase 5 orchestration",
|
|
"id": "docs_orientation_md_phase_5_orchestration"
|
|
},
|
|
{
|
|
"label": "Lucky / Swiftly",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L105",
|
|
"community": 18,
|
|
"norm_label": "lucky / swiftly",
|
|
"id": "docs_orientation_md_lucky_swiftly"
|
|
},
|
|
{
|
|
"label": "(no bearer-token env var \u2014 minted on demand by app/services/swiftly_auth.py)",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L109",
|
|
"community": 18,
|
|
"norm_label": "(no bearer-token env var \u2014 minted on demand by app/services/swiftly_auth.py)",
|
|
"id": "docs_orientation_md_no_bearer_token_env_var_minted_on_demand"
|
|
},
|
|
{
|
|
"label": "Other",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L111",
|
|
"community": 18,
|
|
"norm_label": "other",
|
|
"id": "docs_orientation_md_other"
|
|
},
|
|
{
|
|
"label": "Verification commands",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L121",
|
|
"community": 18,
|
|
"norm_label": "verification commands",
|
|
"id": "docs_orientation_md_verification_commands"
|
|
},
|
|
{
|
|
"label": "Full local stack (include scheduler for Phase 5)",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L124",
|
|
"community": 18,
|
|
"norm_label": "full local stack (include scheduler for phase 5)",
|
|
"id": "docs_orientation_md_full_local_stack_include_scheduler_for_p"
|
|
},
|
|
{
|
|
"label": "Verify scheduler",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L129",
|
|
"community": 18,
|
|
"norm_label": "verify scheduler",
|
|
"id": "docs_orientation_md_verify_scheduler"
|
|
},
|
|
{
|
|
"label": "Expected: 6 lines \u2014 scrape/generate/email/reminder/deadline/finalize",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L131",
|
|
"community": 18,
|
|
"norm_label": "expected: 6 lines \u2014 scrape/generate/email/reminder/deadline/finalize",
|
|
"id": "docs_orientation_md_expected_6_lines_scrape_generate_email_r"
|
|
},
|
|
{
|
|
"label": "Manual step trigger (useful for testing without waiting for Friday)",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L133",
|
|
"community": 18,
|
|
"norm_label": "manual step trigger (useful for testing without waiting for friday)",
|
|
"id": "docs_orientation_md_manual_step_trigger_useful_for_testing_w"
|
|
},
|
|
{
|
|
"label": "Frontend",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L137",
|
|
"community": 18,
|
|
"norm_label": "frontend",
|
|
"id": "docs_orientation_md_frontend"
|
|
},
|
|
{
|
|
"label": "CI: .github/workflows/ci.yml runs both jobs on push/PR.",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L140",
|
|
"community": 18,
|
|
"norm_label": "ci: .github/workflows/ci.yml runs both jobs on push/pr.",
|
|
"id": "docs_orientation_md_ci_github_workflows_ci_yml_runs_both_job"
|
|
},
|
|
{
|
|
"label": "Conventions",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L147",
|
|
"community": 18,
|
|
"norm_label": "conventions",
|
|
"id": "docs_orientation_md_conventions"
|
|
},
|
|
{
|
|
"label": "Where to look",
|
|
"file_type": "document",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L158",
|
|
"community": 18,
|
|
"norm_label": "where to look",
|
|
"id": "docs_orientation_md_where_to_look"
|
|
},
|
|
{
|
|
"label": "HANDOFF.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": null,
|
|
"community": 9,
|
|
"norm_label": "handoff.md",
|
|
"id": "docs_handoff_md"
|
|
},
|
|
{
|
|
"label": "MealPlanner \u2014 Agent Handoff",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L1",
|
|
"community": 9,
|
|
"norm_label": "mealplanner \u2014 agent handoff",
|
|
"id": "docs_handoff_md_mealplanner_agent_handoff"
|
|
},
|
|
{
|
|
"label": "TL;DR",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L14",
|
|
"community": 9,
|
|
"norm_label": "tl;dr",
|
|
"id": "docs_handoff_md_tl_dr"
|
|
},
|
|
{
|
|
"label": "Infrastructure \u2014 READ THIS FIRST",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L26",
|
|
"community": 9,
|
|
"norm_label": "infrastructure \u2014 read this first",
|
|
"id": "docs_handoff_md_infrastructure_read_this_first"
|
|
},
|
|
{
|
|
"label": "Access",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L28",
|
|
"community": 9,
|
|
"norm_label": "access",
|
|
"id": "docs_handoff_md_access"
|
|
},
|
|
{
|
|
"label": "Stack up",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L33",
|
|
"community": 9,
|
|
"norm_label": "stack up",
|
|
"id": "docs_handoff_md_stack_up"
|
|
},
|
|
{
|
|
"label": "Applying Python code changes",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L39",
|
|
"community": 9,
|
|
"norm_label": "applying python code changes",
|
|
"id": "docs_handoff_md_applying_python_code_changes"
|
|
},
|
|
{
|
|
"label": "DB connection",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L46",
|
|
"community": 9,
|
|
"norm_label": "db connection",
|
|
"id": "docs_handoff_md_db_connection"
|
|
},
|
|
{
|
|
"label": "Admin API auth",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L52",
|
|
"community": 9,
|
|
"norm_label": "admin api auth",
|
|
"id": "docs_handoff_md_admin_api_auth"
|
|
},
|
|
{
|
|
"label": "Key env vars (`.env.test`)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L58",
|
|
"community": 9,
|
|
"norm_label": "key env vars (`.env.test`)",
|
|
"id": "docs_handoff_md_key_env_vars_env_test"
|
|
},
|
|
{
|
|
"label": "Family data (live, seeded)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L69",
|
|
"community": 9,
|
|
"norm_label": "family data (live, seeded)",
|
|
"id": "docs_handoff_md_family_data_live_seeded"
|
|
},
|
|
{
|
|
"label": "What changed in this session",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L78",
|
|
"community": 9,
|
|
"norm_label": "what changed in this session",
|
|
"id": "docs_handoff_md_what_changed_in_this_session"
|
|
},
|
|
{
|
|
"label": "MVP login + auth gating (committed in `feature/mvp-login`, merged to master)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L80",
|
|
"community": 9,
|
|
"norm_label": "mvp login + auth gating (committed in `feature/mvp-login`, merged to master)",
|
|
"id": "docs_handoff_md_mvp_login_auth_gating_committed_in_featu"
|
|
},
|
|
{
|
|
"label": "nginx (committed in `59a15a2`)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L86",
|
|
"community": 9,
|
|
"norm_label": "nginx (committed in `59a15a2`)",
|
|
"id": "docs_handoff_md_nginx_committed_in_59a15a2"
|
|
},
|
|
{
|
|
"label": "Vote email enrichment (`aeed2a4`)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L91",
|
|
"community": 9,
|
|
"norm_label": "vote email enrichment (`aeed2a4`)",
|
|
"id": "docs_handoff_md_vote_email_enrichment_aeed2a4"
|
|
},
|
|
{
|
|
"label": "Shopping list email improvements (`aeed2a4`)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L99",
|
|
"community": 9,
|
|
"norm_label": "shopping list email improvements (`aeed2a4`)",
|
|
"id": "docs_handoff_md_shopping_list_email_improvements_aeed2a4"
|
|
},
|
|
{
|
|
"label": "Ingredient matcher \u2014 full rewrite (`ac2b575`, `d7a3f5c`, `2373883`)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L103",
|
|
"community": 9,
|
|
"norm_label": "ingredient matcher \u2014 full rewrite (`ac2b575`, `d7a3f5c`, `2373883`)",
|
|
"id": "docs_handoff_md_ingredient_matcher_full_rewrite_ac2b575_"
|
|
},
|
|
{
|
|
"label": "Scraper fix \u2014 save priceless produce (`2373883`)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L145",
|
|
"community": 9,
|
|
"norm_label": "scraper fix \u2014 save priceless produce (`2373883`)",
|
|
"id": "docs_handoff_md_scraper_fix_save_priceless_produce_23738"
|
|
},
|
|
{
|
|
"label": "What is real (verified)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L150",
|
|
"community": 9,
|
|
"norm_label": "what is real (verified)",
|
|
"id": "docs_handoff_md_what_is_real_verified"
|
|
},
|
|
{
|
|
"label": "Lucky CA API (Swiftly) \u2014 full catalog accessible",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L154",
|
|
"community": 9,
|
|
"norm_label": "lucky ca api (swiftly) \u2014 full catalog accessible",
|
|
"id": "docs_handoff_md_lucky_ca_api_swiftly_full_catalog_access"
|
|
},
|
|
{
|
|
"label": "Matcher runs automatically",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L162",
|
|
"community": 9,
|
|
"norm_label": "matcher runs automatically",
|
|
"id": "docs_handoff_md_matcher_runs_automatically"
|
|
},
|
|
{
|
|
"label": "What is stubbed or missing",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L167",
|
|
"community": 9,
|
|
"norm_label": "what is stubbed or missing",
|
|
"id": "docs_handoff_md_what_is_stubbed_or_missing"
|
|
},
|
|
{
|
|
"label": "Recipe images (Phase 10 \u2014 approved, not started)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L169",
|
|
"community": 9,
|
|
"norm_label": "recipe images (phase 10 \u2014 approved, not started)",
|
|
"id": "docs_handoff_md_recipe_images_phase_10_approved_not_star"
|
|
},
|
|
{
|
|
"label": "Recipe descriptions",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L174",
|
|
"community": 9,
|
|
"norm_label": "recipe descriptions",
|
|
"id": "docs_handoff_md_recipe_descriptions"
|
|
},
|
|
{
|
|
"label": "Olive Oil + Corn Tortillas (Lucky catalog gap)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L178",
|
|
"community": 9,
|
|
"norm_label": "olive oil + corn tortillas (lucky catalog gap)",
|
|
"id": "docs_handoff_md_olive_oil_corn_tortillas_lucky_catalog_g"
|
|
},
|
|
{
|
|
"label": "Phase 8 \u2014 Feedback UI (done)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L183",
|
|
"community": 9,
|
|
"norm_label": "phase 8 \u2014 feedback ui (done)",
|
|
"id": "docs_handoff_md_phase_8_feedback_ui_done"
|
|
},
|
|
{
|
|
"label": "Known caveats and traps",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L189",
|
|
"community": 9,
|
|
"norm_label": "known caveats and traps",
|
|
"id": "docs_handoff_md_known_caveats_and_traps"
|
|
},
|
|
{
|
|
"label": "Admin API reference",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L212",
|
|
"community": 9,
|
|
"norm_label": "admin api reference",
|
|
"id": "docs_handoff_md_admin_api_reference"
|
|
},
|
|
{
|
|
"label": "Trigger individual steps",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L215",
|
|
"community": 9,
|
|
"norm_label": "trigger individual steps",
|
|
"id": "docs_handoff_md_trigger_individual_steps"
|
|
},
|
|
{
|
|
"label": "Valid steps: scrape, generate, email, reminder, deadline, finalize",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L218",
|
|
"community": 9,
|
|
"norm_label": "valid steps: scrape, generate, email, reminder, deadline, finalize",
|
|
"id": "docs_handoff_md_valid_steps_scrape_generate_email_remind"
|
|
},
|
|
{
|
|
"label": "Full week cycle (background)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L220",
|
|
"community": 9,
|
|
"norm_label": "full week cycle (background)",
|
|
"id": "docs_handoff_md_full_week_cycle_background"
|
|
},
|
|
{
|
|
"label": "Scrape status",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L224",
|
|
"community": 9,
|
|
"norm_label": "scrape status",
|
|
"id": "docs_handoff_md_scrape_status"
|
|
},
|
|
{
|
|
"label": "Weekly run status",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L228",
|
|
"community": 9,
|
|
"norm_label": "weekly run status",
|
|
"id": "docs_handoff_md_weekly_run_status"
|
|
},
|
|
{
|
|
"label": "Trigger fresh scrape + auto-match",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L232",
|
|
"community": 9,
|
|
"norm_label": "trigger fresh scrape + auto-match",
|
|
"id": "docs_handoff_md_trigger_fresh_scrape_auto_match"
|
|
},
|
|
{
|
|
"label": "Suggested next moves",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L239",
|
|
"community": 9,
|
|
"norm_label": "suggested next moves",
|
|
"id": "docs_handoff_md_suggested_next_moves"
|
|
},
|
|
{
|
|
"label": "1. Spoonacular recipe enrichment (images + descriptions)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L241",
|
|
"community": 9,
|
|
"norm_label": "1. spoonacular recipe enrichment (images + descriptions)",
|
|
"id": "docs_handoff_md_1_spoonacular_recipe_enrichment_images_d"
|
|
},
|
|
{
|
|
"label": "2. Ollama LLM matcher (Olive Oil, Corn Tortillas, etc.)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L251",
|
|
"community": 9,
|
|
"norm_label": "2. ollama llm matcher (olive oil, corn tortillas, etc.)",
|
|
"id": "docs_handoff_md_2_ollama_llm_matcher_olive_oil_corn_tort"
|
|
},
|
|
{
|
|
"label": "3. Natural Friday cycle",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L267",
|
|
"community": 9,
|
|
"norm_label": "3. natural friday cycle",
|
|
"id": "docs_handoff_md_3_natural_friday_cycle"
|
|
},
|
|
{
|
|
"label": "File map (additions from this session)",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L273",
|
|
"community": 9,
|
|
"norm_label": "file map (additions from this session)",
|
|
"id": "docs_handoff_md_file_map_additions_from_this_session"
|
|
},
|
|
{
|
|
"label": "Final words",
|
|
"file_type": "document",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L285",
|
|
"community": 9,
|
|
"norm_label": "final words",
|
|
"id": "docs_handoff_md_final_words"
|
|
},
|
|
{
|
|
"label": "2026-05-05-meal-planner-algorithm-design.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": null,
|
|
"community": 21,
|
|
"norm_label": "2026-05-05-meal-planner-algorithm-design.md",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md"
|
|
},
|
|
{
|
|
"label": "Meal Planner Algorithm \u2014 Design Spec",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L1",
|
|
"community": 21,
|
|
"norm_label": "meal planner algorithm \u2014 design spec",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_meal_planner_algorithm_design_spec"
|
|
},
|
|
{
|
|
"label": "1. Goal",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L9",
|
|
"community": 21,
|
|
"norm_label": "1. goal",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_1_goal"
|
|
},
|
|
{
|
|
"label": "2. Algorithm shape",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L17",
|
|
"community": 21,
|
|
"norm_label": "2. algorithm shape",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_algorithm_shape"
|
|
},
|
|
{
|
|
"label": "2.1 Hard constraints",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L26",
|
|
"community": 21,
|
|
"norm_label": "2.1 hard constraints",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_1_hard_constraints"
|
|
},
|
|
{
|
|
"label": "2.2 Scoring signals",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L41",
|
|
"community": 21,
|
|
"norm_label": "2.2 scoring signals",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_2_scoring_signals"
|
|
},
|
|
{
|
|
"label": "2.3 Set-selection diversity",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L64",
|
|
"community": 21,
|
|
"norm_label": "2.3 set-selection diversity",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_3_set_selection_diversity"
|
|
},
|
|
{
|
|
"label": "3. Ingredient \u2194 grocery_item matching layer",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L82",
|
|
"community": 21,
|
|
"norm_label": "3. ingredient \u2194 grocery_item matching layer",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_ingredient_grocery_item_matching_layer"
|
|
},
|
|
{
|
|
"label": "3.1 Schema",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L86",
|
|
"community": 21,
|
|
"norm_label": "3.1 schema",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_1_schema"
|
|
},
|
|
{
|
|
"label": "3.2 Match job",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L112",
|
|
"community": 21,
|
|
"norm_label": "3.2 match job",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_2_match_job"
|
|
},
|
|
{
|
|
"label": "3.3 Manual override",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L123",
|
|
"community": 21,
|
|
"norm_label": "3.3 manual override",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_3_manual_override"
|
|
},
|
|
{
|
|
"label": "3.4 Recipe-create assist",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L127",
|
|
"community": 21,
|
|
"norm_label": "3.4 recipe-create assist",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_4_recipe_create_assist"
|
|
},
|
|
{
|
|
"label": "4. Thin Phase 4 surface",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L133",
|
|
"community": 21,
|
|
"norm_label": "4. thin phase 4 surface",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_thin_phase_4_surface"
|
|
},
|
|
{
|
|
"label": "4.1 In scope",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L137",
|
|
"community": 21,
|
|
"norm_label": "4.1 in scope",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_1_in_scope"
|
|
},
|
|
{
|
|
"label": "4.2 Recipe model fields (additions to existing `recipe` table)",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L150",
|
|
"community": 21,
|
|
"norm_label": "4.2 recipe model fields (additions to existing `recipe` table)",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_2_recipe_model_fields_additions_to_exi"
|
|
},
|
|
{
|
|
"label": "4.3 Out of scope (deferred)",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L174",
|
|
"community": 21,
|
|
"norm_label": "4.3 out of scope (deferred)",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_3_out_of_scope_deferred"
|
|
},
|
|
{
|
|
"label": "5. Phase 9 API surface",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L185",
|
|
"community": 21,
|
|
"norm_label": "5. phase 9 api surface",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_5_phase_9_api_surface"
|
|
},
|
|
{
|
|
"label": "6. Recipe source comparison (deferred decision)",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L204",
|
|
"community": 21,
|
|
"norm_label": "6. recipe source comparison (deferred decision)",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_6_recipe_source_comparison_deferred_deci"
|
|
},
|
|
{
|
|
"label": "7. Open questions / deferred",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L224",
|
|
"community": 21,
|
|
"norm_label": "7. open questions / deferred",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_7_open_questions_deferred"
|
|
},
|
|
{
|
|
"label": "8. Implementation order",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L233",
|
|
"community": 21,
|
|
"norm_label": "8. implementation order",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_8_implementation_order"
|
|
},
|
|
{
|
|
"label": "9. Out of scope for this spec",
|
|
"file_type": "document",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L245",
|
|
"community": 21,
|
|
"norm_label": "9. out of scope for this spec",
|
|
"id": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_9_out_of_scope_for_this_spec"
|
|
},
|
|
{
|
|
"label": "2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": null,
|
|
"community": 19,
|
|
"norm_label": "2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md"
|
|
},
|
|
{
|
|
"label": "Thin Phase 4 \u2014 Recipe Engine + Matching Layer Implementation Plan",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1",
|
|
"community": 19,
|
|
"norm_label": "thin phase 4 \u2014 recipe engine + matching layer implementation plan",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_thin_phase_4_recipe_engine_matching_laye"
|
|
},
|
|
{
|
|
"label": "File Structure",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L21",
|
|
"community": 19,
|
|
"norm_label": "file structure",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_file_structure"
|
|
},
|
|
{
|
|
"label": "Task 1: Add rapidfuzz dependency",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L50",
|
|
"community": 19,
|
|
"norm_label": "task 1: add rapidfuzz dependency",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_1_add_rapidfuzz_dependency"
|
|
},
|
|
{
|
|
"label": "Task 2: Migration 0006 \u2014 schema changes",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L92",
|
|
"community": 19,
|
|
"norm_label": "task 2: migration 0006 \u2014 schema changes",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_2_migration_0006_schema_changes"
|
|
},
|
|
{
|
|
"label": "Task 3: Update SQLAlchemy models",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L228",
|
|
"community": 19,
|
|
"norm_label": "task 3: update sqlalchemy models",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_3_update_sqlalchemy_models"
|
|
},
|
|
{
|
|
"label": "Task 4: Pydantic schemas \u2014 ingredient",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L313",
|
|
"community": 19,
|
|
"norm_label": "task 4: pydantic schemas \u2014 ingredient",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_4_pydantic_schemas_ingredient"
|
|
},
|
|
{
|
|
"label": "Task 5: Pydantic schemas \u2014 recipe",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L450",
|
|
"community": 19,
|
|
"norm_label": "task 5: pydantic schemas \u2014 recipe",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_5_pydantic_schemas_recipe"
|
|
},
|
|
{
|
|
"label": "Task 6: Ingredient CRUD endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L611",
|
|
"community": 19,
|
|
"norm_label": "task 6: ingredient crud endpoints",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_6_ingredient_crud_endpoints"
|
|
},
|
|
{
|
|
"label": "Task 7: Recipe CRUD endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L850",
|
|
"community": 19,
|
|
"norm_label": "task 7: recipe crud endpoints",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_7_recipe_crud_endpoints"
|
|
},
|
|
{
|
|
"label": "Task 8: Resolve-ingredient assist endpoint",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1121",
|
|
"community": 19,
|
|
"norm_label": "task 8: resolve-ingredient assist endpoint",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_8_resolve_ingredient_assist_endpoin"
|
|
},
|
|
{
|
|
"label": "Task 9: Matcher service (rapidfuzz top-3)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1304",
|
|
"community": 19,
|
|
"norm_label": "task 9: matcher service (rapidfuzz top-3)",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_9_matcher_service_rapidfuzz_top_3"
|
|
},
|
|
{
|
|
"label": "Task 10: Wire matcher into scrape success path",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1528",
|
|
"community": 19,
|
|
"norm_label": "task 10: wire matcher into scrape success path",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_10_wire_matcher_into_scrape_success"
|
|
},
|
|
{
|
|
"label": "Task 11: Manual match override endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1658",
|
|
"community": 19,
|
|
"norm_label": "task 11: manual match override endpoints",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_11_manual_match_override_endpoints"
|
|
},
|
|
{
|
|
"label": "Re-import BaseModel near the top of the file if not already present.",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1757",
|
|
"community": 19,
|
|
"norm_label": "re-import basemodel near the top of the file if not already present.",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_re_import_basemodel_near_the_top_of_the_"
|
|
},
|
|
{
|
|
"label": "Task 12: NeverSuggest CRUD endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1841",
|
|
"community": 19,
|
|
"norm_label": "task 12: neversuggest crud endpoints",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_12_neversuggest_crud_endpoints"
|
|
},
|
|
{
|
|
"label": "Task 13: Migration 0007 \u2014 seed canonical ingredients",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2078",
|
|
"community": 19,
|
|
"norm_label": "task 13: migration 0007 \u2014 seed canonical ingredients",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_13_migration_0007_seed_canonical_in"
|
|
},
|
|
{
|
|
"label": "Stable UUIDs so re-running upgrade after a downgrade is idempotent on FK refs.",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2110",
|
|
"community": 19,
|
|
"norm_label": "stable uuids so re-running upgrade after a downgrade is idempotent on fk refs.",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_stable_uuids_so_re_running_upgrade_after"
|
|
},
|
|
{
|
|
"label": "Task 14: Migration 0007 \u2014 populate 30 starter recipes",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2263",
|
|
"community": 19,
|
|
"norm_label": "task 14: migration 0007 \u2014 populate 30 starter recipes",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_14_migration_0007_populate_30_start"
|
|
},
|
|
{
|
|
"label": "Task 15: End-to-end smoke test + docs refresh",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2406",
|
|
"community": 19,
|
|
"norm_label": "task 15: end-to-end smoke test + docs refresh",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_15_end_to_end_smoke_test_docs_refre"
|
|
},
|
|
{
|
|
"label": "Verification gate",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2504",
|
|
"community": 19,
|
|
"norm_label": "verification gate",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_verification_gate"
|
|
},
|
|
{
|
|
"label": "Out of scope (Phase 9 plan, written separately)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2519",
|
|
"community": 19,
|
|
"norm_label": "out of scope (phase 9 plan, written separately)",
|
|
"id": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_out_of_scope_phase_9_plan_written_separa"
|
|
},
|
|
{
|
|
"label": "2026-05-05-phase-9-planner-algorithm.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": null,
|
|
"community": 30,
|
|
"norm_label": "2026-05-05-phase-9-planner-algorithm.md",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md"
|
|
},
|
|
{
|
|
"label": "Phase 9 \u2014 Meal-Planner Algorithm Implementation Plan",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1",
|
|
"community": 30,
|
|
"norm_label": "phase 9 \u2014 meal-planner algorithm implementation plan",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_phase_9_meal_planner_algorithm_implement"
|
|
},
|
|
{
|
|
"label": "File Structure",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L22",
|
|
"community": 30,
|
|
"norm_label": "file structure",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_file_structure"
|
|
},
|
|
{
|
|
"label": "Task 1: Planner config + types",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L49",
|
|
"community": 30,
|
|
"norm_label": "task 1: planner config + types",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_1_planner_config_types"
|
|
},
|
|
{
|
|
"label": "Task 2: Cost + savings estimator",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L208",
|
|
"community": 30,
|
|
"norm_label": "task 2: cost + savings estimator",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_2_cost_savings_estimator"
|
|
},
|
|
{
|
|
"label": "Task 3: Hard-constraint filter",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L456",
|
|
"community": 30,
|
|
"norm_label": "task 3: hard-constraint filter",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_3_hard_constraint_filter"
|
|
},
|
|
{
|
|
"label": "Task 4: Individual scoring",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L778",
|
|
"community": 30,
|
|
"norm_label": "task 4: individual scoring",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_4_individual_scoring"
|
|
},
|
|
{
|
|
"label": "Task 5: Top-K set selection with diversity",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1040",
|
|
"community": 30,
|
|
"norm_label": "task 5: top-k set selection with diversity",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_5_top_k_set_selection_with_diversit"
|
|
},
|
|
{
|
|
"label": "Task 6: Generation orchestrator",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1212",
|
|
"community": 30,
|
|
"norm_label": "task 6: generation orchestrator",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_6_generation_orchestrator"
|
|
},
|
|
{
|
|
"label": "Task 7: Generate API endpoint",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1559",
|
|
"community": 30,
|
|
"norm_label": "task 7: generate api endpoint",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_7_generate_api_endpoint"
|
|
},
|
|
{
|
|
"label": "Task 8: Final regression sweep + docs refresh",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1899",
|
|
"community": 30,
|
|
"norm_label": "task 8: final regression sweep + docs refresh",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_8_final_regression_sweep_docs_refre"
|
|
},
|
|
{
|
|
"label": "Verification gate",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1948",
|
|
"community": 30,
|
|
"norm_label": "verification gate",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_verification_gate"
|
|
},
|
|
{
|
|
"label": "Open items (deferred, tracked here)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1961",
|
|
"community": 30,
|
|
"norm_label": "open items (deferred, tracked here)",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_open_items_deferred_tracked_here"
|
|
},
|
|
{
|
|
"label": "Out of scope (other phases)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1971",
|
|
"community": 30,
|
|
"norm_label": "out of scope (other phases)",
|
|
"id": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_out_of_scope_other_phases"
|
|
},
|
|
{
|
|
"label": "2026-05-07-phase5-orchestration.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": null,
|
|
"community": 11,
|
|
"norm_label": "2026-05-07-phase5-orchestration.md",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md"
|
|
},
|
|
{
|
|
"label": "Phase 5 \u2014 Weekly Orchestration Implementation Plan",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1",
|
|
"community": 11,
|
|
"norm_label": "phase 5 \u2014 weekly orchestration implementation plan",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_phase_5_weekly_orchestration_implementat"
|
|
},
|
|
{
|
|
"label": "File Map",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L13",
|
|
"community": 11,
|
|
"norm_label": "file map",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_file_map"
|
|
},
|
|
{
|
|
"label": "Task 1 \u2014 Alembic migration 0008",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L32",
|
|
"community": 11,
|
|
"norm_label": "task 1 \u2014 alembic migration 0008",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_1_alembic_migration_0008"
|
|
},
|
|
{
|
|
"label": "backend/alembic/versions/0008_phase5_orchestration.py",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L40",
|
|
"community": 11,
|
|
"norm_label": "backend/alembic/versions/0008_phase5_orchestration.py",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_backend_alembic_versions_0008_phase5_orc"
|
|
},
|
|
{
|
|
"label": "Task 2 \u2014 WeeklyRun model + FamilyProfile update",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L134",
|
|
"community": 11,
|
|
"norm_label": "task 2 \u2014 weeklyrun model + familyprofile update",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_2_weeklyrun_model_familyprofile_upd"
|
|
},
|
|
{
|
|
"label": "column (after calorie_target line):",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L177",
|
|
"community": 11,
|
|
"norm_label": "column (after calorie_target line):",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_column_after_calorie_target_line"
|
|
},
|
|
{
|
|
"label": "relationship (after the existing relationships):",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L180",
|
|
"community": 11,
|
|
"norm_label": "relationship (after the existing relationships):",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_relationship_after_the_existing_relation"
|
|
},
|
|
{
|
|
"label": "Task 3 \u2014 Settings: ADMIN_EMAIL + APP_BASE_URL",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L202",
|
|
"community": 11,
|
|
"norm_label": "task 3 \u2014 settings: admin_email + app_base_url",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_3_settings_admin_email_app_base_url"
|
|
},
|
|
{
|
|
"label": "Task 4 \u2014 alerts.py",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L242",
|
|
"community": 11,
|
|
"norm_label": "task 4 \u2014 alerts.py",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_4_alerts_py"
|
|
},
|
|
{
|
|
"label": "---------------------------------------------------------------------------",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L262",
|
|
"community": 11,
|
|
"norm_label": "---------------------------------------------------------------------------",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_"
|
|
},
|
|
{
|
|
"label": "Fixtures",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L263",
|
|
"community": 11,
|
|
"norm_label": "fixtures",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_fixtures"
|
|
},
|
|
{
|
|
"label": "alerts.py tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L393",
|
|
"community": 11,
|
|
"norm_label": "alerts.py tests",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_alerts_py_tests"
|
|
},
|
|
{
|
|
"label": "Task 5 \u2014 step_scrape",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L489",
|
|
"community": 11,
|
|
"norm_label": "task 5 \u2014 step_scrape",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_5_step_scrape"
|
|
},
|
|
{
|
|
"label": "step_scrape tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L499",
|
|
"community": 11,
|
|
"norm_label": "step_scrape tests",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_scrape_tests"
|
|
},
|
|
{
|
|
"label": "Task 6 \u2014 step_generate",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L631",
|
|
"community": 11,
|
|
"norm_label": "task 6 \u2014 step_generate",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_6_step_generate"
|
|
},
|
|
{
|
|
"label": "step_generate tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L641",
|
|
"community": 11,
|
|
"norm_label": "step_generate tests",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_generate_tests"
|
|
},
|
|
{
|
|
"label": "Task 7 \u2014 step_email",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L742",
|
|
"community": 11,
|
|
"norm_label": "task 7 \u2014 step_email",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_7_step_email"
|
|
},
|
|
{
|
|
"label": "step_email tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L752",
|
|
"community": 11,
|
|
"norm_label": "step_email tests",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_email_tests"
|
|
},
|
|
{
|
|
"label": "Task 8 \u2014 step_deadline",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L900",
|
|
"community": 11,
|
|
"norm_label": "task 8 \u2014 step_deadline",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_8_step_deadline"
|
|
},
|
|
{
|
|
"label": "step_deadline tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L910",
|
|
"community": 11,
|
|
"norm_label": "step_deadline tests",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_deadline_tests"
|
|
},
|
|
{
|
|
"label": "Task 9 \u2014 step_finalize",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1013",
|
|
"community": 11,
|
|
"norm_label": "task 9 \u2014 step_finalize",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_9_step_finalize"
|
|
},
|
|
{
|
|
"label": "step_finalize tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1023",
|
|
"community": 11,
|
|
"norm_label": "step_finalize tests",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_finalize_tests"
|
|
},
|
|
{
|
|
"label": "Task 10 \u2014 runner.py + orchestrator/__init__.py",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1208",
|
|
"community": 11,
|
|
"norm_label": "task 10 \u2014 runner.py + orchestrator/__init__.py",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_10_runner_py_orchestrator_init_py"
|
|
},
|
|
{
|
|
"label": "runner tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1219",
|
|
"community": 11,
|
|
"norm_label": "runner tests",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_runner_tests"
|
|
},
|
|
{
|
|
"label": "backend/app/services/orchestrator/__init__.py",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1370",
|
|
"community": 11,
|
|
"norm_label": "backend/app/services/orchestrator/__init__.py",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_backend_app_services_orchestrator_init_p"
|
|
},
|
|
{
|
|
"label": "Task 11 \u2014 Admin orchestrate endpoints",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1403",
|
|
"community": 11,
|
|
"norm_label": "task 11 \u2014 admin orchestrate endpoints",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_11_admin_orchestrate_endpoints"
|
|
},
|
|
{
|
|
"label": "Admin endpoint tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1413",
|
|
"community": 11,
|
|
"norm_label": "admin endpoint tests",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_admin_endpoint_tests"
|
|
},
|
|
{
|
|
"label": "Task 12 \u2014 Scheduler entry point",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1574",
|
|
"community": 11,
|
|
"norm_label": "task 12 \u2014 scheduler entry point",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_12_scheduler_entry_point"
|
|
},
|
|
{
|
|
"label": "Task 13 \u2014 Docker Compose: scheduler service",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1680",
|
|
"community": 11,
|
|
"norm_label": "task 13 \u2014 docker compose: scheduler service",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_13_docker_compose_scheduler_service"
|
|
},
|
|
{
|
|
"label": "Final verification",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1749",
|
|
"community": 11,
|
|
"norm_label": "final verification",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_final_verification"
|
|
},
|
|
{
|
|
"label": "Seed a family_profile row first if DB is fresh",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1763",
|
|
"community": 11,
|
|
"norm_label": "seed a family_profile row first if db is fresh",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_seed_a_family_profile_row_first_if_db_is"
|
|
},
|
|
{
|
|
"label": "Environment variables added",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1783",
|
|
"community": 11,
|
|
"norm_label": "environment variables added",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_environment_variables_added"
|
|
},
|
|
{
|
|
"label": "2026-05-07-phase6-sendgrid.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": null,
|
|
"community": 31,
|
|
"norm_label": "2026-05-07-phase6-sendgrid.md",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md"
|
|
},
|
|
{
|
|
"label": "Phase 6 \u2014 SendGrid Email Integration Implementation Plan",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L1",
|
|
"community": 31,
|
|
"norm_label": "phase 6 \u2014 sendgrid email integration implementation plan",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_phase_6_sendgrid_email_integration_imple"
|
|
},
|
|
{
|
|
"label": "File map",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L13",
|
|
"community": 31,
|
|
"norm_label": "file map",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_file_map"
|
|
},
|
|
{
|
|
"label": "Task 1: Migration 0009 \u2014 add `reminded_at` to `weekly_run`",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L30",
|
|
"community": 31,
|
|
"norm_label": "task 1: migration 0009 \u2014 add `reminded_at` to `weekly_run`",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_1_migration_0009_add_reminded_at_to"
|
|
},
|
|
{
|
|
"label": "Context",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L36",
|
|
"community": 31,
|
|
"norm_label": "context",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_context"
|
|
},
|
|
{
|
|
"label": "Expected: INFO [alembic.runtime.migration] Running upgrade 0008 -> 0009 ...",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L99",
|
|
"community": 31,
|
|
"norm_label": "expected: info [alembic.runtime.migration] running upgrade 0008 -> 0009 ...",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_expected_info_alembic_runtime_migration_"
|
|
},
|
|
{
|
|
"label": "Expected: Running upgrade 0008 -> 0009 again, clean",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L105",
|
|
"community": 31,
|
|
"norm_label": "expected: running upgrade 0008 -> 0009 again, clean",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_expected_running_upgrade_0008_0009_again"
|
|
},
|
|
{
|
|
"label": "Task 2: Wire `SendGridEmailBackend`",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L128",
|
|
"community": 31,
|
|
"norm_label": "task 2: wire `sendgridemailbackend`",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_2_wire_sendgridemailbackend"
|
|
},
|
|
{
|
|
"label": "Task 3: `step_reminder` + tests",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L302",
|
|
"community": 31,
|
|
"norm_label": "task 3: `step_reminder` + tests",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_3_step_reminder_tests"
|
|
},
|
|
{
|
|
"label": "\u2500\u2500 step_reminder \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L339",
|
|
"community": 31,
|
|
"norm_label": "\u2500\u2500 step_reminder \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_step_reminder"
|
|
},
|
|
{
|
|
"label": "Task 4: Wire reminder into runner, admin, and scheduler",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L579",
|
|
"community": 31,
|
|
"norm_label": "task 4: wire reminder into runner, admin, and scheduler",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_4_wire_reminder_into_runner_admin_a"
|
|
},
|
|
{
|
|
"label": "Task 5: HTML-escape (#P5-a) and `getattr` cleanup (#P5-b)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L674",
|
|
"community": 31,
|
|
"norm_label": "task 5: html-escape (#p5-a) and `getattr` cleanup (#p5-b)",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_5_html_escape_p5_a_and_getattr_clea"
|
|
},
|
|
{
|
|
"label": "Final verification",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L828",
|
|
"community": 31,
|
|
"norm_label": "final verification",
|
|
"id": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_final_verification"
|
|
},
|
|
{
|
|
"label": "2026-05-09-mvp-login.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": null,
|
|
"community": 23,
|
|
"norm_label": "2026-05-09-mvp-login.md",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md"
|
|
},
|
|
{
|
|
"label": "MVP Login + Family Seed Implementation Plan",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L1",
|
|
"community": 23,
|
|
"norm_label": "mvp login + family seed implementation plan",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_mvp_login_family_seed_implementation_pla"
|
|
},
|
|
{
|
|
"label": "File map",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L13",
|
|
"community": 23,
|
|
"norm_label": "file map",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_file_map"
|
|
},
|
|
{
|
|
"label": "Task 1: Login page + 401 interceptor + nav logout",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L24",
|
|
"community": 23,
|
|
"norm_label": "task 1: login page + 401 interceptor + nav logout",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_task_1_login_page_401_interceptor_nav_lo"
|
|
},
|
|
{
|
|
"label": "Step 1: Create `frontend/src/pages/Login.tsx`",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L33",
|
|
"community": 23,
|
|
"norm_label": "step 1: create `frontend/src/pages/login.tsx`",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_1_create_frontend_src_pages_login_t"
|
|
},
|
|
{
|
|
"label": "Step 2: Modify `frontend/src/App.tsx`",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L92",
|
|
"community": 23,
|
|
"norm_label": "step 2: modify `frontend/src/app.tsx`",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_2_modify_frontend_src_app_tsx"
|
|
},
|
|
{
|
|
"label": "Step 3: Add 401 interceptor to `frontend/src/api/index.ts`",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L183",
|
|
"community": 23,
|
|
"norm_label": "step 3: add 401 interceptor to `frontend/src/api/index.ts`",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_3_add_401_interceptor_to_frontend_s"
|
|
},
|
|
{
|
|
"label": "Step 4: Build and verify",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L199",
|
|
"community": 23,
|
|
"norm_label": "step 4: build and verify",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_4_build_and_verify"
|
|
},
|
|
{
|
|
"label": "Expected: no TypeScript errors, build succeeds",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L205",
|
|
"community": 23,
|
|
"norm_label": "expected: no typescript errors, build succeeds",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_expected_no_typescript_errors_build_succ"
|
|
},
|
|
{
|
|
"label": "Step 5: Commit",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L208",
|
|
"community": 23,
|
|
"norm_label": "step 5: commit",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_5_commit"
|
|
},
|
|
{
|
|
"label": "Task 2: Family profile seed script",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L220",
|
|
"community": 23,
|
|
"norm_label": "task 2: family profile seed script",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_task_2_family_profile_seed_script"
|
|
},
|
|
{
|
|
"label": "\u2500\u2500 Edit these before running \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L241",
|
|
"community": 23,
|
|
"norm_label": "\u2500\u2500 edit these before running \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_edit_these_before_running"
|
|
},
|
|
{
|
|
"label": "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L249",
|
|
"community": 23,
|
|
"norm_label": "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_"
|
|
},
|
|
{
|
|
"label": "Step: Commit",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L288",
|
|
"community": 23,
|
|
"norm_label": "step: commit",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_commit"
|
|
},
|
|
{
|
|
"label": "Post-merge steps (run by operator after merge)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L298",
|
|
"community": 23,
|
|
"norm_label": "post-merge steps (run by operator after merge)",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_post_merge_steps_run_by_operator_after_m"
|
|
},
|
|
{
|
|
"label": "1. Add APP_BASE_URL to `.env.test`",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L300",
|
|
"community": 23,
|
|
"norm_label": "1. add app_base_url to `.env.test`",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_1_add_app_base_url_to_env_test"
|
|
},
|
|
{
|
|
"label": "2. Rebuild frontend container and restart",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L309",
|
|
"community": 23,
|
|
"norm_label": "2. rebuild frontend container and restart",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_2_rebuild_frontend_container_and_restart"
|
|
},
|
|
{
|
|
"label": "3. Run the seed script",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L316",
|
|
"community": 23,
|
|
"norm_label": "3. run the seed script",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_3_run_the_seed_script"
|
|
},
|
|
{
|
|
"label": "Edit scripts/seed_family.py to fill in real names/emails first, then:",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L319",
|
|
"community": 23,
|
|
"norm_label": "edit scripts/seed_family.py to fill in real names/emails first, then:",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_edit_scripts_seed_family_py_to_fill_in_r"
|
|
},
|
|
{
|
|
"label": "4. Verify login works",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L324",
|
|
"community": 23,
|
|
"norm_label": "4. verify login works",
|
|
"id": "docs_superpowers_plans_2026_05_09_mvp_login_md_4_verify_login_works"
|
|
},
|
|
{
|
|
"label": "2026-05-07-phase6-sendgrid-design.md",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": null,
|
|
"community": 22,
|
|
"norm_label": "2026-05-07-phase6-sendgrid-design.md",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md"
|
|
},
|
|
{
|
|
"label": "Phase 6 \u2014 SendGrid Email Integration Design",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L1",
|
|
"community": 22,
|
|
"norm_label": "phase 6 \u2014 sendgrid email integration design",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_phase_6_sendgrid_email_integration_desig"
|
|
},
|
|
{
|
|
"label": "Goal",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L7",
|
|
"community": 22,
|
|
"norm_label": "goal",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_goal"
|
|
},
|
|
{
|
|
"label": "Scope",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L13",
|
|
"community": 22,
|
|
"norm_label": "scope",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_scope"
|
|
},
|
|
{
|
|
"label": "Architecture",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L27",
|
|
"community": 22,
|
|
"norm_label": "architecture",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_architecture"
|
|
},
|
|
{
|
|
"label": "Components",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L35",
|
|
"community": 22,
|
|
"norm_label": "components",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_components"
|
|
},
|
|
{
|
|
"label": "`backend/app/services/email.py` (modify)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L37",
|
|
"community": 22,
|
|
"norm_label": "`backend/app/services/email.py` (modify)",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_services_email_py_modify"
|
|
},
|
|
{
|
|
"label": "`backend/app/config.py` (modify)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L67",
|
|
"community": 22,
|
|
"norm_label": "`backend/app/config.py` (modify)",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_config_py_modify"
|
|
},
|
|
{
|
|
"label": "`backend/app/services/orchestrator/steps.py` (modify)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L74",
|
|
"community": 22,
|
|
"norm_label": "`backend/app/services/orchestrator/steps.py` (modify)",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_services_orchestrator_steps_"
|
|
},
|
|
{
|
|
"label": "`backend/alembic/versions/0009_phase6_reminded_at.py` (create)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L100",
|
|
"community": 22,
|
|
"norm_label": "`backend/alembic/versions/0009_phase6_reminded_at.py` (create)",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_alembic_versions_0009_phase6_rem"
|
|
},
|
|
{
|
|
"label": "`backend/app/models/__init__.py` (modify)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L110",
|
|
"community": 22,
|
|
"norm_label": "`backend/app/models/__init__.py` (modify)",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_models_init_py_modify"
|
|
},
|
|
{
|
|
"label": "`backend/app/services/orchestrator/runner.py` (modify)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L114",
|
|
"community": 22,
|
|
"norm_label": "`backend/app/services/orchestrator/runner.py` (modify)",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_services_orchestrator_runner"
|
|
},
|
|
{
|
|
"label": "`backend/app/api/admin.py` (modify)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L122",
|
|
"community": 22,
|
|
"norm_label": "`backend/app/api/admin.py` (modify)",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_api_admin_py_modify"
|
|
},
|
|
{
|
|
"label": "`backend/app/scheduler/__main__.py` (modify)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L130",
|
|
"community": 22,
|
|
"norm_label": "`backend/app/scheduler/__main__.py` (modify)",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_scheduler_main_py_modify"
|
|
},
|
|
{
|
|
"label": "`requirements.txt` (verify / add)",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L143",
|
|
"community": 22,
|
|
"norm_label": "`requirements.txt` (verify / add)",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_requirements_txt_verify_add"
|
|
},
|
|
{
|
|
"label": "Data flow",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L149",
|
|
"community": 22,
|
|
"norm_label": "data flow",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_data_flow"
|
|
},
|
|
{
|
|
"label": "Error handling",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L162",
|
|
"community": 22,
|
|
"norm_label": "error handling",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_error_handling"
|
|
},
|
|
{
|
|
"label": "Testing",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L168",
|
|
"community": 22,
|
|
"norm_label": "testing",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_testing"
|
|
},
|
|
{
|
|
"label": "Environment variables",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L182",
|
|
"community": 22,
|
|
"norm_label": "environment variables",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_environment_variables"
|
|
},
|
|
{
|
|
"label": "Required for EMAIL_BACKEND=sendgrid",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L185",
|
|
"community": 22,
|
|
"norm_label": "required for email_backend=sendgrid",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_required_for_email_backend_sendgrid"
|
|
},
|
|
{
|
|
"label": "Files touched",
|
|
"file_type": "document",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L195",
|
|
"community": 22,
|
|
"norm_label": "files touched",
|
|
"id": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_files_touched"
|
|
},
|
|
{
|
|
"label": "requirements-dev.txt",
|
|
"file_type": "document",
|
|
"source_file": "backend/requirements-dev.txt",
|
|
"source_location": null,
|
|
"community": 8,
|
|
"norm_label": "requirements-dev.txt",
|
|
"id": "backend_requirements_dev_txt"
|
|
},
|
|
{
|
|
"label": "Dev / test-only dependencies. Production deps live in requirements.txt.",
|
|
"file_type": "document",
|
|
"source_file": "backend/requirements-dev.txt",
|
|
"source_location": "L1",
|
|
"community": 8,
|
|
"norm_label": "dev / test-only dependencies. production deps live in requirements.txt.",
|
|
"id": "backend_requirements_dev_txt_dev_test_only_dependencies_production_de"
|
|
},
|
|
{
|
|
"label": "requirements.txt",
|
|
"file_type": "document",
|
|
"source_file": "backend/requirements.txt",
|
|
"source_location": null,
|
|
"community": 8,
|
|
"norm_label": "requirements.txt",
|
|
"id": "backend_requirements_txt"
|
|
},
|
|
{
|
|
"label": "META.md",
|
|
"file_type": "document",
|
|
"source_file": "backend/tests/fixtures/lucky_ca/META.md",
|
|
"source_location": null,
|
|
"community": 43,
|
|
"norm_label": "meta.md",
|
|
"id": "backend_tests_fixtures_lucky_ca_meta_md"
|
|
},
|
|
{
|
|
"label": "Lucky California weekly-ad spike (R2-A)",
|
|
"file_type": "document",
|
|
"source_file": "backend/tests/fixtures/lucky_ca/META.md",
|
|
"source_location": "L1",
|
|
"community": 43,
|
|
"norm_label": "lucky california weekly-ad spike (r2-a)",
|
|
"id": "backend_tests_fixtures_lucky_ca_meta_md_lucky_california_weekly_ad_spike_r2_a"
|
|
},
|
|
{
|
|
"label": "Selectors used (verified against this fixture)",
|
|
"file_type": "document",
|
|
"source_file": "backend/tests/fixtures/lucky_ca/META.md",
|
|
"source_location": "L15",
|
|
"community": 43,
|
|
"norm_label": "selectors used (verified against this fixture)",
|
|
"id": "backend_tests_fixtures_lucky_ca_meta_md_selectors_used_verified_against_this_fix"
|
|
},
|
|
{
|
|
"label": "First parsed item (sample)",
|
|
"file_type": "document",
|
|
"source_file": "backend/tests/fixtures/lucky_ca/META.md",
|
|
"source_location": "L23",
|
|
"community": 43,
|
|
"norm_label": "first parsed item (sample)",
|
|
"id": "backend_tests_fixtures_lucky_ca_meta_md_first_parsed_item_sample"
|
|
},
|
|
{
|
|
"label": "Notes",
|
|
"file_type": "document",
|
|
"source_file": "backend/tests/fixtures/lucky_ca/META.md",
|
|
"source_location": "L38",
|
|
"community": 43,
|
|
"norm_label": "notes",
|
|
"id": "backend_tests_fixtures_lucky_ca_meta_md_notes"
|
|
},
|
|
{
|
|
"label": "docs-gpt5.5.md",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": null,
|
|
"community": 17,
|
|
"norm_label": "docs-gpt5.5.md",
|
|
"id": "review_docs_gpt5_5_md"
|
|
},
|
|
{
|
|
"label": "Adversarial Documentation Review",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L1",
|
|
"community": 17,
|
|
"norm_label": "adversarial documentation review",
|
|
"id": "review_docs_gpt5_5_md_adversarial_documentation_review"
|
|
},
|
|
{
|
|
"label": "Verdict",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L3",
|
|
"community": 17,
|
|
"norm_label": "verdict",
|
|
"id": "review_docs_gpt5_5_md_verdict"
|
|
},
|
|
{
|
|
"label": "Blocking Findings",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L7",
|
|
"community": 17,
|
|
"norm_label": "blocking findings",
|
|
"id": "review_docs_gpt5_5_md_blocking_findings"
|
|
},
|
|
{
|
|
"label": "1. Phase/status docs contradict current implementation state",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L9",
|
|
"community": 17,
|
|
"norm_label": "1. phase/status docs contradict current implementation state",
|
|
"id": "review_docs_gpt5_5_md_1_phase_status_docs_contradict_current_i"
|
|
},
|
|
{
|
|
"label": "2. Database schema is internally inconsistent and conflicts with current models",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L18",
|
|
"community": 17,
|
|
"norm_label": "2. database schema is internally inconsistent and conflicts with current models",
|
|
"id": "review_docs_gpt5_5_md_2_database_schema_is_internally_inconsis"
|
|
},
|
|
{
|
|
"label": "3. API endpoint definitions conflict across docs",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L27",
|
|
"community": 17,
|
|
"norm_label": "3. api endpoint definitions conflict across docs",
|
|
"id": "review_docs_gpt5_5_md_3_api_endpoint_definitions_conflict_acro"
|
|
},
|
|
{
|
|
"label": "4. Security model is missing for externally reachable workflows",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L36",
|
|
"community": 17,
|
|
"norm_label": "4. security model is missing for externally reachable workflows",
|
|
"id": "review_docs_gpt5_5_md_4_security_model_is_missing_for_external"
|
|
},
|
|
{
|
|
"label": "5. Migration strategy conflicts with runtime table creation",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L46",
|
|
"community": 17,
|
|
"norm_label": "5. migration strategy conflicts with runtime table creation",
|
|
"id": "review_docs_gpt5_5_md_5_migration_strategy_conflicts_with_runt"
|
|
},
|
|
{
|
|
"label": "6. Current code appears incompatible with documented model layout",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L55",
|
|
"community": 17,
|
|
"norm_label": "6. current code appears incompatible with documented model layout",
|
|
"id": "review_docs_gpt5_5_md_6_current_code_appears_incompatible_with"
|
|
},
|
|
{
|
|
"label": "High-Risk Gaps",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L64",
|
|
"community": 17,
|
|
"norm_label": "high-risk gaps",
|
|
"id": "review_docs_gpt5_5_md_high_risk_gaps"
|
|
},
|
|
{
|
|
"label": "7. Scraping feasibility is under-specified",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L66",
|
|
"community": 17,
|
|
"norm_label": "7. scraping feasibility is under-specified",
|
|
"id": "review_docs_gpt5_5_md_7_scraping_feasibility_is_under_specifie"
|
|
},
|
|
{
|
|
"label": "8. Meal-planning algorithm lacks deterministic requirements",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L75",
|
|
"community": 17,
|
|
"norm_label": "8. meal-planning algorithm lacks deterministic requirements",
|
|
"id": "review_docs_gpt5_5_md_8_meal_planning_algorithm_lacks_determin"
|
|
},
|
|
{
|
|
"label": "9. Shopping-list math is not implementable from current docs",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L84",
|
|
"community": 17,
|
|
"norm_label": "9. shopping-list math is not implementable from current docs",
|
|
"id": "review_docs_gpt5_5_md_9_shopping_list_math_is_not_implementabl"
|
|
},
|
|
{
|
|
"label": "10. Deployment docs promise production features that compose file does not provide",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L93",
|
|
"community": 17,
|
|
"norm_label": "10. deployment docs promise production features that compose file does not provide",
|
|
"id": "review_docs_gpt5_5_md_10_deployment_docs_promise_production_fe"
|
|
},
|
|
{
|
|
"label": "11. Environment-variable docs are inconsistent and include unsafe examples",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L102",
|
|
"community": 17,
|
|
"norm_label": "11. environment-variable docs are inconsistent and include unsafe examples",
|
|
"id": "review_docs_gpt5_5_md_11_environment_variable_docs_are_inconsi"
|
|
},
|
|
{
|
|
"label": "Medium-Risk Issues",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L111",
|
|
"community": 17,
|
|
"norm_label": "medium-risk issues",
|
|
"id": "review_docs_gpt5_5_md_medium_risk_issues"
|
|
},
|
|
{
|
|
"label": "12. Documentation contains stale and misspelled file paths",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L113",
|
|
"community": 17,
|
|
"norm_label": "12. documentation contains stale and misspelled file paths",
|
|
"id": "review_docs_gpt5_5_md_12_documentation_contains_stale_and_miss"
|
|
},
|
|
{
|
|
"label": "13. Tech-stack docs are already version stale",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L117",
|
|
"community": 17,
|
|
"norm_label": "13. tech-stack docs are already version stale",
|
|
"id": "review_docs_gpt5_5_md_13_tech_stack_docs_are_already_version_s"
|
|
},
|
|
{
|
|
"label": "14. Operational docs assume endpoints that are not proven to exist",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L121",
|
|
"community": 17,
|
|
"norm_label": "14. operational docs assume endpoints that are not proven to exist",
|
|
"id": "review_docs_gpt5_5_md_14_operational_docs_assume_endpoints_tha"
|
|
},
|
|
{
|
|
"label": "15. Data retention lacks implementation mechanics",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L125",
|
|
"community": 17,
|
|
"norm_label": "15. data retention lacks implementation mechanics",
|
|
"id": "review_docs_gpt5_5_md_15_data_retention_lacks_implementation_m"
|
|
},
|
|
{
|
|
"label": "16. Accessibility is barely addressed despite family-facing UI",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L129",
|
|
"community": 17,
|
|
"norm_label": "16. accessibility is barely addressed despite family-facing ui",
|
|
"id": "review_docs_gpt5_5_md_16_accessibility_is_barely_addressed_des"
|
|
},
|
|
{
|
|
"label": "17. Observability requirements are aspirational",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L133",
|
|
"community": 17,
|
|
"norm_label": "17. observability requirements are aspirational",
|
|
"id": "review_docs_gpt5_5_md_17_observability_requirements_are_aspira"
|
|
},
|
|
{
|
|
"label": "Suggested Gate Before Implementation",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L137",
|
|
"community": 17,
|
|
"norm_label": "suggested gate before implementation",
|
|
"id": "review_docs_gpt5_5_md_suggested_gate_before_implementation"
|
|
},
|
|
{
|
|
"label": "Implementation Readiness Rating",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L149",
|
|
"community": 17,
|
|
"norm_label": "implementation readiness rating",
|
|
"id": "review_docs_gpt5_5_md_implementation_readiness_rating"
|
|
},
|
|
{
|
|
"label": "repo-gpt5.5.md",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": null,
|
|
"community": 14,
|
|
"norm_label": "repo-gpt5.5.md",
|
|
"id": "review_repo_gpt5_5_md"
|
|
},
|
|
{
|
|
"label": "Repository Analysis",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L1",
|
|
"community": 14,
|
|
"norm_label": "repository analysis",
|
|
"id": "review_repo_gpt5_5_md_repository_analysis"
|
|
},
|
|
{
|
|
"label": "Executive Summary",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L3",
|
|
"community": 14,
|
|
"norm_label": "executive summary",
|
|
"id": "review_repo_gpt5_5_md_executive_summary"
|
|
},
|
|
{
|
|
"label": "Current Repo Shape",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L11",
|
|
"community": 14,
|
|
"norm_label": "current repo shape",
|
|
"id": "review_repo_gpt5_5_md_current_repo_shape"
|
|
},
|
|
{
|
|
"label": "Blocking Findings",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L32",
|
|
"community": 14,
|
|
"norm_label": "blocking findings",
|
|
"id": "review_repo_gpt5_5_md_blocking_findings"
|
|
},
|
|
{
|
|
"label": "1. Backend likely fails during import because model module layout is inconsistent",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L34",
|
|
"community": 14,
|
|
"norm_label": "1. backend likely fails during import because model module layout is inconsistent",
|
|
"id": "review_repo_gpt5_5_md_1_backend_likely_fails_during_import_bec"
|
|
},
|
|
{
|
|
"label": "2. SQLAlchemy relationships contain at least one broken back-populates reference",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L44",
|
|
"community": 14,
|
|
"norm_label": "2. sqlalchemy relationships contain at least one broken back-populates reference",
|
|
"id": "review_repo_gpt5_5_md_2_sqlalchemy_relationships_contain_at_le"
|
|
},
|
|
{
|
|
"label": "3. Frontend build is blocked by a missing imported page",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L54",
|
|
"community": 14,
|
|
"norm_label": "3. frontend build is blocked by a missing imported page",
|
|
"id": "review_repo_gpt5_5_md_3_frontend_build_is_blocked_by_a_missing"
|
|
},
|
|
{
|
|
"label": "4. Frontend Docker build is blocked by missing npm lockfile",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L63",
|
|
"community": 14,
|
|
"norm_label": "4. frontend docker build is blocked by missing npm lockfile",
|
|
"id": "review_repo_gpt5_5_md_4_frontend_docker_build_is_blocked_by_mi"
|
|
},
|
|
{
|
|
"label": "5. Vite app is missing required HTML entrypoint",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L72",
|
|
"community": 14,
|
|
"norm_label": "5. vite app is missing required html entrypoint",
|
|
"id": "review_repo_gpt5_5_md_5_vite_app_is_missing_required_html_entr"
|
|
},
|
|
{
|
|
"label": "6. Alembic is documented and installed but not configured",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L81",
|
|
"community": 14,
|
|
"norm_label": "6. alembic is documented and installed but not configured",
|
|
"id": "review_repo_gpt5_5_md_6_alembic_is_documented_and_installed_bu"
|
|
},
|
|
{
|
|
"label": "Important Findings",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L92",
|
|
"community": 14,
|
|
"norm_label": "important findings",
|
|
"id": "review_repo_gpt5_5_md_important_findings"
|
|
},
|
|
{
|
|
"label": "7. API routes are placeholders with no schemas or persistence",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L94",
|
|
"community": 14,
|
|
"norm_label": "7. api routes are placeholders with no schemas or persistence",
|
|
"id": "review_repo_gpt5_5_md_7_api_routes_are_placeholders_with_no_sc"
|
|
},
|
|
{
|
|
"label": "8. Admin endpoints are unauthenticated",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L104",
|
|
"community": 14,
|
|
"norm_label": "8. admin endpoints are unauthenticated",
|
|
"id": "review_repo_gpt5_5_md_8_admin_endpoints_are_unauthenticated"
|
|
},
|
|
{
|
|
"label": "9. Email approval security is not implemented and not modeled yet",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L114",
|
|
"community": 14,
|
|
"norm_label": "9. email approval security is not implemented and not modeled yet",
|
|
"id": "review_repo_gpt5_5_md_9_email_approval_security_is_not_impleme"
|
|
},
|
|
{
|
|
"label": "10. `SECRET_KEY` has an unsafe default",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L125",
|
|
"community": 14,
|
|
"norm_label": "10. `secret_key` has an unsafe default",
|
|
"id": "review_repo_gpt5_5_md_10_secret_key_has_an_unsafe_default"
|
|
},
|
|
{
|
|
"label": "11. SQLAlchemy 2 health query may fail",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L135",
|
|
"community": 14,
|
|
"norm_label": "11. sqlalchemy 2 health query may fail",
|
|
"id": "review_repo_gpt5_5_md_11_sqlalchemy_2_health_query_may_fail"
|
|
},
|
|
{
|
|
"label": "12. Docker Compose exposes backend and frontend directly plus nginx",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L144",
|
|
"community": 14,
|
|
"norm_label": "12. docker compose exposes backend and frontend directly plus nginx",
|
|
"id": "review_repo_gpt5_5_md_12_docker_compose_exposes_backend_and_fr"
|
|
},
|
|
{
|
|
"label": "13. Nginx SSL and rate limiting are not implemented",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L154",
|
|
"community": 14,
|
|
"norm_label": "13. nginx ssl and rate limiting are not implemented",
|
|
"id": "review_repo_gpt5_5_md_13_nginx_ssl_and_rate_limiting_are_not_i"
|
|
},
|
|
{
|
|
"label": "Maintainability Findings",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L164",
|
|
"community": 14,
|
|
"norm_label": "maintainability findings",
|
|
"id": "review_repo_gpt5_5_md_maintainability_findings"
|
|
},
|
|
{
|
|
"label": "14. Model file is too large for early iteration and hides domain decisions",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L166",
|
|
"community": 14,
|
|
"norm_label": "14. model file is too large for early iteration and hides domain decisions",
|
|
"id": "review_repo_gpt5_5_md_14_model_file_is_too_large_for_early_ite"
|
|
},
|
|
{
|
|
"label": "15. Schema constraints are only partially represented",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L174",
|
|
"community": 14,
|
|
"norm_label": "15. schema constraints are only partially represented",
|
|
"id": "review_repo_gpt5_5_md_15_schema_constraints_are_only_partially"
|
|
},
|
|
{
|
|
"label": "16. API prefix behavior may produce trailing-slash-only endpoints",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L182",
|
|
"community": 14,
|
|
"norm_label": "16. api prefix behavior may produce trailing-slash-only endpoints",
|
|
"id": "review_repo_gpt5_5_md_16_api_prefix_behavior_may_produce_trail"
|
|
},
|
|
{
|
|
"label": "17. No repository-level quality gates exist",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L189",
|
|
"community": 14,
|
|
"norm_label": "17. no repository-level quality gates exist",
|
|
"id": "review_repo_gpt5_5_md_17_no_repository_level_quality_gates_exi"
|
|
},
|
|
{
|
|
"label": "Documentation Alignment",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L197",
|
|
"community": 14,
|
|
"norm_label": "documentation alignment",
|
|
"id": "review_repo_gpt5_5_md_documentation_alignment"
|
|
},
|
|
{
|
|
"label": "Recommended Remediation Order",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L207",
|
|
"community": 14,
|
|
"norm_label": "recommended remediation order",
|
|
"id": "review_repo_gpt5_5_md_recommended_remediation_order"
|
|
},
|
|
{
|
|
"label": "Phase 0: Make skeleton start and build",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L209",
|
|
"community": 14,
|
|
"norm_label": "phase 0: make skeleton start and build",
|
|
"id": "review_repo_gpt5_5_md_phase_0_make_skeleton_start_and_build"
|
|
},
|
|
{
|
|
"label": "Phase 1: Establish schema/migration baseline",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L219",
|
|
"community": 14,
|
|
"norm_label": "phase 1: establish schema/migration baseline",
|
|
"id": "review_repo_gpt5_5_md_phase_1_establish_schema_migration_basel"
|
|
},
|
|
{
|
|
"label": "Phase 2: Establish API and security baseline",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L227",
|
|
"community": 14,
|
|
"norm_label": "phase 2: establish api and security baseline",
|
|
"id": "review_repo_gpt5_5_md_phase_2_establish_api_and_security_basel"
|
|
},
|
|
{
|
|
"label": "Phase 3: Implement first vertical slice",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L235",
|
|
"community": 14,
|
|
"norm_label": "phase 3: implement first vertical slice",
|
|
"id": "review_repo_gpt5_5_md_phase_3_implement_first_vertical_slice"
|
|
},
|
|
{
|
|
"label": "Verification Matrix To Add",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L242",
|
|
"community": 14,
|
|
"norm_label": "verification matrix to add",
|
|
"id": "review_repo_gpt5_5_md_verification_matrix_to_add"
|
|
},
|
|
{
|
|
"label": "Final Assessment",
|
|
"file_type": "document",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L259",
|
|
"community": 14,
|
|
"norm_label": "final assessment",
|
|
"id": "review_repo_gpt5_5_md_final_assessment"
|
|
},
|
|
{
|
|
"label": "docs-claude.md",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": null,
|
|
"community": 16,
|
|
"norm_label": "docs-claude.md",
|
|
"id": "review_docs_claude_md"
|
|
},
|
|
{
|
|
"label": "Adversarial Documentation Review \u2014 Claude",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L1",
|
|
"community": 16,
|
|
"norm_label": "adversarial documentation review \u2014 claude",
|
|
"id": "review_docs_claude_md_adversarial_documentation_review_claude"
|
|
},
|
|
{
|
|
"label": "Verdict",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L9",
|
|
"community": 16,
|
|
"norm_label": "verdict",
|
|
"id": "review_docs_claude_md_verdict"
|
|
},
|
|
{
|
|
"label": "Blocking",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L17",
|
|
"community": 16,
|
|
"norm_label": "blocking",
|
|
"id": "review_docs_claude_md_blocking"
|
|
},
|
|
{
|
|
"label": "B1. Family profile is internally inconsistent \u2014 the math doesn't close",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L19",
|
|
"community": 16,
|
|
"norm_label": "b1. family profile is internally inconsistent \u2014 the math doesn't close",
|
|
"id": "review_docs_claude_md_b1_family_profile_is_internally_inconsis"
|
|
},
|
|
{
|
|
"label": "B2. There is no `family_member` (or `user`) table \u2014 but the spec is per-person",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L30",
|
|
"community": 16,
|
|
"norm_label": "b2. there is no `family_member` (or `user`) table \u2014 but the spec is per-person",
|
|
"id": "review_docs_claude_md_b2_there_is_no_family_member_or_user_tab"
|
|
},
|
|
{
|
|
"label": "B3. Recipe\u2194ingredient relationship is documented two contradictory ways",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L42",
|
|
"community": 16,
|
|
"norm_label": "b3. recipe\u2194ingredient relationship is documented two contradictory ways",
|
|
"id": "review_docs_claude_md_b3_recipe_ingredient_relationship_is_doc"
|
|
},
|
|
{
|
|
"label": "B4. There is no authentication anywhere in the system",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L51",
|
|
"community": 16,
|
|
"norm_label": "b4. there is no authentication anywhere in the system",
|
|
"id": "review_docs_claude_md_b4_there_is_no_authentication_anywhere_i"
|
|
},
|
|
{
|
|
"label": "B5. Approval-by-email is fragile and probably exploitable",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L63",
|
|
"community": 16,
|
|
"norm_label": "b5. approval-by-email is fragile and probably exploitable",
|
|
"id": "review_docs_claude_md_b5_approval_by_email_is_fragile_and_prob"
|
|
},
|
|
{
|
|
"label": "B6. \"Self-hosted, no external cloud services *except SendGrid*\" is undermined",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L77",
|
|
"community": 16,
|
|
"norm_label": "b6. \"self-hosted, no external cloud services *except sendgrid*\" is undermined",
|
|
"id": "review_docs_claude_md_b6_self_hosted_no_external_cloud_service"
|
|
},
|
|
{
|
|
"label": "Major",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L90",
|
|
"community": 16,
|
|
"norm_label": "major",
|
|
"id": "review_docs_claude_md_major"
|
|
},
|
|
{
|
|
"label": "M1. Scraping legality / ToS unaddressed",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L92",
|
|
"community": 16,
|
|
"norm_label": "m1. scraping legality / tos unaddressed",
|
|
"id": "review_docs_claude_md_m1_scraping_legality_tos_unaddressed"
|
|
},
|
|
{
|
|
"label": "M2. Phase ordering buries the hard problems behind weeks of plumbing",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L103",
|
|
"community": 16,
|
|
"norm_label": "m2. phase ordering buries the hard problems behind weeks of plumbing",
|
|
"id": "review_docs_claude_md_m2_phase_ordering_buries_the_hard_proble"
|
|
},
|
|
{
|
|
"label": "M3. APScheduler + multiple workers will misfire",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L109",
|
|
"community": 16,
|
|
"norm_label": "m3. apscheduler + multiple workers will misfire",
|
|
"id": "review_docs_claude_md_m3_apscheduler_multiple_workers_will_mis"
|
|
},
|
|
{
|
|
"label": "M4. Schema has avoidable defects",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L115",
|
|
"community": 16,
|
|
"norm_label": "m4. schema has avoidable defects",
|
|
"id": "review_docs_claude_md_m4_schema_has_avoidable_defects"
|
|
},
|
|
{
|
|
"label": "M5. Migration story is muddled",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L126",
|
|
"community": 16,
|
|
"norm_label": "m5. migration story is muddled",
|
|
"id": "review_docs_claude_md_m5_migration_story_is_muddled"
|
|
},
|
|
{
|
|
"label": "M6. \"If both approve OR no response \u2192 meal confirmed\" is silence-as-consent",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L132",
|
|
"community": 16,
|
|
"norm_label": "m6. \"if both approve or no response \u2192 meal confirmed\" is silence-as-consent",
|
|
"id": "review_docs_claude_md_m6_if_both_approve_or_no_response_meal_c"
|
|
},
|
|
{
|
|
"label": "M7. \"Calorie target\" appears in the schema but is a non-goal",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L136",
|
|
"community": 16,
|
|
"norm_label": "m7. \"calorie target\" appears in the schema but is a non-goal",
|
|
"id": "review_docs_claude_md_m7_calorie_target_appears_in_the_schema_"
|
|
},
|
|
{
|
|
"label": "M8. Image strategy contradicts itself",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L140",
|
|
"community": 16,
|
|
"norm_label": "m8. image strategy contradicts itself",
|
|
"id": "review_docs_claude_md_m8_image_strategy_contradicts_itself"
|
|
},
|
|
{
|
|
"label": "Minor",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L148",
|
|
"community": 16,
|
|
"norm_label": "minor",
|
|
"id": "review_docs_claude_md_minor"
|
|
},
|
|
{
|
|
"label": "m1. Doc hygiene",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L150",
|
|
"community": 16,
|
|
"norm_label": "m1. doc hygiene",
|
|
"id": "review_docs_claude_md_m1_doc_hygiene"
|
|
},
|
|
{
|
|
"label": "m2. Operational gaps not in any doc",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L157",
|
|
"community": 16,
|
|
"norm_label": "m2. operational gaps not in any doc",
|
|
"id": "review_docs_claude_md_m2_operational_gaps_not_in_any_doc"
|
|
},
|
|
{
|
|
"label": "m3. Docker-compose exposure",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L165",
|
|
"community": 16,
|
|
"norm_label": "m3. docker-compose exposure",
|
|
"id": "review_docs_claude_md_m3_docker_compose_exposure"
|
|
},
|
|
{
|
|
"label": "m4. Success metrics aren't measurable",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L169",
|
|
"community": 16,
|
|
"norm_label": "m4. success metrics aren't measurable",
|
|
"id": "review_docs_claude_md_m4_success_metrics_aren_t_measurable"
|
|
},
|
|
{
|
|
"label": "m5. Future features are mixed into the implementation plan",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L179",
|
|
"community": 16,
|
|
"norm_label": "m5. future features are mixed into the implementation plan",
|
|
"id": "review_docs_claude_md_m5_future_features_are_mixed_into_the_im"
|
|
},
|
|
{
|
|
"label": "m6. `SECRET_KEY` ghost variable",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L183",
|
|
"community": 16,
|
|
"norm_label": "m6. `secret_key` ghost variable",
|
|
"id": "review_docs_claude_md_m6_secret_key_ghost_variable"
|
|
},
|
|
{
|
|
"label": "Cross-doc contradictions, summarized",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L189",
|
|
"community": 16,
|
|
"norm_label": "cross-doc contradictions, summarized",
|
|
"id": "review_docs_claude_md_cross_doc_contradictions_summarized"
|
|
},
|
|
{
|
|
"label": "Suggested order of operations before any more code",
|
|
"file_type": "document",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L205",
|
|
"community": 16,
|
|
"norm_label": "suggested order of operations before any more code",
|
|
"id": "review_docs_claude_md_suggested_order_of_operations_before_any"
|
|
},
|
|
{
|
|
"label": "synthesis.md",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": null,
|
|
"community": 33,
|
|
"norm_label": "synthesis.md",
|
|
"id": "review_synthesis_md"
|
|
},
|
|
{
|
|
"label": "Review Synthesis \u2014 Three Reviewers Compared",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L1",
|
|
"community": 33,
|
|
"norm_label": "review synthesis \u2014 three reviewers compared",
|
|
"id": "review_synthesis_md_review_synthesis_three_reviewers_compare"
|
|
},
|
|
{
|
|
"label": "1. Strong Consensus (all reviewers, blocking)",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L7",
|
|
"community": 33,
|
|
"norm_label": "1. strong consensus (all reviewers, blocking)",
|
|
"id": "review_synthesis_md_1_strong_consensus_all_reviewers_blockin"
|
|
},
|
|
{
|
|
"label": "2. Partial Agreement (2 of 3)",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L24",
|
|
"community": 33,
|
|
"norm_label": "2. partial agreement (2 of 3)",
|
|
"id": "review_synthesis_md_2_partial_agreement_2_of_3"
|
|
},
|
|
{
|
|
"label": "3. Unique Findings (only one reviewer)",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L40",
|
|
"community": 33,
|
|
"norm_label": "3. unique findings (only one reviewer)",
|
|
"id": "review_synthesis_md_3_unique_findings_only_one_reviewer"
|
|
},
|
|
{
|
|
"label": "Claude only",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L42",
|
|
"community": 33,
|
|
"norm_label": "claude only",
|
|
"id": "review_synthesis_md_claude_only"
|
|
},
|
|
{
|
|
"label": "GPT-5.5 docs only",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L56",
|
|
"community": 33,
|
|
"norm_label": "gpt-5.5 docs only",
|
|
"id": "review_synthesis_md_gpt_5_5_docs_only"
|
|
},
|
|
{
|
|
"label": "GPT-5.5 repo only (Claude could not have caught these \u2014 doc-only review)",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L61",
|
|
"community": 33,
|
|
"norm_label": "gpt-5.5 repo only (claude could not have caught these \u2014 doc-only review)",
|
|
"id": "review_synthesis_md_gpt_5_5_repo_only_claude_could_not_have_"
|
|
},
|
|
{
|
|
"label": "4. Where Reviewers Conflict",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L73",
|
|
"community": 33,
|
|
"norm_label": "4. where reviewers conflict",
|
|
"id": "review_synthesis_md_4_where_reviewers_conflict"
|
|
},
|
|
{
|
|
"label": "5. Combined Blocker List (deduplicated, ranked)",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L82",
|
|
"community": 33,
|
|
"norm_label": "5. combined blocker list (deduplicated, ranked)",
|
|
"id": "review_synthesis_md_5_combined_blocker_list_deduplicated_ran"
|
|
},
|
|
{
|
|
"label": "6. Additional Investigation Needed",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L98",
|
|
"community": 33,
|
|
"norm_label": "6. additional investigation needed",
|
|
"id": "review_synthesis_md_6_additional_investigation_needed"
|
|
},
|
|
{
|
|
"label": "7. Net Assessment",
|
|
"file_type": "document",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L114",
|
|
"community": 33,
|
|
"norm_label": "7. net assessment",
|
|
"id": "review_synthesis_md_7_net_assessment"
|
|
},
|
|
{
|
|
"label": "reviewconcensus.md",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": null,
|
|
"community": 15,
|
|
"norm_label": "reviewconcensus.md",
|
|
"id": "review_reviewconcensus_md"
|
|
},
|
|
{
|
|
"label": "Review Consensus \u2014 Feedback for Originating Agent",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L1",
|
|
"community": 15,
|
|
"norm_label": "review consensus \u2014 feedback for originating agent",
|
|
"id": "review_reviewconcensus_md_review_consensus_feedback_for_originatin"
|
|
},
|
|
{
|
|
"label": "Headline",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L12",
|
|
"community": 15,
|
|
"norm_label": "headline",
|
|
"id": "review_reviewconcensus_md_headline"
|
|
},
|
|
{
|
|
"label": "1. Consensus Blockers \u2014 must resolve before any further code",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L20",
|
|
"community": 15,
|
|
"norm_label": "1. consensus blockers \u2014 must resolve before any further code",
|
|
"id": "review_reviewconcensus_md_1_consensus_blockers_must_resolve_before"
|
|
},
|
|
{
|
|
"label": "1.1 Recipe \u2194 Ingredient relationship is modeled two contradictory ways",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L24",
|
|
"community": 15,
|
|
"norm_label": "1.1 recipe \u2194 ingredient relationship is modeled two contradictory ways",
|
|
"id": "review_reviewconcensus_md_1_1_recipe_ingredient_relationship_is_mo"
|
|
},
|
|
{
|
|
"label": "1.2 No authentication exists anywhere in the system",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L30",
|
|
"community": 15,
|
|
"norm_label": "1.2 no authentication exists anywhere in the system",
|
|
"id": "review_reviewconcensus_md_1_2_no_authentication_exists_anywhere_in"
|
|
},
|
|
{
|
|
"label": "1.3 Email approval flow is unsafe and probably exploitable",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L36",
|
|
"community": 15,
|
|
"norm_label": "1.3 email approval flow is unsafe and probably exploitable",
|
|
"id": "review_reviewconcensus_md_1_3_email_approval_flow_is_unsafe_and_pr"
|
|
},
|
|
{
|
|
"label": "1.4 No `family_member` table despite per-person spec",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L42",
|
|
"community": 15,
|
|
"norm_label": "1.4 no `family_member` table despite per-person spec",
|
|
"id": "review_reviewconcensus_md_1_4_no_family_member_table_despite_per_p"
|
|
},
|
|
{
|
|
"label": "1.5 Phase status is contradictory and the skeleton does not work",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L48",
|
|
"community": 15,
|
|
"norm_label": "1.5 phase status is contradictory and the skeleton does not work",
|
|
"id": "review_reviewconcensus_md_1_5_phase_status_is_contradictory_and_th"
|
|
},
|
|
{
|
|
"label": "1.6 Schema has avoidable correctness defects",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L59",
|
|
"community": 15,
|
|
"norm_label": "1.6 schema has avoidable correctness defects",
|
|
"id": "review_reviewconcensus_md_1_6_schema_has_avoidable_correctness_def"
|
|
},
|
|
{
|
|
"label": "1.7 Docker compose exposes backend (8000) and frontend (3000) directly",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L69",
|
|
"community": 15,
|
|
"norm_label": "1.7 docker compose exposes backend (8000) and frontend (3000) directly",
|
|
"id": "review_reviewconcensus_md_1_7_docker_compose_exposes_backend_8000_"
|
|
},
|
|
{
|
|
"label": "1.8 Production deployment claims exceed implementation",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L73",
|
|
"community": 15,
|
|
"norm_label": "1.8 production deployment claims exceed implementation",
|
|
"id": "review_reviewconcensus_md_1_8_production_deployment_claims_exceed_"
|
|
},
|
|
{
|
|
"label": "2. High-Risk Gaps \u2014 agreed by 2 of 3 reviewers",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L80",
|
|
"community": 15,
|
|
"norm_label": "2. high-risk gaps \u2014 agreed by 2 of 3 reviewers",
|
|
"id": "review_reviewconcensus_md_2_high_risk_gaps_agreed_by_2_of_3_review"
|
|
},
|
|
{
|
|
"label": "2.1 Migration tooling is muddled",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L82",
|
|
"community": 15,
|
|
"norm_label": "2.1 migration tooling is muddled",
|
|
"id": "review_reviewconcensus_md_2_1_migration_tooling_is_muddled"
|
|
},
|
|
{
|
|
"label": "2.2 API endpoint contract conflicts across docs",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L85",
|
|
"community": 15,
|
|
"norm_label": "2.2 api endpoint contract conflicts across docs",
|
|
"id": "review_reviewconcensus_md_2_2_api_endpoint_contract_conflicts_acro"
|
|
},
|
|
{
|
|
"label": "2.3 Scraping is under-specified and risky",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L88",
|
|
"community": 15,
|
|
"norm_label": "2.3 scraping is under-specified and risky",
|
|
"id": "review_reviewconcensus_md_2_3_scraping_is_under_specified_and_risk"
|
|
},
|
|
{
|
|
"label": "2.4 Phase ordering hides risk behind plumbing",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L94",
|
|
"community": 15,
|
|
"norm_label": "2.4 phase ordering hides risk behind plumbing",
|
|
"id": "review_reviewconcensus_md_2_4_phase_ordering_hides_risk_behind_plu"
|
|
},
|
|
{
|
|
"label": "2.5 Shopping-list math is not implementable from current docs",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L97",
|
|
"community": 15,
|
|
"norm_label": "2.5 shopping-list math is not implementable from current docs",
|
|
"id": "review_reviewconcensus_md_2_5_shopping_list_math_is_not_implementa"
|
|
},
|
|
{
|
|
"label": "2.6 Environment variables inconsistent across `.env.example`, ORIENTATION, RUNNING, plan",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L100",
|
|
"community": 15,
|
|
"norm_label": "2.6 environment variables inconsistent across `.env.example`, orientation, running, plan",
|
|
"id": "review_reviewconcensus_md_2_6_environment_variables_inconsistent_a"
|
|
},
|
|
{
|
|
"label": "2.7 Accessibility absent despite family-facing UI + email",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L103",
|
|
"community": 15,
|
|
"norm_label": "2.7 accessibility absent despite family-facing ui + email",
|
|
"id": "review_reviewconcensus_md_2_7_accessibility_absent_despite_family_"
|
|
},
|
|
{
|
|
"label": "2.8 Health check will fail under SQLAlchemy 2",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L106",
|
|
"community": 15,
|
|
"norm_label": "2.8 health check will fail under sqlalchemy 2",
|
|
"id": "review_reviewconcensus_md_2_8_health_check_will_fail_under_sqlalch"
|
|
},
|
|
{
|
|
"label": "3. Single-Reviewer Findings worth keeping",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L111",
|
|
"community": 15,
|
|
"norm_label": "3. single-reviewer findings worth keeping",
|
|
"id": "review_reviewconcensus_md_3_single_reviewer_findings_worth_keeping"
|
|
},
|
|
{
|
|
"label": "From Claude",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L113",
|
|
"community": 15,
|
|
"norm_label": "from claude",
|
|
"id": "review_reviewconcensus_md_from_claude"
|
|
},
|
|
{
|
|
"label": "From GPT-5.5 (docs)",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L123",
|
|
"community": 15,
|
|
"norm_label": "from gpt-5.5 (docs)",
|
|
"id": "review_reviewconcensus_md_from_gpt_5_5_docs"
|
|
},
|
|
{
|
|
"label": "From GPT-5.5 (repo)",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L128",
|
|
"community": 15,
|
|
"norm_label": "from gpt-5.5 (repo)",
|
|
"id": "review_reviewconcensus_md_from_gpt_5_5_repo"
|
|
},
|
|
{
|
|
"label": "4. Where Reviewers Disagreed",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L135",
|
|
"community": 15,
|
|
"norm_label": "4. where reviewers disagreed",
|
|
"id": "review_reviewconcensus_md_4_where_reviewers_disagreed"
|
|
},
|
|
{
|
|
"label": "5. Combined Remediation Order",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L144",
|
|
"community": 15,
|
|
"norm_label": "5. combined remediation order",
|
|
"id": "review_reviewconcensus_md_5_combined_remediation_order"
|
|
},
|
|
{
|
|
"label": "6. Verification Matrix (currently failing \u2014 make this pass to claim Phase 1 complete)",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L160",
|
|
"community": 15,
|
|
"norm_label": "6. verification matrix (currently failing \u2014 make this pass to claim phase 1 complete)",
|
|
"id": "review_reviewconcensus_md_6_verification_matrix_currently_failing_"
|
|
},
|
|
{
|
|
"label": "7. Additional Investigation Still Needed",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L177",
|
|
"community": 15,
|
|
"norm_label": "7. additional investigation still needed",
|
|
"id": "review_reviewconcensus_md_7_additional_investigation_still_needed"
|
|
},
|
|
{
|
|
"label": "8. Suggested Response Format from Originating Agent",
|
|
"file_type": "document",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L195",
|
|
"community": 15,
|
|
"norm_label": "8. suggested response format from originating agent",
|
|
"id": "review_reviewconcensus_md_8_suggested_response_format_from_origina"
|
|
},
|
|
{
|
|
"label": "weekly_ad.png",
|
|
"file_type": "image",
|
|
"source_file": "backend/tests/fixtures/lucky_ca/weekly_ad.png",
|
|
"source_location": null,
|
|
"community": 8,
|
|
"norm_label": "weekly_ad.png",
|
|
"id": "backend_tests_fixtures_lucky_ca_weekly_ad_png"
|
|
}
|
|
],
|
|
"links": [
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/database.py",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_database_py",
|
|
"_tgt": "database_get_db",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_database_py",
|
|
"target": "database_get_db"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L72",
|
|
"weight": 1.0,
|
|
"_src": "security_require_session",
|
|
"_tgt": "database_get_db",
|
|
"source": "database_get_db",
|
|
"target": "security_require_session"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_security_py",
|
|
"_tgt": "security_require_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_security_py",
|
|
"target": "security_require_admin"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_security_py",
|
|
"_tgt": "security_signer",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_security_py",
|
|
"target": "security_signer"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L49",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_security_py",
|
|
"_tgt": "security_issue_session",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_security_py",
|
|
"target": "security_issue_session"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_security_py",
|
|
"_tgt": "security_require_session",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_security_py",
|
|
"target": "security_require_session"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "security_rationale_1",
|
|
"_tgt": "backend_app_security_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_security_py",
|
|
"target": "security_rationale_1"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "security_rationale_30",
|
|
"_tgt": "security_require_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "security_require_admin",
|
|
"target": "security_rationale_30"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L51",
|
|
"weight": 1.0,
|
|
"_src": "security_issue_session",
|
|
"_tgt": "security_signer",
|
|
"confidence_score": 1.0,
|
|
"source": "security_signer",
|
|
"target": "security_issue_session"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L66",
|
|
"weight": 1.0,
|
|
"_src": "security_require_session",
|
|
"_tgt": "security_signer",
|
|
"confidence_score": 1.0,
|
|
"source": "security_signer",
|
|
"target": "security_require_session"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "security_rationale_50",
|
|
"_tgt": "security_issue_session",
|
|
"confidence_score": 1.0,
|
|
"source": "security_issue_session",
|
|
"target": "security_rationale_50"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "auth_login",
|
|
"_tgt": "security_issue_session",
|
|
"source": "security_issue_session",
|
|
"target": "auth_login"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L55",
|
|
"weight": 1.0,
|
|
"_src": "security_rationale_55",
|
|
"_tgt": "security_require_session",
|
|
"confidence_score": 1.0,
|
|
"source": "security_require_session",
|
|
"target": "security_rationale_55"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/security.py",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "security_require_session",
|
|
"_tgt": "str",
|
|
"source": "security_require_session",
|
|
"target": "str"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/main.py",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_main_py",
|
|
"_tgt": "main_health_check",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_main_py",
|
|
"target": "main_health_check"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/main.py",
|
|
"source_location": "L24",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_main_py",
|
|
"_tgt": "main_health_check_db",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_main_py",
|
|
"target": "main_health_check_db"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/main.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "main_health_check_db",
|
|
"_tgt": "str",
|
|
"source": "main_health_check_db",
|
|
"target": "str"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/config.py",
|
|
"source_location": "L6",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_config_py",
|
|
"_tgt": "config_settings",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_config_py",
|
|
"target": "config_settings"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/config.py",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_config_py",
|
|
"_tgt": "config_config",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_config_py",
|
|
"target": "config_config"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/config.py",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_config_py",
|
|
"_tgt": "config_require_database_url",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_config_py",
|
|
"target": "config_require_database_url"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/config.py",
|
|
"source_location": "L6",
|
|
"weight": 1.0,
|
|
"_src": "config_settings",
|
|
"_tgt": "basesettings",
|
|
"confidence_score": 1.0,
|
|
"source": "config_settings",
|
|
"target": "basesettings"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "test_auth_reload_settings",
|
|
"_tgt": "config_settings",
|
|
"source": "config_settings",
|
|
"target": "test_auth_reload_settings"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_config.py",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "test_config_test_database_url_required",
|
|
"_tgt": "config_settings",
|
|
"source": "config_settings",
|
|
"target": "test_config_test_database_url_required"
|
|
},
|
|
{
|
|
"relation": "imports",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "enum",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "enum"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_dayofweek",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_dayofweek"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_mealtype",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_mealtype"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_mealplanstatus",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_mealplanstatus"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L36",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_mealplanitemstatus",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_mealplanitemstatus"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L43",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_approvaltokenstatus",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_approvaltokenstatus"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L49",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_familymemberrole",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_familymemberrole"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_denialreason",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_denialreason"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L62",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_neversuggestreason",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_neversuggestreason"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L69",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_scrapestatus",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_scrapestatus"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_emailstatus",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_emailstatus"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L82",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_ingredientmatchsource",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_ingredientmatchsource"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L88",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_familyprofile",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_familyprofile"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L120",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_familymember",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_familymember"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L141",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L161",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_recipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L191",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_total_time_minutes",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_total_time_minutes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L195",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_mealplan",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_mealplan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L216",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_mealplanitem",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_mealplanitem"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L243",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_mealplanvote",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_mealplanvote"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L260",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_approvaltoken",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_approvaltoken"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L280",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_homepantry",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_homepantry"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L300",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_feedback",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_feedback"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L322",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_neversuggest",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_neversuggest"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L337",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_groceryitem",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_groceryitem"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L364",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_scrapelog",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_scrapelog"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L378",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_emaillog",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_emaillog"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L397",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_ingredientgrocerymatch",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_ingredientgrocerymatch"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L415",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_models_init_py",
|
|
"_tgt": "init_weeklyrun",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_models_init_py",
|
|
"target": "init_weeklyrun"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_mealtype",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealtype",
|
|
"target": "backend_app_schemas_init_py"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "init_mealtype",
|
|
"_tgt": "str",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealtype",
|
|
"target": "str"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "init_mealtype",
|
|
"_tgt": "enum",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealtype",
|
|
"target": "enum"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_mealplanstatus",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealplanstatus",
|
|
"target": "backend_app_schemas_init_py"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanstatus",
|
|
"_tgt": "str",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealplanstatus",
|
|
"target": "str"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanstatus",
|
|
"_tgt": "enum",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealplanstatus",
|
|
"target": "enum"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanitemstatus",
|
|
"_tgt": "str",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealplanitemstatus",
|
|
"target": "str"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_mealplanitemstatus",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealplanitemstatus",
|
|
"target": "backend_app_schemas_init_py"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanitemstatus",
|
|
"_tgt": "enum",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealplanitemstatus",
|
|
"target": "enum"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L8",
|
|
"weight": 1.0,
|
|
"_src": "init_familymemberrole",
|
|
"_tgt": "str",
|
|
"confidence_score": 1.0,
|
|
"source": "str",
|
|
"target": "init_familymemberrole"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "init_denialreason",
|
|
"_tgt": "str",
|
|
"confidence_score": 1.0,
|
|
"source": "str",
|
|
"target": "init_denialreason"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "init_neversuggestreason",
|
|
"_tgt": "str",
|
|
"confidence_score": 1.0,
|
|
"source": "str",
|
|
"target": "init_neversuggestreason"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L47",
|
|
"weight": 1.0,
|
|
"_src": "auth_login",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "auth_login"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "recipes_validate_ingredient_ids",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "recipes_validate_ingredient_ids"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L142",
|
|
"weight": 1.0,
|
|
"_src": "ingredients_pin_match",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "ingredients_pin_match"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L71",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_generate",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "meal_plans_generate"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "admin_trigger_scrape",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "admin_trigger_scrape"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L44",
|
|
"weight": 1.0,
|
|
"_src": "admin_get_logs",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "admin_get_logs"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L65",
|
|
"weight": 1.0,
|
|
"_src": "admin_get_log",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "admin_get_log"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L92",
|
|
"weight": 1.0,
|
|
"_src": "admin_get_email_logs",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "admin_get_email_logs"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L121",
|
|
"weight": 1.0,
|
|
"_src": "admin_get_all_meal_plans",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "admin_get_all_meal_plans"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L164",
|
|
"weight": 1.0,
|
|
"_src": "admin_test_email",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "admin_test_email"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L130",
|
|
"weight": 1.0,
|
|
"_src": "meals_get_vote_page",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "meals_get_vote_page"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L313",
|
|
"weight": 1.0,
|
|
"_src": "meals_get_meal_item",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "meals_get_meal_item"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L459",
|
|
"weight": 1.0,
|
|
"_src": "meals_move_meal_item",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "meals_move_meal_item"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/orchestrate.py",
|
|
"source_location": "L25",
|
|
"weight": 1.0,
|
|
"_src": "orchestrate_orchestrate_status",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "orchestrate_orchestrate_status"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/orchestrate.py",
|
|
"source_location": "L47",
|
|
"weight": 1.0,
|
|
"_src": "orchestrate_orchestrate_run_week",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "orchestrate_orchestrate_run_week"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/orchestrate.py",
|
|
"source_location": "L63",
|
|
"weight": 1.0,
|
|
"_src": "orchestrate_orchestrate_step",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "orchestrate_orchestrate_step"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "approval_issue_token",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "approval_issue_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L70",
|
|
"weight": 1.0,
|
|
"_src": "approval_consume_token",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "approval_consume_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L227",
|
|
"weight": 1.0,
|
|
"_src": "matcher_run_match_job",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "matcher_run_match_job"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_run_scrape_in_background",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "scraper_service_run_scrape_in_background"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L157",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice_run_scrape",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "scraper_service_scraperservice_run_scrape"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L292",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice_get_sale_items",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "scraper_service_scraperservice_get_sale_items"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "cost_decimal",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "cost_decimal"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L37",
|
|
"weight": 1.0,
|
|
"_src": "cost_scale",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "cost_scale"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L83",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_generate",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "steps_step_generate"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L137",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_email",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "steps_step_email"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L376",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_finalize",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "steps_step_finalize"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L528",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_reminder",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "steps_step_reminder"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L276",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_map_product",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "lucky_ca_scraper_map_product"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L772",
|
|
"weight": 1.0,
|
|
"_src": "0007_seed_recipes_insert_recipes",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "0007_seed_recipes_insert_recipes"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_alembic.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "test_alembic_test_alembic_upgrade_head_roundtrip",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_alembic_test_alembic_upgrade_head_roundtrip"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L28",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_issue_and_verify_token_roundtrip",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_approval_test_issue_and_verify_token_roundtrip"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L114",
|
|
"weight": 1.0,
|
|
"_src": "conftest_schema",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "conftest_schema"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L87",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_seed_grocery",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_ingredient_api_seed_grocery"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "test_never_suggest_api_seed_family",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_never_suggest_api_seed_family"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_cost_match",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_planner_cost_match"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_cost",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_planner_filter_cost"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L52",
|
|
"weight": 1.0,
|
|
"_src": "test_meal_plan_generate_api_test_generate_endpoint_returns_meal_plan",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_meal_plan_generate_api_test_generate_endpoint_returns_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L66",
|
|
"weight": 1.0,
|
|
"_src": "test_meal_plan_generate_api_test_generate_endpoint_requires_admin_token",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_meal_plan_generate_api_test_generate_endpoint_requires_admin_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "test_meal_plan_generate_api_test_generate_endpoint_returns_404_for_unknown_family",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_meal_plan_generate_api_test_generate_endpoint_returns_404_for_unknown_family"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L152",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_mint_raises_on_firebase_non_200",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_swiftly_auth_test_mint_raises_on_firebase_non_200"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L143",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L299",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_email_sends_per_member",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "test_orchestrator_test_step_email_sends_per_member"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/spike_lucky_scrape.py",
|
|
"source_location": "L93",
|
|
"weight": 1.0,
|
|
"_src": "spike_lucky_scrape_main",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "spike_lucky_scrape_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L91",
|
|
"weight": 1.0,
|
|
"_src": "spike_swiftly_ingest_main",
|
|
"_tgt": "str",
|
|
"source": "str",
|
|
"target": "spike_swiftly_ingest_main"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L8",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_familymemberrole",
|
|
"confidence_score": 1.0,
|
|
"source": "init_familymemberrole",
|
|
"target": "backend_app_schemas_init_py"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L8",
|
|
"weight": 1.0,
|
|
"_src": "init_familymemberrole",
|
|
"_tgt": "enum",
|
|
"confidence_score": 1.0,
|
|
"source": "init_familymemberrole",
|
|
"target": "enum"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_denialreason",
|
|
"confidence_score": 1.0,
|
|
"source": "init_denialreason",
|
|
"target": "backend_app_schemas_init_py"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "init_denialreason",
|
|
"_tgt": "enum",
|
|
"confidence_score": 1.0,
|
|
"source": "init_denialreason",
|
|
"target": "enum"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_neversuggestreason",
|
|
"confidence_score": 1.0,
|
|
"source": "init_neversuggestreason",
|
|
"target": "backend_app_schemas_init_py"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "init_neversuggestreason",
|
|
"_tgt": "enum",
|
|
"confidence_score": 1.0,
|
|
"source": "init_neversuggestreason",
|
|
"target": "enum"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "never_suggest_coerce_reason",
|
|
"_tgt": "init_neversuggestreason",
|
|
"source": "init_neversuggestreason",
|
|
"target": "never_suggest_coerce_reason"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L88",
|
|
"weight": 1.0,
|
|
"_src": "init_familyprofile",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "init_familyprofile",
|
|
"target": "base"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L93",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_scenario",
|
|
"_tgt": "init_familyprofile",
|
|
"source": "init_familyprofile",
|
|
"target": "test_approval_scenario"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L16",
|
|
"weight": 1.0,
|
|
"_src": "test_never_suggest_api_seed_family",
|
|
"_tgt": "init_familyprofile",
|
|
"source": "init_familyprofile",
|
|
"target": "test_never_suggest_api_seed_family"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_generate.py",
|
|
"source_location": "L31",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_generate_test_generate_meal_plan_against_seeded_data",
|
|
"_tgt": "init_familyprofile",
|
|
"source": "init_familyprofile",
|
|
"target": "test_planner_generate_test_generate_meal_plan_against_seeded_data"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "test_meal_plan_generate_api_family_with_groceries",
|
|
"_tgt": "init_familyprofile",
|
|
"source": "init_familyprofile",
|
|
"target": "test_meal_plan_generate_api_family_with_groceries"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_family",
|
|
"_tgt": "init_familyprofile",
|
|
"source": "init_familyprofile",
|
|
"target": "test_orchestrator_family"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L88",
|
|
"weight": 1.0,
|
|
"_src": "send_test_approval_main",
|
|
"_tgt": "init_familyprofile",
|
|
"source": "init_familyprofile",
|
|
"target": "send_test_approval_main"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L120",
|
|
"weight": 1.0,
|
|
"_src": "init_familymember",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_familymember"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L141",
|
|
"weight": 1.0,
|
|
"_src": "init_ingredient",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_ingredient"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L161",
|
|
"weight": 1.0,
|
|
"_src": "init_recipe",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_recipe"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L195",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplan",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_mealplan"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L216",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanitem",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_mealplanitem"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L243",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanvote",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_mealplanvote"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L260",
|
|
"weight": 1.0,
|
|
"_src": "init_approvaltoken",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_approvaltoken"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L280",
|
|
"weight": 1.0,
|
|
"_src": "init_homepantry",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_homepantry"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L300",
|
|
"weight": 1.0,
|
|
"_src": "init_feedback",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_feedback"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L322",
|
|
"weight": 1.0,
|
|
"_src": "init_neversuggest",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_neversuggest"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L337",
|
|
"weight": 1.0,
|
|
"_src": "init_groceryitem",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_groceryitem"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L364",
|
|
"weight": 1.0,
|
|
"_src": "init_scrapelog",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_scrapelog"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L378",
|
|
"weight": 1.0,
|
|
"_src": "init_emaillog",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_emaillog"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L397",
|
|
"weight": 1.0,
|
|
"_src": "init_ingredientgrocerymatch",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_ingredientgrocerymatch"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/models/__init__.py",
|
|
"source_location": "L415",
|
|
"weight": 1.0,
|
|
"_src": "init_weeklyrun",
|
|
"_tgt": "base",
|
|
"confidence_score": 1.0,
|
|
"source": "base",
|
|
"target": "init_weeklyrun"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L60",
|
|
"weight": 1.0,
|
|
"_src": "profile_add_member",
|
|
"_tgt": "init_familymember",
|
|
"source": "init_familymember",
|
|
"target": "profile_add_member"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L102",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_scenario",
|
|
"_tgt": "init_familymember",
|
|
"source": "init_familymember",
|
|
"target": "test_approval_scenario"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_member",
|
|
"_tgt": "init_familymember",
|
|
"source": "init_familymember",
|
|
"target": "test_orchestrator_member"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L97",
|
|
"weight": 1.0,
|
|
"_src": "send_test_approval_main",
|
|
"_tgt": "init_familymember",
|
|
"source": "init_familymember",
|
|
"target": "send_test_approval_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L60",
|
|
"weight": 1.0,
|
|
"_src": "ingredients_create_ingredient",
|
|
"_tgt": "init_ingredient",
|
|
"source": "init_ingredient",
|
|
"target": "ingredients_create_ingredient"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L216",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice_save_grocery_item",
|
|
"_tgt": "init_ingredient",
|
|
"source": "init_ingredient",
|
|
"target": "scraper_service_scraperservice_save_grocery_item"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_match_hook.py",
|
|
"source_location": "L28",
|
|
"weight": 1.0,
|
|
"_src": "test_match_hook_test_run_match_job_persists_top_matches",
|
|
"_tgt": "init_ingredient",
|
|
"source": "init_ingredient",
|
|
"target": "test_match_hook_test_run_match_job_persists_top_matches"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L91",
|
|
"weight": 1.0,
|
|
"_src": "recipes_create_recipe",
|
|
"_tgt": "init_recipe",
|
|
"source": "init_recipe",
|
|
"target": "recipes_create_recipe"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L117",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_scenario",
|
|
"_tgt": "init_recipe",
|
|
"source": "init_recipe",
|
|
"target": "test_approval_scenario"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L100",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_pending_item",
|
|
"_tgt": "init_recipe",
|
|
"source": "init_recipe",
|
|
"target": "test_orchestrator_pending_item"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L508",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_approved_item",
|
|
"_tgt": "init_recipe",
|
|
"source": "init_recipe",
|
|
"target": "test_orchestrator_approved_item"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L106",
|
|
"weight": 1.0,
|
|
"_src": "send_test_approval_main",
|
|
"_tgt": "init_recipe",
|
|
"source": "init_recipe",
|
|
"target": "send_test_approval_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L58",
|
|
"weight": 1.0,
|
|
"_src": "meals_create_meal_plan",
|
|
"_tgt": "init_mealplan",
|
|
"source": "init_mealplan",
|
|
"target": "meals_create_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L168",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "init_mealplan",
|
|
"source": "init_mealplan",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L128",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_scenario",
|
|
"_tgt": "init_mealplan",
|
|
"source": "init_mealplan",
|
|
"target": "test_approval_scenario"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L86",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_meal_plan",
|
|
"_tgt": "init_mealplan",
|
|
"source": "init_mealplan",
|
|
"target": "test_orchestrator_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L117",
|
|
"weight": 1.0,
|
|
"_src": "send_test_approval_main",
|
|
"_tgt": "init_mealplan",
|
|
"source": "init_mealplan",
|
|
"target": "send_test_approval_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L70",
|
|
"weight": 1.0,
|
|
"_src": "meals_create_meal_plan",
|
|
"_tgt": "init_mealplanitem",
|
|
"source": "init_mealplanitem",
|
|
"target": "meals_create_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L399",
|
|
"weight": 1.0,
|
|
"_src": "meals_generate_single_item",
|
|
"_tgt": "init_mealplanitem",
|
|
"source": "init_mealplanitem",
|
|
"target": "meals_generate_single_item"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L183",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "init_mealplanitem",
|
|
"source": "init_mealplanitem",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L136",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_scenario",
|
|
"_tgt": "init_mealplanitem",
|
|
"source": "init_mealplanitem",
|
|
"target": "test_approval_scenario"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_pending_item",
|
|
"_tgt": "init_mealplanitem",
|
|
"source": "init_mealplanitem",
|
|
"target": "test_orchestrator_pending_item"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L517",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_approved_item",
|
|
"_tgt": "init_mealplanitem",
|
|
"source": "init_mealplanitem",
|
|
"target": "test_orchestrator_approved_item"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L125",
|
|
"weight": 1.0,
|
|
"_src": "send_test_approval_main",
|
|
"_tgt": "init_mealplanitem",
|
|
"source": "init_mealplanitem",
|
|
"target": "send_test_approval_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L270",
|
|
"weight": 1.0,
|
|
"_src": "meals_submit_vote",
|
|
"_tgt": "init_mealplanvote",
|
|
"source": "init_mealplanvote",
|
|
"target": "meals_submit_vote"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L172",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_consume_token_single_use",
|
|
"_tgt": "init_mealplanvote",
|
|
"source": "init_mealplanvote",
|
|
"target": "test_approval_test_consume_token_single_use"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L395",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_reminder_skips_voter",
|
|
"_tgt": "init_mealplanvote",
|
|
"source": "init_mealplanvote",
|
|
"target": "test_orchestrator_test_step_reminder_skips_voter"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L425",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_reminder_no_sends_when_all_voted",
|
|
"_tgt": "init_mealplanvote",
|
|
"source": "init_mealplanvote",
|
|
"target": "test_orchestrator_test_step_reminder_no_sends_when_all_voted"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/pantry.py",
|
|
"source_location": "L44",
|
|
"weight": 1.0,
|
|
"_src": "pantry_add_pantry_item",
|
|
"_tgt": "init_homepantry",
|
|
"source": "init_homepantry",
|
|
"target": "pantry_add_pantry_item"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/feedback.py",
|
|
"source_location": "L73",
|
|
"weight": 1.0,
|
|
"_src": "feedback_create_feedback",
|
|
"_tgt": "init_feedback",
|
|
"source": "init_feedback",
|
|
"target": "feedback_create_feedback"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "never_suggest_block",
|
|
"_tgt": "init_neversuggest",
|
|
"source": "init_neversuggest",
|
|
"target": "never_suggest_block"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L259",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice_save_grocery_item",
|
|
"_tgt": "init_groceryitem",
|
|
"source": "init_groceryitem",
|
|
"target": "scraper_service_scraperservice_save_grocery_item"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_match_hook.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "test_match_hook_test_run_match_job_persists_top_matches",
|
|
"_tgt": "init_groceryitem",
|
|
"source": "init_groceryitem",
|
|
"target": "test_match_hook_test_run_match_job_persists_top_matches"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_seed_grocery",
|
|
"_tgt": "init_groceryitem",
|
|
"source": "init_groceryitem",
|
|
"target": "test_ingredient_api_seed_grocery"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_generate.py",
|
|
"source_location": "L47",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_generate_test_generate_meal_plan_against_seeded_data",
|
|
"_tgt": "init_groceryitem",
|
|
"source": "init_groceryitem",
|
|
"target": "test_planner_generate_test_generate_meal_plan_against_seeded_data"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L31",
|
|
"weight": 1.0,
|
|
"_src": "test_meal_plan_generate_api_family_with_groceries",
|
|
"_tgt": "init_groceryitem",
|
|
"source": "init_groceryitem",
|
|
"target": "test_meal_plan_generate_api_family_with_groceries"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_enqueue_scrape",
|
|
"_tgt": "init_scrapelog",
|
|
"source": "init_scrapelog",
|
|
"target": "scraper_service_enqueue_scrape"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L134",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice_run_scrape",
|
|
"_tgt": "init_scrapelog",
|
|
"source": "init_scrapelog",
|
|
"target": "scraper_service_scraperservice_run_scrape"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L188",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_background_runner_writes_failed_with_token_message",
|
|
"_tgt": "init_scrapelog",
|
|
"source": "init_scrapelog",
|
|
"target": "test_swiftly_api_test_background_runner_writes_failed_with_token_message"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L152",
|
|
"weight": 1.0,
|
|
"_src": "admin_test_email",
|
|
"_tgt": "init_emaillog",
|
|
"source": "init_emaillog",
|
|
"target": "admin_test_email"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L146",
|
|
"weight": 1.0,
|
|
"_src": "ingredients_pin_match",
|
|
"_tgt": "init_ingredientgrocerymatch",
|
|
"source": "init_ingredientgrocerymatch",
|
|
"target": "ingredients_pin_match"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "runner_get_or_create_run",
|
|
"_tgt": "init_weeklyrun",
|
|
"source": "init_weeklyrun",
|
|
"target": "runner_get_or_create_run"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_weekly_run",
|
|
"_tgt": "init_weeklyrun",
|
|
"source": "init_weeklyrun",
|
|
"target": "test_orchestrator_weekly_run"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L57",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_weekly_run_scraped",
|
|
"_tgt": "init_weeklyrun",
|
|
"source": "init_weeklyrun",
|
|
"target": "test_orchestrator_weekly_run_scraped"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L71",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_weekly_run_generated",
|
|
"_tgt": "init_weeklyrun",
|
|
"source": "init_weeklyrun",
|
|
"target": "test_orchestrator_weekly_run_generated"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L125",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_weekly_run_emailed",
|
|
"_tgt": "init_weeklyrun",
|
|
"source": "init_weeklyrun",
|
|
"target": "test_orchestrator_weekly_run_emailed"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L141",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_weekly_run_reminded",
|
|
"_tgt": "init_weeklyrun",
|
|
"source": "init_weeklyrun",
|
|
"target": "test_orchestrator_weekly_run_reminded"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L491",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_weekly_run_deadline_passed",
|
|
"_tgt": "init_weeklyrun",
|
|
"source": "init_weeklyrun",
|
|
"target": "test_orchestrator_weekly_run_deadline_passed"
|
|
},
|
|
{
|
|
"relation": "imports_from",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L5",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "enum",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "enum"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_ingredientbase",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_ingredientbase"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L58",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_ingredientresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_ingredientresponse"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L279",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_config",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_config"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L66",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_ingredientcreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_ingredientcreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L70",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_familymemberbase",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_familymemberbase"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L77",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_familymemberresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_familymemberresponse"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L87",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_familymembercreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_familymembercreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L91",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_familyprofilebase",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_familyprofilebase"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L100",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_familyprofileresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_familyprofileresponse"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L110",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_familyprofilecreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_familyprofilecreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L114",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_familyprofileupdate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_familyprofileupdate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L123",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_recipeingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_recipeingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L133",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_normalize",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_normalize"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L142",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_recipebase",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_recipebase"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L161",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_reciperesponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_reciperesponse"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L173",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_recipecreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_recipecreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L177",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_mealplanitembase",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_mealplanitembase"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L184",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_mealplanitemresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_mealplanitemresponse"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L199",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_mealplanitemcreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_mealplanitemcreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L203",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_mealplanbase",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_mealplanbase"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L210",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_mealplanresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_mealplanresponse"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L222",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_mealplancreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_mealplancreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L226",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_voterequest",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_voterequest"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L232",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_voteresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_voteresponse"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L243",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_homepantrybase",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_homepantrybase"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L250",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_homepantryresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_homepantryresponse"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L261",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_homepantrycreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_homepantrycreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L265",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_feedbackbase",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_feedbackbase"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L272",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_feedbackresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_feedbackresponse"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L283",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_feedbackcreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_feedbackcreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L287",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_shoppinglistitem",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_shoppinglistitem"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L300",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_init_py",
|
|
"_tgt": "init_shoppinglistresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_init_py",
|
|
"target": "init_shoppinglistresponse"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/alembic/versions/0001_initial_migration.py",
|
|
"source_location": "L78",
|
|
"weight": 1.0,
|
|
"_src": "0001_initial_migration_upgrade",
|
|
"_tgt": "enum",
|
|
"source": "enum",
|
|
"target": "0001_initial_migration_upgrade"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/alembic/versions/0006_recipe_engine_thin.py",
|
|
"source_location": "L62",
|
|
"weight": 1.0,
|
|
"_src": "0006_recipe_engine_thin_upgrade",
|
|
"_tgt": "enum",
|
|
"source": "enum",
|
|
"target": "0006_recipe_engine_thin_upgrade"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "init_ingredientbase",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "init_ingredientbase",
|
|
"target": "basemodel"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L58",
|
|
"weight": 1.0,
|
|
"_src": "init_ingredientresponse",
|
|
"_tgt": "init_ingredientbase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_ingredientbase",
|
|
"target": "init_ingredientresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L66",
|
|
"weight": 1.0,
|
|
"_src": "init_ingredientcreate",
|
|
"_tgt": "init_ingredientbase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_ingredientbase",
|
|
"target": "init_ingredientcreate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L70",
|
|
"weight": 1.0,
|
|
"_src": "init_familymemberbase",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_familymemberbase"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L91",
|
|
"weight": 1.0,
|
|
"_src": "init_familyprofilebase",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_familyprofilebase"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L114",
|
|
"weight": 1.0,
|
|
"_src": "init_familyprofileupdate",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_familyprofileupdate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L123",
|
|
"weight": 1.0,
|
|
"_src": "init_recipeingredient",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_recipeingredient"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L142",
|
|
"weight": 1.0,
|
|
"_src": "init_recipebase",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_recipebase"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L177",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanitembase",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_mealplanitembase"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L203",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanbase",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_mealplanbase"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L226",
|
|
"weight": 1.0,
|
|
"_src": "init_voterequest",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_voterequest"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L232",
|
|
"weight": 1.0,
|
|
"_src": "init_voteresponse",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_voteresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L243",
|
|
"weight": 1.0,
|
|
"_src": "init_homepantrybase",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_homepantrybase"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L265",
|
|
"weight": 1.0,
|
|
"_src": "init_feedbackbase",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_feedbackbase"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L287",
|
|
"weight": 1.0,
|
|
"_src": "init_shoppinglistitem",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_shoppinglistitem"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L300",
|
|
"weight": 1.0,
|
|
"_src": "init_shoppinglistresponse",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "init_shoppinglistresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "ingredient_ingredientbase",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "ingredient_ingredientbase"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "ingredient_ingredientupdate",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "ingredient_ingredientupdate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "ingredient_ingredientgrocerymatchread",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "ingredient_ingredientgrocerymatchread"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "recipe_recipeingredientref",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "recipe_recipeingredientref"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "recipe_recipebase",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "recipe_recipebase"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "recipe_recipeupdate",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "recipe_recipeupdate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L60",
|
|
"weight": 1.0,
|
|
"_src": "recipe_resolveingredientrequest",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "recipe_resolveingredientrequest"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "recipe_resolveingredientcandidate",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "recipe_resolveingredientcandidate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L71",
|
|
"weight": 1.0,
|
|
"_src": "recipe_resolveingredientresponse",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "recipe_resolveingredientresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/never_suggest.py",
|
|
"source_location": "L9",
|
|
"weight": 1.0,
|
|
"_src": "never_suggest_neversuggestcreate",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "never_suggest_neversuggestcreate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/never_suggest.py",
|
|
"source_location": "L24",
|
|
"weight": 1.0,
|
|
"_src": "never_suggest_neversuggestread",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "never_suggest_neversuggestread"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "meal_plan_generation_generaterequest",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "meal_plan_generation_generaterequest"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L16",
|
|
"weight": 1.0,
|
|
"_src": "meal_plan_generation_regeneraterequest",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "meal_plan_generation_regeneraterequest"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L25",
|
|
"weight": 1.0,
|
|
"_src": "meal_plan_generation_generationitem",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "meal_plan_generation_generationitem"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "meal_plan_generation_generationdebug",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "meal_plan_generation_generationdebug"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "meal_plan_generation_generationresponse",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "meal_plan_generation_generationresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "auth_loginrequest",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "auth_loginrequest"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L117",
|
|
"weight": 1.0,
|
|
"_src": "ingredients_pinmatchbody",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "ingredients_pinmatchbody"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "meals_votesubmission",
|
|
"_tgt": "basemodel",
|
|
"confidence_score": 1.0,
|
|
"source": "basemodel",
|
|
"target": "meals_votesubmission"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L77",
|
|
"weight": 1.0,
|
|
"_src": "init_familymemberresponse",
|
|
"_tgt": "init_familymemberbase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_familymemberbase",
|
|
"target": "init_familymemberresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L87",
|
|
"weight": 1.0,
|
|
"_src": "init_familymembercreate",
|
|
"_tgt": "init_familymemberbase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_familymemberbase",
|
|
"target": "init_familymembercreate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L100",
|
|
"weight": 1.0,
|
|
"_src": "init_familyprofileresponse",
|
|
"_tgt": "init_familyprofilebase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_familyprofilebase",
|
|
"target": "init_familyprofileresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L110",
|
|
"weight": 1.0,
|
|
"_src": "init_familyprofilecreate",
|
|
"_tgt": "init_familyprofilebase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_familyprofilebase",
|
|
"target": "init_familyprofilecreate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L161",
|
|
"weight": 1.0,
|
|
"_src": "init_reciperesponse",
|
|
"_tgt": "init_recipebase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_recipebase",
|
|
"target": "init_reciperesponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L173",
|
|
"weight": 1.0,
|
|
"_src": "init_recipecreate",
|
|
"_tgt": "init_recipebase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_recipebase",
|
|
"target": "init_recipecreate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L184",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanitemresponse",
|
|
"_tgt": "init_mealplanitembase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealplanitembase",
|
|
"target": "init_mealplanitemresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L199",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanitemcreate",
|
|
"_tgt": "init_mealplanitembase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealplanitembase",
|
|
"target": "init_mealplanitemcreate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L210",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplanresponse",
|
|
"_tgt": "init_mealplanbase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealplanbase",
|
|
"target": "init_mealplanresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L222",
|
|
"weight": 1.0,
|
|
"_src": "init_mealplancreate",
|
|
"_tgt": "init_mealplanbase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_mealplanbase",
|
|
"target": "init_mealplancreate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L250",
|
|
"weight": 1.0,
|
|
"_src": "init_homepantryresponse",
|
|
"_tgt": "init_homepantrybase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_homepantrybase",
|
|
"target": "init_homepantryresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L261",
|
|
"weight": 1.0,
|
|
"_src": "init_homepantrycreate",
|
|
"_tgt": "init_homepantrybase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_homepantrybase",
|
|
"target": "init_homepantrycreate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L272",
|
|
"weight": 1.0,
|
|
"_src": "init_feedbackresponse",
|
|
"_tgt": "init_feedbackbase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_feedbackbase",
|
|
"target": "init_feedbackresponse"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/__init__.py",
|
|
"source_location": "L283",
|
|
"weight": 1.0,
|
|
"_src": "init_feedbackcreate",
|
|
"_tgt": "init_feedbackbase",
|
|
"confidence_score": 1.0,
|
|
"source": "init_feedbackbase",
|
|
"target": "init_feedbackcreate"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/shopping_list.py",
|
|
"source_location": "L127",
|
|
"weight": 1.0,
|
|
"_src": "shopping_list_get_shopping_list",
|
|
"_tgt": "init_shoppinglistitem",
|
|
"source": "init_shoppinglistitem",
|
|
"target": "shopping_list_get_shopping_list"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/shopping_list.py",
|
|
"source_location": "L44",
|
|
"weight": 1.0,
|
|
"_src": "shopping_list_get_shopping_list",
|
|
"_tgt": "init_shoppinglistresponse",
|
|
"source": "init_shoppinglistresponse",
|
|
"target": "shopping_list_get_shopping_list"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_ingredient_py",
|
|
"_tgt": "ingredient_ingredientbase",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_ingredient_py",
|
|
"target": "ingredient_ingredientbase"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L36",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_ingredient_py",
|
|
"_tgt": "ingredient_strip_and_drop_empty",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_ingredient_py",
|
|
"target": "ingredient_strip_and_drop_empty"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_ingredient_py",
|
|
"_tgt": "ingredient_ingredientcreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_ingredient_py",
|
|
"target": "ingredient_ingredientcreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_ingredient_py",
|
|
"_tgt": "ingredient_ingredientupdate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_ingredient_py",
|
|
"target": "ingredient_ingredientupdate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_ingredient_py",
|
|
"_tgt": "ingredient_ingredientread",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_ingredient_py",
|
|
"target": "ingredient_ingredientread"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_ingredient_py",
|
|
"_tgt": "ingredient_ingredientgrocerymatchread",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_ingredient_py",
|
|
"target": "ingredient_ingredientgrocerymatchread"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "ingredient_ingredientcreate",
|
|
"_tgt": "ingredient_ingredientbase",
|
|
"confidence_score": 1.0,
|
|
"source": "ingredient_ingredientbase",
|
|
"target": "ingredient_ingredientcreate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/ingredient.py",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "ingredient_ingredientread",
|
|
"_tgt": "ingredient_ingredientbase",
|
|
"confidence_score": 1.0,
|
|
"source": "ingredient_ingredientbase",
|
|
"target": "ingredient_ingredientread"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L15",
|
|
"weight": 0.8,
|
|
"_src": "ingredients_pinmatchbody",
|
|
"_tgt": "ingredient_ingredientcreate",
|
|
"confidence_score": 0.5,
|
|
"source": "ingredient_ingredientcreate",
|
|
"target": "ingredients_pinmatchbody"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_ingredient_schema.py",
|
|
"source_location": "L8",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_schema_test_ingredient_create_normalizes_aliases",
|
|
"_tgt": "ingredient_ingredientcreate",
|
|
"source": "ingredient_ingredientcreate",
|
|
"target": "test_ingredient_schema_test_ingredient_create_normalizes_aliases"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L15",
|
|
"weight": 0.8,
|
|
"_src": "ingredients_pinmatchbody",
|
|
"_tgt": "ingredient_ingredientupdate",
|
|
"confidence_score": 0.5,
|
|
"source": "ingredient_ingredientupdate",
|
|
"target": "ingredients_pinmatchbody"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L15",
|
|
"weight": 0.8,
|
|
"_src": "ingredients_pinmatchbody",
|
|
"_tgt": "ingredient_ingredientread",
|
|
"confidence_score": 0.5,
|
|
"source": "ingredient_ingredientread",
|
|
"target": "ingredients_pinmatchbody"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L15",
|
|
"weight": 0.8,
|
|
"_src": "ingredients_pinmatchbody",
|
|
"_tgt": "ingredient_ingredientgrocerymatchread",
|
|
"confidence_score": 0.5,
|
|
"source": "ingredient_ingredientgrocerymatchread",
|
|
"target": "ingredients_pinmatchbody"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_recipe_py",
|
|
"_tgt": "recipe_recipeingredientref",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_recipe_py",
|
|
"target": "recipe_recipeingredientref"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_recipe_py",
|
|
"_tgt": "recipe_recipebase",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_recipe_py",
|
|
"target": "recipe_recipebase"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_recipe_py",
|
|
"_tgt": "recipe_recipecreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_recipe_py",
|
|
"target": "recipe_recipecreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_recipe_py",
|
|
"_tgt": "recipe_recipeupdate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_recipe_py",
|
|
"target": "recipe_recipeupdate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_recipe_py",
|
|
"_tgt": "recipe_reciperead",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_recipe_py",
|
|
"target": "recipe_reciperead"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L60",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_recipe_py",
|
|
"_tgt": "recipe_resolveingredientrequest",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_recipe_py",
|
|
"target": "recipe_resolveingredientrequest"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_recipe_py",
|
|
"_tgt": "recipe_resolveingredientcandidate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_recipe_py",
|
|
"target": "recipe_resolveingredientcandidate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L71",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_recipe_py",
|
|
"_tgt": "recipe_resolveingredientresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_recipe_py",
|
|
"target": "recipe_resolveingredientresponse"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "test_recipe_schema_test_recipe_create_requires_canonical_ingredient_ids",
|
|
"_tgt": "recipe_recipeingredientref",
|
|
"source": "recipe_recipeingredientref",
|
|
"target": "test_recipe_schema_test_recipe_create_requires_canonical_ingredient_ids"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "recipe_recipecreate",
|
|
"_tgt": "recipe_recipebase",
|
|
"confidence_score": 1.0,
|
|
"source": "recipe_recipebase",
|
|
"target": "recipe_recipecreate"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/recipe.py",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "recipe_reciperead",
|
|
"_tgt": "recipe_recipebase",
|
|
"confidence_score": 1.0,
|
|
"source": "recipe_recipebase",
|
|
"target": "recipe_reciperead"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "test_recipe_schema_test_recipe_create_requires_canonical_ingredient_ids",
|
|
"_tgt": "recipe_recipecreate",
|
|
"source": "recipe_recipecreate",
|
|
"target": "test_recipe_schema_test_recipe_create_requires_canonical_ingredient_ids"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "test_recipe_schema_test_recipe_create_rejects_empty_ingredients",
|
|
"_tgt": "recipe_recipecreate",
|
|
"source": "recipe_recipecreate",
|
|
"target": "test_recipe_schema_test_recipe_create_rejects_empty_ingredients"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "test_recipe_schema_test_resolve_ingredient_request_round_trip",
|
|
"_tgt": "recipe_resolveingredientrequest",
|
|
"source": "recipe_resolveingredientrequest",
|
|
"target": "test_recipe_schema_test_resolve_ingredient_request_round_trip"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L205",
|
|
"weight": 1.0,
|
|
"_src": "recipes_resolve_ingredient",
|
|
"_tgt": "recipe_resolveingredientcandidate",
|
|
"source": "recipe_resolveingredientcandidate",
|
|
"target": "recipes_resolve_ingredient"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L178",
|
|
"weight": 1.0,
|
|
"_src": "recipes_resolve_ingredient",
|
|
"_tgt": "recipe_resolveingredientresponse",
|
|
"source": "recipe_resolveingredientresponse",
|
|
"target": "recipes_resolve_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/never_suggest.py",
|
|
"source_location": "L9",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_never_suggest_py",
|
|
"_tgt": "never_suggest_neversuggestcreate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_never_suggest_py",
|
|
"target": "never_suggest_neversuggestcreate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/never_suggest.py",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_never_suggest_py",
|
|
"_tgt": "never_suggest_exactly_one_target",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_never_suggest_py",
|
|
"target": "never_suggest_exactly_one_target"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/never_suggest.py",
|
|
"source_location": "L24",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_never_suggest_py",
|
|
"_tgt": "never_suggest_neversuggestread",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_never_suggest_py",
|
|
"target": "never_suggest_neversuggestread"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_meal_plan_generation_py",
|
|
"_tgt": "meal_plan_generation_generaterequest",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_meal_plan_generation_py",
|
|
"target": "meal_plan_generation_generaterequest"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L16",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_meal_plan_generation_py",
|
|
"_tgt": "meal_plan_generation_regeneraterequest",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_meal_plan_generation_py",
|
|
"target": "meal_plan_generation_regeneraterequest"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L25",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_meal_plan_generation_py",
|
|
"_tgt": "meal_plan_generation_generationitem",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_meal_plan_generation_py",
|
|
"target": "meal_plan_generation_generationitem"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_meal_plan_generation_py",
|
|
"_tgt": "meal_plan_generation_generationdebug",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_meal_plan_generation_py",
|
|
"target": "meal_plan_generation_generationdebug"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/schemas/meal_plan_generation.py",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_schemas_meal_plan_generation_py",
|
|
"_tgt": "meal_plan_generation_generationresponse",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_schemas_meal_plan_generation_py",
|
|
"target": "meal_plan_generation_generationresponse"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_to_response",
|
|
"_tgt": "meal_plan_generation_generationitem",
|
|
"source": "meal_plan_generation_generationitem",
|
|
"target": "meal_plans_to_response"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L136",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_get_plan",
|
|
"_tgt": "meal_plan_generation_generationitem",
|
|
"source": "meal_plan_generation_generationitem",
|
|
"target": "meal_plans_get_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L51",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_to_response",
|
|
"_tgt": "meal_plan_generation_generationdebug",
|
|
"source": "meal_plan_generation_generationdebug",
|
|
"target": "meal_plans_to_response"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L145",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_get_plan",
|
|
"_tgt": "meal_plan_generation_generationdebug",
|
|
"source": "meal_plan_generation_generationdebug",
|
|
"target": "meal_plans_get_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L47",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_to_response",
|
|
"_tgt": "meal_plan_generation_generationresponse",
|
|
"source": "meal_plan_generation_generationresponse",
|
|
"target": "meal_plans_to_response"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L132",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_get_plan",
|
|
"_tgt": "meal_plan_generation_generationresponse",
|
|
"source": "meal_plan_generation_generationresponse",
|
|
"target": "meal_plans_get_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_profile_py",
|
|
"_tgt": "profile_get_profile",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_profile_py",
|
|
"target": "profile_get_profile"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L25",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_profile_py",
|
|
"_tgt": "profile_update_profile",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_profile_py",
|
|
"target": "profile_update_profile"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_profile_py",
|
|
"_tgt": "profile_get_members",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_profile_py",
|
|
"target": "profile_get_members"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_profile_py",
|
|
"_tgt": "profile_add_member",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_profile_py",
|
|
"target": "profile_add_member"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/profile.py",
|
|
"source_location": "L74",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_profile_py",
|
|
"_tgt": "profile_delete_member",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_profile_py",
|
|
"target": "profile_delete_member"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/pantry.py",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_pantry_py",
|
|
"_tgt": "pantry_get_pantry_items",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_pantry_py",
|
|
"target": "pantry_get_pantry_items"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/pantry.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_pantry_py",
|
|
"_tgt": "pantry_add_pantry_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_pantry_py",
|
|
"target": "pantry_add_pantry_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/pantry.py",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_pantry_py",
|
|
"_tgt": "pantry_remove_pantry_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_pantry_py",
|
|
"target": "pantry_remove_pantry_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/pantry.py",
|
|
"source_location": "L70",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_pantry_py",
|
|
"_tgt": "pantry_update_pantry_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_pantry_py",
|
|
"target": "pantry_update_pantry_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_auth_py",
|
|
"_tgt": "auth_loginrequest",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_auth_py",
|
|
"target": "auth_loginrequest"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L31",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_auth_py",
|
|
"_tgt": "auth_login",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_auth_py",
|
|
"target": "auth_login"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_auth_py",
|
|
"_tgt": "auth_logout",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_auth_py",
|
|
"target": "auth_logout"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/auth.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "auth_rationale_1",
|
|
"_tgt": "backend_app_api_auth_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_auth_py",
|
|
"target": "auth_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/shopping_list.py",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_shopping_list_py",
|
|
"_tgt": "shopping_list_parse_uuid",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_shopping_list_py",
|
|
"target": "shopping_list_parse_uuid"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/shopping_list.py",
|
|
"source_location": "L28",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_shopping_list_py",
|
|
"_tgt": "shopping_list_get_shopping_list",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_shopping_list_py",
|
|
"target": "shopping_list_get_shopping_list"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/shopping_list.py",
|
|
"source_location": "L155",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_shopping_list_py",
|
|
"_tgt": "shopping_list_print_shopping_list",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_shopping_list_py",
|
|
"target": "shopping_list_print_shopping_list"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/shopping_list.py",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "shopping_list_get_shopping_list",
|
|
"_tgt": "shopping_list_parse_uuid",
|
|
"confidence_score": 1.0,
|
|
"source": "shopping_list_parse_uuid",
|
|
"target": "shopping_list_get_shopping_list"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L32",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_recipes_py",
|
|
"_tgt": "recipes_validate_ingredient_ids",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_recipes_py",
|
|
"target": "recipes_validate_ingredient_ids"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_recipes_py",
|
|
"_tgt": "recipes_serialize",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_recipes_py",
|
|
"target": "recipes_serialize"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L67",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_recipes_py",
|
|
"_tgt": "recipes_list_recipes",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_recipes_py",
|
|
"target": "recipes_list_recipes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L81",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_recipes_py",
|
|
"_tgt": "recipes_get_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_recipes_py",
|
|
"target": "recipes_get_recipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L89",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_recipes_py",
|
|
"_tgt": "recipes_create_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_recipes_py",
|
|
"target": "recipes_create_recipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L115",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_recipes_py",
|
|
"_tgt": "recipes_update_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_recipes_py",
|
|
"target": "recipes_update_recipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L132",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_recipes_py",
|
|
"_tgt": "recipes_delete_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_recipes_py",
|
|
"target": "recipes_delete_recipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L152",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_recipes_py",
|
|
"_tgt": "recipes_parse_qty_unit",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_recipes_py",
|
|
"target": "recipes_parse_qty_unit"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L171",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_recipes_py",
|
|
"_tgt": "recipes_resolve_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_recipes_py",
|
|
"target": "recipes_resolve_ingredient"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L90",
|
|
"weight": 1.0,
|
|
"_src": "recipes_create_recipe",
|
|
"_tgt": "recipes_validate_ingredient_ids",
|
|
"confidence_score": 1.0,
|
|
"source": "recipes_validate_ingredient_ids",
|
|
"target": "recipes_create_recipe"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L121",
|
|
"weight": 1.0,
|
|
"_src": "recipes_update_recipe",
|
|
"_tgt": "recipes_validate_ingredient_ids",
|
|
"confidence_score": 1.0,
|
|
"source": "recipes_validate_ingredient_ids",
|
|
"target": "recipes_update_recipe"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L77",
|
|
"weight": 1.0,
|
|
"_src": "recipes_list_recipes",
|
|
"_tgt": "recipes_serialize",
|
|
"confidence_score": 1.0,
|
|
"source": "recipes_serialize",
|
|
"target": "recipes_list_recipes"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L85",
|
|
"weight": 1.0,
|
|
"_src": "recipes_get_recipe",
|
|
"_tgt": "recipes_serialize",
|
|
"confidence_score": 1.0,
|
|
"source": "recipes_serialize",
|
|
"target": "recipes_get_recipe"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L111",
|
|
"weight": 1.0,
|
|
"_src": "recipes_create_recipe",
|
|
"_tgt": "recipes_serialize",
|
|
"confidence_score": 1.0,
|
|
"source": "recipes_serialize",
|
|
"target": "recipes_create_recipe"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L128",
|
|
"weight": 1.0,
|
|
"_src": "recipes_update_recipe",
|
|
"_tgt": "recipes_serialize",
|
|
"confidence_score": 1.0,
|
|
"source": "recipes_serialize",
|
|
"target": "recipes_update_recipe"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/recipes.py",
|
|
"source_location": "L175",
|
|
"weight": 1.0,
|
|
"_src": "recipes_resolve_ingredient",
|
|
"_tgt": "recipes_parse_qty_unit",
|
|
"confidence_score": 1.0,
|
|
"source": "recipes_parse_qty_unit",
|
|
"target": "recipes_resolve_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_ingredients_py",
|
|
"_tgt": "ingredients_list_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_ingredients_py",
|
|
"target": "ingredients_list_ingredients"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L51",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_ingredients_py",
|
|
"_tgt": "ingredients_get_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_ingredients_py",
|
|
"target": "ingredients_get_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_ingredients_py",
|
|
"_tgt": "ingredients_create_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_ingredients_py",
|
|
"target": "ingredients_create_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L79",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_ingredients_py",
|
|
"_tgt": "ingredients_update_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_ingredients_py",
|
|
"target": "ingredients_update_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L108",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_ingredients_py",
|
|
"_tgt": "ingredients_delete_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_ingredients_py",
|
|
"target": "ingredients_delete_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L117",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_ingredients_py",
|
|
"_tgt": "ingredients_pinmatchbody",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_ingredients_py",
|
|
"target": "ingredients_pinmatchbody"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L127",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_ingredients_py",
|
|
"_tgt": "ingredients_pin_match",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_ingredients_py",
|
|
"target": "ingredients_pin_match"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/ingredients.py",
|
|
"source_location": "L170",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_ingredients_py",
|
|
"_tgt": "ingredients_unpin_match",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_ingredients_py",
|
|
"target": "ingredients_unpin_match"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_never_suggest_py",
|
|
"_tgt": "never_suggest_coerce_reason",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_never_suggest_py",
|
|
"target": "never_suggest_coerce_reason"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_never_suggest_py",
|
|
"_tgt": "never_suggest_list_for_family",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_never_suggest_py",
|
|
"target": "never_suggest_list_for_family"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_never_suggest_py",
|
|
"_tgt": "never_suggest_block",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_never_suggest_py",
|
|
"target": "never_suggest_block"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_never_suggest_py",
|
|
"_tgt": "never_suggest_unblock",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_never_suggest_py",
|
|
"target": "never_suggest_unblock"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/never_suggest.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "never_suggest_block",
|
|
"_tgt": "never_suggest_coerce_reason",
|
|
"confidence_score": 1.0,
|
|
"source": "never_suggest_coerce_reason",
|
|
"target": "never_suggest_block"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meal_plans_py",
|
|
"_tgt": "meal_plans_to_response",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meal_plans_py",
|
|
"target": "meal_plans_to_response"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L60",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meal_plans_py",
|
|
"_tgt": "meal_plans_generate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meal_plans_py",
|
|
"target": "meal_plans_generate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L82",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meal_plans_py",
|
|
"_tgt": "meal_plans_regenerate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meal_plans_py",
|
|
"target": "meal_plans_regenerate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L120",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meal_plans_py",
|
|
"_tgt": "meal_plans_get_plan",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meal_plans_py",
|
|
"target": "meal_plans_get_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L78",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_generate",
|
|
"_tgt": "meal_plans_to_response",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_plans_to_response",
|
|
"target": "meal_plans_generate"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L116",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_regenerate",
|
|
"_tgt": "meal_plans_to_response",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_plans_to_response",
|
|
"target": "meal_plans_regenerate"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L65",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_generate",
|
|
"_tgt": "generate_generate_meal_plan",
|
|
"source": "meal_plans_generate",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meal_plans.py",
|
|
"source_location": "L104",
|
|
"weight": 1.0,
|
|
"_src": "meal_plans_regenerate",
|
|
"_tgt": "generate_generate_meal_plan",
|
|
"source": "meal_plans_regenerate",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_admin_py",
|
|
"_tgt": "admin_trigger_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_admin_py",
|
|
"target": "admin_trigger_scrape"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_admin_py",
|
|
"_tgt": "admin_get_logs",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_admin_py",
|
|
"target": "admin_get_logs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L60",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_admin_py",
|
|
"_tgt": "admin_get_log",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_admin_py",
|
|
"target": "admin_get_log"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L78",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_admin_py",
|
|
"_tgt": "admin_get_email_logs",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_admin_py",
|
|
"target": "admin_get_email_logs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L107",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_admin_py",
|
|
"_tgt": "admin_get_all_meal_plans",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_admin_py",
|
|
"target": "admin_get_all_meal_plans"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L134",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_admin_py",
|
|
"_tgt": "admin_test_email",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_admin_py",
|
|
"target": "admin_test_email"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L171",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_admin_py",
|
|
"_tgt": "admin_get_stats",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_admin_py",
|
|
"target": "admin_get_stats"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L20",
|
|
"weight": 1.0,
|
|
"_src": "admin_trigger_scrape",
|
|
"_tgt": "scraper_service_enqueue_scrape",
|
|
"source": "admin_trigger_scrape",
|
|
"target": "scraper_service_enqueue_scrape"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L141",
|
|
"weight": 1.0,
|
|
"_src": "admin_test_email",
|
|
"_tgt": "email_get_email_backend",
|
|
"source": "admin_test_email",
|
|
"target": "email_get_email_backend"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/admin.py",
|
|
"source_location": "L142",
|
|
"weight": 1.0,
|
|
"_src": "admin_test_email",
|
|
"_tgt": "email_sendgridemailbackend_send",
|
|
"source": "admin_test_email",
|
|
"target": "email_sendgridemailbackend_send"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/feedback.py",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_feedback_py",
|
|
"_tgt": "feedback_get_feedback",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_feedback_py",
|
|
"target": "feedback_get_feedback"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/feedback.py",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_feedback_py",
|
|
"_tgt": "feedback_create_feedback",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_feedback_py",
|
|
"target": "feedback_create_feedback"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/feedback.py",
|
|
"source_location": "L22",
|
|
"weight": 1.0,
|
|
"_src": "feedback_rationale_22",
|
|
"_tgt": "feedback_get_feedback",
|
|
"confidence_score": 1.0,
|
|
"source": "feedback_get_feedback",
|
|
"target": "feedback_rationale_22"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/feedback.py",
|
|
"source_location": "L44",
|
|
"weight": 1.0,
|
|
"_src": "feedback_rationale_44",
|
|
"_tgt": "feedback_create_feedback",
|
|
"confidence_score": 1.0,
|
|
"source": "feedback_create_feedback",
|
|
"target": "feedback_rationale_44"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_get_planned_meals",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_get_planned_meals"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_create_meal_plan",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_create_meal_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L85",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_get_meal_plan",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_get_meal_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L93",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_lock_meal_plan",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_lock_meal_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_votesubmission",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_votesubmission"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L119",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_get_vote_page",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_get_vote_page"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L251",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_submit_vote",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_submit_vote"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L301",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_get_meal_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_get_meal_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L323",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_swap_meal_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_swap_meal_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L342",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_approve_meal_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_approve_meal_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L353",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_deny_meal_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_deny_meal_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L364",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_generate_single_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_generate_single_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L413",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_meals_py",
|
|
"_tgt": "meals_move_meal_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_meals_py",
|
|
"target": "meals_move_meal_item"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L110",
|
|
"weight": 1.0,
|
|
"_src": "meals_rationale_110",
|
|
"_tgt": "meals_votesubmission",
|
|
"confidence_score": 1.0,
|
|
"source": "meals_votesubmission",
|
|
"target": "meals_rationale_110"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L124",
|
|
"weight": 1.0,
|
|
"_src": "meals_rationale_124",
|
|
"_tgt": "meals_get_vote_page",
|
|
"confidence_score": 1.0,
|
|
"source": "meals_get_vote_page",
|
|
"target": "meals_rationale_124"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L129",
|
|
"weight": 1.0,
|
|
"_src": "meals_get_vote_page",
|
|
"_tgt": "approval_verify_token",
|
|
"source": "meals_get_vote_page",
|
|
"target": "approval_verify_token"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L257",
|
|
"weight": 1.0,
|
|
"_src": "meals_rationale_257",
|
|
"_tgt": "meals_submit_vote",
|
|
"confidence_score": 1.0,
|
|
"source": "meals_submit_vote",
|
|
"target": "meals_rationale_257"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L263",
|
|
"weight": 1.0,
|
|
"_src": "meals_submit_vote",
|
|
"_tgt": "approval_consume_token",
|
|
"source": "meals_submit_vote",
|
|
"target": "approval_consume_token"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L343",
|
|
"weight": 1.0,
|
|
"_src": "meals_rationale_343",
|
|
"_tgt": "meals_approve_meal_item",
|
|
"confidence_score": 1.0,
|
|
"source": "meals_approve_meal_item",
|
|
"target": "meals_rationale_343"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L354",
|
|
"weight": 1.0,
|
|
"_src": "meals_rationale_354",
|
|
"_tgt": "meals_deny_meal_item",
|
|
"confidence_score": 1.0,
|
|
"source": "meals_deny_meal_item",
|
|
"target": "meals_rationale_354"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L370",
|
|
"weight": 1.0,
|
|
"_src": "meals_rationale_370",
|
|
"_tgt": "meals_generate_single_item",
|
|
"confidence_score": 1.0,
|
|
"source": "meals_generate_single_item",
|
|
"target": "meals_rationale_370"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/meals.py",
|
|
"source_location": "L419",
|
|
"weight": 1.0,
|
|
"_src": "meals_rationale_419",
|
|
"_tgt": "meals_move_meal_item",
|
|
"confidence_score": 1.0,
|
|
"source": "meals_move_meal_item",
|
|
"target": "meals_rationale_419"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/orchestrate.py",
|
|
"source_location": "L15",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_orchestrate_py",
|
|
"_tgt": "orchestrate_orchestrate_status",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_orchestrate_py",
|
|
"target": "orchestrate_orchestrate_status"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/orchestrate.py",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_orchestrate_py",
|
|
"_tgt": "orchestrate_orchestrate_run_week",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_orchestrate_py",
|
|
"target": "orchestrate_orchestrate_run_week"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/api/orchestrate.py",
|
|
"source_location": "L51",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_api_orchestrate_py",
|
|
"_tgt": "orchestrate_orchestrate_step",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_api_orchestrate_py",
|
|
"target": "orchestrate_orchestrate_step"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_approval_py",
|
|
"_tgt": "approval_serializer",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_approval_py",
|
|
"target": "approval_serializer"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L37",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_approval_py",
|
|
"_tgt": "approval_issue_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_approval_py",
|
|
"target": "approval_issue_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_approval_py",
|
|
"_tgt": "approval_verify_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_approval_py",
|
|
"target": "approval_verify_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L57",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_approval_py",
|
|
"_tgt": "approval_consume_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_approval_py",
|
|
"target": "approval_consume_token"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "approval_rationale_1",
|
|
"_tgt": "backend_app_services_approval_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_approval_py",
|
|
"target": "approval_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "approval_issue_token",
|
|
"_tgt": "approval_serializer",
|
|
"confidence_score": 1.0,
|
|
"source": "approval_serializer",
|
|
"target": "approval_issue_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L47",
|
|
"weight": 1.0,
|
|
"_src": "approval_verify_token",
|
|
"_tgt": "approval_serializer",
|
|
"confidence_score": 1.0,
|
|
"source": "approval_serializer",
|
|
"target": "approval_verify_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L198",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_email",
|
|
"_tgt": "approval_issue_token",
|
|
"source": "approval_issue_token",
|
|
"target": "steps_step_email"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L523",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_reminder",
|
|
"_tgt": "approval_issue_token",
|
|
"source": "approval_issue_token",
|
|
"target": "steps_step_reminder"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_issue_and_verify_token_roundtrip",
|
|
"_tgt": "approval_issue_token",
|
|
"source": "approval_issue_token",
|
|
"target": "test_approval_test_issue_and_verify_token_roundtrip"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_verify_rejects_tampered_token",
|
|
"_tgt": "approval_issue_token",
|
|
"source": "approval_issue_token",
|
|
"target": "test_approval_test_verify_rejects_tampered_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L52",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_verify_rejects_expired_token",
|
|
"_tgt": "approval_issue_token",
|
|
"source": "approval_issue_token",
|
|
"target": "test_approval_test_verify_rejects_expired_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L164",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_consume_token_single_use",
|
|
"_tgt": "approval_issue_token",
|
|
"source": "approval_issue_token",
|
|
"target": "test_approval_test_consume_token_single_use"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L189",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_vote_get_renders_html",
|
|
"_tgt": "approval_issue_token",
|
|
"source": "approval_issue_token",
|
|
"target": "test_approval_test_vote_get_renders_html"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L216",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_vote_post_records_and_decides",
|
|
"_tgt": "approval_issue_token",
|
|
"source": "approval_issue_token",
|
|
"target": "test_approval_test_vote_post_records_and_decides"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L134",
|
|
"weight": 1.0,
|
|
"_src": "send_test_approval_main",
|
|
"_tgt": "approval_issue_token",
|
|
"source": "approval_issue_token",
|
|
"target": "send_test_approval_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L68",
|
|
"weight": 1.0,
|
|
"_src": "approval_consume_token",
|
|
"_tgt": "approval_verify_token",
|
|
"confidence_score": 1.0,
|
|
"source": "approval_verify_token",
|
|
"target": "approval_consume_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_issue_and_verify_token_roundtrip",
|
|
"_tgt": "approval_verify_token",
|
|
"source": "approval_verify_token",
|
|
"target": "test_approval_test_issue_and_verify_token_roundtrip"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_verify_rejects_tampered_token",
|
|
"_tgt": "approval_verify_token",
|
|
"source": "approval_verify_token",
|
|
"target": "test_approval_test_verify_rejects_tampered_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L66",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_verify_rejects_expired_token",
|
|
"_tgt": "approval_verify_token",
|
|
"source": "approval_verify_token",
|
|
"target": "test_approval_test_verify_rejects_expired_token"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/approval.py",
|
|
"source_location": "L63",
|
|
"weight": 1.0,
|
|
"_src": "approval_rationale_63",
|
|
"_tgt": "approval_consume_token",
|
|
"confidence_score": 1.0,
|
|
"source": "approval_consume_token",
|
|
"target": "approval_rationale_63"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L167",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_test_consume_token_single_use",
|
|
"_tgt": "approval_consume_token",
|
|
"source": "approval_consume_token",
|
|
"target": "test_approval_test_consume_token_single_use"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L28",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_swiftly_auth_py",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_swiftly_auth_py",
|
|
"target": "swiftly_auth_swiftlyauthminterror"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L51",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_swiftly_auth_py",
|
|
"_tgt": "swiftly_auth_reset_cache_for_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_swiftly_auth_py",
|
|
"target": "swiftly_auth_reset_cache_for_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_swiftly_auth_py",
|
|
"_tgt": "swiftly_auth_decode_jwt_payload",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_swiftly_auth_py",
|
|
"target": "swiftly_auth_decode_jwt_payload"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L72",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_swiftly_auth_py",
|
|
"_tgt": "swiftly_auth_fetch_firebase_api_key",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_swiftly_auth_py",
|
|
"target": "swiftly_auth_fetch_firebase_api_key"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L105",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_swiftly_auth_py",
|
|
"_tgt": "swiftly_auth_mint_anonymous_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_swiftly_auth_py",
|
|
"target": "swiftly_auth_mint_anonymous_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L160",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_swiftly_auth_py",
|
|
"_tgt": "swiftly_auth_get_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_swiftly_auth_py",
|
|
"target": "swiftly_auth_get_token"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_rationale_1",
|
|
"_tgt": "backend_app_services_swiftly_auth_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_swiftly_auth_py",
|
|
"target": "swiftly_auth_rationale_1"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L28",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_swiftlyauthminterror",
|
|
"_tgt": "exception",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "exception"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L62",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_decode_jwt_payload",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "swiftly_auth_decode_jwt_payload"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L83",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_fetch_firebase_api_key",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "swiftly_auth_fetch_firebase_api_key"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L127",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_mint_anonymous_token",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "swiftly_auth_mint_anonymous_token"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_rationale_29",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "swiftly_auth_rationale_29"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_swiftlyautherror",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_swiftlyautherror"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_1",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_50",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_50"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_68",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_68"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_139",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_139"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_158",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_158"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_180",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_180"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_192",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_192"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_209",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_209"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_227",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_227"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_247",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_247"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_298",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_298"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L41",
|
|
"weight": 0.8,
|
|
"_src": "lucky_ca_scraper_rationale_318",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "lucky_ca_scraper_rationale_318"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L24",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_auth_rationale_1",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "test_swiftly_auth_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L24",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_auth_rationale_72",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "test_swiftly_auth_rationale_72"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L24",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_auth_rationale_100",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "test_swiftly_auth_rationale_100"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L24",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_auth_rationale_119",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "test_swiftly_auth_rationale_119"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L24",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_auth_rationale_141",
|
|
"_tgt": "swiftly_auth_swiftlyauthminterror",
|
|
"confidence_score": 0.5,
|
|
"source": "swiftly_auth_swiftlyauthminterror",
|
|
"target": "test_swiftly_auth_rationale_141"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L49",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_swiftlyautherror",
|
|
"_tgt": "exception",
|
|
"confidence_score": 1.0,
|
|
"source": "exception",
|
|
"target": "lucky_ca_scraper_swiftlyautherror"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L96",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_run_scrape_in_background",
|
|
"_tgt": "exception",
|
|
"source": "exception",
|
|
"target": "scraper_service_run_scrape_in_background"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/alerts.py",
|
|
"source_location": "L21",
|
|
"weight": 1.0,
|
|
"_src": "alerts_send_admin_alert",
|
|
"_tgt": "exception",
|
|
"source": "exception",
|
|
"target": "alerts_send_admin_alert"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L77",
|
|
"weight": 1.0,
|
|
"_src": "runner_run_step",
|
|
"_tgt": "exception",
|
|
"source": "exception",
|
|
"target": "runner_run_step"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L52",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_rationale_52",
|
|
"_tgt": "swiftly_auth_reset_cache_for_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_reset_cache_for_tests",
|
|
"target": "swiftly_auth_rationale_52"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_clear_cache",
|
|
"_tgt": "swiftly_auth_reset_cache_for_tests",
|
|
"source": "swiftly_auth_reset_cache_for_tests",
|
|
"target": "test_swiftly_auth_clear_cache"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L144",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_mint_anonymous_token",
|
|
"_tgt": "swiftly_auth_decode_jwt_payload",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_decode_jwt_payload",
|
|
"target": "swiftly_auth_mint_anonymous_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L111",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_mint_anonymous_token",
|
|
"_tgt": "swiftly_auth_fetch_firebase_api_key",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_fetch_firebase_api_key",
|
|
"target": "swiftly_auth_mint_anonymous_token"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L171",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_get_token",
|
|
"_tgt": "swiftly_auth_mint_anonymous_token",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_mint_anonymous_token",
|
|
"target": "swiftly_auth_get_token"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L106",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_rationale_106",
|
|
"_tgt": "swiftly_auth_mint_anonymous_token",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_mint_anonymous_token",
|
|
"target": "swiftly_auth_rationale_106"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/swiftly_auth.py",
|
|
"source_location": "L161",
|
|
"weight": 1.0,
|
|
"_src": "swiftly_auth_rationale_161",
|
|
"_tgt": "swiftly_auth_get_token",
|
|
"confidence_score": 1.0,
|
|
"source": "swiftly_auth_get_token",
|
|
"target": "swiftly_auth_rationale_161"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L83",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty",
|
|
"_tgt": "swiftly_auth_get_token",
|
|
"source": "swiftly_auth_get_token",
|
|
"target": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L111",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_returns_cached_without_reminting",
|
|
"_tgt": "swiftly_auth_get_token",
|
|
"source": "swiftly_auth_get_token",
|
|
"target": "test_swiftly_auth_test_get_token_returns_cached_without_reminting"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L134",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry",
|
|
"_tgt": "swiftly_auth_get_token",
|
|
"source": "swiftly_auth_get_token",
|
|
"target": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L150",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_mint_raises_on_firebase_non_200",
|
|
"_tgt": "swiftly_auth_get_token",
|
|
"source": "swiftly_auth_get_token",
|
|
"target": "test_swiftly_auth_test_mint_raises_on_firebase_non_200"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_email_py",
|
|
"_tgt": "email_emailbackend",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_email_py",
|
|
"target": "email_emailbackend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_email_py",
|
|
"_tgt": "email_consoleemailbackend",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_email_py",
|
|
"target": "email_consoleemailbackend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L70",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_email_py",
|
|
"_tgt": "email_sendgridemailbackend",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_email_py",
|
|
"target": "email_sendgridemailbackend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L98",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_email_py",
|
|
"_tgt": "email_get_email_backend",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_email_py",
|
|
"target": "email_get_email_backend"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "email_rationale_1",
|
|
"_tgt": "backend_app_services_email_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_email_py",
|
|
"target": "email_rationale_1"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "email_emailbackend",
|
|
"_tgt": "protocol",
|
|
"confidence_score": 1.0,
|
|
"source": "email_emailbackend",
|
|
"target": "protocol"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "email_emailbackend",
|
|
"_tgt": "email_emailbackend_send",
|
|
"confidence_score": 1.0,
|
|
"source": "email_emailbackend",
|
|
"target": "email_emailbackend_send"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "email_consoleemailbackend",
|
|
"_tgt": "email_consoleemailbackend_send",
|
|
"confidence_score": 1.0,
|
|
"source": "email_consoleemailbackend",
|
|
"target": "email_consoleemailbackend_send"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L102",
|
|
"weight": 1.0,
|
|
"_src": "email_get_email_backend",
|
|
"_tgt": "email_consoleemailbackend",
|
|
"confidence_score": 1.0,
|
|
"source": "email_consoleemailbackend",
|
|
"target": "email_get_email_backend"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "email_rationale_41",
|
|
"_tgt": "email_consoleemailbackend",
|
|
"confidence_score": 1.0,
|
|
"source": "email_consoleemailbackend",
|
|
"target": "email_rationale_41"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L71",
|
|
"weight": 1.0,
|
|
"_src": "email_sendgridemailbackend",
|
|
"_tgt": "email_sendgridemailbackend_init",
|
|
"confidence_score": 1.0,
|
|
"source": "email_sendgridemailbackend",
|
|
"target": "email_sendgridemailbackend_init"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L76",
|
|
"weight": 1.0,
|
|
"_src": "email_sendgridemailbackend",
|
|
"_tgt": "email_sendgridemailbackend_send",
|
|
"confidence_score": 1.0,
|
|
"source": "email_sendgridemailbackend",
|
|
"target": "email_sendgridemailbackend_send"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/email.py",
|
|
"source_location": "L101",
|
|
"weight": 1.0,
|
|
"_src": "email_get_email_backend",
|
|
"_tgt": "email_sendgridemailbackend",
|
|
"confidence_score": 1.0,
|
|
"source": "email_sendgridemailbackend",
|
|
"target": "email_get_email_backend"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L37",
|
|
"weight": 0.8,
|
|
"_src": "test_email_backend_rationale_1",
|
|
"_tgt": "email_sendgridemailbackend",
|
|
"confidence_score": 0.5,
|
|
"source": "email_sendgridemailbackend",
|
|
"target": "test_email_backend_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L20",
|
|
"weight": 1.0,
|
|
"_src": "test_email_backend_test_sendgrid_send_calls_api",
|
|
"_tgt": "email_sendgridemailbackend",
|
|
"source": "email_sendgridemailbackend",
|
|
"target": "test_email_backend_test_sendgrid_send_calls_api"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "test_email_backend_test_sendgrid_raises_on_4xx",
|
|
"_tgt": "email_sendgridemailbackend",
|
|
"source": "email_sendgridemailbackend",
|
|
"target": "test_email_backend_test_sendgrid_raises_on_4xx"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/alerts.py",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "alerts_send_admin_alert",
|
|
"_tgt": "email_sendgridemailbackend_send",
|
|
"source": "email_sendgridemailbackend_send",
|
|
"target": "alerts_send_admin_alert"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L286",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_email",
|
|
"_tgt": "email_sendgridemailbackend_send",
|
|
"source": "email_sendgridemailbackend_send",
|
|
"target": "steps_step_email"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L447",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_finalize",
|
|
"_tgt": "email_sendgridemailbackend_send",
|
|
"source": "email_sendgridemailbackend_send",
|
|
"target": "steps_step_finalize"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L540",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_reminder",
|
|
"_tgt": "email_sendgridemailbackend_send",
|
|
"source": "email_sendgridemailbackend_send",
|
|
"target": "steps_step_reminder"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L21",
|
|
"weight": 1.0,
|
|
"_src": "test_email_backend_test_sendgrid_send_calls_api",
|
|
"_tgt": "email_sendgridemailbackend_send",
|
|
"source": "email_sendgridemailbackend_send",
|
|
"target": "test_email_backend_test_sendgrid_send_calls_api"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "test_email_backend_test_sendgrid_raises_on_4xx",
|
|
"_tgt": "email_sendgridemailbackend_send",
|
|
"source": "email_sendgridemailbackend_send",
|
|
"target": "test_email_backend_test_sendgrid_raises_on_4xx"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L146",
|
|
"weight": 1.0,
|
|
"_src": "send_test_approval_main",
|
|
"_tgt": "email_sendgridemailbackend_send",
|
|
"source": "email_sendgridemailbackend_send",
|
|
"target": "send_test_approval_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/alerts.py",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "alerts_send_admin_alert",
|
|
"_tgt": "email_get_email_backend",
|
|
"source": "email_get_email_backend",
|
|
"target": "alerts_send_admin_alert"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L192",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_email",
|
|
"_tgt": "email_get_email_backend",
|
|
"source": "email_get_email_backend",
|
|
"target": "steps_step_email"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L445",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_finalize",
|
|
"_tgt": "email_get_email_backend",
|
|
"source": "email_get_email_backend",
|
|
"target": "steps_step_finalize"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L501",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_reminder",
|
|
"_tgt": "email_get_email_backend",
|
|
"source": "email_get_email_backend",
|
|
"target": "steps_step_reminder"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L138",
|
|
"weight": 1.0,
|
|
"_src": "send_test_approval_main",
|
|
"_tgt": "email_get_email_backend",
|
|
"source": "email_get_email_backend",
|
|
"target": "send_test_approval_main"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_matcher_py",
|
|
"_tgt": "matcher_singularize",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_matcher_py",
|
|
"target": "matcher_singularize"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L87",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_matcher_py",
|
|
"_tgt": "matcher_matchresult",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_matcher_py",
|
|
"target": "matcher_matchresult"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L93",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_matcher_py",
|
|
"_tgt": "matcher_sig_words",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_matcher_py",
|
|
"target": "matcher_sig_words"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L103",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_matcher_py",
|
|
"_tgt": "matcher_run_match_job",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_matcher_py",
|
|
"target": "matcher_run_match_job"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "matcher_rationale_1",
|
|
"_tgt": "backend_app_services_matcher_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_matcher_py",
|
|
"target": "matcher_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L97",
|
|
"weight": 1.0,
|
|
"_src": "matcher_sig_words",
|
|
"_tgt": "matcher_singularize",
|
|
"confidence_score": 1.0,
|
|
"source": "matcher_singularize",
|
|
"target": "matcher_sig_words"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L43",
|
|
"weight": 1.0,
|
|
"_src": "matcher_rationale_43",
|
|
"_tgt": "matcher_singularize",
|
|
"confidence_score": 1.0,
|
|
"source": "matcher_singularize",
|
|
"target": "matcher_rationale_43"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L135",
|
|
"weight": 1.0,
|
|
"_src": "matcher_run_match_job",
|
|
"_tgt": "matcher_sig_words",
|
|
"confidence_score": 1.0,
|
|
"source": "matcher_sig_words",
|
|
"target": "matcher_run_match_job"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L94",
|
|
"weight": 1.0,
|
|
"_src": "matcher_rationale_94",
|
|
"_tgt": "matcher_sig_words",
|
|
"confidence_score": 1.0,
|
|
"source": "matcher_sig_words",
|
|
"target": "matcher_rationale_94"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "llm_matcher_get_candidates",
|
|
"_tgt": "matcher_sig_words",
|
|
"source": "matcher_sig_words",
|
|
"target": "llm_matcher_get_candidates"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/matcher.py",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "matcher_rationale_109",
|
|
"_tgt": "matcher_run_match_job",
|
|
"confidence_score": 1.0,
|
|
"source": "matcher_run_match_job",
|
|
"target": "matcher_rationale_109"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L91",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_run_scrape_in_background",
|
|
"_tgt": "matcher_run_match_job",
|
|
"source": "matcher_run_match_job",
|
|
"target": "scraper_service_run_scrape_in_background"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_match_hook.py",
|
|
"source_location": "L55",
|
|
"weight": 1.0,
|
|
"_src": "test_match_hook_test_run_match_job_persists_top_matches",
|
|
"_tgt": "matcher_run_match_job",
|
|
"source": "matcher_run_match_job",
|
|
"target": "test_match_hook_test_run_match_job_persists_top_matches"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "test_thin_phase4_smoke_test_match_job_runs_against_seeded_data",
|
|
"_tgt": "matcher_run_match_job",
|
|
"source": "matcher_run_match_job",
|
|
"target": "test_thin_phase4_smoke_test_match_job_runs_against_seeded_data"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_generate.py",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_generate_test_generate_meal_plan_against_seeded_data",
|
|
"_tgt": "matcher_run_match_job",
|
|
"source": "matcher_run_match_job",
|
|
"target": "test_planner_generate_test_generate_meal_plan_against_seeded_data"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "test_meal_plan_generate_api_family_with_groceries",
|
|
"_tgt": "matcher_run_match_job",
|
|
"source": "matcher_run_match_job",
|
|
"target": "test_meal_plan_generate_api_family_with_groceries"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L36",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_scraper_service_py",
|
|
"_tgt": "scraper_service_enqueue_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_scraper_service_py",
|
|
"target": "scraper_service_enqueue_scrape"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L65",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_scraper_service_py",
|
|
"_tgt": "scraper_service_run_scrape_in_background",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_scraper_service_py",
|
|
"target": "scraper_service_run_scrape_in_background"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L123",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_scraper_service_py",
|
|
"_tgt": "scraper_service_scraperservice",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_scraper_service_py",
|
|
"target": "scraper_service_scraperservice"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_rationale_1",
|
|
"_tgt": "backend_app_services_scraper_service_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_scraper_service_py",
|
|
"target": "scraper_service_rationale_1"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L43",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_rationale_43",
|
|
"_tgt": "scraper_service_enqueue_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_enqueue_scrape",
|
|
"target": "scraper_service_rationale_43"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L81",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_run_scrape_in_background",
|
|
"_tgt": "scraper_service_scraperservice",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_run_scrape_in_background",
|
|
"target": "scraper_service_scraperservice"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L82",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_run_scrape_in_background",
|
|
"_tgt": "scraper_service_scraperservice_do_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_run_scrape_in_background",
|
|
"target": "scraper_service_scraperservice_do_scrape"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L68",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_rationale_68",
|
|
"_tgt": "scraper_service_run_scrape_in_background",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_run_scrape_in_background",
|
|
"target": "scraper_service_rationale_68"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L93",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_run_scrape_in_background",
|
|
"_tgt": "llm_matcher_run_llm_match_job",
|
|
"source": "scraper_service_run_scrape_in_background",
|
|
"target": "llm_matcher_run_llm_match_job"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L209",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_background_runner_writes_failed_with_token_message",
|
|
"_tgt": "scraper_service_run_scrape_in_background",
|
|
"source": "scraper_service_run_scrape_in_background",
|
|
"target": "test_swiftly_api_test_background_runner_writes_failed_with_token_message"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L124",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice",
|
|
"_tgt": "scraper_service_scraperservice_init",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_scraperservice",
|
|
"target": "scraper_service_scraperservice_init"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L127",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice",
|
|
"_tgt": "scraper_service_scraperservice_run_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_scraperservice",
|
|
"target": "scraper_service_scraperservice_run_scrape"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L180",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice",
|
|
"_tgt": "scraper_service_scraperservice_do_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_scraperservice",
|
|
"target": "scraper_service_scraperservice_do_scrape"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L200",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice",
|
|
"_tgt": "scraper_service_scraperservice_save_grocery_item",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_scraperservice",
|
|
"target": "scraper_service_scraperservice_save_grocery_item"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L285",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice",
|
|
"_tgt": "scraper_service_scraperservice_get_sale_items",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_scraperservice",
|
|
"target": "scraper_service_scraperservice_get_sale_items"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L25",
|
|
"weight": 0.8,
|
|
"_src": "steps_rationale_1",
|
|
"_tgt": "scraper_service_scraperservice",
|
|
"confidence_score": 0.5,
|
|
"source": "scraper_service_scraperservice",
|
|
"target": "steps_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_scrape",
|
|
"_tgt": "scraper_service_scraperservice",
|
|
"source": "scraper_service_scraperservice",
|
|
"target": "steps_step_scrape"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L147",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice_run_scrape",
|
|
"_tgt": "scraper_service_scraperservice_do_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_scraperservice_run_scrape",
|
|
"target": "scraper_service_scraperservice_do_scrape"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L130",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_rationale_130",
|
|
"_tgt": "scraper_service_scraperservice_run_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_scraperservice_run_scrape",
|
|
"target": "scraper_service_rationale_130"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_scrape",
|
|
"_tgt": "scraper_service_scraperservice_run_scrape",
|
|
"source": "scraper_service_scraperservice_run_scrape",
|
|
"target": "steps_step_scrape"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L194",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice_do_scrape",
|
|
"_tgt": "scraper_service_scraperservice_save_grocery_item",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_scraperservice_do_scrape",
|
|
"target": "scraper_service_scraperservice_save_grocery_item"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L181",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_rationale_181",
|
|
"_tgt": "scraper_service_scraperservice_do_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "scraper_service_scraperservice_do_scrape",
|
|
"target": "scraper_service_rationale_181"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L188",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice_do_scrape",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"source": "scraper_service_scraperservice_do_scrape",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L192",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice_do_scrape",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"source": "scraper_service_scraperservice_do_scrape",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_fetch_all"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/scraper_service.py",
|
|
"source_location": "L197",
|
|
"weight": 1.0,
|
|
"_src": "scraper_service_scraperservice_do_scrape",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_cleanup",
|
|
"source": "scraper_service_scraperservice_do_scrape",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_cleanup"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_llm_matcher_py",
|
|
"_tgt": "llm_matcher_get_candidates",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_llm_matcher_py",
|
|
"target": "llm_matcher_get_candidates"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L86",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_llm_matcher_py",
|
|
"_tgt": "llm_matcher_get_unmatched_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_llm_matcher_py",
|
|
"target": "llm_matcher_get_unmatched_ingredients"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L97",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_llm_matcher_py",
|
|
"_tgt": "llm_matcher_ask_ollama",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_llm_matcher_py",
|
|
"target": "llm_matcher_ask_ollama"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L147",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_llm_matcher_py",
|
|
"_tgt": "llm_matcher_run_llm_match_job",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_llm_matcher_py",
|
|
"target": "llm_matcher_run_llm_match_job"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "llm_matcher_rationale_1",
|
|
"_tgt": "backend_app_services_llm_matcher_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_llm_matcher_py",
|
|
"target": "llm_matcher_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L180",
|
|
"weight": 1.0,
|
|
"_src": "llm_matcher_run_llm_match_job",
|
|
"_tgt": "llm_matcher_get_candidates",
|
|
"confidence_score": 1.0,
|
|
"source": "llm_matcher_get_candidates",
|
|
"target": "llm_matcher_run_llm_match_job"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "llm_matcher_rationale_42",
|
|
"_tgt": "llm_matcher_get_candidates",
|
|
"confidence_score": 1.0,
|
|
"source": "llm_matcher_get_candidates",
|
|
"target": "llm_matcher_rationale_42"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L168",
|
|
"weight": 1.0,
|
|
"_src": "llm_matcher_run_llm_match_job",
|
|
"_tgt": "llm_matcher_get_unmatched_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "llm_matcher_get_unmatched_ingredients",
|
|
"target": "llm_matcher_run_llm_match_job"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L87",
|
|
"weight": 1.0,
|
|
"_src": "llm_matcher_rationale_87",
|
|
"_tgt": "llm_matcher_get_unmatched_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "llm_matcher_get_unmatched_ingredients",
|
|
"target": "llm_matcher_rationale_87"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L188",
|
|
"weight": 1.0,
|
|
"_src": "llm_matcher_run_llm_match_job",
|
|
"_tgt": "llm_matcher_ask_ollama",
|
|
"confidence_score": 1.0,
|
|
"source": "llm_matcher_ask_ollama",
|
|
"target": "llm_matcher_run_llm_match_job"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L98",
|
|
"weight": 1.0,
|
|
"_src": "llm_matcher_rationale_98",
|
|
"_tgt": "llm_matcher_ask_ollama",
|
|
"confidence_score": 1.0,
|
|
"source": "llm_matcher_ask_ollama",
|
|
"target": "llm_matcher_rationale_98"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/llm_matcher.py",
|
|
"source_location": "L152",
|
|
"weight": 1.0,
|
|
"_src": "llm_matcher_rationale_152",
|
|
"_tgt": "llm_matcher_run_llm_match_job",
|
|
"confidence_score": 1.0,
|
|
"source": "llm_matcher_run_llm_match_job",
|
|
"target": "llm_matcher_rationale_152"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/config.py",
|
|
"source_location": "L8",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_config_py",
|
|
"_tgt": "config_plannerconfig",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_config_py",
|
|
"target": "config_plannerconfig"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/config.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "config_rationale_1",
|
|
"_tgt": "backend_app_services_planner_config_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_config_py",
|
|
"target": "config_rationale_1"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/config.py",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "config_plannerconfig",
|
|
"_tgt": "config_plannerconfig_validate",
|
|
"confidence_score": 1.0,
|
|
"source": "config_plannerconfig",
|
|
"target": "config_plannerconfig_validate"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L8",
|
|
"weight": 0.8,
|
|
"_src": "filter_rationale_1",
|
|
"_tgt": "config_plannerconfig",
|
|
"confidence_score": 0.5,
|
|
"source": "config_plannerconfig",
|
|
"target": "filter_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L9",
|
|
"weight": 0.8,
|
|
"_src": "score_rationale_1",
|
|
"_tgt": "config_plannerconfig",
|
|
"confidence_score": 0.5,
|
|
"source": "config_plannerconfig",
|
|
"target": "score_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L9",
|
|
"weight": 0.8,
|
|
"_src": "score_rationale_60",
|
|
"_tgt": "config_plannerconfig",
|
|
"confidence_score": 0.5,
|
|
"source": "config_plannerconfig",
|
|
"target": "score_rationale_60"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L12",
|
|
"weight": 0.8,
|
|
"_src": "select_rationale_1",
|
|
"_tgt": "config_plannerconfig",
|
|
"confidence_score": 0.5,
|
|
"source": "config_plannerconfig",
|
|
"target": "select_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L24",
|
|
"weight": 0.8,
|
|
"_src": "generate_rationale_1",
|
|
"_tgt": "config_plannerconfig",
|
|
"confidence_score": 0.5,
|
|
"source": "config_plannerconfig",
|
|
"target": "generate_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L24",
|
|
"weight": 0.8,
|
|
"_src": "generate_rationale_33",
|
|
"_tgt": "config_plannerconfig",
|
|
"confidence_score": 0.5,
|
|
"source": "config_plannerconfig",
|
|
"target": "generate_rationale_33"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L4",
|
|
"weight": 0.8,
|
|
"_src": "test_planner_select_rationale_50",
|
|
"_tgt": "config_plannerconfig",
|
|
"confidence_score": 0.5,
|
|
"source": "config_plannerconfig",
|
|
"target": "test_planner_select_rationale_50"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_types_py",
|
|
"_tgt": "types_ingredientcost",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_types_py",
|
|
"target": "types_ingredientcost"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_types_py",
|
|
"_tgt": "types_recipecost",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_types_py",
|
|
"target": "types_recipecost"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L37",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_types_py",
|
|
"_tgt": "types_sale_coverage_pct",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_types_py",
|
|
"target": "types_sale_coverage_pct"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L43",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_types_py",
|
|
"_tgt": "types_pantry_hit_pct",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_types_py",
|
|
"target": "types_pantry_hit_pct"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_types_py",
|
|
"_tgt": "types_filterresult",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_types_py",
|
|
"target": "types_filterresult"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L56",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_types_py",
|
|
"_tgt": "types_scoredrecipe",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_types_py",
|
|
"target": "types_scoredrecipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L66",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_types_py",
|
|
"_tgt": "types_generationresult",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_types_py",
|
|
"target": "types_generationresult"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/types.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "types_rationale_1",
|
|
"_tgt": "backend_app_services_planner_types_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_types_py",
|
|
"target": "types_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L27",
|
|
"weight": 0.8,
|
|
"_src": "cost_rationale_1",
|
|
"_tgt": "types_ingredientcost",
|
|
"confidence_score": 0.5,
|
|
"source": "types_ingredientcost",
|
|
"target": "cost_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L69",
|
|
"weight": 1.0,
|
|
"_src": "cost_compute_recipe_cost",
|
|
"_tgt": "types_ingredientcost",
|
|
"source": "types_ingredientcost",
|
|
"target": "cost_compute_recipe_cost"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L27",
|
|
"weight": 0.8,
|
|
"_src": "cost_rationale_1",
|
|
"_tgt": "types_recipecost",
|
|
"confidence_score": 0.5,
|
|
"source": "types_recipecost",
|
|
"target": "cost_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L9",
|
|
"weight": 0.8,
|
|
"_src": "filter_rationale_1",
|
|
"_tgt": "types_recipecost",
|
|
"confidence_score": 0.5,
|
|
"source": "types_recipecost",
|
|
"target": "filter_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L10",
|
|
"weight": 0.8,
|
|
"_src": "score_rationale_1",
|
|
"_tgt": "types_recipecost",
|
|
"confidence_score": 0.5,
|
|
"source": "types_recipecost",
|
|
"target": "score_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L10",
|
|
"weight": 0.8,
|
|
"_src": "score_rationale_60",
|
|
"_tgt": "types_recipecost",
|
|
"confidence_score": 0.5,
|
|
"source": "types_recipecost",
|
|
"target": "score_rationale_60"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L6",
|
|
"weight": 0.8,
|
|
"_src": "test_planner_select_rationale_50",
|
|
"_tgt": "types_recipecost",
|
|
"confidence_score": 0.5,
|
|
"source": "types_recipecost",
|
|
"target": "test_planner_select_rationale_50"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L114",
|
|
"weight": 1.0,
|
|
"_src": "cost_compute_recipe_cost",
|
|
"_tgt": "types_recipecost",
|
|
"source": "types_recipecost",
|
|
"target": "cost_compute_recipe_cost"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L36",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_cost",
|
|
"_tgt": "types_recipecost",
|
|
"source": "types_recipecost",
|
|
"target": "test_planner_filter_cost"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L79",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_score_test_score_recipes_orders_by_combined_score",
|
|
"_tgt": "types_recipecost",
|
|
"source": "types_recipecost",
|
|
"target": "test_planner_score_test_score_recipes_orders_by_combined_score"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_mk",
|
|
"_tgt": "types_recipecost",
|
|
"source": "types_recipecost",
|
|
"target": "test_planner_select_mk"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L9",
|
|
"weight": 0.8,
|
|
"_src": "filter_rationale_1",
|
|
"_tgt": "types_filterresult",
|
|
"confidence_score": 0.5,
|
|
"source": "types_filterresult",
|
|
"target": "filter_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L88",
|
|
"weight": 1.0,
|
|
"_src": "filter_filter_recipes",
|
|
"_tgt": "types_filterresult",
|
|
"source": "types_filterresult",
|
|
"target": "filter_filter_recipes"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L10",
|
|
"weight": 0.8,
|
|
"_src": "score_rationale_1",
|
|
"_tgt": "types_scoredrecipe",
|
|
"confidence_score": 0.5,
|
|
"source": "types_scoredrecipe",
|
|
"target": "score_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L10",
|
|
"weight": 0.8,
|
|
"_src": "score_rationale_60",
|
|
"_tgt": "types_scoredrecipe",
|
|
"confidence_score": 0.5,
|
|
"source": "types_scoredrecipe",
|
|
"target": "score_rationale_60"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L13",
|
|
"weight": 0.8,
|
|
"_src": "select_rationale_1",
|
|
"_tgt": "types_scoredrecipe",
|
|
"confidence_score": 0.5,
|
|
"source": "types_scoredrecipe",
|
|
"target": "select_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L6",
|
|
"weight": 0.8,
|
|
"_src": "test_planner_select_rationale_50",
|
|
"_tgt": "types_scoredrecipe",
|
|
"confidence_score": 0.5,
|
|
"source": "types_scoredrecipe",
|
|
"target": "test_planner_select_rationale_50"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L99",
|
|
"weight": 1.0,
|
|
"_src": "score_score_recipes",
|
|
"_tgt": "types_scoredrecipe",
|
|
"source": "types_scoredrecipe",
|
|
"target": "score_score_recipes"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_mk",
|
|
"_tgt": "types_scoredrecipe",
|
|
"source": "types_scoredrecipe",
|
|
"target": "test_planner_select_mk"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L29",
|
|
"weight": 0.8,
|
|
"_src": "generate_rationale_1",
|
|
"_tgt": "types_generationresult",
|
|
"confidence_score": 0.5,
|
|
"source": "types_generationresult",
|
|
"target": "generate_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L29",
|
|
"weight": 0.8,
|
|
"_src": "generate_rationale_33",
|
|
"_tgt": "types_generationresult",
|
|
"confidence_score": 0.5,
|
|
"source": "types_generationresult",
|
|
"target": "generate_rationale_33"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L240",
|
|
"weight": 0.8,
|
|
"_src": "test_orchestrator_rationale_1",
|
|
"_tgt": "types_generationresult",
|
|
"confidence_score": 0.5,
|
|
"source": "types_generationresult",
|
|
"target": "test_orchestrator_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L200",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "types_generationresult",
|
|
"source": "types_generationresult",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L244",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_generate_creates_plan",
|
|
"_tgt": "types_generationresult",
|
|
"source": "types_generationresult",
|
|
"target": "test_orchestrator_test_step_generate_creates_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_cost_py",
|
|
"_tgt": "cost_decimal",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_cost_py",
|
|
"target": "cost_decimal"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L36",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_cost_py",
|
|
"_tgt": "cost_scale",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_cost_py",
|
|
"target": "cost_scale"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_cost_py",
|
|
"_tgt": "cost_compute_recipe_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_cost_py",
|
|
"target": "cost_compute_recipe_cost"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "cost_rationale_1",
|
|
"_tgt": "backend_app_services_planner_cost_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_cost_py",
|
|
"target": "cost_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L86",
|
|
"weight": 1.0,
|
|
"_src": "cost_compute_recipe_cost",
|
|
"_tgt": "cost_decimal",
|
|
"confidence_score": 1.0,
|
|
"source": "cost_decimal",
|
|
"target": "cost_compute_recipe_cost"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/cost.py",
|
|
"source_location": "L89",
|
|
"weight": 1.0,
|
|
"_src": "cost_compute_recipe_cost",
|
|
"_tgt": "cost_scale",
|
|
"confidence_score": 1.0,
|
|
"source": "cost_scale",
|
|
"target": "cost_compute_recipe_cost"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L137",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "cost_compute_recipe_cost",
|
|
"source": "cost_compute_recipe_cost",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_cost_test_compute_recipe_cost_sums_ingredient_costs",
|
|
"_tgt": "cost_compute_recipe_cost",
|
|
"source": "cost_compute_recipe_cost",
|
|
"target": "test_planner_cost_test_compute_recipe_cost_sums_ingredient_costs"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_cost_test_unmatched_ingredient_zero_cost_and_savings",
|
|
"_tgt": "cost_compute_recipe_cost",
|
|
"source": "cost_compute_recipe_cost",
|
|
"target": "test_planner_cost_test_unmatched_ingredient_zero_cost_and_savings"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L73",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_cost_test_pantry_hits_counted",
|
|
"_tgt": "cost_compute_recipe_cost",
|
|
"source": "cost_compute_recipe_cost",
|
|
"target": "test_planner_cost_test_pantry_hits_counted"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L12",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_filter_py",
|
|
"_tgt": "filter_calorie_band",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_filter_py",
|
|
"target": "filter_calorie_band"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_filter_py",
|
|
"_tgt": "filter_filter_recipes",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_filter_py",
|
|
"target": "filter_filter_recipes"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "filter_rationale_1",
|
|
"_tgt": "backend_app_services_planner_filter_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_filter_py",
|
|
"target": "filter_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/filter.py",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "filter_filter_recipes",
|
|
"_tgt": "filter_calorie_band",
|
|
"confidence_score": 1.0,
|
|
"source": "filter_calorie_band",
|
|
"target": "filter_filter_recipes"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L146",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "filter_filter_recipes",
|
|
"source": "filter_filter_recipes",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_never_suggest_ingredient",
|
|
"_tgt": "filter_filter_recipes",
|
|
"source": "filter_filter_recipes",
|
|
"target": "test_planner_filter_test_filter_blocks_by_never_suggest_ingredient"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L72",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_never_suggest_recipe",
|
|
"_tgt": "filter_filter_recipes",
|
|
"source": "filter_filter_recipes",
|
|
"target": "test_planner_filter_test_filter_blocks_by_never_suggest_recipe"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L90",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_recency",
|
|
"_tgt": "filter_filter_recipes",
|
|
"source": "filter_filter_recipes",
|
|
"target": "test_planner_filter_test_filter_blocks_by_recency"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L107",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_calories",
|
|
"_tgt": "filter_filter_recipes",
|
|
"source": "filter_filter_recipes",
|
|
"target": "test_planner_filter_test_filter_blocks_by_calories"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L125",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_time",
|
|
"_tgt": "filter_filter_recipes",
|
|
"source": "filter_filter_recipes",
|
|
"target": "test_planner_filter_test_filter_blocks_by_time"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L143",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_cost",
|
|
"_tgt": "filter_filter_recipes",
|
|
"source": "filter_filter_recipes",
|
|
"target": "test_planner_filter_test_filter_blocks_by_cost"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L160",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_passes_when_calorie_target_is_none",
|
|
"_tgt": "filter_filter_recipes",
|
|
"source": "filter_filter_recipes",
|
|
"target": "test_planner_filter_test_filter_passes_when_calorie_target_is_none"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L176",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_recipe_with_null_calories_when_target_set",
|
|
"_tgt": "filter_filter_recipes",
|
|
"source": "filter_filter_recipes",
|
|
"target": "test_planner_filter_test_filter_blocks_recipe_with_null_calories_when_target_set"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_score_py",
|
|
"_tgt": "score_time_bonus",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_score_py",
|
|
"target": "score_time_bonus"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_score_py",
|
|
"_tgt": "score_recency_bonus",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_score_py",
|
|
"target": "score_recency_bonus"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_score_py",
|
|
"_tgt": "score_normalize_savings",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_score_py",
|
|
"target": "score_normalize_savings"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L52",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_score_py",
|
|
"_tgt": "score_score_recipes",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_score_py",
|
|
"target": "score_score_recipes"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "score_rationale_1",
|
|
"_tgt": "backend_app_services_planner_score_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_score_py",
|
|
"target": "score_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "score_score_recipes",
|
|
"_tgt": "score_time_bonus",
|
|
"confidence_score": 1.0,
|
|
"source": "score_time_bonus",
|
|
"target": "score_score_recipes"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_score_test_time_bonus_capped_at_ideal",
|
|
"_tgt": "score_time_bonus",
|
|
"source": "score_time_bonus",
|
|
"target": "test_planner_score_test_time_bonus_capped_at_ideal"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L24",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_score_test_time_bonus_decays_to_zero_at_full",
|
|
"_tgt": "score_time_bonus",
|
|
"source": "score_time_bonus",
|
|
"target": "test_planner_score_test_time_bonus_decays_to_zero_at_full"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_score_test_time_bonus_linear_midpoint",
|
|
"_tgt": "score_time_bonus",
|
|
"source": "score_time_bonus",
|
|
"target": "test_planner_score_test_time_bonus_linear_midpoint"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L76",
|
|
"weight": 1.0,
|
|
"_src": "score_score_recipes",
|
|
"_tgt": "score_recency_bonus",
|
|
"confidence_score": 1.0,
|
|
"source": "score_recency_bonus",
|
|
"target": "score_score_recipes"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_score_test_recency_bonus_full_when_long_ago",
|
|
"_tgt": "score_recency_bonus",
|
|
"source": "score_recency_bonus",
|
|
"target": "test_planner_score_test_recency_bonus_full_when_long_ago"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_score_test_recency_bonus_zero_when_just_eligible",
|
|
"_tgt": "score_recency_bonus",
|
|
"source": "score_recency_bonus",
|
|
"target": "test_planner_score_test_recency_bonus_zero_when_just_eligible"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_score_test_recency_bonus_full_when_never_cooked",
|
|
"_tgt": "score_recency_bonus",
|
|
"source": "score_recency_bonus",
|
|
"target": "test_planner_score_test_recency_bonus_full_when_never_cooked"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L66",
|
|
"weight": 1.0,
|
|
"_src": "score_score_recipes",
|
|
"_tgt": "score_normalize_savings",
|
|
"confidence_score": 1.0,
|
|
"source": "score_normalize_savings",
|
|
"target": "score_score_recipes"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_score_test_normalize_savings_minmax",
|
|
"_tgt": "score_normalize_savings",
|
|
"source": "score_normalize_savings",
|
|
"target": "test_planner_score_test_normalize_savings_minmax"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L55",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_score_test_normalize_savings_uniform_returns_zeros",
|
|
"_tgt": "score_normalize_savings",
|
|
"source": "score_normalize_savings",
|
|
"target": "test_planner_score_test_normalize_savings_uniform_returns_zeros"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/score.py",
|
|
"source_location": "L60",
|
|
"weight": 1.0,
|
|
"_src": "score_rationale_60",
|
|
"_tgt": "score_score_recipes",
|
|
"confidence_score": 1.0,
|
|
"source": "score_score_recipes",
|
|
"target": "score_rationale_60"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L159",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "score_score_recipes",
|
|
"source": "score_score_recipes",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L100",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_score_test_score_recipes_orders_by_combined_score",
|
|
"_tgt": "score_score_recipes",
|
|
"source": "score_score_recipes",
|
|
"target": "test_planner_score_test_score_recipes_orders_by_combined_score"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L16",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_select_py",
|
|
"_tgt": "select_set_diversity_penalty",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_select_py",
|
|
"target": "select_set_diversity_penalty"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_select_py",
|
|
"_tgt": "select_set_score",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_select_py",
|
|
"target": "select_set_score"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_select_py",
|
|
"_tgt": "select_select_set",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_select_py",
|
|
"target": "select_select_set"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "select_rationale_1",
|
|
"_tgt": "backend_app_services_planner_select_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_select_py",
|
|
"target": "select_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "select_set_score",
|
|
"_tgt": "select_set_diversity_penalty",
|
|
"confidence_score": 1.0,
|
|
"source": "select_set_diversity_penalty",
|
|
"target": "select_set_score"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L37",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_test_diversity_penalty_zero_when_all_unique",
|
|
"_tgt": "select_set_diversity_penalty",
|
|
"source": "select_set_diversity_penalty",
|
|
"target": "test_planner_select_test_diversity_penalty_zero_when_all_unique"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_test_diversity_penalty_three_chickens",
|
|
"_tgt": "select_set_diversity_penalty",
|
|
"source": "select_set_diversity_penalty",
|
|
"target": "test_planner_select_test_diversity_penalty_three_chickens"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/select.py",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "select_select_set",
|
|
"_tgt": "select_set_score",
|
|
"confidence_score": 1.0,
|
|
"source": "select_set_score",
|
|
"target": "select_select_set"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L166",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "select_select_set",
|
|
"source": "select_select_set",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L63",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_test_select_set_picks_diverse_over_homogeneous",
|
|
"_tgt": "select_select_set",
|
|
"source": "select_select_set",
|
|
"target": "test_planner_select_test_select_set_picks_diverse_over_homogeneous"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L71",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_test_select_set_handles_too_few",
|
|
"_tgt": "select_select_set",
|
|
"source": "select_select_set",
|
|
"target": "test_planner_select_test_select_set_handles_too_few"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L76",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_test_select_set_empty_input",
|
|
"_tgt": "select_select_set",
|
|
"source": "select_select_set",
|
|
"target": "test_planner_select_test_select_set_empty_input"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L32",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_generate_py",
|
|
"_tgt": "generate_load_match_index",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_generate_py",
|
|
"target": "generate_load_match_index"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L55",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_generate_py",
|
|
"_tgt": "generate_load_blocklists",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_generate_py",
|
|
"target": "generate_load_blocklists"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L68",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_generate_py",
|
|
"_tgt": "generate_load_pantry",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_generate_py",
|
|
"target": "generate_load_pantry"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L76",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_generate_py",
|
|
"_tgt": "generate_load_last_cooked",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_generate_py",
|
|
"target": "generate_load_last_cooked"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L92",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_planner_generate_py",
|
|
"_tgt": "generate_generate_meal_plan",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_generate_py",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "generate_rationale_1",
|
|
"_tgt": "backend_app_services_planner_generate_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_planner_generate_py",
|
|
"target": "generate_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L131",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "generate_load_match_index",
|
|
"confidence_score": 1.0,
|
|
"source": "generate_load_match_index",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "generate_rationale_33",
|
|
"_tgt": "generate_load_match_index",
|
|
"confidence_score": 1.0,
|
|
"source": "generate_load_match_index",
|
|
"target": "generate_rationale_33"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L133",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "generate_load_blocklists",
|
|
"confidence_score": 1.0,
|
|
"source": "generate_load_blocklists",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L132",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "generate_load_pantry",
|
|
"confidence_score": 1.0,
|
|
"source": "generate_load_pantry",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/planner/generate.py",
|
|
"source_location": "L134",
|
|
"weight": 1.0,
|
|
"_src": "generate_generate_meal_plan",
|
|
"_tgt": "generate_load_last_cooked",
|
|
"confidence_score": 1.0,
|
|
"source": "generate_load_last_cooked",
|
|
"target": "generate_generate_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L73",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_generate",
|
|
"_tgt": "generate_generate_meal_plan",
|
|
"source": "generate_generate_meal_plan",
|
|
"target": "steps_step_generate"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_planner_generate.py",
|
|
"source_location": "L65",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_generate_test_generate_meal_plan_against_seeded_data",
|
|
"_tgt": "generate_generate_meal_plan",
|
|
"source": "generate_generate_meal_plan",
|
|
"target": "test_planner_generate_test_generate_meal_plan_against_seeded_data"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/alerts.py",
|
|
"source_location": "L9",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_alerts_py",
|
|
"_tgt": "alerts_send_admin_alert",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_alerts_py",
|
|
"target": "alerts_send_admin_alert"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L57",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_scrape",
|
|
"_tgt": "alerts_send_admin_alert",
|
|
"source": "alerts_send_admin_alert",
|
|
"target": "steps_step_scrape"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L85",
|
|
"weight": 1.0,
|
|
"_src": "steps_step_generate",
|
|
"_tgt": "alerts_send_admin_alert",
|
|
"source": "alerts_send_admin_alert",
|
|
"target": "steps_step_generate"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L165",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_send_admin_alert_noop_when_email_unset",
|
|
"_tgt": "alerts_send_admin_alert",
|
|
"source": "alerts_send_admin_alert",
|
|
"target": "test_orchestrator_test_send_admin_alert_noop_when_email_unset"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L184",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_send_admin_alert_calls_backend",
|
|
"_tgt": "alerts_send_admin_alert",
|
|
"source": "alerts_send_admin_alert",
|
|
"target": "test_orchestrator_test_send_admin_alert_calls_backend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L20",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_runner_py",
|
|
"_tgt": "runner_current_week_start",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_runner_py",
|
|
"target": "runner_current_week_start"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_runner_py",
|
|
"_tgt": "runner_get_or_create_run",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_runner_py",
|
|
"target": "runner_get_or_create_run"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_runner_py",
|
|
"_tgt": "runner_run_step",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_runner_py",
|
|
"target": "runner_run_step"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L84",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_runner_py",
|
|
"_tgt": "runner_run_week",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_runner_py",
|
|
"target": "runner_run_week"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "runner_rationale_1",
|
|
"_tgt": "backend_app_services_orchestrator_runner_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_runner_py",
|
|
"target": "runner_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L65",
|
|
"weight": 1.0,
|
|
"_src": "runner_run_step",
|
|
"_tgt": "runner_current_week_start",
|
|
"confidence_score": 1.0,
|
|
"source": "runner_current_week_start",
|
|
"target": "runner_run_step"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L85",
|
|
"weight": 1.0,
|
|
"_src": "runner_run_week",
|
|
"_tgt": "runner_current_week_start",
|
|
"confidence_score": 1.0,
|
|
"source": "runner_current_week_start",
|
|
"target": "runner_run_week"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L21",
|
|
"weight": 1.0,
|
|
"_src": "runner_rationale_21",
|
|
"_tgt": "runner_current_week_start",
|
|
"confidence_score": 1.0,
|
|
"source": "runner_current_week_start",
|
|
"target": "runner_rationale_21"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L73",
|
|
"weight": 1.0,
|
|
"_src": "runner_run_step",
|
|
"_tgt": "runner_get_or_create_run",
|
|
"confidence_score": 1.0,
|
|
"source": "runner_get_or_create_run",
|
|
"target": "runner_run_step"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/runner.py",
|
|
"source_location": "L87",
|
|
"weight": 1.0,
|
|
"_src": "runner_run_week",
|
|
"_tgt": "runner_run_step",
|
|
"confidence_score": 1.0,
|
|
"source": "runner_run_step",
|
|
"target": "runner_run_week"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L599",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_run_step_upserts_weekly_run",
|
|
"_tgt": "runner_run_step",
|
|
"source": "runner_run_step",
|
|
"target": "test_orchestrator_test_run_step_upserts_weekly_run"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L609",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_run_step_invalid_raises",
|
|
"_tgt": "runner_run_step",
|
|
"source": "runner_run_step",
|
|
"target": "test_orchestrator_test_run_step_invalid_raises"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L623",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_run_week_calls_all_steps",
|
|
"_tgt": "runner_run_week",
|
|
"source": "runner_run_week",
|
|
"target": "test_orchestrator_test_run_week_calls_all_steps"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_steps_py",
|
|
"_tgt": "steps_step_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_steps_py",
|
|
"target": "steps_step_scrape"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L67",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_steps_py",
|
|
"_tgt": "steps_step_generate",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_steps_py",
|
|
"target": "steps_step_generate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L92",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_steps_py",
|
|
"_tgt": "steps_step_email",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_steps_py",
|
|
"target": "steps_step_email"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L297",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_steps_py",
|
|
"_tgt": "steps_step_deadline",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_steps_py",
|
|
"target": "steps_step_deadline"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L335",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_steps_py",
|
|
"_tgt": "steps_step_finalize",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_steps_py",
|
|
"target": "steps_step_finalize"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L460",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_services_orchestrator_steps_py",
|
|
"_tgt": "steps_step_reminder",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_steps_py",
|
|
"target": "steps_step_reminder"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/services/orchestrator/steps.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "steps_rationale_1",
|
|
"_tgt": "backend_app_services_orchestrator_steps_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_services_orchestrator_steps_py",
|
|
"target": "steps_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L197",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_scrape_idempotent",
|
|
"_tgt": "steps_step_scrape",
|
|
"source": "steps_step_scrape",
|
|
"target": "test_orchestrator_test_step_scrape_idempotent"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L207",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_scrape_success",
|
|
"_tgt": "steps_step_scrape",
|
|
"source": "steps_step_scrape",
|
|
"target": "test_orchestrator_test_step_scrape_success"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L222",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_scrape_both_fail_marks_stale",
|
|
"_tgt": "steps_step_scrape",
|
|
"source": "steps_step_scrape",
|
|
"target": "test_orchestrator_test_step_scrape_both_fail_marks_stale"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L234",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_generate_idempotent",
|
|
"_tgt": "steps_step_generate",
|
|
"source": "steps_step_generate",
|
|
"target": "test_orchestrator_test_step_generate_idempotent"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L253",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_generate_creates_plan",
|
|
"_tgt": "steps_step_generate",
|
|
"source": "steps_step_generate",
|
|
"target": "test_orchestrator_test_step_generate_creates_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L268",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_generate_records_error_on_failure",
|
|
"_tgt": "steps_step_generate",
|
|
"source": "steps_step_generate",
|
|
"target": "test_orchestrator_test_step_generate_records_error_on_failure"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L279",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_email_idempotent",
|
|
"_tgt": "steps_step_email",
|
|
"source": "steps_step_email",
|
|
"target": "test_orchestrator_test_step_email_idempotent"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L295",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_email_sends_per_member",
|
|
"_tgt": "steps_step_email",
|
|
"source": "steps_step_email",
|
|
"target": "test_orchestrator_test_step_email_sends_per_member"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L315",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_email_stale_banner",
|
|
"_tgt": "steps_step_email",
|
|
"source": "steps_step_email",
|
|
"target": "test_orchestrator_test_step_email_stale_banner"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L336",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_email_escapes_recipe_name",
|
|
"_tgt": "steps_step_email",
|
|
"source": "steps_step_email",
|
|
"target": "test_orchestrator_test_step_email_escapes_recipe_name"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L459",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_deadline_idempotent",
|
|
"_tgt": "steps_step_deadline",
|
|
"source": "steps_step_deadline",
|
|
"target": "test_orchestrator_test_step_deadline_idempotent"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L468",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_deadline_resolves_pending_to_approved",
|
|
"_tgt": "steps_step_deadline",
|
|
"source": "steps_step_deadline",
|
|
"target": "test_orchestrator_test_step_deadline_resolves_pending_to_approved"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L479",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_deadline_resolves_pending_to_denied",
|
|
"_tgt": "steps_step_deadline",
|
|
"source": "steps_step_deadline",
|
|
"target": "test_orchestrator_test_step_deadline_resolves_pending_to_denied"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L535",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_finalize_idempotent",
|
|
"_tgt": "steps_step_finalize",
|
|
"source": "steps_step_finalize",
|
|
"target": "test_orchestrator_test_step_finalize_idempotent"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L551",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_finalize_sends_shopping_list",
|
|
"_tgt": "steps_step_finalize",
|
|
"source": "steps_step_finalize",
|
|
"target": "test_orchestrator_test_step_finalize_sends_shopping_list"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L571",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_finalize_no_approved_sends_empty_message",
|
|
"_tgt": "steps_step_finalize",
|
|
"source": "steps_step_finalize",
|
|
"target": "test_orchestrator_test_step_finalize_no_approved_sends_empty_message"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L348",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_reminder_idempotent",
|
|
"_tgt": "steps_step_reminder",
|
|
"source": "steps_step_reminder",
|
|
"target": "test_orchestrator_test_step_reminder_idempotent"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L364",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_reminder_skips_when_not_emailed",
|
|
"_tgt": "steps_step_reminder",
|
|
"source": "steps_step_reminder",
|
|
"target": "test_orchestrator_test_step_reminder_skips_when_not_emailed"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L384",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_reminder_sends_to_non_voter",
|
|
"_tgt": "steps_step_reminder",
|
|
"source": "steps_step_reminder",
|
|
"target": "test_orchestrator_test_step_reminder_sends_to_non_voter"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L414",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_reminder_skips_voter",
|
|
"_tgt": "steps_step_reminder",
|
|
"source": "steps_step_reminder",
|
|
"target": "test_orchestrator_test_step_reminder_skips_voter"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L444",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_test_step_reminder_no_sends_when_all_voted",
|
|
"_tgt": "steps_step_reminder",
|
|
"source": "steps_step_reminder",
|
|
"target": "test_orchestrator_test_step_reminder_no_sends_when_all_voted"
|
|
},
|
|
{
|
|
"relation": "imports_from",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L3",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_base_py",
|
|
"_tgt": "abc",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_base_py",
|
|
"target": "abc"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_base_py",
|
|
"_tgt": "base_basescraper",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_base_py",
|
|
"target": "base_basescraper"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L102",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_base_py",
|
|
"_tgt": "base_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_base_py",
|
|
"target": "base_scrape"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_base_py",
|
|
"_tgt": "base_seleniumscraper",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_base_py",
|
|
"target": "base_seleniumscraper"
|
|
},
|
|
{
|
|
"relation": "imports_from",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/__init__.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_init_py",
|
|
"_tgt": "backend_app_scraper_base_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_base_py",
|
|
"target": "backend_app_scraper_init_py"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "base_basescraper",
|
|
"_tgt": "abc",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper",
|
|
"target": "abc"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L15",
|
|
"weight": 1.0,
|
|
"_src": "base_basescraper",
|
|
"_tgt": "base_basescraper_init",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper",
|
|
"target": "base_basescraper_init"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "base_basescraper",
|
|
"_tgt": "base_basescraper_create_session",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper",
|
|
"target": "base_basescraper_create_session"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L51",
|
|
"weight": 1.0,
|
|
"_src": "base_basescraper",
|
|
"_tgt": "base_basescraper_rate_limit",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper",
|
|
"target": "base_basescraper_rate_limit"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "base_basescraper",
|
|
"_tgt": "base_basescraper_get",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper",
|
|
"target": "base_basescraper_get"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L80",
|
|
"weight": 1.0,
|
|
"_src": "base_basescraper",
|
|
"_tgt": "base_basescraper_post",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper",
|
|
"target": "base_basescraper_post"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L105",
|
|
"weight": 1.0,
|
|
"_src": "base_basescraper",
|
|
"_tgt": "base_basescraper_log_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper",
|
|
"target": "base_basescraper_log_scrape"
|
|
},
|
|
{
|
|
"relation": "inherits",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "base_seleniumscraper",
|
|
"_tgt": "base_basescraper",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper",
|
|
"target": "base_seleniumscraper"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "base_basescraper_init",
|
|
"_tgt": "base_basescraper_create_session",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper_init",
|
|
"target": "base_basescraper_create_session"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L60",
|
|
"weight": 1.0,
|
|
"_src": "base_basescraper_get",
|
|
"_tgt": "base_basescraper_rate_limit",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper_rate_limit",
|
|
"target": "base_basescraper_get"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L81",
|
|
"weight": 1.0,
|
|
"_src": "base_basescraper_post",
|
|
"_tgt": "base_basescraper_rate_limit",
|
|
"confidence_score": 1.0,
|
|
"source": "base_basescraper_rate_limit",
|
|
"target": "base_basescraper_post"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L110",
|
|
"weight": 1.0,
|
|
"_src": "base_seleniumscraper",
|
|
"_tgt": "base_seleniumscraper_init",
|
|
"confidence_score": 1.0,
|
|
"source": "base_seleniumscraper",
|
|
"target": "base_seleniumscraper_init"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L114",
|
|
"weight": 1.0,
|
|
"_src": "base_seleniumscraper",
|
|
"_tgt": "base_seleniumscraper_init_playwright",
|
|
"confidence_score": 1.0,
|
|
"source": "base_seleniumscraper",
|
|
"target": "base_seleniumscraper_init_playwright"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L123",
|
|
"weight": 1.0,
|
|
"_src": "base_seleniumscraper",
|
|
"_tgt": "base_seleniumscraper_get_playwright",
|
|
"confidence_score": 1.0,
|
|
"source": "base_seleniumscraper",
|
|
"target": "base_seleniumscraper_get_playwright"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L127",
|
|
"weight": 1.0,
|
|
"_src": "base_seleniumscraper",
|
|
"_tgt": "base_seleniumscraper_get_browser_page",
|
|
"confidence_score": 1.0,
|
|
"source": "base_seleniumscraper",
|
|
"target": "base_seleniumscraper_get_browser_page"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L133",
|
|
"weight": 1.0,
|
|
"_src": "base_seleniumscraper",
|
|
"_tgt": "base_seleniumscraper_cleanup",
|
|
"confidence_score": 1.0,
|
|
"source": "base_seleniumscraper",
|
|
"target": "base_seleniumscraper_cleanup"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L124",
|
|
"weight": 1.0,
|
|
"_src": "base_seleniumscraper_get_playwright",
|
|
"_tgt": "base_seleniumscraper_init_playwright",
|
|
"confidence_score": 1.0,
|
|
"source": "base_seleniumscraper_init_playwright",
|
|
"target": "base_seleniumscraper_get_playwright"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/base.py",
|
|
"source_location": "L128",
|
|
"weight": 1.0,
|
|
"_src": "base_seleniumscraper_get_browser_page",
|
|
"_tgt": "base_seleniumscraper_get_playwright",
|
|
"confidence_score": 1.0,
|
|
"source": "base_seleniumscraper_get_playwright",
|
|
"target": "base_seleniumscraper_get_browser_page"
|
|
},
|
|
{
|
|
"relation": "imports_from",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/__init__.py",
|
|
"source_location": "L2",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_init_py",
|
|
"_tgt": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_init_py",
|
|
"target": "backend_app_scraper_lucky_ca_scraper_py"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L49",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"_tgt": "lucky_ca_scraper_swiftlyautherror",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"target": "lucky_ca_scraper_swiftlyautherror"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L67",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L191",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"_tgt": "lucky_ca_scraper_parse_categories_html",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"target": "lucky_ca_scraper_parse_categories_html"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L226",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"_tgt": "lucky_ca_scraper_parse_category_response",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"target": "lucky_ca_scraper_parse_category_response"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L240",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"_tgt": "lucky_ca_scraper_map_product",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"target": "lucky_ca_scraper_map_product"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L297",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"_tgt": "lucky_ca_scraper_parse_price",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"target": "lucky_ca_scraper_parse_price"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L317",
|
|
"weight": 1.0,
|
|
"_src": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"_tgt": "lucky_ca_scraper_aisle_from_slug",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"target": "lucky_ca_scraper_aisle_from_slug"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_rationale_1",
|
|
"_tgt": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scraper_lucky_ca_scraper_py",
|
|
"target": "lucky_ca_scraper_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L220",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"_tgt": "lucky_ca_scraper_swiftlyautherror",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_swiftlyautherror",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_fetch_category"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_rationale_50",
|
|
"_tgt": "lucky_ca_scraper_swiftlyautherror",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_swiftlyautherror",
|
|
"target": "lucky_ca_scraper_rationale_50"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_1",
|
|
"_tgt": "lucky_ca_scraper_swiftlyautherror",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_swiftlyautherror",
|
|
"target": "test_swiftly_api_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_41",
|
|
"_tgt": "lucky_ca_scraper_swiftlyautherror",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_swiftlyautherror",
|
|
"target": "test_swiftly_api_rationale_41"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_58",
|
|
"_tgt": "lucky_ca_scraper_swiftlyautherror",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_swiftlyautherror",
|
|
"target": "test_swiftly_api_rationale_58"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_108",
|
|
"_tgt": "lucky_ca_scraper_swiftlyautherror",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_swiftlyautherror",
|
|
"target": "test_swiftly_api_rationale_108"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_136",
|
|
"_tgt": "lucky_ca_scraper_swiftlyautherror",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_swiftlyautherror",
|
|
"target": "test_swiftly_api_rationale_136"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_172",
|
|
"_tgt": "lucky_ca_scraper_swiftlyautherror",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_swiftlyautherror",
|
|
"target": "test_swiftly_api_rationale_172"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L30",
|
|
"weight": 0.8,
|
|
"_src": "spike_swiftly_ingest_rationale_1",
|
|
"_tgt": "lucky_ca_scraper_swiftlyautherror",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_swiftlyautherror",
|
|
"target": "spike_swiftly_ingest_rationale_1"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L86",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_init",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_init"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L129",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_cleanup",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_cleanup"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L138",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_scrape"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L157",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_fetch_all"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L179",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_discover_categories",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_discover_categories"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L208",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_fetch_category"
|
|
},
|
|
{
|
|
"relation": "method",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L325",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_rate_limit",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_rate_limit"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L68",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_rationale_68",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "lucky_ca_scraper_rationale_68"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_1",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "test_swiftly_api_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_41",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "test_swiftly_api_rationale_41"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_58",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "test_swiftly_api_rationale_58"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_108",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "test_swiftly_api_rationale_108"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_136",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "test_swiftly_api_rationale_136"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L180",
|
|
"weight": 0.8,
|
|
"_src": "test_swiftly_api_rationale_172",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "test_swiftly_api_rationale_172"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "scripts/spike_lucky_scrape.py",
|
|
"source_location": "L27",
|
|
"weight": 0.8,
|
|
"_src": "spike_lucky_scrape_rationale_1",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "spike_lucky_scrape_rationale_1"
|
|
},
|
|
{
|
|
"relation": "uses",
|
|
"confidence": "INFERRED",
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L30",
|
|
"weight": 0.8,
|
|
"_src": "spike_swiftly_ingest_rationale_1",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"confidence_score": 0.5,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "spike_swiftly_ingest_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L137",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L152",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/spike_lucky_scrape.py",
|
|
"source_location": "L118",
|
|
"weight": 1.0,
|
|
"_src": "spike_lucky_scrape_main",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "spike_lucky_scrape_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L61",
|
|
"weight": 1.0,
|
|
"_src": "spike_swiftly_ingest_main",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper",
|
|
"target": "spike_swiftly_ingest_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L97",
|
|
"weight": 1.0,
|
|
"_src": "spike_swiftly_ingest_main",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_cleanup",
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_cleanup",
|
|
"target": "spike_swiftly_ingest_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L146",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper_scrape",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_scrape",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_fetch_all"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L139",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_rationale_139",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_scrape",
|
|
"target": "lucky_ca_scraper_rationale_139"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L159",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_discover_categories",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_discover_categories"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L163",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_fetch_category"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L170",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"_tgt": "lucky_ca_scraper_aisle_from_slug",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"target": "lucky_ca_scraper_aisle_from_slug"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L172",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"_tgt": "lucky_ca_scraper_map_product",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"target": "lucky_ca_scraper_map_product"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L158",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_rationale_158",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_all",
|
|
"target": "lucky_ca_scraper_rationale_158"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L185",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper_discover_categories",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_rate_limit",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_discover_categories",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_rate_limit"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L188",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper_discover_categories",
|
|
"_tgt": "lucky_ca_scraper_parse_categories_html",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_discover_categories",
|
|
"target": "lucky_ca_scraper_parse_categories_html"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L180",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_rationale_180",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_discover_categories",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_discover_categories",
|
|
"target": "lucky_ca_scraper_rationale_180"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L63",
|
|
"weight": 1.0,
|
|
"_src": "spike_swiftly_ingest_main",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_discover_categories",
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_discover_categories",
|
|
"target": "spike_swiftly_ingest_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_parse_categories_fixture",
|
|
"_tgt": "lucky_ca_scraper_parse_categories_html",
|
|
"source": "lucky_ca_scraper_parse_categories_html",
|
|
"target": "test_swiftly_api_test_parse_categories_fixture"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L212",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_rate_limit",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"target": "lucky_ca_scraper_luckycaliforniascraper_rate_limit"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L223",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"_tgt": "lucky_ca_scraper_parse_category_response",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"target": "lucky_ca_scraper_parse_category_response"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L209",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_rationale_209",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"target": "lucky_ca_scraper_rationale_209"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L141",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"target": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L163",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"target": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L71",
|
|
"weight": 1.0,
|
|
"_src": "spike_swiftly_ingest_main",
|
|
"_tgt": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"source": "lucky_ca_scraper_luckycaliforniascraper_fetch_category",
|
|
"target": "spike_swiftly_ingest_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L63",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_parse_category_response_fixture",
|
|
"_tgt": "lucky_ca_scraper_parse_category_response",
|
|
"source": "lucky_ca_scraper_parse_category_response",
|
|
"target": "test_swiftly_api_test_parse_category_response_fixture"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scraper/lucky_ca_scraper.py",
|
|
"source_location": "L258",
|
|
"weight": 1.0,
|
|
"_src": "lucky_ca_scraper_map_product",
|
|
"_tgt": "lucky_ca_scraper_parse_price",
|
|
"confidence_score": 1.0,
|
|
"source": "lucky_ca_scraper_map_product",
|
|
"target": "lucky_ca_scraper_parse_price"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L68",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_parse_category_response_fixture",
|
|
"_tgt": "lucky_ca_scraper_map_product",
|
|
"source": "lucky_ca_scraper_map_product",
|
|
"target": "test_swiftly_api_test_parse_category_response_fixture"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_map_product_returns_none_for_unparseable",
|
|
"_tgt": "lucky_ca_scraper_map_product",
|
|
"source": "lucky_ca_scraper_map_product",
|
|
"target": "test_swiftly_api_test_map_product_returns_none_for_unparseable"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L81",
|
|
"weight": 1.0,
|
|
"_src": "spike_swiftly_ingest_main",
|
|
"_tgt": "lucky_ca_scraper_map_product",
|
|
"source": "lucky_ca_scraper_map_product",
|
|
"target": "spike_swiftly_ingest_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "INFERRED",
|
|
"confidence_score": 0.8,
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L78",
|
|
"weight": 1.0,
|
|
"_src": "spike_swiftly_ingest_main",
|
|
"_tgt": "lucky_ca_scraper_aisle_from_slug",
|
|
"source": "lucky_ca_scraper_aisle_from_slug",
|
|
"target": "spike_swiftly_ingest_main"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/app/scheduler/__main__.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "main_rationale_1",
|
|
"_tgt": "backend_app_scheduler_main_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_app_scheduler_main_py",
|
|
"target": "main_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/env.py",
|
|
"source_location": "L22",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_env_py",
|
|
"_tgt": "env_run_migrations_offline",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_env_py",
|
|
"target": "env_run_migrations_offline"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/env.py",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_env_py",
|
|
"_tgt": "env_run_migrations_online",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_env_py",
|
|
"target": "env_run_migrations_online"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0003_grocery_item_description.py",
|
|
"source_location": "L24",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0003_grocery_item_description_py",
|
|
"_tgt": "0003_grocery_item_description_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0003_grocery_item_description_py",
|
|
"target": "0003_grocery_item_description_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0003_grocery_item_description.py",
|
|
"source_location": "L31",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0003_grocery_item_description_py",
|
|
"_tgt": "0003_grocery_item_description_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0003_grocery_item_description_py",
|
|
"target": "0003_grocery_item_description_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0003_grocery_item_description.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "0003_grocery_item_description_rationale_1",
|
|
"_tgt": "backend_alembic_versions_0003_grocery_item_description_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0003_grocery_item_description_py",
|
|
"target": "0003_grocery_item_description_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0002_seed_data.py",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0002_seed_data_py",
|
|
"_tgt": "0002_seed_data_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0002_seed_data_py",
|
|
"target": "0002_seed_data_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0002_seed_data.py",
|
|
"source_location": "L112",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0002_seed_data_py",
|
|
"_tgt": "0002_seed_data_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0002_seed_data_py",
|
|
"target": "0002_seed_data_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0002_seed_data.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "0002_seed_data_rationale_1",
|
|
"_tgt": "backend_alembic_versions_0002_seed_data_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0002_seed_data_py",
|
|
"target": "0002_seed_data_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0004_family_profile_calorie_target.py",
|
|
"source_location": "L22",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0004_family_profile_calorie_target_py",
|
|
"_tgt": "0004_family_profile_calorie_target_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0004_family_profile_calorie_target_py",
|
|
"target": "0004_family_profile_calorie_target_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0004_family_profile_calorie_target.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0004_family_profile_calorie_target_py",
|
|
"_tgt": "0004_family_profile_calorie_target_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0004_family_profile_calorie_target_py",
|
|
"target": "0004_family_profile_calorie_target_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0004_family_profile_calorie_target.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "0004_family_profile_calorie_target_rationale_1",
|
|
"_tgt": "backend_alembic_versions_0004_family_profile_calorie_target_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0004_family_profile_calorie_target_py",
|
|
"target": "0004_family_profile_calorie_target_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0001_initial_migration.py",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0001_initial_migration_py",
|
|
"_tgt": "0001_initial_migration_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0001_initial_migration_py",
|
|
"target": "0001_initial_migration_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0001_initial_migration.py",
|
|
"source_location": "L288",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0001_initial_migration_py",
|
|
"_tgt": "0001_initial_migration_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0001_initial_migration_py",
|
|
"target": "0001_initial_migration_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0001_initial_migration.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "0001_initial_migration_rationale_1",
|
|
"_tgt": "backend_alembic_versions_0001_initial_migration_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0001_initial_migration_py",
|
|
"target": "0001_initial_migration_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0005_grocery_item_external_id.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0005_grocery_item_external_id_py",
|
|
"_tgt": "0005_grocery_item_external_id_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0005_grocery_item_external_id_py",
|
|
"target": "0005_grocery_item_external_id_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0005_grocery_item_external_id.py",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0005_grocery_item_external_id_py",
|
|
"_tgt": "0005_grocery_item_external_id_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0005_grocery_item_external_id_py",
|
|
"target": "0005_grocery_item_external_id_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0005_grocery_item_external_id.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "0005_grocery_item_external_id_rationale_1",
|
|
"_tgt": "backend_alembic_versions_0005_grocery_item_external_id_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0005_grocery_item_external_id_py",
|
|
"target": "0005_grocery_item_external_id_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0006_recipe_engine_thin.py",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0006_recipe_engine_thin_py",
|
|
"_tgt": "0006_recipe_engine_thin_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0006_recipe_engine_thin_py",
|
|
"target": "0006_recipe_engine_thin_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0006_recipe_engine_thin.py",
|
|
"source_location": "L88",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0006_recipe_engine_thin_py",
|
|
"_tgt": "0006_recipe_engine_thin_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0006_recipe_engine_thin_py",
|
|
"target": "0006_recipe_engine_thin_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0006_recipe_engine_thin.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "0006_recipe_engine_thin_rationale_1",
|
|
"_tgt": "backend_alembic_versions_0006_recipe_engine_thin_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0006_recipe_engine_thin_py",
|
|
"target": "0006_recipe_engine_thin_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L82",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"_tgt": "0007_seed_recipes_upsert_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"target": "0007_seed_recipes_upsert_ingredients"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L767",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"_tgt": "0007_seed_recipes_insert_recipes",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"target": "0007_seed_recipes_insert_recipes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L823",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"_tgt": "0007_seed_recipes_delete_recipes",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"target": "0007_seed_recipes_delete_recipes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L832",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"_tgt": "0007_seed_recipes_delete_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"target": "0007_seed_recipes_delete_ingredients"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L846",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"_tgt": "0007_seed_recipes_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"target": "0007_seed_recipes_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L851",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"_tgt": "0007_seed_recipes_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"target": "0007_seed_recipes_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "0007_seed_recipes_rationale_1",
|
|
"_tgt": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0007_seed_recipes_py",
|
|
"target": "0007_seed_recipes_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L847",
|
|
"weight": 1.0,
|
|
"_src": "0007_seed_recipes_upgrade",
|
|
"_tgt": "0007_seed_recipes_upsert_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "0007_seed_recipes_upsert_ingredients",
|
|
"target": "0007_seed_recipes_upgrade"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L848",
|
|
"weight": 1.0,
|
|
"_src": "0007_seed_recipes_upgrade",
|
|
"_tgt": "0007_seed_recipes_insert_recipes",
|
|
"confidence_score": 1.0,
|
|
"source": "0007_seed_recipes_insert_recipes",
|
|
"target": "0007_seed_recipes_upgrade"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L852",
|
|
"weight": 1.0,
|
|
"_src": "0007_seed_recipes_downgrade",
|
|
"_tgt": "0007_seed_recipes_delete_recipes",
|
|
"confidence_score": 1.0,
|
|
"source": "0007_seed_recipes_delete_recipes",
|
|
"target": "0007_seed_recipes_downgrade"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L853",
|
|
"weight": 1.0,
|
|
"_src": "0007_seed_recipes_downgrade",
|
|
"_tgt": "0007_seed_recipes_delete_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "0007_seed_recipes_delete_ingredients",
|
|
"target": "0007_seed_recipes_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0007_seed_recipes.py",
|
|
"source_location": "L833",
|
|
"weight": 1.0,
|
|
"_src": "0007_seed_recipes_rationale_833",
|
|
"_tgt": "0007_seed_recipes_delete_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "0007_seed_recipes_delete_ingredients",
|
|
"target": "0007_seed_recipes_rationale_833"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0008_phase5_orchestration.py",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0008_phase5_orchestration_py",
|
|
"_tgt": "0008_phase5_orchestration_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0008_phase5_orchestration_py",
|
|
"target": "0008_phase5_orchestration_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0008_phase5_orchestration.py",
|
|
"source_location": "L67",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0008_phase5_orchestration_py",
|
|
"_tgt": "0008_phase5_orchestration_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0008_phase5_orchestration_py",
|
|
"target": "0008_phase5_orchestration_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0008_phase5_orchestration.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "0008_phase5_orchestration_rationale_1",
|
|
"_tgt": "backend_alembic_versions_0008_phase5_orchestration_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0008_phase5_orchestration_py",
|
|
"target": "0008_phase5_orchestration_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0009_phase6_reminded_at.py",
|
|
"source_location": "L16",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0009_phase6_reminded_at_py",
|
|
"_tgt": "0009_phase6_reminded_at_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0009_phase6_reminded_at_py",
|
|
"target": "0009_phase6_reminded_at_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0009_phase6_reminded_at.py",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0009_phase6_reminded_at_py",
|
|
"_tgt": "0009_phase6_reminded_at_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0009_phase6_reminded_at_py",
|
|
"target": "0009_phase6_reminded_at_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0009_phase6_reminded_at.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "0009_phase6_reminded_at_rationale_1",
|
|
"_tgt": "backend_alembic_versions_0009_phase6_reminded_at_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0009_phase6_reminded_at_py",
|
|
"target": "0009_phase6_reminded_at_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0010_auto_llm_source.py",
|
|
"source_location": "L15",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0010_auto_llm_source_py",
|
|
"_tgt": "0010_auto_llm_source_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0010_auto_llm_source_py",
|
|
"target": "0010_auto_llm_source_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0010_auto_llm_source.py",
|
|
"source_location": "L21",
|
|
"weight": 1.0,
|
|
"_src": "backend_alembic_versions_0010_auto_llm_source_py",
|
|
"_tgt": "0010_auto_llm_source_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0010_auto_llm_source_py",
|
|
"target": "0010_auto_llm_source_downgrade"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/alembic/versions/0010_auto_llm_source.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "0010_auto_llm_source_rationale_1",
|
|
"_tgt": "backend_alembic_versions_0010_auto_llm_source_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_alembic_versions_0010_auto_llm_source_py",
|
|
"target": "0010_auto_llm_source_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_alembic.py",
|
|
"source_location": "L21",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_alembic_py",
|
|
"_tgt": "test_alembic_test_alembic_upgrade_head_roundtrip",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_alembic_py",
|
|
"target": "test_alembic_test_alembic_upgrade_head_roundtrip"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_alembic.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_alembic_rationale_1",
|
|
"_tgt": "backend_tests_test_alembic_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_alembic_py",
|
|
"target": "test_alembic_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L15",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_smoke_py",
|
|
"_tgt": "test_smoke_test_app_imports",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_smoke_py",
|
|
"target": "test_smoke_test_app_imports"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L21",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_smoke_py",
|
|
"_tgt": "test_smoke_test_health",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_smoke_py",
|
|
"target": "test_smoke_test_health"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L28",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_smoke_py",
|
|
"_tgt": "test_smoke_test_health_db",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_smoke_py",
|
|
"target": "test_smoke_test_health_db"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L49",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_smoke_py",
|
|
"_tgt": "test_smoke_test_router_list_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_smoke_py",
|
|
"target": "test_smoke_test_router_list_endpoints"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_smoke_rationale_1",
|
|
"_tgt": "backend_tests_test_smoke_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_smoke_py",
|
|
"target": "test_smoke_rationale_1"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_smoke.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "test_smoke_rationale_50",
|
|
"_tgt": "test_smoke_test_router_list_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "test_smoke_test_router_list_endpoints",
|
|
"target": "test_smoke_rationale_50"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L25",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_auth_py",
|
|
"_tgt": "test_auth_reload_settings",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_auth_py",
|
|
"target": "test_auth_reload_settings"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_auth_py",
|
|
"_tgt": "test_auth_test_admin_requires_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_auth_py",
|
|
"target": "test_auth_test_admin_requires_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L55",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_auth_py",
|
|
"_tgt": "test_auth_test_admin_logs_requires_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_auth_py",
|
|
"target": "test_auth_test_admin_logs_requires_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L69",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_auth_py",
|
|
"_tgt": "test_auth_test_session_required_for_mutation",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_auth_py",
|
|
"target": "test_auth_test_session_required_for_mutation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L79",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_auth_py",
|
|
"_tgt": "test_auth_test_session_open_for_reads",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_auth_py",
|
|
"target": "test_auth_test_session_open_for_reads"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L90",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_auth_py",
|
|
"_tgt": "test_auth_test_session_login_logout",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_auth_py",
|
|
"target": "test_auth_test_session_login_logout"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_auth_rationale_1",
|
|
"_tgt": "backend_tests_test_auth_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_auth_py",
|
|
"target": "test_auth_rationale_1"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "test_auth_rationale_26",
|
|
"_tgt": "test_auth_reload_settings",
|
|
"confidence_score": 1.0,
|
|
"source": "test_auth_reload_settings",
|
|
"target": "test_auth_rationale_26"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "test_auth_rationale_42",
|
|
"_tgt": "test_auth_test_admin_requires_token",
|
|
"confidence_score": 1.0,
|
|
"source": "test_auth_test_admin_requires_token",
|
|
"target": "test_auth_rationale_42"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L70",
|
|
"weight": 1.0,
|
|
"_src": "test_auth_rationale_70",
|
|
"_tgt": "test_auth_test_session_required_for_mutation",
|
|
"confidence_score": 1.0,
|
|
"source": "test_auth_test_session_required_for_mutation",
|
|
"target": "test_auth_rationale_70"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_auth.py",
|
|
"source_location": "L80",
|
|
"weight": 1.0,
|
|
"_src": "test_auth_rationale_80",
|
|
"_tgt": "test_auth_test_session_open_for_reads",
|
|
"confidence_score": 1.0,
|
|
"source": "test_auth_test_session_open_for_reads",
|
|
"target": "test_auth_rationale_80"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_scrape_endpoint.py",
|
|
"source_location": "L20",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_scrape_endpoint_py",
|
|
"_tgt": "test_scrape_endpoint_admin_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_scrape_endpoint_py",
|
|
"target": "test_scrape_endpoint_admin_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_scrape_endpoint.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_scrape_endpoint_py",
|
|
"_tgt": "test_scrape_endpoint_test_scrape_returns_202_and_log_id",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_scrape_endpoint_py",
|
|
"target": "test_scrape_endpoint_test_scrape_returns_202_and_log_id"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_scrape_endpoint.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_scrape_endpoint_rationale_1",
|
|
"_tgt": "backend_tests_test_scrape_endpoint_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_scrape_endpoint_py",
|
|
"target": "test_scrape_endpoint_rationale_1"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_scrape_endpoint.py",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "test_scrape_endpoint_rationale_27",
|
|
"_tgt": "test_scrape_endpoint_test_scrape_returns_202_and_log_id",
|
|
"confidence_score": 1.0,
|
|
"source": "test_scrape_endpoint_test_scrape_returns_202_and_log_id",
|
|
"target": "test_scrape_endpoint_rationale_27"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_approval_py",
|
|
"_tgt": "test_approval_test_issue_and_verify_token_roundtrip",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_approval_py",
|
|
"target": "test_approval_test_issue_and_verify_token_roundtrip"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L32",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_approval_py",
|
|
"_tgt": "test_approval_test_verify_rejects_tampered_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_approval_py",
|
|
"target": "test_approval_test_verify_rejects_tampered_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_approval_py",
|
|
"_tgt": "test_approval_test_verify_rejects_expired_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_approval_py",
|
|
"target": "test_approval_test_verify_rejects_expired_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L74",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_approval_py",
|
|
"_tgt": "test_approval_scenario",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_approval_py",
|
|
"target": "test_approval_scenario"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L159",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_approval_py",
|
|
"_tgt": "test_approval_test_consume_token_single_use",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_approval_py",
|
|
"target": "test_approval_test_consume_token_single_use"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L186",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_approval_py",
|
|
"_tgt": "test_approval_test_vote_get_renders_html",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_approval_py",
|
|
"target": "test_approval_test_vote_get_renders_html"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L207",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_approval_py",
|
|
"_tgt": "test_approval_test_vote_post_records_and_decides",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_approval_py",
|
|
"target": "test_approval_test_vote_post_records_and_decides"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_rationale_1",
|
|
"_tgt": "backend_tests_test_approval_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_approval_py",
|
|
"target": "test_approval_rationale_1"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L43",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_rationale_43",
|
|
"_tgt": "test_approval_test_verify_rejects_expired_token",
|
|
"confidence_score": 1.0,
|
|
"source": "test_approval_test_verify_rejects_expired_token",
|
|
"target": "test_approval_rationale_43"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_rationale_75",
|
|
"_tgt": "test_approval_scenario",
|
|
"confidence_score": 1.0,
|
|
"source": "test_approval_scenario",
|
|
"target": "test_approval_rationale_75"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_approval.py",
|
|
"source_location": "L208",
|
|
"weight": 1.0,
|
|
"_src": "test_approval_rationale_208",
|
|
"_tgt": "test_approval_test_vote_post_records_and_decides",
|
|
"confidence_score": 1.0,
|
|
"source": "test_approval_test_vote_post_records_and_decides",
|
|
"target": "test_approval_rationale_208"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_config.py",
|
|
"source_location": "L12",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_config_py",
|
|
"_tgt": "test_config_test_database_url_required",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_config_py",
|
|
"target": "test_config_test_database_url_required"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_config.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_config_rationale_1",
|
|
"_tgt": "backend_tests_test_config_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_config_py",
|
|
"target": "test_config_rationale_1"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_config.py",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "test_config_rationale_13",
|
|
"_tgt": "test_config_test_database_url_required",
|
|
"confidence_score": 1.0,
|
|
"source": "test_config_test_database_url_required",
|
|
"target": "test_config_rationale_13"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_schema.py",
|
|
"source_location": "L7",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_schema_py",
|
|
"_tgt": "test_ingredient_schema_test_ingredient_create_normalizes_aliases",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_schema_py",
|
|
"target": "test_ingredient_schema_test_ingredient_create_normalizes_aliases"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_schema.py",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_schema_py",
|
|
"_tgt": "test_ingredient_schema_test_ingredient_match_read_round_trip",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_schema_py",
|
|
"target": "test_ingredient_schema_test_ingredient_match_read_round_trip"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L9",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_recipe_schema_py",
|
|
"_tgt": "test_recipe_schema_test_recipe_create_requires_canonical_ingredient_ids",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_recipe_schema_py",
|
|
"target": "test_recipe_schema_test_recipe_create_requires_canonical_ingredient_ids"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L25",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_recipe_schema_py",
|
|
"_tgt": "test_recipe_schema_test_recipe_create_rejects_empty_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_recipe_schema_py",
|
|
"target": "test_recipe_schema_test_recipe_create_rejects_empty_ingredients"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_schema.py",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_recipe_schema_py",
|
|
"_tgt": "test_recipe_schema_test_resolve_ingredient_request_round_trip",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_recipe_schema_py",
|
|
"target": "test_recipe_schema_test_resolve_ingredient_request_round_trip"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L6",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_recipe_api_py",
|
|
"_tgt": "test_recipe_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_recipe_api_py",
|
|
"target": "test_recipe_api_admin_headers"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_recipe_api_py",
|
|
"_tgt": "test_recipe_api_new_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_recipe_api_py",
|
|
"target": "test_recipe_api_new_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L20",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_recipe_api_py",
|
|
"_tgt": "test_recipe_api_test_create_recipe_with_canonical_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_recipe_api_py",
|
|
"target": "test_recipe_api_test_create_recipe_with_canonical_ingredients"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_recipe_api_py",
|
|
"_tgt": "test_recipe_api_test_create_recipe_rejects_unknown_ingredient_id",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_recipe_api_py",
|
|
"target": "test_recipe_api_test_create_recipe_rejects_unknown_ingredient_id"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L63",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_recipe_api_py",
|
|
"_tgt": "test_recipe_api_test_list_recipes_returns_seeded_data",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_recipe_api_py",
|
|
"target": "test_recipe_api_test_list_recipes_returns_seeded_data"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "test_recipe_api_new_ingredient",
|
|
"_tgt": "test_recipe_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_recipe_api_admin_headers",
|
|
"target": "test_recipe_api_new_ingredient"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "test_recipe_api_test_create_recipe_with_canonical_ingredients",
|
|
"_tgt": "test_recipe_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_recipe_api_admin_headers",
|
|
"target": "test_recipe_api_test_create_recipe_with_canonical_ingredients"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "test_recipe_api_test_create_recipe_rejects_unknown_ingredient_id",
|
|
"_tgt": "test_recipe_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_recipe_api_admin_headers",
|
|
"target": "test_recipe_api_test_create_recipe_rejects_unknown_ingredient_id"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L78",
|
|
"weight": 1.0,
|
|
"_src": "test_recipe_api_test_list_recipes_returns_seeded_data",
|
|
"_tgt": "test_recipe_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_recipe_api_admin_headers",
|
|
"target": "test_recipe_api_test_list_recipes_returns_seeded_data"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L21",
|
|
"weight": 1.0,
|
|
"_src": "test_recipe_api_test_create_recipe_with_canonical_ingredients",
|
|
"_tgt": "test_recipe_api_new_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "test_recipe_api_new_ingredient",
|
|
"target": "test_recipe_api_test_create_recipe_with_canonical_ingredients"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_recipe_api.py",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "test_recipe_api_test_list_recipes_returns_seeded_data",
|
|
"_tgt": "test_recipe_api_new_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "test_recipe_api_new_ingredient",
|
|
"target": "test_recipe_api_test_list_recipes_returns_seeded_data"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L6",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_resolve_ingredient_py",
|
|
"_tgt": "test_resolve_ingredient_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_resolve_ingredient_py",
|
|
"target": "test_resolve_ingredient_admin"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_resolve_ingredient_py",
|
|
"_tgt": "test_resolve_ingredient_seed_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_resolve_ingredient_py",
|
|
"target": "test_resolve_ingredient_seed_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_resolve_ingredient_py",
|
|
"_tgt": "test_resolve_ingredient_test_resolve_ingredient_returns_top_three_candidates",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_resolve_ingredient_py",
|
|
"target": "test_resolve_ingredient_test_resolve_ingredient_returns_top_three_candidates"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_resolve_ingredient_py",
|
|
"_tgt": "test_resolve_ingredient_test_resolve_ingredient_handles_no_unit",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_resolve_ingredient_py",
|
|
"target": "test_resolve_ingredient_test_resolve_ingredient_handles_no_unit"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "test_resolve_ingredient_seed_ingredient",
|
|
"_tgt": "test_resolve_ingredient_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "test_resolve_ingredient_admin",
|
|
"target": "test_resolve_ingredient_seed_ingredient"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "test_resolve_ingredient_test_resolve_ingredient_returns_top_three_candidates",
|
|
"_tgt": "test_resolve_ingredient_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "test_resolve_ingredient_admin",
|
|
"target": "test_resolve_ingredient_test_resolve_ingredient_returns_top_three_candidates"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L43",
|
|
"weight": 1.0,
|
|
"_src": "test_resolve_ingredient_test_resolve_ingredient_handles_no_unit",
|
|
"_tgt": "test_resolve_ingredient_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "test_resolve_ingredient_admin",
|
|
"target": "test_resolve_ingredient_test_resolve_ingredient_handles_no_unit"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L20",
|
|
"weight": 1.0,
|
|
"_src": "test_resolve_ingredient_test_resolve_ingredient_returns_top_three_candidates",
|
|
"_tgt": "test_resolve_ingredient_seed_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "test_resolve_ingredient_seed_ingredient",
|
|
"target": "test_resolve_ingredient_test_resolve_ingredient_returns_top_three_candidates"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_resolve_ingredient.py",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "test_resolve_ingredient_test_resolve_ingredient_handles_no_unit",
|
|
"_tgt": "test_resolve_ingredient_seed_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "test_resolve_ingredient_seed_ingredient",
|
|
"target": "test_resolve_ingredient_test_resolve_ingredient_handles_no_unit"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_matcher.py",
|
|
"source_location": "L6",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_matcher_py",
|
|
"_tgt": "test_matcher_test_build_match_pool_includes_aliases",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_matcher_py",
|
|
"target": "test_matcher_test_build_match_pool_includes_aliases"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_matcher.py",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_matcher_py",
|
|
"_tgt": "test_matcher_test_rank_candidates_top_n_with_threshold",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_matcher_py",
|
|
"target": "test_matcher_test_rank_candidates_top_n_with_threshold"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_matcher.py",
|
|
"source_location": "L36",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_matcher_py",
|
|
"_tgt": "test_matcher_test_rank_candidates_drops_below_threshold",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_matcher_py",
|
|
"target": "test_matcher_test_rank_candidates_drops_below_threshold"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_match_hook.py",
|
|
"source_location": "L6",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_match_hook_py",
|
|
"_tgt": "test_match_hook_test_run_match_job_persists_top_matches",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_match_hook_py",
|
|
"target": "test_match_hook_test_run_match_job_persists_top_matches"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_match_hook.py",
|
|
"source_location": "L7",
|
|
"weight": 1.0,
|
|
"_src": "test_match_hook_rationale_7",
|
|
"_tgt": "test_match_hook_test_run_match_job_persists_top_matches",
|
|
"confidence_score": 1.0,
|
|
"source": "test_match_hook_test_run_match_job_persists_top_matches",
|
|
"target": "test_match_hook_rationale_7"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_conftest_py",
|
|
"_tgt": "conftest_resolve_test_dsn",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_resolve_test_dsn"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_conftest_py",
|
|
"_tgt": "conftest_postgres_reachable",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_postgres_reachable"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L72",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_conftest_py",
|
|
"_tgt": "conftest_pytest_collection_modifyitems",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_pytest_collection_modifyitems"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L84",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_conftest_py",
|
|
"_tgt": "conftest_pytest_configure",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_pytest_configure"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L105",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_conftest_py",
|
|
"_tgt": "conftest_schema",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_schema"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L129",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_conftest_py",
|
|
"_tgt": "conftest_engine",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_engine"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L142",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_conftest_py",
|
|
"_tgt": "conftest_db",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_db"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L159",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_conftest_py",
|
|
"_tgt": "conftest_db_session",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_db_session"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L172",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_conftest_py",
|
|
"_tgt": "conftest_client",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_client"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L193",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_conftest_py",
|
|
"_tgt": "conftest_client_no_db",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_client_no_db"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "conftest_rationale_1",
|
|
"_tgt": "backend_tests_conftest_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_conftest_py",
|
|
"target": "conftest_rationale_1"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L73",
|
|
"weight": 1.0,
|
|
"_src": "conftest_rationale_73",
|
|
"_tgt": "conftest_pytest_collection_modifyitems",
|
|
"confidence_score": 1.0,
|
|
"source": "conftest_pytest_collection_modifyitems",
|
|
"target": "conftest_rationale_73"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L143",
|
|
"weight": 1.0,
|
|
"_src": "conftest_rationale_143",
|
|
"_tgt": "conftest_db",
|
|
"confidence_score": 1.0,
|
|
"source": "conftest_db",
|
|
"target": "conftest_rationale_143"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L160",
|
|
"weight": 1.0,
|
|
"_src": "conftest_rationale_160",
|
|
"_tgt": "conftest_db_session",
|
|
"confidence_score": 1.0,
|
|
"source": "conftest_db_session",
|
|
"target": "conftest_rationale_160"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L173",
|
|
"weight": 1.0,
|
|
"_src": "conftest_rationale_173",
|
|
"_tgt": "conftest_client",
|
|
"confidence_score": 1.0,
|
|
"source": "conftest_client",
|
|
"target": "conftest_rationale_173"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/conftest.py",
|
|
"source_location": "L194",
|
|
"weight": 1.0,
|
|
"_src": "conftest_rationale_194",
|
|
"_tgt": "conftest_client_no_db",
|
|
"confidence_score": 1.0,
|
|
"source": "conftest_client_no_db",
|
|
"target": "conftest_rationale_194"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L6",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_api_py",
|
|
"_tgt": "test_ingredient_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_api_py",
|
|
"target": "test_ingredient_api_admin_headers"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_api_py",
|
|
"_tgt": "test_ingredient_api_test_create_ingredient_returns_201_with_id",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_api_py",
|
|
"target": "test_ingredient_api_test_create_ingredient_returns_201_with_id"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L24",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_api_py",
|
|
"_tgt": "test_ingredient_api_test_create_ingredient_rejects_duplicate_name",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_api_py",
|
|
"target": "test_ingredient_api_test_create_ingredient_rejects_duplicate_name"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L32",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_api_py",
|
|
"_tgt": "test_ingredient_api_test_list_ingredients_supports_search",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_api_py",
|
|
"target": "test_ingredient_api_test_list_ingredients_supports_search"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L44",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_api_py",
|
|
"_tgt": "test_ingredient_api_test_create_ingredient_requires_admin_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_api_py",
|
|
"target": "test_ingredient_api_test_create_ingredient_requires_admin_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_api_py",
|
|
"_tgt": "test_ingredient_api_test_update_ingredient_replaces_aliases",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_api_py",
|
|
"target": "test_ingredient_api_test_update_ingredient_replaces_aliases"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L66",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_api_py",
|
|
"_tgt": "test_ingredient_api_seed_grocery",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_api_py",
|
|
"target": "test_ingredient_api_seed_grocery"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L90",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_api_py",
|
|
"_tgt": "test_ingredient_api_test_pin_manual_match",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_api_py",
|
|
"target": "test_ingredient_api_test_pin_manual_match"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L110",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_api_py",
|
|
"_tgt": "test_ingredient_api_test_unpin_manual_match",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_api_py",
|
|
"target": "test_ingredient_api_test_unpin_manual_match"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L128",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_ingredient_api_py",
|
|
"_tgt": "test_ingredient_api_test_delete_ingredient_removes_row",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_ingredient_api_py",
|
|
"target": "test_ingredient_api_test_delete_ingredient_removes_row"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_test_create_ingredient_returns_201_with_id",
|
|
"_tgt": "test_ingredient_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_ingredient_api_admin_headers",
|
|
"target": "test_ingredient_api_test_create_ingredient_returns_201_with_id"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_test_create_ingredient_rejects_duplicate_name",
|
|
"_tgt": "test_ingredient_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_ingredient_api_admin_headers",
|
|
"target": "test_ingredient_api_test_create_ingredient_rejects_duplicate_name"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L36",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_test_list_ingredients_supports_search",
|
|
"_tgt": "test_ingredient_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_ingredient_api_admin_headers",
|
|
"target": "test_ingredient_api_test_list_ingredients_supports_search"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_test_update_ingredient_replaces_aliases",
|
|
"_tgt": "test_ingredient_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_ingredient_api_admin_headers",
|
|
"target": "test_ingredient_api_test_update_ingredient_replaces_aliases"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L94",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_test_pin_manual_match",
|
|
"_tgt": "test_ingredient_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_ingredient_api_admin_headers",
|
|
"target": "test_ingredient_api_test_pin_manual_match"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L114",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_test_unpin_manual_match",
|
|
"_tgt": "test_ingredient_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_ingredient_api_admin_headers",
|
|
"target": "test_ingredient_api_test_unpin_manual_match"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L132",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_test_delete_ingredient_removes_row",
|
|
"_tgt": "test_ingredient_api_admin_headers",
|
|
"confidence_score": 1.0,
|
|
"source": "test_ingredient_api_admin_headers",
|
|
"target": "test_ingredient_api_test_delete_ingredient_removes_row"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L97",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_test_pin_manual_match",
|
|
"_tgt": "test_ingredient_api_seed_grocery",
|
|
"confidence_score": 1.0,
|
|
"source": "test_ingredient_api_seed_grocery",
|
|
"target": "test_ingredient_api_test_pin_manual_match"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_ingredient_api.py",
|
|
"source_location": "L117",
|
|
"weight": 1.0,
|
|
"_src": "test_ingredient_api_test_unpin_manual_match",
|
|
"_tgt": "test_ingredient_api_seed_grocery",
|
|
"confidence_score": 1.0,
|
|
"source": "test_ingredient_api_seed_grocery",
|
|
"target": "test_ingredient_api_test_unpin_manual_match"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L6",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_never_suggest_api_py",
|
|
"_tgt": "test_never_suggest_api_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_never_suggest_api_py",
|
|
"target": "test_never_suggest_api_admin"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_never_suggest_api_py",
|
|
"_tgt": "test_never_suggest_api_seed_family",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_never_suggest_api_py",
|
|
"target": "test_never_suggest_api_seed_family"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_never_suggest_api_py",
|
|
"_tgt": "test_never_suggest_api_test_block_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_never_suggest_api_py",
|
|
"target": "test_never_suggest_api_test_block_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_never_suggest_api_py",
|
|
"_tgt": "test_never_suggest_api_test_list_never_suggest_for_family",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_never_suggest_api_py",
|
|
"target": "test_never_suggest_api_test_list_never_suggest_for_family"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L63",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_never_suggest_api_py",
|
|
"_tgt": "test_never_suggest_api_test_unblock_removes_row",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_never_suggest_api_py",
|
|
"target": "test_never_suggest_api_test_unblock_removes_row"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "test_never_suggest_api_test_block_ingredient",
|
|
"_tgt": "test_never_suggest_api_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "test_never_suggest_api_admin",
|
|
"target": "test_never_suggest_api_test_block_ingredient"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L51",
|
|
"weight": 1.0,
|
|
"_src": "test_never_suggest_api_test_list_never_suggest_for_family",
|
|
"_tgt": "test_never_suggest_api_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "test_never_suggest_api_admin",
|
|
"target": "test_never_suggest_api_test_list_never_suggest_for_family"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L68",
|
|
"weight": 1.0,
|
|
"_src": "test_never_suggest_api_test_unblock_removes_row",
|
|
"_tgt": "test_never_suggest_api_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "test_never_suggest_api_admin",
|
|
"target": "test_never_suggest_api_test_unblock_removes_row"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "test_never_suggest_api_test_block_ingredient",
|
|
"_tgt": "test_never_suggest_api_seed_family",
|
|
"confidence_score": 1.0,
|
|
"source": "test_never_suggest_api_seed_family",
|
|
"target": "test_never_suggest_api_test_block_ingredient"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L47",
|
|
"weight": 1.0,
|
|
"_src": "test_never_suggest_api_test_list_never_suggest_for_family",
|
|
"_tgt": "test_never_suggest_api_seed_family",
|
|
"confidence_score": 1.0,
|
|
"source": "test_never_suggest_api_seed_family",
|
|
"target": "test_never_suggest_api_test_list_never_suggest_for_family"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_never_suggest_api.py",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "test_never_suggest_api_test_unblock_removes_row",
|
|
"_tgt": "test_never_suggest_api_seed_family",
|
|
"confidence_score": 1.0,
|
|
"source": "test_never_suggest_api_seed_family",
|
|
"target": "test_never_suggest_api_test_unblock_removes_row"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L7",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_thin_phase4_smoke_py",
|
|
"_tgt": "test_thin_phase4_smoke_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_thin_phase4_smoke_py",
|
|
"target": "test_thin_phase4_smoke_admin"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_thin_phase4_smoke_py",
|
|
"_tgt": "test_thin_phase4_smoke_test_seed_data_present_and_resolvable",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_thin_phase4_smoke_py",
|
|
"target": "test_thin_phase4_smoke_test_seed_data_present_and_resolvable"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_thin_phase4_smoke_py",
|
|
"_tgt": "test_thin_phase4_smoke_test_resolve_against_seeded_ingredients",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_thin_phase4_smoke_py",
|
|
"target": "test_thin_phase4_smoke_test_resolve_against_seeded_ingredients"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_thin_phase4_smoke_py",
|
|
"_tgt": "test_thin_phase4_smoke_test_match_job_runs_against_seeded_data",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_thin_phase4_smoke_py",
|
|
"target": "test_thin_phase4_smoke_test_match_job_runs_against_seeded_data"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_thin_phase4_smoke_rationale_1",
|
|
"_tgt": "backend_tests_test_thin_phase4_smoke_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_thin_phase4_smoke_py",
|
|
"target": "test_thin_phase4_smoke_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_thin_phase4_smoke.py",
|
|
"source_location": "L22",
|
|
"weight": 1.0,
|
|
"_src": "test_thin_phase4_smoke_test_resolve_against_seeded_ingredients",
|
|
"_tgt": "test_thin_phase4_smoke_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "test_thin_phase4_smoke_admin",
|
|
"target": "test_thin_phase4_smoke_test_resolve_against_seeded_ingredients"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_cost_py",
|
|
"_tgt": "test_planner_cost_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_cost_py",
|
|
"target": "test_planner_cost_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_cost_py",
|
|
"_tgt": "test_planner_cost_match",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_cost_py",
|
|
"target": "test_planner_cost_match"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L25",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_cost_py",
|
|
"_tgt": "test_planner_cost_test_compute_recipe_cost_sums_ingredient_costs",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_cost_py",
|
|
"target": "test_planner_cost_test_compute_recipe_cost_sums_ingredient_costs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L51",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_cost_py",
|
|
"_tgt": "test_planner_cost_test_unmatched_ingredient_zero_cost_and_savings",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_cost_py",
|
|
"target": "test_planner_cost_test_unmatched_ingredient_zero_cost_and_savings"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L65",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_cost_py",
|
|
"_tgt": "test_planner_cost_test_pantry_hits_counted",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_cost_py",
|
|
"target": "test_planner_cost_test_pantry_hits_counted"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L37",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_cost_test_compute_recipe_cost_sums_ingredient_costs",
|
|
"_tgt": "test_planner_cost_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_cost_ingredient",
|
|
"target": "test_planner_cost_test_compute_recipe_cost_sums_ingredient_costs"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L56",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_cost_test_unmatched_ingredient_zero_cost_and_savings",
|
|
"_tgt": "test_planner_cost_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_cost_ingredient",
|
|
"target": "test_planner_cost_test_unmatched_ingredient_zero_cost_and_savings"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_cost_test_pantry_hits_counted",
|
|
"_tgt": "test_planner_cost_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_cost_ingredient",
|
|
"target": "test_planner_cost_test_pantry_hits_counted"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_cost_test_compute_recipe_cost_sums_ingredient_costs",
|
|
"_tgt": "test_planner_cost_match",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_cost_match",
|
|
"target": "test_planner_cost_test_compute_recipe_cost_sums_ingredient_costs"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_cost.py",
|
|
"source_location": "L70",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_cost_test_pantry_hits_counted",
|
|
"_tgt": "test_planner_cost_match",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_cost_match",
|
|
"target": "test_planner_cost_test_pantry_hits_counted"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L15",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_filter_py",
|
|
"_tgt": "test_planner_filter_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_filter_py",
|
|
"target": "test_planner_filter_recipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_filter_py",
|
|
"_tgt": "test_planner_filter_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_filter_py",
|
|
"target": "test_planner_filter_cost"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_filter_py",
|
|
"_tgt": "test_planner_filter_test_filter_blocks_by_never_suggest_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_filter_py",
|
|
"target": "test_planner_filter_test_filter_blocks_by_never_suggest_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L70",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_filter_py",
|
|
"_tgt": "test_planner_filter_test_filter_blocks_by_never_suggest_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_filter_py",
|
|
"target": "test_planner_filter_test_filter_blocks_by_never_suggest_recipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L87",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_filter_py",
|
|
"_tgt": "test_planner_filter_test_filter_blocks_by_recency",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_filter_py",
|
|
"target": "test_planner_filter_test_filter_blocks_by_recency"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L104",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_filter_py",
|
|
"_tgt": "test_planner_filter_test_filter_blocks_by_calories",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_filter_py",
|
|
"target": "test_planner_filter_test_filter_blocks_by_calories"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L122",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_filter_py",
|
|
"_tgt": "test_planner_filter_test_filter_blocks_by_time",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_filter_py",
|
|
"target": "test_planner_filter_test_filter_blocks_by_time"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L140",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_filter_py",
|
|
"_tgt": "test_planner_filter_test_filter_blocks_by_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_filter_py",
|
|
"target": "test_planner_filter_test_filter_blocks_by_cost"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L158",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_filter_py",
|
|
"_tgt": "test_planner_filter_test_filter_passes_when_calorie_target_is_none",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_filter_py",
|
|
"target": "test_planner_filter_test_filter_passes_when_calorie_target_is_none"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L174",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_filter_py",
|
|
"_tgt": "test_planner_filter_test_filter_blocks_recipe_with_null_calories_when_target_set",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_filter_py",
|
|
"target": "test_planner_filter_test_filter_blocks_recipe_with_null_calories_when_target_set"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L49",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_never_suggest_ingredient",
|
|
"_tgt": "test_planner_filter_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_recipe",
|
|
"target": "test_planner_filter_test_filter_blocks_by_never_suggest_ingredient"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L71",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_never_suggest_recipe",
|
|
"_tgt": "test_planner_filter_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_recipe",
|
|
"target": "test_planner_filter_test_filter_blocks_by_never_suggest_recipe"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L88",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_recency",
|
|
"_tgt": "test_planner_filter_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_recipe",
|
|
"target": "test_planner_filter_test_filter_blocks_by_recency"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L105",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_calories",
|
|
"_tgt": "test_planner_filter_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_recipe",
|
|
"target": "test_planner_filter_test_filter_blocks_by_calories"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L123",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_time",
|
|
"_tgt": "test_planner_filter_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_recipe",
|
|
"target": "test_planner_filter_test_filter_blocks_by_time"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L141",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_cost",
|
|
"_tgt": "test_planner_filter_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_recipe",
|
|
"target": "test_planner_filter_test_filter_blocks_by_cost"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L159",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_passes_when_calorie_target_is_none",
|
|
"_tgt": "test_planner_filter_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_recipe",
|
|
"target": "test_planner_filter_test_filter_passes_when_calorie_target_is_none"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L175",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_recipe_with_null_calories_when_target_set",
|
|
"_tgt": "test_planner_filter_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_recipe",
|
|
"target": "test_planner_filter_test_filter_blocks_recipe_with_null_calories_when_target_set"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L57",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_never_suggest_ingredient",
|
|
"_tgt": "test_planner_filter_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_cost",
|
|
"target": "test_planner_filter_test_filter_blocks_by_never_suggest_ingredient"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_never_suggest_recipe",
|
|
"_tgt": "test_planner_filter_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_cost",
|
|
"target": "test_planner_filter_test_filter_blocks_by_never_suggest_recipe"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L93",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_recency",
|
|
"_tgt": "test_planner_filter_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_cost",
|
|
"target": "test_planner_filter_test_filter_blocks_by_recency"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L110",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_calories",
|
|
"_tgt": "test_planner_filter_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_cost",
|
|
"target": "test_planner_filter_test_filter_blocks_by_calories"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L128",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_time",
|
|
"_tgt": "test_planner_filter_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_cost",
|
|
"target": "test_planner_filter_test_filter_blocks_by_time"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L146",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_by_cost",
|
|
"_tgt": "test_planner_filter_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_cost",
|
|
"target": "test_planner_filter_test_filter_blocks_by_cost"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L163",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_passes_when_calorie_target_is_none",
|
|
"_tgt": "test_planner_filter_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_cost",
|
|
"target": "test_planner_filter_test_filter_passes_when_calorie_target_is_none"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_filter.py",
|
|
"source_location": "L179",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_filter_test_filter_blocks_recipe_with_null_calories_when_target_set",
|
|
"_tgt": "test_planner_filter_cost",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_filter_cost",
|
|
"target": "test_planner_filter_test_filter_blocks_recipe_with_null_calories_when_target_set"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_score_py",
|
|
"_tgt": "test_planner_score_test_time_bonus_capped_at_ideal",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_score_py",
|
|
"target": "test_planner_score_test_time_bonus_capped_at_ideal"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_score_py",
|
|
"_tgt": "test_planner_score_test_time_bonus_decays_to_zero_at_full",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_score_py",
|
|
"target": "test_planner_score_test_time_bonus_decays_to_zero_at_full"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_score_py",
|
|
"_tgt": "test_planner_score_test_time_bonus_linear_midpoint",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_score_py",
|
|
"target": "test_planner_score_test_time_bonus_linear_midpoint"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L32",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_score_py",
|
|
"_tgt": "test_planner_score_test_recency_bonus_full_when_long_ago",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_score_py",
|
|
"target": "test_planner_score_test_recency_bonus_full_when_long_ago"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_score_py",
|
|
"_tgt": "test_planner_score_test_recency_bonus_zero_when_just_eligible",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_score_py",
|
|
"target": "test_planner_score_test_recency_bonus_zero_when_just_eligible"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_score_py",
|
|
"_tgt": "test_planner_score_test_recency_bonus_full_when_never_cooked",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_score_py",
|
|
"target": "test_planner_score_test_recency_bonus_full_when_never_cooked"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L49",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_score_py",
|
|
"_tgt": "test_planner_score_test_normalize_savings_minmax",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_score_py",
|
|
"target": "test_planner_score_test_normalize_savings_minmax"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_score_py",
|
|
"_tgt": "test_planner_score_test_normalize_savings_uniform_returns_zeros",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_score_py",
|
|
"target": "test_planner_score_test_normalize_savings_uniform_returns_zeros"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_score.py",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_score_py",
|
|
"_tgt": "test_planner_score_test_score_recipes_orders_by_combined_score",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_score_py",
|
|
"target": "test_planner_score_test_score_recipes_orders_by_combined_score"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L12",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_select_py",
|
|
"_tgt": "test_planner_select_mk",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_select_py",
|
|
"target": "test_planner_select_mk"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_select_py",
|
|
"_tgt": "test_planner_select_test_diversity_penalty_zero_when_all_unique",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_select_py",
|
|
"target": "test_planner_select_test_diversity_penalty_zero_when_all_unique"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_select_py",
|
|
"_tgt": "test_planner_select_test_diversity_penalty_three_chickens",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_select_py",
|
|
"target": "test_planner_select_test_diversity_penalty_three_chickens"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L49",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_select_py",
|
|
"_tgt": "test_planner_select_test_select_set_picks_diverse_over_homogeneous",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_select_py",
|
|
"target": "test_planner_select_test_select_set_picks_diverse_over_homogeneous"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L68",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_select_py",
|
|
"_tgt": "test_planner_select_test_select_set_handles_too_few",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_select_py",
|
|
"target": "test_planner_select_test_select_set_handles_too_few"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_select_py",
|
|
"_tgt": "test_planner_select_test_select_set_empty_input",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_select_py",
|
|
"target": "test_planner_select_test_select_set_empty_input"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_test_diversity_penalty_zero_when_all_unique",
|
|
"_tgt": "test_planner_select_mk",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_select_mk",
|
|
"target": "test_planner_select_test_diversity_penalty_zero_when_all_unique"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_test_diversity_penalty_three_chickens",
|
|
"_tgt": "test_planner_select_mk",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_select_mk",
|
|
"target": "test_planner_select_test_diversity_penalty_three_chickens"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L56",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_test_select_set_picks_diverse_over_homogeneous",
|
|
"_tgt": "test_planner_select_mk",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_select_mk",
|
|
"target": "test_planner_select_test_select_set_picks_diverse_over_homogeneous"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L69",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_test_select_set_handles_too_few",
|
|
"_tgt": "test_planner_select_mk",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_select_mk",
|
|
"target": "test_planner_select_test_select_set_handles_too_few"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_select.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_select_rationale_50",
|
|
"_tgt": "test_planner_select_test_select_set_picks_diverse_over_homogeneous",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_select_test_select_set_picks_diverse_over_homogeneous",
|
|
"target": "test_planner_select_rationale_50"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_generate.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_planner_generate_py",
|
|
"_tgt": "test_planner_generate_test_generate_meal_plan_against_seeded_data",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_planner_generate_py",
|
|
"target": "test_planner_generate_test_generate_meal_plan_against_seeded_data"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_planner_generate.py",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "test_planner_generate_rationale_11",
|
|
"_tgt": "test_planner_generate_test_generate_meal_plan_against_seeded_data",
|
|
"confidence_score": 1.0,
|
|
"source": "test_planner_generate_test_generate_meal_plan_against_seeded_data",
|
|
"target": "test_planner_generate_rationale_11"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_meal_plan_generate_api_py",
|
|
"_tgt": "test_meal_plan_generate_api_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_meal_plan_generate_api_py",
|
|
"target": "test_meal_plan_generate_api_admin"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L15",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_meal_plan_generate_api_py",
|
|
"_tgt": "test_meal_plan_generate_api_family_with_groceries",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_meal_plan_generate_api_py",
|
|
"target": "test_meal_plan_generate_api_family_with_groceries"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_meal_plan_generate_api_py",
|
|
"_tgt": "test_meal_plan_generate_api_test_generate_endpoint_returns_meal_plan",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_meal_plan_generate_api_py",
|
|
"target": "test_meal_plan_generate_api_test_generate_endpoint_returns_meal_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_meal_plan_generate_api_py",
|
|
"_tgt": "test_meal_plan_generate_api_test_generate_endpoint_requires_admin_token",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_meal_plan_generate_api_py",
|
|
"target": "test_meal_plan_generate_api_test_generate_endpoint_requires_admin_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L73",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_meal_plan_generate_api_py",
|
|
"_tgt": "test_meal_plan_generate_api_test_generate_endpoint_returns_404_for_unknown_family",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_meal_plan_generate_api_py",
|
|
"target": "test_meal_plan_generate_api_test_generate_endpoint_returns_404_for_unknown_family"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L55",
|
|
"weight": 1.0,
|
|
"_src": "test_meal_plan_generate_api_test_generate_endpoint_returns_meal_plan",
|
|
"_tgt": "test_meal_plan_generate_api_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "test_meal_plan_generate_api_admin",
|
|
"target": "test_meal_plan_generate_api_test_generate_endpoint_returns_meal_plan"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_meal_plan_generate_api.py",
|
|
"source_location": "L78",
|
|
"weight": 1.0,
|
|
"_src": "test_meal_plan_generate_api_test_generate_endpoint_returns_404_for_unknown_family",
|
|
"_tgt": "test_meal_plan_generate_api_admin",
|
|
"confidence_score": 1.0,
|
|
"source": "test_meal_plan_generate_api_admin",
|
|
"target": "test_meal_plan_generate_api_test_generate_endpoint_returns_404_for_unknown_family"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_auth_py",
|
|
"_tgt": "test_swiftly_auth_clear_cache",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_auth_py",
|
|
"target": "test_swiftly_auth_clear_cache"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_auth_py",
|
|
"_tgt": "test_swiftly_auth_b64url",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_auth_py",
|
|
"target": "test_swiftly_auth_b64url"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L44",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_auth_py",
|
|
"_tgt": "test_swiftly_auth_make_jwt",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_auth_py",
|
|
"target": "test_swiftly_auth_make_jwt"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L53",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_auth_py",
|
|
"_tgt": "test_swiftly_auth_config_response",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_auth_py",
|
|
"target": "test_swiftly_auth_config_response"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L60",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_auth_py",
|
|
"_tgt": "test_swiftly_auth_signup_response",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_auth_py",
|
|
"target": "test_swiftly_auth_signup_response"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L71",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_auth_py",
|
|
"_tgt": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_auth_py",
|
|
"target": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L99",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_auth_py",
|
|
"_tgt": "test_swiftly_auth_test_get_token_returns_cached_without_reminting",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_auth_py",
|
|
"target": "test_swiftly_auth_test_get_token_returns_cached_without_reminting"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L118",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_auth_py",
|
|
"_tgt": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_auth_py",
|
|
"target": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L140",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_auth_py",
|
|
"_tgt": "test_swiftly_auth_test_mint_raises_on_firebase_non_200",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_auth_py",
|
|
"target": "test_swiftly_auth_test_mint_raises_on_firebase_non_200"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_rationale_1",
|
|
"_tgt": "backend_tests_test_swiftly_auth_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_auth_py",
|
|
"target": "test_swiftly_auth_rationale_1"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_make_jwt",
|
|
"_tgt": "test_swiftly_auth_b64url",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_b64url",
|
|
"target": "test_swiftly_auth_make_jwt"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L74",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty",
|
|
"_tgt": "test_swiftly_auth_make_jwt",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_make_jwt",
|
|
"target": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L102",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_returns_cached_without_reminting",
|
|
"_tgt": "test_swiftly_auth_make_jwt",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_make_jwt",
|
|
"target": "test_swiftly_auth_test_get_token_returns_cached_without_reminting"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L122",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry",
|
|
"_tgt": "test_swiftly_auth_make_jwt",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_make_jwt",
|
|
"target": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L77",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty",
|
|
"_tgt": "test_swiftly_auth_config_response",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_config_response",
|
|
"target": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L105",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_returns_cached_without_reminting",
|
|
"_tgt": "test_swiftly_auth_config_response",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_config_response",
|
|
"target": "test_swiftly_auth_test_get_token_returns_cached_without_reminting"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L143",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_mint_raises_on_firebase_non_200",
|
|
"_tgt": "test_swiftly_auth_config_response",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_config_response",
|
|
"target": "test_swiftly_auth_test_mint_raises_on_firebase_non_200"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L81",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty",
|
|
"_tgt": "test_swiftly_auth_signup_response",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_signup_response",
|
|
"target": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_returns_cached_without_reminting",
|
|
"_tgt": "test_swiftly_auth_signup_response",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_signup_response",
|
|
"target": "test_swiftly_auth_test_get_token_returns_cached_without_reminting"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L132",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry",
|
|
"_tgt": "test_swiftly_auth_signup_response",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_signup_response",
|
|
"target": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L147",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_test_mint_raises_on_firebase_non_200",
|
|
"_tgt": "test_swiftly_auth_signup_response",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_signup_response",
|
|
"target": "test_swiftly_auth_test_mint_raises_on_firebase_non_200"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L72",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_rationale_72",
|
|
"_tgt": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_test_get_token_mints_fresh_when_cache_empty",
|
|
"target": "test_swiftly_auth_rationale_72"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L100",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_rationale_100",
|
|
"_tgt": "test_swiftly_auth_test_get_token_returns_cached_without_reminting",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_test_get_token_returns_cached_without_reminting",
|
|
"target": "test_swiftly_auth_rationale_100"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L119",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_rationale_119",
|
|
"_tgt": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_test_get_token_remints_when_cached_token_near_expiry",
|
|
"target": "test_swiftly_auth_rationale_119"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_auth.py",
|
|
"source_location": "L141",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_auth_rationale_141",
|
|
"_tgt": "test_swiftly_auth_test_mint_raises_on_firebase_non_200",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_auth_test_mint_raises_on_firebase_non_200",
|
|
"target": "test_swiftly_auth_rationale_141"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_api_py",
|
|
"_tgt": "test_swiftly_api_test_parse_categories_fixture",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_api_py",
|
|
"target": "test_swiftly_api_test_parse_categories_fixture"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L57",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_api_py",
|
|
"_tgt": "test_swiftly_api_test_parse_category_response_fixture",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_api_py",
|
|
"target": "test_swiftly_api_test_parse_category_response_fixture"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L107",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_api_py",
|
|
"_tgt": "test_swiftly_api_test_map_product_returns_none_for_unparseable",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_api_py",
|
|
"target": "test_swiftly_api_test_map_product_returns_none_for_unparseable"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L121",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_api_py",
|
|
"_tgt": "test_swiftly_api_mock_response",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_api_py",
|
|
"target": "test_swiftly_api_mock_response"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L135",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_api_py",
|
|
"_tgt": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_api_py",
|
|
"target": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L146",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_api_py",
|
|
"_tgt": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_api_py",
|
|
"target": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L171",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_swiftly_api_py",
|
|
"_tgt": "test_swiftly_api_test_background_runner_writes_failed_with_token_message",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_api_py",
|
|
"target": "test_swiftly_api_test_background_runner_writes_failed_with_token_message"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_rationale_1",
|
|
"_tgt": "backend_tests_test_swiftly_api_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_swiftly_api_py",
|
|
"target": "test_swiftly_api_rationale_1"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_rationale_41",
|
|
"_tgt": "test_swiftly_api_test_parse_categories_fixture",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_api_test_parse_categories_fixture",
|
|
"target": "test_swiftly_api_rationale_41"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L58",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_rationale_58",
|
|
"_tgt": "test_swiftly_api_test_parse_category_response_fixture",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_api_test_parse_category_response_fixture",
|
|
"target": "test_swiftly_api_rationale_58"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L108",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_rationale_108",
|
|
"_tgt": "test_swiftly_api_test_map_product_returns_none_for_unparseable",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_api_test_map_product_returns_none_for_unparseable",
|
|
"target": "test_swiftly_api_rationale_108"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L139",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api",
|
|
"_tgt": "test_swiftly_api_mock_response",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_api_mock_response",
|
|
"target": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L159",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned",
|
|
"_tgt": "test_swiftly_api_mock_response",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_api_mock_response",
|
|
"target": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L136",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_rationale_136",
|
|
"_tgt": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_api_test_swiftly_auth_error_on_401_from_api",
|
|
"target": "test_swiftly_api_rationale_136"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L147",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_rationale_147",
|
|
"_tgt": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_api_test_fetch_category_mints_token_when_none_pinned",
|
|
"target": "test_swiftly_api_rationale_147"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_swiftly_api.py",
|
|
"source_location": "L172",
|
|
"weight": 1.0,
|
|
"_src": "test_swiftly_api_rationale_172",
|
|
"_tgt": "test_swiftly_api_test_background_runner_writes_failed_with_token_message",
|
|
"confidence_score": 1.0,
|
|
"source": "test_swiftly_api_test_background_runner_writes_failed_with_token_message",
|
|
"target": "test_swiftly_api_rationale_172"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L5",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_email_backend_py",
|
|
"_tgt": "test_email_backend_test_sendgrid_send_calls_api",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_email_backend_py",
|
|
"target": "test_email_backend_test_sendgrid_send_calls_api"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_email_backend_py",
|
|
"_tgt": "test_email_backend_test_sendgrid_raises_on_4xx",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_email_backend_py",
|
|
"target": "test_email_backend_test_sendgrid_raises_on_4xx"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_email_backend.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_email_backend_rationale_1",
|
|
"_tgt": "backend_tests_test_email_backend_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_email_backend_py",
|
|
"target": "test_email_backend_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L15",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_family",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_family"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L31",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_member",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_member"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_weekly_run",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_weekly_run"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L55",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_weekly_run_scraped",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_weekly_run_scraped"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L69",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_weekly_run_generated",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_weekly_run_generated"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L84",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_meal_plan",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_meal_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L98",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_pending_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_pending_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L123",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_weekly_run_emailed",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_weekly_run_emailed"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L139",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_weekly_run_reminded",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_weekly_run_reminded"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L159",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_send_admin_alert_noop_when_email_unset",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_send_admin_alert_noop_when_email_unset"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L168",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_send_admin_alert_calls_backend",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_send_admin_alert_calls_backend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L194",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_scrape_idempotent",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_scrape_idempotent"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L201",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_scrape_success",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_scrape_success"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L212",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_scrape_both_fail_marks_stale",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_scrape_both_fail_marks_stale"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L231",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_generate_idempotent",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_generate_idempotent"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L238",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_generate_creates_plan",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_generate_creates_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L257",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_generate_records_error_on_failure",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_generate_records_error_on_failure"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L276",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_email_idempotent",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_email_idempotent"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L283",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_email_sends_per_member",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_email_sends_per_member"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L302",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_email_stale_banner",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_email_stale_banner"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L319",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_email_escapes_recipe_name",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_email_escapes_recipe_name"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L345",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_reminder_idempotent",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_reminder_idempotent"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L352",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_reminder_skips_when_not_emailed",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_reminder_skips_when_not_emailed"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L370",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_reminder_sends_to_non_voter",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_reminder_sends_to_non_voter"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L391",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_reminder_skips_voter",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_reminder_skips_voter"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L420",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_reminder_no_sends_when_all_voted",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_reminder_no_sends_when_all_voted"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L454",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_deadline_idempotent",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_deadline_idempotent"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L463",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_deadline_resolves_pending_to_approved",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_deadline_resolves_pending_to_approved"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L474",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_deadline_resolves_pending_to_denied",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_deadline_resolves_pending_to_denied"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L489",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_weekly_run_deadline_passed",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_weekly_run_deadline_passed"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L506",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_approved_item",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_approved_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L530",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_finalize_idempotent",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_finalize_idempotent"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L539",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_finalize_sends_shopping_list",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_finalize_sends_shopping_list"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L559",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_step_finalize_no_approved_sends_empty_message",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_step_finalize_no_approved_sends_empty_message"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L580",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_run_step_upserts_weekly_run",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_run_step_upserts_weekly_run"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L606",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_run_step_invalid_raises",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_run_step_invalid_raises"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L612",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_run_week_calls_all_steps",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_run_week_calls_all_steps"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L632",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_admin_client",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_admin_client"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L646",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_orchestrate_status_returns_list",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_orchestrate_status_returns_list"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L654",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_orchestrate_step_invalid_returns_400",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_orchestrate_step_invalid_returns_400"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L663",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_test_orchestrator_py",
|
|
"_tgt": "test_orchestrator_test_orchestrate_run_week_returns_202",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_test_orchestrate_run_week_returns_202"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/test_orchestrator.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "test_orchestrator_rationale_1",
|
|
"_tgt": "backend_tests_test_orchestrator_py",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_test_orchestrator_py",
|
|
"target": "test_orchestrator_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/App.tsx",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_app_tsx",
|
|
"_tgt": "app_isactive",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_app_tsx",
|
|
"target": "app_isactive"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/App.tsx",
|
|
"source_location": "L15",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_app_tsx",
|
|
"_tgt": "app_linkclass",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_app_tsx",
|
|
"target": "app_linkclass"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/App.tsx",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "app_linkclass",
|
|
"_tgt": "app_isactive",
|
|
"confidence_score": 1.0,
|
|
"source": "app_isactive",
|
|
"target": "app_linkclass"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ErrorBoundary.tsx",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_errorboundary_tsx",
|
|
"_tgt": "errorboundary_getderivedstatefromerror",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_errorboundary_tsx",
|
|
"target": "errorboundary_getderivedstatefromerror"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ErrorBoundary.tsx",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_errorboundary_tsx",
|
|
"_tgt": "errorboundary_componentdidcatch",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_errorboundary_tsx",
|
|
"target": "errorboundary_componentdidcatch"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ui/Button.tsx",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_ui_button_tsx",
|
|
"_tgt": "button_button",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_ui_button_tsx",
|
|
"target": "button_button"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ui/Badge.tsx",
|
|
"source_location": "L9",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_ui_badge_tsx",
|
|
"_tgt": "badge_badge",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_ui_badge_tsx",
|
|
"target": "badge_badge"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ui/Card.tsx",
|
|
"source_location": "L8",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_ui_card_tsx",
|
|
"_tgt": "card_card",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_ui_card_tsx",
|
|
"target": "card_card"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ui/Card.tsx",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_ui_card_tsx",
|
|
"_tgt": "card_cardheader",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_ui_card_tsx",
|
|
"target": "card_cardheader"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ui/Card.tsx",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_ui_card_tsx",
|
|
"_tgt": "card_cardbody",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_ui_card_tsx",
|
|
"target": "card_cardbody"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ui/Card.tsx",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_ui_card_tsx",
|
|
"_tgt": "card_cardfooter",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_ui_card_tsx",
|
|
"target": "card_cardfooter"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ui/Input.tsx",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_ui_input_tsx",
|
|
"_tgt": "input_cn",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_ui_input_tsx",
|
|
"target": "input_cn"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ui/LoadingSpinner.tsx",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_ui_loadingspinner_tsx",
|
|
"_tgt": "loadingspinner_loadingspinner",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_ui_loadingspinner_tsx",
|
|
"target": "loadingspinner_loadingspinner"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/components/ui/Textarea.tsx",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_components_ui_textarea_tsx",
|
|
"_tgt": "textarea_cn",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_components_ui_textarea_tsx",
|
|
"target": "textarea_cn"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/pages/Dashboard.tsx",
|
|
"source_location": "L282",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_pages_dashboard_tsx",
|
|
"_tgt": "dashboard_handlesend",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_pages_dashboard_tsx",
|
|
"target": "dashboard_handlesend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/pages/Pantry.tsx",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_pages_pantry_tsx",
|
|
"_tgt": "pantry_handleadd",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_pages_pantry_tsx",
|
|
"target": "pantry_handleadd"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L12",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_pages_shoppinglist_tsx",
|
|
"_tgt": "shoppinglist_shoppinglistskeleton",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_pages_shoppinglist_tsx",
|
|
"target": "shoppinglist_shoppinglistskeleton"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_pages_shoppinglist_tsx",
|
|
"_tgt": "shoppinglist_skeletoncard",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_pages_shoppinglist_tsx",
|
|
"target": "shoppinglist_skeletoncard"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L44",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_pages_shoppinglist_tsx",
|
|
"_tgt": "shoppinglist_storagekey",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_pages_shoppinglist_tsx",
|
|
"target": "shoppinglist_storagekey"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L77",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_pages_shoppinglist_tsx",
|
|
"_tgt": "shoppinglist_toggle",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_pages_shoppinglist_tsx",
|
|
"target": "shoppinglist_toggle"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/pages/ShoppingList.tsx",
|
|
"source_location": "L86",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_pages_shoppinglist_tsx",
|
|
"_tgt": "shoppinglist_clearall",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_pages_shoppinglist_tsx",
|
|
"target": "shoppinglist_clearall"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/pages/Login.tsx",
|
|
"source_location": "L8",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_pages_login_tsx",
|
|
"_tgt": "login_login",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_pages_login_tsx",
|
|
"target": "login_login"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "frontend/src/lib/utils.ts",
|
|
"source_location": "L4",
|
|
"weight": 1.0,
|
|
"_src": "frontend_src_lib_utils_ts",
|
|
"_tgt": "utils_cn",
|
|
"confidence_score": 1.0,
|
|
"source": "frontend_src_lib_utils_ts",
|
|
"target": "utils_cn"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "scripts/spike_lucky_scrape.py",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "scripts_spike_lucky_scrape_py",
|
|
"_tgt": "spike_lucky_scrape_main",
|
|
"confidence_score": 1.0,
|
|
"source": "scripts_spike_lucky_scrape_py",
|
|
"target": "spike_lucky_scrape_main"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "scripts/spike_lucky_scrape.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "spike_lucky_scrape_rationale_1",
|
|
"_tgt": "scripts_spike_lucky_scrape_py",
|
|
"confidence_score": 1.0,
|
|
"source": "scripts_spike_lucky_scrape_py",
|
|
"target": "spike_lucky_scrape_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "scripts/send_test_approval.py",
|
|
"source_location": "L44",
|
|
"weight": 1.0,
|
|
"_src": "scripts_send_test_approval_py",
|
|
"_tgt": "send_test_approval_main",
|
|
"confidence_score": 1.0,
|
|
"source": "scripts_send_test_approval_py",
|
|
"target": "send_test_approval_main"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "scripts_spike_swiftly_ingest_py",
|
|
"_tgt": "spike_swiftly_ingest_main",
|
|
"confidence_score": 1.0,
|
|
"source": "scripts_spike_swiftly_ingest_py",
|
|
"target": "spike_swiftly_ingest_main"
|
|
},
|
|
{
|
|
"relation": "rationale_for",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "scripts/spike_swiftly_ingest.py",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "spike_swiftly_ingest_rationale_1",
|
|
"_tgt": "scripts_spike_swiftly_ingest_py",
|
|
"confidence_score": 1.0,
|
|
"source": "scripts_spike_swiftly_ingest_py",
|
|
"target": "spike_swiftly_ingest_rationale_1"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "scripts/enrich_recipes_spoonacular.py",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "scripts_enrich_recipes_spoonacular_py",
|
|
"_tgt": "enrich_recipes_spoonacular_strip_html",
|
|
"confidence_score": 1.0,
|
|
"source": "scripts_enrich_recipes_spoonacular_py",
|
|
"target": "enrich_recipes_spoonacular_strip_html"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "scripts/enrich_recipes_spoonacular.py",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "scripts_enrich_recipes_spoonacular_py",
|
|
"_tgt": "enrich_recipes_spoonacular_search_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "scripts_enrich_recipes_spoonacular_py",
|
|
"target": "enrich_recipes_spoonacular_search_recipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "scripts/enrich_recipes_spoonacular.py",
|
|
"source_location": "L53",
|
|
"weight": 1.0,
|
|
"_src": "scripts_enrich_recipes_spoonacular_py",
|
|
"_tgt": "enrich_recipes_spoonacular_main",
|
|
"confidence_score": 1.0,
|
|
"source": "scripts_enrich_recipes_spoonacular_py",
|
|
"target": "enrich_recipes_spoonacular_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "scripts/enrich_recipes_spoonacular.py",
|
|
"source_location": "L95",
|
|
"weight": 1.0,
|
|
"_src": "enrich_recipes_spoonacular_main",
|
|
"_tgt": "enrich_recipes_spoonacular_strip_html",
|
|
"confidence_score": 1.0,
|
|
"source": "enrich_recipes_spoonacular_strip_html",
|
|
"target": "enrich_recipes_spoonacular_main"
|
|
},
|
|
{
|
|
"relation": "calls",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "scripts/enrich_recipes_spoonacular.py",
|
|
"source_location": "L81",
|
|
"weight": 1.0,
|
|
"_src": "enrich_recipes_spoonacular_main",
|
|
"_tgt": "enrich_recipes_spoonacular_search_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "enrich_recipes_spoonacular_search_recipe",
|
|
"target": "enrich_recipes_spoonacular_main"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_meal_planner_system",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_meal_planner_system"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L3",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_goal",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_goal"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L6",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_architecture",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_architecture"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_tech_stack",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_tech_stack"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_project_structure",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_project_structure"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_tasks",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_tasks"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L56",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_phase_1_foundation",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_phase_1_foundation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L62",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_phase_2_scraping",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_phase_2_scraping"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L67",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_phase_3_recipe_meal_engine",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_phase_3_recipe_meal_engine"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L73",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_phase_4_notifications_approval",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_phase_4_notifications_approval"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L79",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_phase_5_shopping_list_ui",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_phase_5_shopping_list_ui"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L85",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_phase_6_polish",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_phase_6_polish"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "meal-planner-plan.md",
|
|
"source_location": "L90",
|
|
"weight": 1.0,
|
|
"_src": "meal_planner_plan_md",
|
|
"_tgt": "meal_planner_plan_md_done_when",
|
|
"confidence_score": 1.0,
|
|
"source": "meal_planner_plan_md",
|
|
"target": "meal_planner_plan_md_done_when"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_meal_planner",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_meal_planner"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L5",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_background",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_background"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_features",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_features"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_architecture",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_architecture"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L31",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_documentation",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_documentation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_quick_start",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_quick_start"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_clone_and_start",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_clone_and_start"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L45",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_view_logs",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_view_logs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_stop",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_stop"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L52",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_family_profile",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_family_profile"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L60",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_approval_workflow",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_approval_workflow"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L67",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "readme_md_tech_stack",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "readme_md_tech_stack"
|
|
},
|
|
{
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "docs_spec_md",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "docs_spec_md"
|
|
},
|
|
{
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "docs_architecture_md",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "docs_architecture_md"
|
|
},
|
|
{
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "docs_database_schema_md",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "docs_database_schema_md"
|
|
},
|
|
{
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L36",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "docs_implementation_plan_md",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "docs_implementation_plan_md"
|
|
},
|
|
{
|
|
"relation": "references",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "README.md",
|
|
"source_location": "L37",
|
|
"weight": 1.0,
|
|
"_src": "readme_md",
|
|
"_tgt": "docs_running_md",
|
|
"confidence_score": 1.0,
|
|
"source": "readme_md",
|
|
"target": "docs_running_md"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_context_mode_mandatory_routing_rules",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_context_mode_mandatory_routing_rules"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L5",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_blocked_commands_do_not_attempt_these",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_blocked_commands_do_not_attempt_these"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L7",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_curl_wget_blocked",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_curl_wget_blocked"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_inline_http_blocked",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_inline_http_blocked"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_webfetch_blocked",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_webfetch_blocked"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_redirected_tools_use_sandbox_equivalents",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_redirected_tools_use_sandbox_equivalents"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L25",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_bash_20_lines_output",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_bash_20_lines_output"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L31",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_read_for_analysis",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_read_for_analysis"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_grep_large_results",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_grep_large_results"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_tool_selection_hierarchy",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_tool_selection_hierarchy"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_subagent_routing",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_subagent_routing"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_output_constraints",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_output_constraints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "CLAUDE.md",
|
|
"source_location": "L56",
|
|
"weight": 1.0,
|
|
"_src": "claude_md",
|
|
"_tgt": "claude_md_ctx_commands",
|
|
"confidence_score": 1.0,
|
|
"source": "claude_md",
|
|
"target": "claude_md_ctx_commands"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_meal_planner_project_specification",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_meal_planner_project_specification"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L3",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_1_overview",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_1_overview"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L12",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_2_problem_statement",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_2_problem_statement"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_3_goals",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_3_goals"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L31",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_primary_goals",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_primary_goals"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_secondary_goals",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_secondary_goals"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_4_non_goals_out_of_scope",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_4_non_goals_out_of_scope"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_5_user_stories",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_5_user_stories"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L61",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_as_a_family_member_i_can",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_as_a_family_member_i_can"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L69",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_as_the_system_administrator_i_can",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_as_the_system_administrator_i_can"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L77",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_6_family_profile",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_6_family_profile"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L79",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_household",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_household"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L84",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_family_members",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_family_members"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L92",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_dietary_constraints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_dietary_constraints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L96",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_preference_signals",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_preference_signals"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L104",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_7_approval_workflow",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_7_approval_workflow"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L106",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_weekly_flow",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_weekly_flow"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L138",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_approval_token_security",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_approval_token_security"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L146",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_8_technical_constraints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_8_technical_constraints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L148",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_self_hosting_requirements",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_self_hosting_requirements"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L153",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_authentication_authorization",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_authentication_authorization"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L159",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_lucky_california_integration",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_lucky_california_integration"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L191",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_email",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_email"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L172",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_external_dependencies",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_external_dependencies"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L182",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_9_accessibility_wcag_2_1_aa",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_9_accessibility_wcag_2_1_aa"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L184",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_web_ui",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_web_ui"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L199",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_10_data_retention",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_10_data_retention"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L201",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_stored_data",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_stored_data"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L208",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_retention_period",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_retention_period"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L215",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_11_success_metrics",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_11_success_metrics"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/SPEC.md",
|
|
"source_location": "L225",
|
|
"weight": 1.0,
|
|
"_src": "docs_spec_md",
|
|
"_tgt": "docs_spec_md_12_future_considerations",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_spec_md",
|
|
"target": "docs_spec_md_12_future_considerations"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_meal_planner_architecture",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_meal_planner_architecture"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L3",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_1_system_overview",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_1_system_overview"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L52",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_2_component_descriptions",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_2_component_descriptions"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_2_1_scraper_service",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_2_1_scraper_service"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L76",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_2_2_recipe_engine",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_2_2_recipe_engine"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L91",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_2_3_meal_planner_service",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_2_3_meal_planner_service"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L112",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_2_4_notification_service",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_2_4_notification_service"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L147",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_2_5_feedback_service",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_2_5_feedback_service"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L164",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_2_6_web_ui_react_tailwind",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_2_6_web_ui_react_tailwind"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L183",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_3_data_architecture",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_3_data_architecture"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L185",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_3_1_postgresql_schema_overview",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_3_1_postgresql_schema_overview"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L267",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_3_2_key_relationships",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_3_2_key_relationships"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L284",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_4_api_design",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_4_api_design"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L286",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_4_1_core_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_4_1_core_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L306",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_4_2_email_approval_links",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_4_2_email_approval_links"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L313",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_5_deployment_architecture",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_5_deployment_architecture"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L315",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_5_1_docker_compose_services",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_5_1_docker_compose_services"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L365",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_5_2_reverse_proxy_nginx",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_5_2_reverse_proxy_nginx"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L373",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_5_3_remote_access_security",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_5_3_remote_access_security"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L380",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_6_image_strategy",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_6_image_strategy"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L382",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_6_1_primary_scraped_images",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_6_1_primary_scraped_images"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L387",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_6_2_fallback_ai_generation",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_6_2_fallback_ai_generation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L393",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_6_3_email_image_handling",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_6_3_email_image_handling"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L400",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_7_error_handling_strategy",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_7_error_handling_strategy"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L402",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_7_1_scraper_failures",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_7_1_scraper_failures"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L409",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_7_2_email_failures",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_7_2_email_failures"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L415",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_7_3_database_failures",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_7_3_database_failures"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L422",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_8_logging_monitoring",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_8_logging_monitoring"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L424",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_8_1_log_categories",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_8_1_log_categories"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L431",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_8_2_log_storage",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_8_2_log_storage"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ARCHITECTURE.md",
|
|
"source_location": "L436",
|
|
"weight": 1.0,
|
|
"_src": "docs_architecture_md",
|
|
"_tgt": "docs_architecture_md_8_3_monitoring_future",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_architecture_md",
|
|
"target": "docs_architecture_md_8_3_monitoring_future"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_meal_planner_database_schema",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_meal_planner_database_schema"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L3",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_1_schema_overview",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_1_schema_overview"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_2_enums",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_2_enums"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_tables",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_tables"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L29",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_1_family_profile",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_1_family_profile"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L49",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_2_family_member",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_2_family_member"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L66",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_3_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_3_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L82",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_4_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_4_recipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L112",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_5_meal_plan",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_5_meal_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L130",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_6_meal_plan_item",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_6_meal_plan_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L151",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_7_meal_plan_vote",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_7_meal_plan_vote"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L165",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_8_approval_token",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_8_approval_token"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L182",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_9_home_pantry",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_9_home_pantry"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L199",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_10_feedback",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_10_feedback"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L217",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_11_never_suggest",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_11_never_suggest"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L231",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_12_grocery_item",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_12_grocery_item"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L254",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_13_scrape_log",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_13_scrape_log"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L270",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_3_14_email_log",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_3_14_email_log"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L290",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_4_indexes",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_4_indexes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L292",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_4_1_primary_indexes",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_4_1_primary_indexes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L295",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_4_2_foreign_key_indexes",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_4_2_foreign_key_indexes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L316",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_4_3_full_text_search_indexes",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_4_3_full_text_search_indexes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L324",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_5_day_of_week_convention",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_5_day_of_week_convention"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L341",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_6_data_migration_strategy",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_6_data_migration_strategy"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L343",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_6_1_initial_schema",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_6_1_initial_schema"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L346",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_6_2_migration_policy",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_6_2_migration_policy"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L351",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_6_3_seed_data",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_6_3_seed_data"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L359",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_7_data_retention",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_7_data_retention"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/database-schema.md",
|
|
"source_location": "L374",
|
|
"weight": 1.0,
|
|
"_src": "docs_database_schema_md",
|
|
"_tgt": "docs_database_schema_md_8_row_level_security_future",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_database_schema_md",
|
|
"target": "docs_database_schema_md_8_row_level_security_future"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_meal_planner_implementation_plan",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_meal_planner_implementation_plan"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L3",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_overview",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_overview"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L9",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_1_infrastructure_foundation",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_1_infrastructure_foundation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_1_1_project_setup",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_1_1_project_setup"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L21",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_1_2_backend_skeleton",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_1_2_backend_skeleton"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_1_3_frontend_skeleton",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_1_3_frontend_skeleton"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_1_4_reverse_proxy_nginx",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_1_4_reverse_proxy_nginx"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L70",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_2_database_models",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_2_database_models"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L72",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_2_1_sqlalchemy_models",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_2_1_sqlalchemy_models"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L86",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_2_2_pydantic_schemas",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_2_2_pydantic_schemas"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L91",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_2_3_database_migrations",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_2_3_database_migrations"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L100",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_3_api_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_3_api_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L102",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_3_1_core_crud_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_3_1_core_crud_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L110",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_3_2_meal_plan_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_3_2_meal_plan_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L116",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_3_3_shopping_list_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_3_3_shopping_list_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L120",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_3_4_feedback_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_3_4_feedback_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L124",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_3_5_admin_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_3_5_admin_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L132",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_4_lucky_california_scraper",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_4_lucky_california_scraper"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L134",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_4_1_scraper_infrastructure",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_4_1_scraper_infrastructure"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L141",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_4_2_weekly_ad_scraper",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_4_2_weekly_ad_scraper"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L148",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_4_3_product_catalog_scraper_future",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_4_3_product_catalog_scraper_future"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L153",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_4_4_scrape_scheduling",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_4_4_scrape_scheduling"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L158",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_4_5_error_handling",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_4_5_error_handling"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L167",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_5_recipe_engine",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_5_recipe_engine"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L169",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_5_1_recipe_database",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_5_1_recipe_database"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L175",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_5_2_recipe_importing",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_5_2_recipe_importing"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L180",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_5_3_ingredient_mapping",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_5_3_ingredient_mapping"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L189",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_6_meal_planner_engine",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_6_meal_planner_engine"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L191",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_6_1_plan_generation_algorithm",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_6_1_plan_generation_algorithm"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L200",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_6_2_substitution_logic",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_6_2_substitution_logic"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L205",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_6_3_cost_calculation",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_6_3_cost_calculation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L210",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_6_4_plan_persistence",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_6_4_plan_persistence"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L219",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_7_sendgrid_email_integration",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_7_sendgrid_email_integration"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L221",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_7_1_sendgrid_setup",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_7_1_sendgrid_setup"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L227",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_7_2_meal_proposal_email",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_7_2_meal_proposal_email"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L236",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_7_3_reminder_email",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_7_3_reminder_email"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L241",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_7_4_confirmation_email",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_7_4_confirmation_email"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L250",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_8_web_ui_core_features",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_8_web_ui_core_features"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L252",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_8_1_dashboard",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_8_1_dashboard"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L259",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_8_2_meal_detail_page",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_8_2_meal_detail_page"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L266",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_8_3_approval_center",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_8_3_approval_center"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L272",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_8_4_pantry_manager",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_8_4_pantry_manager"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L282",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_9_web_ui_feedback_learning",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_9_web_ui_feedback_learning"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L284",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_9_1_feedback_portal",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_9_1_feedback_portal"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L290",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_9_2_learning_integration",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_9_2_learning_integration"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L295",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_9_3_recipe_discovery",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_9_3_recipe_discovery"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L305",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_10_shopping_list_print",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_10_shopping_list_print"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L307",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_10_1_shopping_list_generation",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_10_1_shopping_list_generation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L314",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_10_2_printable_shopping_list",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_10_2_printable_shopping_list"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L320",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_10_3_web_ui_shopping_list_view",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_10_3_web_ui_shopping_list_view"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L331",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_11_image_strategy_implementation",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_11_image_strategy_implementation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L333",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_11_1_scraped_images",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_11_1_scraped_images"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L338",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_11_2_ai_image_generation_fallback",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_11_2_ai_image_generation_fallback"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L345",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_11_3_email_image_handling",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_11_3_email_image_handling"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L354",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_phase_12_polish_future_features",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_phase_12_polish_future_features"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L356",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_12_1_variety_analysis",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_12_1_variety_analysis"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L361",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_12_2_budget_tracking",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_12_2_budget_tracking"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L366",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_12_3_whatsapp_integration_future",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_12_3_whatsapp_integration_future"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L371",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_12_4_recipe_scraping_future",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_12_4_recipe_scraping_future"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L378",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_verification_commands",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_verification_commands"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L380",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_backend_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_backend_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L382",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_health_check",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_health_check"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L385",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_api_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_api_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L391",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_frontend_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_frontend_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L393",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_build_test",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_build_test"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L396",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_dev_server",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_dev_server"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L400",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_full_stack_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_full_stack_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L402",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_start_all_services",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_start_all_services"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L405",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_check_all_services_running",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_check_all_services_running"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L408",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_view_logs",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_view_logs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L411",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_stop_all_services",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_stop_all_services"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L417",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_file_structure",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_file_structure"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L484",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_dependencies",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_dependencies"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L486",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_backend_python_3_11",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_backend_python_3_11"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L500",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_frontend_node_18",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_frontend_node_18"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L516",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_environment_variables",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_environment_variables"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L519",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_backend",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_backend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L528",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_frontend",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_frontend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L531",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_docker",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_docker"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/implementation-plan.md",
|
|
"source_location": "L537",
|
|
"weight": 1.0,
|
|
"_src": "docs_implementation_plan_md",
|
|
"_tgt": "docs_implementation_plan_md_notes",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_implementation_plan_md",
|
|
"target": "docs_implementation_plan_md_notes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_running_the_meal_planner",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_running_the_meal_planner"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L3",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_prerequisites",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_prerequisites"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L10",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_environment_setup",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_environment_setup"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L12",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_1_clone_repository",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_1_clone_repository"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_2_create_environment_file",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_2_create_environment_file"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L28",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_database",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_database"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L31",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_sendgrid",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_sendgrid"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_family_emails",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_family_emails"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_lucky_california_for_scraping",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_lucky_california_for_scraping"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_ai_images_optional",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_ai_images_optional"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L47",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_3_create_ssl_certificates_for_remote_acc",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_3_create_ssl_certificates_for_remote_acc"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L51",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_option_1_let_s_encrypt_with_certbot",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_option_1_let_s_encrypt_with_certbot"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_option_2_self_signed_for_local_testing",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_option_2_self_signed_for_local_testing"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_starting_services",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_starting_services"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L61",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_local_development",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_local_development"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_start_all_services",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_start_all_services"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L67",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_view_logs",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_view_logs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L71",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_stop_all_services",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_stop_all_services"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_production_deployment",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_production_deployment"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L78",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_start_with_production_settings",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_start_with_production_settings"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L81",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_service_status",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_service_status"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L84",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_view_resource_usage",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_view_resource_usage"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L88",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_accessing_the_application",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_accessing_the_application"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L90",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_local_access",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_local_access"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L96",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_remote_access_with_reverse_proxy",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_remote_access_with_reverse_proxy"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L102",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_database_management",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_database_management"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L104",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_initial_migration",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_initial_migration"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L333",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_run_migrations",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_run_migrations"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L110",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_current_migration",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_current_migration"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L113",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_create_new_migration_after_model_changes",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_create_new_migration_after_model_changes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L117",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_backup_database",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_backup_database"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L120",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_backup_to_file",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_backup_to_file"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L123",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_restore_from_backup",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_restore_from_backup"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L127",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_reset_database",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_reset_database"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L130",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_danger_drops_and_recreates_all_data",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_danger_drops_and_recreates_all_data"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L136",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_scraping",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_scraping"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L138",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_manual_scrape_trigger",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_manual_scrape_trigger"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L141",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_scrape_lucky_california_weekly_ad",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_scrape_lucky_california_weekly_ad"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L147",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_scrape_logs",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_scrape_logs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L150",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_view_recent_scrape_operations",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_view_recent_scrape_operations"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L154",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_scheduling",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_scheduling"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L160",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_email_testing",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_email_testing"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L162",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_test_email_send",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_test_email_send"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L165",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_send_test_email",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_send_test_email"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L171",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_view_email_logs",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_view_email_logs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L177",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_troubleshooting",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_troubleshooting"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L179",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_backend_won_t_start",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_backend_won_t_start"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L182",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_logs",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_logs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L185",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_common_issues",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_common_issues"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L186",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_database_not_ready_wait_for_db_to_be_hea",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_database_not_ready_wait_for_db_to_be_hea"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L187",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_port_conflict_check_if_port_8000_is_in_u",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_port_conflict_check_if_port_8000_is_in_u"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L188",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_missing_env_vars_verify_env_file_exists_",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_missing_env_vars_verify_env_file_exists_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L191",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_frontend_build_fails",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_frontend_build_fails"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L194",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_for_node_version_issues",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_for_node_version_issues"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L197",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_clear_cache_and_rebuild",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_clear_cache_and_rebuild"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L203",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_database_connection_errors",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_database_connection_errors"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L206",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_verify_database_is_running",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_verify_database_is_running"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L209",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_test_connection_from_backend",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_test_connection_from_backend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L212",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_credentials",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_credentials"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L216",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_scraping_failures",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_scraping_failures"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L219",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_lucky_california_is_accessible",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_lucky_california_is_accessible"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L222",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_verify_playwright_browser_installed",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_verify_playwright_browser_installed"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L225",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_manual_retry",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_manual_retry"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L229",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_email_not_sending",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_email_not_sending"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L232",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_verify_sendgrid_api_key",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_verify_sendgrid_api_key"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L235",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_sendgrid_dashboard_for_failures",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_sendgrid_dashboard_for_failures"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L236",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_ensure_sender_email_is_verified_in_sendg",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_ensure_sender_email_is_verified_in_sendg"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L239",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_development",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_development"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L241",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_backend_development",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_backend_development"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L244",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_enter_backend_container",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_enter_backend_container"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L247",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_run_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_run_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L250",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_run_with_hot_reload",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_run_with_hot_reload"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L254",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_frontend_development",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_frontend_development"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L257",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_enter_frontend_container",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_enter_frontend_container"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L260",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_run_dev_server_with_hot_reload",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_run_dev_server_with_hot_reload"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L264",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_database_migrations",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_database_migrations"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L267",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_create_migration",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_create_migration"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L270",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_upgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_upgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L273",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_downgrade",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_downgrade"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L276",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_show_migration_history",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_show_migration_history"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L280",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_health_checks",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_health_checks"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L283",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_backend_health",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_backend_health"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L286",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_database_connectivity",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_database_connectivity"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L289",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_check_all_services",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_check_all_services"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L293",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_logs",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_logs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L295",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_view_all_logs",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_view_all_logs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L301",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_view_specific_service",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_view_specific_service"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L309",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_configure_log_level",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_configure_log_level"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L316",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_security_notes",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_security_notes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L324",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_updating",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_updating"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L327",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_pull_latest_code",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_pull_latest_code"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L330",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_rebuild_images",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_rebuild_images"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L336",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_restart_services",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_restart_services"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/RUNNING.md",
|
|
"source_location": "L340",
|
|
"weight": 1.0,
|
|
"_src": "docs_running_md",
|
|
"_tgt": "docs_running_md_stopping_completely",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_running_md",
|
|
"target": "docs_running_md_stopping_completely"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_meal_planner_orientation",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_meal_planner_orientation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L7",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_what_this_project_is",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_what_this_project_is"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L15",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_architecture_current",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_architecture_current"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_phase_status_2026_05_08",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_phase_status_2026_05_08"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_auth_model_r1_b_d_locked_in",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_auth_model_r1_b_d_locked_in"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L69",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_database_schema_highlights",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_database_schema_highlights"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L83",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_environment_variables_verified",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_environment_variables_verified"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L86",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_database",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_database"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L90",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_auth",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_auth"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L95",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_email",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_email"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L101",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_phase_5_orchestration",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_phase_5_orchestration"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L105",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_lucky_swiftly",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_lucky_swiftly"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_no_bearer_token_env_var_minted_on_demand",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_no_bearer_token_env_var_minted_on_demand"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L111",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_other",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_other"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L121",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_verification_commands",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_verification_commands"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L124",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_full_local_stack_include_scheduler_for_p",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_full_local_stack_include_scheduler_for_p"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L129",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_verify_scheduler",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_verify_scheduler"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L131",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_expected_6_lines_scrape_generate_email_r",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_expected_6_lines_scrape_generate_email_r"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L133",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_manual_step_trigger_useful_for_testing_w",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_manual_step_trigger_useful_for_testing_w"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L137",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_frontend",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_frontend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L140",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_ci_github_workflows_ci_yml_runs_both_job",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_ci_github_workflows_ci_yml_runs_both_job"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L147",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_conventions",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_conventions"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/ORIENTATION.md",
|
|
"source_location": "L158",
|
|
"weight": 1.0,
|
|
"_src": "docs_orientation_md",
|
|
"_tgt": "docs_orientation_md_where_to_look",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_orientation_md",
|
|
"target": "docs_orientation_md_where_to_look"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_mealplanner_agent_handoff",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_mealplanner_agent_handoff"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L14",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_tl_dr",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_tl_dr"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_infrastructure_read_this_first",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_infrastructure_read_this_first"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L28",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_access",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_access"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_stack_up",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_stack_up"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L39",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_applying_python_code_changes",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_applying_python_code_changes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_db_connection",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_db_connection"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L52",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_admin_api_auth",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_admin_api_auth"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L58",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_key_env_vars_env_test",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_key_env_vars_env_test"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L69",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_family_data_live_seeded",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_family_data_live_seeded"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L78",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_what_changed_in_this_session",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_what_changed_in_this_session"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L80",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_mvp_login_auth_gating_committed_in_featu",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_mvp_login_auth_gating_committed_in_featu"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L86",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_nginx_committed_in_59a15a2",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_nginx_committed_in_59a15a2"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L91",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_vote_email_enrichment_aeed2a4",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_vote_email_enrichment_aeed2a4"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L99",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_shopping_list_email_improvements_aeed2a4",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_shopping_list_email_improvements_aeed2a4"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L103",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_ingredient_matcher_full_rewrite_ac2b575_",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_ingredient_matcher_full_rewrite_ac2b575_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L145",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_scraper_fix_save_priceless_produce_23738",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_scraper_fix_save_priceless_produce_23738"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L150",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_what_is_real_verified",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_what_is_real_verified"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L154",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_lucky_ca_api_swiftly_full_catalog_access",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_lucky_ca_api_swiftly_full_catalog_access"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L162",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_matcher_runs_automatically",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_matcher_runs_automatically"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L167",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_what_is_stubbed_or_missing",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_what_is_stubbed_or_missing"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L169",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_recipe_images_phase_10_approved_not_star",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_recipe_images_phase_10_approved_not_star"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L174",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_recipe_descriptions",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_recipe_descriptions"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L178",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_olive_oil_corn_tortillas_lucky_catalog_g",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_olive_oil_corn_tortillas_lucky_catalog_g"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L183",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_phase_8_feedback_ui_done",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_phase_8_feedback_ui_done"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L189",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_known_caveats_and_traps",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_known_caveats_and_traps"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L212",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_admin_api_reference",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_admin_api_reference"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L215",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_trigger_individual_steps",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_trigger_individual_steps"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L218",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_valid_steps_scrape_generate_email_remind",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_valid_steps_scrape_generate_email_remind"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L220",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_full_week_cycle_background",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_full_week_cycle_background"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L224",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_scrape_status",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_scrape_status"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L228",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_weekly_run_status",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_weekly_run_status"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L232",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_trigger_fresh_scrape_auto_match",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_trigger_fresh_scrape_auto_match"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L239",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_suggested_next_moves",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_suggested_next_moves"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L241",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_1_spoonacular_recipe_enrichment_images_d",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_1_spoonacular_recipe_enrichment_images_d"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L251",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_2_ollama_llm_matcher_olive_oil_corn_tort",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_2_ollama_llm_matcher_olive_oil_corn_tort"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L267",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_3_natural_friday_cycle",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_3_natural_friday_cycle"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L273",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_file_map_additions_from_this_session",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_file_map_additions_from_this_session"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/HANDOFF.md",
|
|
"source_location": "L285",
|
|
"weight": 1.0,
|
|
"_src": "docs_handoff_md",
|
|
"_tgt": "docs_handoff_md_final_words",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_handoff_md",
|
|
"target": "docs_handoff_md_final_words"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_meal_planner_algorithm_design_spec",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_meal_planner_algorithm_design_spec"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L9",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_1_goal",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_1_goal"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_algorithm_shape",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_algorithm_shape"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L26",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_1_hard_constraints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_1_hard_constraints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L41",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_2_scoring_signals",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_2_scoring_signals"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_3_set_selection_diversity",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_2_3_set_selection_diversity"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L82",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_ingredient_grocery_item_matching_layer",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_ingredient_grocery_item_matching_layer"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L86",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_1_schema",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_1_schema"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L112",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_2_match_job",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_2_match_job"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L123",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_3_manual_override",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_3_manual_override"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L127",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_4_recipe_create_assist",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_3_4_recipe_create_assist"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L133",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_thin_phase_4_surface",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_thin_phase_4_surface"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L137",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_1_in_scope",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_1_in_scope"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L150",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_2_recipe_model_fields_additions_to_exi",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_2_recipe_model_fields_additions_to_exi"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L174",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_3_out_of_scope_deferred",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_4_3_out_of_scope_deferred"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L185",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_5_phase_9_api_surface",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_5_phase_9_api_surface"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L204",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_6_recipe_source_comparison_deferred_deci",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_6_recipe_source_comparison_deferred_deci"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L224",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_7_open_questions_deferred",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_7_open_questions_deferred"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L233",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_8_implementation_order",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_8_implementation_order"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/specs/2026-05-05-meal-planner-algorithm-design.md",
|
|
"source_location": "L245",
|
|
"weight": 1.0,
|
|
"_src": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"_tgt": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_9_out_of_scope_for_this_spec",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_specs_2026_05_05_meal_planner_algorithm_design_md",
|
|
"target": "docs_specs_2026_05_05_meal_planner_algorithm_design_md_9_out_of_scope_for_this_spec"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_thin_phase_4_recipe_engine_matching_laye",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_thin_phase_4_recipe_engine_matching_laye"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L21",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_file_structure",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_file_structure"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L50",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_1_add_rapidfuzz_dependency",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_1_add_rapidfuzz_dependency"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L92",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_2_migration_0006_schema_changes",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_2_migration_0006_schema_changes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L228",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_3_update_sqlalchemy_models",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_3_update_sqlalchemy_models"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L313",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_4_pydantic_schemas_ingredient",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_4_pydantic_schemas_ingredient"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L450",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_5_pydantic_schemas_recipe",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_5_pydantic_schemas_recipe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L611",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_6_ingredient_crud_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_6_ingredient_crud_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L850",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_7_recipe_crud_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_7_recipe_crud_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1121",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_8_resolve_ingredient_assist_endpoin",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_8_resolve_ingredient_assist_endpoin"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1304",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_9_matcher_service_rapidfuzz_top_3",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_9_matcher_service_rapidfuzz_top_3"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1528",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_10_wire_matcher_into_scrape_success",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_10_wire_matcher_into_scrape_success"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1658",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_11_manual_match_override_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_11_manual_match_override_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1757",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_re_import_basemodel_near_the_top_of_the_",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_re_import_basemodel_near_the_top_of_the_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L1841",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_12_neversuggest_crud_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_12_neversuggest_crud_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2078",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_13_migration_0007_seed_canonical_in",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_13_migration_0007_seed_canonical_in"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2110",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_stable_uuids_so_re_running_upgrade_after",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_stable_uuids_so_re_running_upgrade_after"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2263",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_14_migration_0007_populate_30_start",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_14_migration_0007_populate_30_start"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2406",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_15_end_to_end_smoke_test_docs_refre",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_task_15_end_to_end_smoke_test_docs_refre"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2504",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_verification_gate",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_verification_gate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-thin-phase-4-recipe-engine.md",
|
|
"source_location": "L2519",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_out_of_scope_phase_9_plan_written_separa",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_thin_phase_4_recipe_engine_md_out_of_scope_phase_9_plan_written_separa"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_phase_9_meal_planner_algorithm_implement",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_phase_9_meal_planner_algorithm_implement"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L22",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_file_structure",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_file_structure"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L49",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_1_planner_config_types",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_1_planner_config_types"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L208",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_2_cost_savings_estimator",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_2_cost_savings_estimator"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L456",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_3_hard_constraint_filter",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_3_hard_constraint_filter"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L778",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_4_individual_scoring",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_4_individual_scoring"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1040",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_5_top_k_set_selection_with_diversit",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_5_top_k_set_selection_with_diversit"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1212",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_6_generation_orchestrator",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_6_generation_orchestrator"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1559",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_7_generate_api_endpoint",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_7_generate_api_endpoint"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1899",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_8_final_regression_sweep_docs_refre",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_task_8_final_regression_sweep_docs_refre"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1948",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_verification_gate",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_verification_gate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1961",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_open_items_deferred_tracked_here",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_open_items_deferred_tracked_here"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-05-phase-9-planner-algorithm.md",
|
|
"source_location": "L1971",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_out_of_scope_other_phases",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md",
|
|
"target": "docs_superpowers_plans_2026_05_05_phase_9_planner_algorithm_md_out_of_scope_other_phases"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_phase_5_weekly_orchestration_implementat",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_phase_5_weekly_orchestration_implementat"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_file_map",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_file_map"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L32",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_1_alembic_migration_0008",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_1_alembic_migration_0008"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_backend_alembic_versions_0008_phase5_orc",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_backend_alembic_versions_0008_phase5_orc"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L134",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_2_weeklyrun_model_familyprofile_upd",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_2_weeklyrun_model_familyprofile_upd"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L177",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_column_after_calorie_target_line",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_column_after_calorie_target_line"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L180",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_relationship_after_the_existing_relation",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_relationship_after_the_existing_relation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L202",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_3_settings_admin_email_app_base_url",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_3_settings_admin_email_app_base_url"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L242",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_4_alerts_py",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_4_alerts_py"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1414",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L263",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_fixtures",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_fixtures"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L393",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_alerts_py_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_alerts_py_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L489",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_5_step_scrape",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_5_step_scrape"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L499",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_scrape_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_scrape_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L631",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_6_step_generate",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_6_step_generate"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L641",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_generate_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_generate_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L742",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_7_step_email",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_7_step_email"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L752",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_email_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_email_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L900",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_8_step_deadline",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_8_step_deadline"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L910",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_deadline_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_deadline_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1013",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_9_step_finalize",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_9_step_finalize"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1023",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_finalize_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_step_finalize_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1208",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_10_runner_py_orchestrator_init_py",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_10_runner_py_orchestrator_init_py"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1219",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_runner_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_runner_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1370",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_backend_app_services_orchestrator_init_p",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_backend_app_services_orchestrator_init_p"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1403",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_11_admin_orchestrate_endpoints",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_11_admin_orchestrate_endpoints"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1413",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_admin_endpoint_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_admin_endpoint_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1574",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_12_scheduler_entry_point",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_12_scheduler_entry_point"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1680",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_13_docker_compose_scheduler_service",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_task_13_docker_compose_scheduler_service"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1749",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_final_verification",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_final_verification"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1763",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_seed_a_family_profile_row_first_if_db_is",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_seed_a_family_profile_row_first_if_db_is"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase5-orchestration.md",
|
|
"source_location": "L1783",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_environment_variables_added",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase5_orchestration_md_environment_variables_added"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_phase_6_sendgrid_email_integration_imple",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_phase_6_sendgrid_email_integration_imple"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_file_map",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_file_map"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_1_migration_0009_add_reminded_at_to",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_1_migration_0009_add_reminded_at_to"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L679",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_context",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_context"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L102",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_expected_info_alembic_runtime_migration_",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_expected_info_alembic_runtime_migration_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L105",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_expected_running_upgrade_0008_0009_again",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_expected_running_upgrade_0008_0009_again"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L128",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_2_wire_sendgridemailbackend",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_2_wire_sendgridemailbackend"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L302",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_3_step_reminder_tests",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_3_step_reminder_tests"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L339",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_step_reminder",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_step_reminder"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L579",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_4_wire_reminder_into_runner_admin_a",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_4_wire_reminder_into_runner_admin_a"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L674",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_5_html_escape_p5_a_and_getattr_clea",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_task_5_html_escape_p5_a_and_getattr_clea"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-07-phase6-sendgrid.md",
|
|
"source_location": "L828",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_final_verification",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md",
|
|
"target": "docs_superpowers_plans_2026_05_07_phase6_sendgrid_md_final_verification"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_mvp_login_family_seed_implementation_pla",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_mvp_login_family_seed_implementation_pla"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_file_map",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_file_map"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L24",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_task_1_login_page_401_interceptor_nav_lo",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_task_1_login_page_401_interceptor_nav_lo"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L33",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_1_create_frontend_src_pages_login_t",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_1_create_frontend_src_pages_login_t"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L92",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_2_modify_frontend_src_app_tsx",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_2_modify_frontend_src_app_tsx"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L183",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_3_add_401_interceptor_to_frontend_s",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_3_add_401_interceptor_to_frontend_s"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L199",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_4_build_and_verify",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_4_build_and_verify"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L205",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_expected_no_typescript_errors_build_succ",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_expected_no_typescript_errors_build_succ"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L208",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_5_commit",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_5_commit"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L220",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_task_2_family_profile_seed_script",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_task_2_family_profile_seed_script"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L241",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_edit_these_before_running",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_edit_these_before_running"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L249",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L288",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_commit",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_step_commit"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L298",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_post_merge_steps_run_by_operator_after_m",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_post_merge_steps_run_by_operator_after_m"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L300",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_1_add_app_base_url_to_env_test",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_1_add_app_base_url_to_env_test"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L309",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_2_rebuild_frontend_container_and_restart",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_2_rebuild_frontend_container_and_restart"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L316",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_3_run_the_seed_script",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_3_run_the_seed_script"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L319",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_edit_scripts_seed_family_py_to_fill_in_r",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_edit_scripts_seed_family_py_to_fill_in_r"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/plans/2026-05-09-mvp-login.md",
|
|
"source_location": "L324",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"_tgt": "docs_superpowers_plans_2026_05_09_mvp_login_md_4_verify_login_works",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_plans_2026_05_09_mvp_login_md",
|
|
"target": "docs_superpowers_plans_2026_05_09_mvp_login_md_4_verify_login_works"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_phase_6_sendgrid_email_integration_desig",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_phase_6_sendgrid_email_integration_desig"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L7",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_goal",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_goal"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L13",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_scope",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_scope"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_architecture",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_architecture"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L35",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_components",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_components"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L37",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_services_email_py_modify",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_services_email_py_modify"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L67",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_config_py_modify",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_config_py_modify"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L74",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_services_orchestrator_steps_",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_services_orchestrator_steps_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L100",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_alembic_versions_0009_phase6_rem",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_alembic_versions_0009_phase6_rem"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L110",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_models_init_py_modify",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_models_init_py_modify"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L114",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_services_orchestrator_runner",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_services_orchestrator_runner"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L122",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_api_admin_py_modify",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_api_admin_py_modify"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L130",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_scheduler_main_py_modify",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_backend_app_scheduler_main_py_modify"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L143",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_requirements_txt_verify_add",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_requirements_txt_verify_add"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L149",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_data_flow",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_data_flow"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L162",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_error_handling",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_error_handling"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L168",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_testing",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_testing"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L182",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_environment_variables",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_environment_variables"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L185",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_required_for_email_backend_sendgrid",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_required_for_email_backend_sendgrid"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "docs/superpowers/specs/2026-05-07-phase6-sendgrid-design.md",
|
|
"source_location": "L195",
|
|
"weight": 1.0,
|
|
"_src": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"_tgt": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_files_touched",
|
|
"confidence_score": 1.0,
|
|
"source": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md",
|
|
"target": "docs_superpowers_specs_2026_05_07_phase6_sendgrid_design_md_files_touched"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/requirements-dev.txt",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "backend_requirements_dev_txt",
|
|
"_tgt": "backend_requirements_dev_txt_dev_test_only_dependencies_production_de",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_requirements_dev_txt",
|
|
"target": "backend_requirements_dev_txt_dev_test_only_dependencies_production_de"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/fixtures/lucky_ca/META.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_fixtures_lucky_ca_meta_md",
|
|
"_tgt": "backend_tests_fixtures_lucky_ca_meta_md_lucky_california_weekly_ad_spike_r2_a",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_fixtures_lucky_ca_meta_md",
|
|
"target": "backend_tests_fixtures_lucky_ca_meta_md_lucky_california_weekly_ad_spike_r2_a"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/fixtures/lucky_ca/META.md",
|
|
"source_location": "L15",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_fixtures_lucky_ca_meta_md",
|
|
"_tgt": "backend_tests_fixtures_lucky_ca_meta_md_selectors_used_verified_against_this_fix",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_fixtures_lucky_ca_meta_md",
|
|
"target": "backend_tests_fixtures_lucky_ca_meta_md_selectors_used_verified_against_this_fix"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/fixtures/lucky_ca/META.md",
|
|
"source_location": "L23",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_fixtures_lucky_ca_meta_md",
|
|
"_tgt": "backend_tests_fixtures_lucky_ca_meta_md_first_parsed_item_sample",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_fixtures_lucky_ca_meta_md",
|
|
"target": "backend_tests_fixtures_lucky_ca_meta_md_first_parsed_item_sample"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "backend/tests/fixtures/lucky_ca/META.md",
|
|
"source_location": "L38",
|
|
"weight": 1.0,
|
|
"_src": "backend_tests_fixtures_lucky_ca_meta_md",
|
|
"_tgt": "backend_tests_fixtures_lucky_ca_meta_md_notes",
|
|
"confidence_score": 1.0,
|
|
"source": "backend_tests_fixtures_lucky_ca_meta_md",
|
|
"target": "backend_tests_fixtures_lucky_ca_meta_md_notes"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_adversarial_documentation_review",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_adversarial_documentation_review"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L3",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_verdict",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_verdict"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L7",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_blocking_findings",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_blocking_findings"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L9",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_1_phase_status_docs_contradict_current_i",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_1_phase_status_docs_contradict_current_i"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L18",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_2_database_schema_is_internally_inconsis",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_2_database_schema_is_internally_inconsis"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L27",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_3_api_endpoint_definitions_conflict_acro",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_3_api_endpoint_definitions_conflict_acro"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L36",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_4_security_model_is_missing_for_external",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_4_security_model_is_missing_for_external"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L46",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_5_migration_strategy_conflicts_with_runt",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_5_migration_strategy_conflicts_with_runt"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L55",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_6_current_code_appears_incompatible_with",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_6_current_code_appears_incompatible_with"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L64",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_high_risk_gaps",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_high_risk_gaps"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L66",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_7_scraping_feasibility_is_under_specifie",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_7_scraping_feasibility_is_under_specifie"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L75",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_8_meal_planning_algorithm_lacks_determin",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_8_meal_planning_algorithm_lacks_determin"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L84",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_9_shopping_list_math_is_not_implementabl",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_9_shopping_list_math_is_not_implementabl"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L93",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_10_deployment_docs_promise_production_fe",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_10_deployment_docs_promise_production_fe"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L102",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_11_environment_variable_docs_are_inconsi",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_11_environment_variable_docs_are_inconsi"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L111",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_medium_risk_issues",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_medium_risk_issues"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L113",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_12_documentation_contains_stale_and_miss",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_12_documentation_contains_stale_and_miss"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L117",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_13_tech_stack_docs_are_already_version_s",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_13_tech_stack_docs_are_already_version_s"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L121",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_14_operational_docs_assume_endpoints_tha",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_14_operational_docs_assume_endpoints_tha"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L125",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_15_data_retention_lacks_implementation_m",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_15_data_retention_lacks_implementation_m"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L129",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_16_accessibility_is_barely_addressed_des",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_16_accessibility_is_barely_addressed_des"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L133",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_17_observability_requirements_are_aspira",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_17_observability_requirements_are_aspira"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L137",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_suggested_gate_before_implementation",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_suggested_gate_before_implementation"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-gpt5.5.md",
|
|
"source_location": "L149",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_gpt5_5_md",
|
|
"_tgt": "review_docs_gpt5_5_md_implementation_readiness_rating",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_gpt5_5_md",
|
|
"target": "review_docs_gpt5_5_md_implementation_readiness_rating"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_repository_analysis",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_repository_analysis"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L3",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_executive_summary",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_executive_summary"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L11",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_current_repo_shape",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_current_repo_shape"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L32",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_blocking_findings",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_blocking_findings"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L34",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_1_backend_likely_fails_during_import_bec",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_1_backend_likely_fails_during_import_bec"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L44",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_2_sqlalchemy_relationships_contain_at_le",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_2_sqlalchemy_relationships_contain_at_le"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L54",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_3_frontend_build_is_blocked_by_a_missing",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_3_frontend_build_is_blocked_by_a_missing"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L63",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_4_frontend_docker_build_is_blocked_by_mi",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_4_frontend_docker_build_is_blocked_by_mi"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L72",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_5_vite_app_is_missing_required_html_entr",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_5_vite_app_is_missing_required_html_entr"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L81",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_6_alembic_is_documented_and_installed_bu",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_6_alembic_is_documented_and_installed_bu"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L92",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_important_findings",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_important_findings"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L94",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_7_api_routes_are_placeholders_with_no_sc",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_7_api_routes_are_placeholders_with_no_sc"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L104",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_8_admin_endpoints_are_unauthenticated",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_8_admin_endpoints_are_unauthenticated"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L114",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_9_email_approval_security_is_not_impleme",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_9_email_approval_security_is_not_impleme"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L125",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_10_secret_key_has_an_unsafe_default",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_10_secret_key_has_an_unsafe_default"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L135",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_11_sqlalchemy_2_health_query_may_fail",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_11_sqlalchemy_2_health_query_may_fail"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L144",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_12_docker_compose_exposes_backend_and_fr",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_12_docker_compose_exposes_backend_and_fr"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L154",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_13_nginx_ssl_and_rate_limiting_are_not_i",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_13_nginx_ssl_and_rate_limiting_are_not_i"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L164",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_maintainability_findings",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_maintainability_findings"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L166",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_14_model_file_is_too_large_for_early_ite",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_14_model_file_is_too_large_for_early_ite"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L174",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_15_schema_constraints_are_only_partially",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_15_schema_constraints_are_only_partially"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L182",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_16_api_prefix_behavior_may_produce_trail",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_16_api_prefix_behavior_may_produce_trail"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L189",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_17_no_repository_level_quality_gates_exi",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_17_no_repository_level_quality_gates_exi"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L197",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_documentation_alignment",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_documentation_alignment"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L207",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_recommended_remediation_order",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_recommended_remediation_order"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L209",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_phase_0_make_skeleton_start_and_build",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_phase_0_make_skeleton_start_and_build"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L219",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_phase_1_establish_schema_migration_basel",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_phase_1_establish_schema_migration_basel"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L227",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_phase_2_establish_api_and_security_basel",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_phase_2_establish_api_and_security_basel"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L235",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_phase_3_implement_first_vertical_slice",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_phase_3_implement_first_vertical_slice"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L242",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_verification_matrix_to_add",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_verification_matrix_to_add"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/repo-gpt5.5.md",
|
|
"source_location": "L259",
|
|
"weight": 1.0,
|
|
"_src": "review_repo_gpt5_5_md",
|
|
"_tgt": "review_repo_gpt5_5_md_final_assessment",
|
|
"confidence_score": 1.0,
|
|
"source": "review_repo_gpt5_5_md",
|
|
"target": "review_repo_gpt5_5_md_final_assessment"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_adversarial_documentation_review_claude",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_adversarial_documentation_review_claude"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L9",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_verdict",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_verdict"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L17",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_blocking",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_blocking"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L19",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_b1_family_profile_is_internally_inconsis",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_b1_family_profile_is_internally_inconsis"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_b2_there_is_no_family_member_or_user_tab",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_b2_there_is_no_family_member_or_user_tab"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_b3_recipe_ingredient_relationship_is_doc",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_b3_recipe_ingredient_relationship_is_doc"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L51",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_b4_there_is_no_authentication_anywhere_i",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_b4_there_is_no_authentication_anywhere_i"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L63",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_b5_approval_by_email_is_fragile_and_prob",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_b5_approval_by_email_is_fragile_and_prob"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L77",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_b6_self_hosted_no_external_cloud_service",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_b6_self_hosted_no_external_cloud_service"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L90",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_major",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_major"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L92",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m1_scraping_legality_tos_unaddressed",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m1_scraping_legality_tos_unaddressed"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L103",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m2_phase_ordering_buries_the_hard_proble",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m2_phase_ordering_buries_the_hard_proble"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L109",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m3_apscheduler_multiple_workers_will_mis",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m3_apscheduler_multiple_workers_will_mis"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L115",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m4_schema_has_avoidable_defects",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m4_schema_has_avoidable_defects"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L126",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m5_migration_story_is_muddled",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m5_migration_story_is_muddled"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L132",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m6_if_both_approve_or_no_response_meal_c",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m6_if_both_approve_or_no_response_meal_c"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L136",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m7_calorie_target_appears_in_the_schema_",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m7_calorie_target_appears_in_the_schema_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L140",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m8_image_strategy_contradicts_itself",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m8_image_strategy_contradicts_itself"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L148",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_minor",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_minor"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L150",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m1_doc_hygiene",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m1_doc_hygiene"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L157",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m2_operational_gaps_not_in_any_doc",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m2_operational_gaps_not_in_any_doc"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L165",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m3_docker_compose_exposure",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m3_docker_compose_exposure"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L169",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m4_success_metrics_aren_t_measurable",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m4_success_metrics_aren_t_measurable"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L179",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m5_future_features_are_mixed_into_the_im",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m5_future_features_are_mixed_into_the_im"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L183",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_m6_secret_key_ghost_variable",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_m6_secret_key_ghost_variable"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L189",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_cross_doc_contradictions_summarized",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_cross_doc_contradictions_summarized"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/docs-claude.md",
|
|
"source_location": "L205",
|
|
"weight": 1.0,
|
|
"_src": "review_docs_claude_md",
|
|
"_tgt": "review_docs_claude_md_suggested_order_of_operations_before_any",
|
|
"confidence_score": 1.0,
|
|
"source": "review_docs_claude_md",
|
|
"target": "review_docs_claude_md_suggested_order_of_operations_before_any"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_review_synthesis_three_reviewers_compare",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_review_synthesis_three_reviewers_compare"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L7",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_1_strong_consensus_all_reviewers_blockin",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_1_strong_consensus_all_reviewers_blockin"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L24",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_2_partial_agreement_2_of_3",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_2_partial_agreement_2_of_3"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L40",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_3_unique_findings_only_one_reviewer",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_3_unique_findings_only_one_reviewer"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_claude_only",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_claude_only"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L56",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_gpt_5_5_docs_only",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_gpt_5_5_docs_only"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L61",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_gpt_5_5_repo_only_claude_could_not_have_",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_gpt_5_5_repo_only_claude_could_not_have_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L73",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_4_where_reviewers_conflict",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_4_where_reviewers_conflict"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L82",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_5_combined_blocker_list_deduplicated_ran",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_5_combined_blocker_list_deduplicated_ran"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L98",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_6_additional_investigation_needed",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_6_additional_investigation_needed"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/synthesis.md",
|
|
"source_location": "L114",
|
|
"weight": 1.0,
|
|
"_src": "review_synthesis_md",
|
|
"_tgt": "review_synthesis_md_7_net_assessment",
|
|
"confidence_score": 1.0,
|
|
"source": "review_synthesis_md",
|
|
"target": "review_synthesis_md_7_net_assessment"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L1",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_review_consensus_feedback_for_originatin",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_review_consensus_feedback_for_originatin"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L12",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_headline",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_headline"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L20",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_1_consensus_blockers_must_resolve_before",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_1_consensus_blockers_must_resolve_before"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L24",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_1_1_recipe_ingredient_relationship_is_mo",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_1_1_recipe_ingredient_relationship_is_mo"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L30",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_1_2_no_authentication_exists_anywhere_in",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_1_2_no_authentication_exists_anywhere_in"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L36",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_1_3_email_approval_flow_is_unsafe_and_pr",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_1_3_email_approval_flow_is_unsafe_and_pr"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L42",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_1_4_no_family_member_table_despite_per_p",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_1_4_no_family_member_table_despite_per_p"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L48",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_1_5_phase_status_is_contradictory_and_th",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_1_5_phase_status_is_contradictory_and_th"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L59",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_1_6_schema_has_avoidable_correctness_def",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_1_6_schema_has_avoidable_correctness_def"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L69",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_1_7_docker_compose_exposes_backend_8000_",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_1_7_docker_compose_exposes_backend_8000_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L73",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_1_8_production_deployment_claims_exceed_",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_1_8_production_deployment_claims_exceed_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L80",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_2_high_risk_gaps_agreed_by_2_of_3_review",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_2_high_risk_gaps_agreed_by_2_of_3_review"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L82",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_2_1_migration_tooling_is_muddled",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_2_1_migration_tooling_is_muddled"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L85",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_2_2_api_endpoint_contract_conflicts_acro",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_2_2_api_endpoint_contract_conflicts_acro"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L88",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_2_3_scraping_is_under_specified_and_risk",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_2_3_scraping_is_under_specified_and_risk"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L94",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_2_4_phase_ordering_hides_risk_behind_plu",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_2_4_phase_ordering_hides_risk_behind_plu"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L97",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_2_5_shopping_list_math_is_not_implementa",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_2_5_shopping_list_math_is_not_implementa"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L100",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_2_6_environment_variables_inconsistent_a",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_2_6_environment_variables_inconsistent_a"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L103",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_2_7_accessibility_absent_despite_family_",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_2_7_accessibility_absent_despite_family_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L106",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_2_8_health_check_will_fail_under_sqlalch",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_2_8_health_check_will_fail_under_sqlalch"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L111",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_3_single_reviewer_findings_worth_keeping",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_3_single_reviewer_findings_worth_keeping"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L113",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_from_claude",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_from_claude"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L123",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_from_gpt_5_5_docs",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_from_gpt_5_5_docs"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L128",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_from_gpt_5_5_repo",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_from_gpt_5_5_repo"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L135",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_4_where_reviewers_disagreed",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_4_where_reviewers_disagreed"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L144",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_5_combined_remediation_order",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_5_combined_remediation_order"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L160",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_6_verification_matrix_currently_failing_",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_6_verification_matrix_currently_failing_"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L177",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_7_additional_investigation_still_needed",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_7_additional_investigation_still_needed"
|
|
},
|
|
{
|
|
"relation": "contains",
|
|
"confidence": "EXTRACTED",
|
|
"source_file": "Review/reviewconcensus.md",
|
|
"source_location": "L195",
|
|
"weight": 1.0,
|
|
"_src": "review_reviewconcensus_md",
|
|
"_tgt": "review_reviewconcensus_md_8_suggested_response_format_from_origina",
|
|
"confidence_score": 1.0,
|
|
"source": "review_reviewconcensus_md",
|
|
"target": "review_reviewconcensus_md_8_suggested_response_format_from_origina"
|
|
}
|
|
],
|
|
"hyperedges": []
|
|
} |