# qa_session

started_at: 2026-03-27 16:06:29.706892
completed_at: 2026-03-27 19:29:26.544792
notes: minor bugs to be reviewed
smoke_results:
  {"route_dashboard": {"label": "GET /dashboard returns 200", "status": "pass", "detail": "route registered"}, "route_pantry": {"label": "GET /pantry returns 200", "status": "pass", "detail": "route registered"}, "route_planner": {"label": "GET /meal-planner returns 200", "status": "pass", "detail": "route registered"}, "route_shopping": {"label": "GET /shopping returns 200", "status": "pass", "detail": "route registered"}, "route_recipes": {"label": "GET /recipes returns 200", "status": "pass", "detail": "route registered"}, "route_changelog": {"label": "GET /changelog returns 200", "status": "pass", "detail": "route registered"}, "route_smoketest": {"label": "GET /smoketest returns 200", "status": "pass", "detail": "route registered"}, "db_demo_user": {"label": "Demo user exists and is active", "status": "pass", "detail": "demo id=10"}, "db_admin_user": {"label": "Admin user exists with admin role", "status": "pass", "detail": "admin exists"}, "db_recipes": {"label": "At least 1 recipe in system", "status": "pass", "detail": "19 recipes"}, "db_ingredients": {"label": "Ingredient table populated", "status": "pass", "detail": "769 ingredients"}, "db_units": {"label": "Unit table has entries", "status": "pass", "detail": "56 units"}, "db_clove_unit": {"label": "Clove unit exists in Unit table", "status": "pass", "detail": "clove found"}, "schema_is_demo": {"label": "user.is_demo column exists", "status": "pass", "detail": "is_demo found in user"}, "schema_culinary_type": {"label": "recipe.culinary_type column exists", "status": "pass", "detail": "culinary_type found in recipe"}, "schema_group_label": {"label": "recipe_ingredient_detail.group_label exists", "status": "pass", "detail": "group_label found in recipe_ingredient_detail"}, "schema_meal_type_sli": {"label": "shopping_list_item.meal_type exists", "status": "pass", "detail": "meal_type found in shopping_list_item"}, "schema_unit_sli": {"label": "shopping_list_item.unit exists", "status": "pass", "detail": "unit found in shopping_list_item"}, "schema_planned_meal": {"label": "planned_meal table exists", "status": "pass", "detail": "id found in planned_meal"}, "schema_modifier_notes": {"label": "pantry_item.modifier_notes exists (Phase 2 \u2014 expected pending)", "status": "pending", "detail": "Not yet built \u2014 Phase 2 Item 1"}, "data_no_orphan_pantry": {"label": "No orphaned pantry items", "status": "pass", "detail": "0 orphans"}, "data_recipes_typed": {"label": "All recipes have culinary_type", "status": "pass", "detail": "0 untyped"}, "data_no_bad_units": {"label": "No invalid units in pantry (cup/gallon raw)", "status": "pass", "detail": "all units normalised"}, "data_planned_meal_integrity": {"label": "All PlannedMealRecipe entries have valid recipe", "status": "pass", "detail": "all valid"}, "bp_social": {"label": "Social blueprint registered (26 routes)", "status": "pass", "detail": "23 social routes"}, "bp_admin": {"label": "Admin blueprint registered", "status": "pass", "detail": "66 admin routes"}}


started_at: 2026-03-27 19:29:26.621395
smoke_results:
  {"route_root": {"label": "GET / registered", "status": "pass", "detail": "registered: /"}, "route_dashboard": {"label": "GET /dashboard registered", "status": "pass", "detail": "registered: /dashboard"}, "route_recipes": {"label": "GET /recipes registered", "status": "pass", "detail": "registered: /recipes"}, "route_recipe_view": {"label": "GET /recipe/<id> registered", "status": "pass", "detail": "registered: /recipe/<int:recipe_id>"}, "route_upload": {"label": "GET /recipe/upload registered", "status": "pass", "detail": "registered: /recipe/upload"}, "route_edit": {"label": "GET /recipe/edit registered", "status": "pass", "detail": "registered: /recipe/edit/<int:recipe_id>"}, "route_pantry": {"label": "GET /pantry registered", "status": "pass", "detail": "registered: /pantry"}, "route_shopping": {"label": "GET /shopping registered", "status": "pass", "detail": "registered: /shopping"}, "route_planner": {"label": "GET /meal-planner registered", "status": "pass", "detail": "registered: /meal-planner"}, "route_changelog": {"label": "GET /changelog registered", "status": "pass", "detail": "registered: /changelog"}, "route_login": {"label": "GET /login registered", "status": "pass", "detail": "registered: /login"}, "route_register": {"label": "GET /register registered", "status": "pass", "detail": "registered: /register"}, "route_profile": {"label": "GET /profile registered", "status": "pass", "detail": "registered: /profile"}, "route_smoketest": {"label": "GET /smoketest registered", "status": "pass", "detail": "registered: /smoketest"}, "route_demo_login": {"label": "POST /demo-login registered", "status": "pass", "detail": "registered: /demo-login"}, "route_demo_logout": {"label": "GET /demo-logout registered", "status": "pass", "detail": "registered: /demo-logout"}, "db_admin_exists": {"label": "Admin user exists", "status": "pass", "detail": "1 admin(s)"}, "db_demo_exists": {"label": "Demo user exists and is_demo=True", "status": "pass", "detail": "demo user found"}, "db_no_pending_users": {"label": "No stuck pending registrations", "status": "pass", "detail": "0 pending"}, "db_recipes_exist": {"label": "Recipes exist in system", "status": "pass", "detail": "37 visible, 53 total"}, "db_recipes_unflagged": {"label": "Unflagged recipes exist for users", "status": "pass", "detail": "37 unflagged"}, "db_flagged_count": {"label": "Flagged recipe count", "status": "pass", "detail": "16 flagged"}, "db_recipes_typed": {"label": "All recipes have culinary_type set", "status": "pass", "detail": "0 untyped"}, "db_ingredients": {"label": "Ingredients table has 700+ entries", "status": "pass", "detail": "769 ingredients"}, "db_units": {"label": "Units table has 50+ entries", "status": "pass", "detail": "56 units"}, "db_modifiers": {"label": "Modifiers table populated", "status": "pass", "detail": "143 modifiers"}, "db_modifier_cats": {"label": "Modifier categories exist", "status": "pass", "detail": "12 categories"}, "db_tags": {"label": "Tags table populated", "status": "pass", "detail": "42 tags"}, "db_culinary_types": {"label": "Recipes have culinary types assigned", "status": "pass", "detail": "53 recipes with culinary type"}, "db_no_orphan_pantry": {"label": "No orphaned pantry items (missing ingredient)", "status": "pass", "detail": "0 orphans"}, "db_no_orphan_planned": {"label": "No orphaned PlannedMealRecipe records", "status": "pass", "detail": "10 planned meals"}, "db_shopping_lists": {"label": "ShoppingList table accessible", "status": "pass", "detail": "1 shopping lists"}, "schema_user_is_demo": {"label": "user.is_demo exists", "status": "pass", "detail": "is_demo found in user"}, "schema_user_is_staff": {"label": "user.is_staff or role exists", "status": "pass", "detail": "role found in user"}, "schema_recipe_culinary_type": {"label": "recipe.culinary_type exists", "status": "pass", "detail": "culinary_type found in recipe"}, "schema_recipe_is_flagged": {"label": "recipe.is_flagged exists", "status": "pass", "detail": "is_flagged found in recipe"}, "schema_rid_group_label": {"label": "recipe_ingredient_detail.group_label exists", "status": "pass", "detail": "group_label found in recipe_ingredient_detail"}, "schema_rid_group_order": {"label": "recipe_ingredient_detail.group_order exists", "status": "pass", "detail": "group_order found in recipe_ingredient_detail"}, "schema_sli_meal_type": {"label": "shopping_list_item.meal_type exists", "status": "pass", "detail": "meal_type found in shopping_list_item"}, "schema_sli_unit": {"label": "shopping_list_item.unit exists", "status": "pass", "detail": "unit found in shopping_list_item"}, "schema_planned_meal": {"label": "planned_meal table exists", "status": "pass", "detail": "planned_meal exists"}, "schema_planned_meal_recipe": {"label": "planned_meal_recipe table exists", "status": "pass", "detail": "planned_meal_recipe exists"}, "schema_site_setting": {"label": "site_setting table exists", "status": "pass", "detail": "site_setting exists"}, "schema_tag": {"label": "tag table exists", "status": "pass", "detail": "tag exists"}, "schema_recipe_tag": {"label": "recipe_tag table exists", "status": "pass", "detail": "recipe_tag exists"}, "schema_qa_session": {"label": "qa_session table exists", "status": "pass", "detail": "qa_session exists"}, "schema_ingredient_parent_id": {"label": "ingredient.parent_id exists (Chapter 2 \u2014 pending)", "status": "pending", "detail": "Not yet built \u2014 Chapter 2.1"}, "schema_pantry_modifier_notes": {"label": "pantry_item.modifier_notes exists (Chapter 2 \u2014 pending)", "status": "pending", "detail": "Not yet built \u2014 Chapter 2.1"}, "toggle_db_count": {"label": "SiteSetting has 30+ entries", "status": "pass", "detail": "55 settings"}, "toggle_no_dupes": {"label": "No duplicate SiteSetting keys", "status": "pass", "detail": "55 rows / 55 unique"}, "toggle_recipes_on": {"label": "feature_recipe_view ON", "status": "pass", "detail": "feature_recipe_view=true (expected true)"}, "toggle_upload_on": {"label": "feature_upload ON", "status": "pass", "detail": "feature_upload=true (expected true)"}, "toggle_edit_on": {"label": "feature_recipe_edit ON", "status": "pass", "detail": "feature_recipe_edit=true (expected true)"}, "toggle_ai_import_on": {"label": "feature_ai_import ON", "status": "pass", "detail": "feature_ai_import=true (expected true)"}, "toggle_ratings_on": {"label": "feature_ratings ON", "status": "pass", "detail": "feature_ratings=true (expected true)"}, "toggle_changelog_on": {"label": "feature_changelog ON", "status": "pass", "detail": "feature_changelog=true (expected true)"}, "toggle_registration_on": {"label": "feature_registration ON", "status": "pass", "detail": "feature_registration=true (expected true)"}, "toggle_mealplan_on": {"label": "feature_mealplan ON", "status": "pass", "detail": "feature_mealplan=true (expected true)"}, "toggle_shopping_on": {"label": "feature_shopping_list ON", "status": "pass", "detail": "feature_shopping_list=true (expected true)"}, "toggle_shop_generate_on": {"label": "feature_shop_generate ON", "status": "pass", "detail": "feature_shop_generate=true (expected true)"}, "toggle_pantry_on": {"label": "feature_pantry ON", "status": "pass", "detail": "feature_pantry=true (expected true)"}, "toggle_pantry_add_on": {"label": "feature_pantry_add ON", "status": "pass", "detail": "feature_pantry_add=true (expected true)"}, "toggle_profile_on": {"label": "feature_profile_edit ON", "status": "pass", "detail": "feature_profile_edit=true (expected true)"}, "toggle_demo_on": {"label": "feature_demo ON", "status": "pass", "detail": "feature_demo=true (expected true)"}, "toggle_mod_bypass_on": {"label": "mod_bypass_features ON", "status": "pass", "detail": "mod_bypass_features=true (expected true)"}, "toggle_deduct_off": {"label": "feature_pantry_deduct OFF (Ch.2 pending)", "status": "pass", "detail": "feature_pantry_deduct=false (expected false)"}, "toggle_shop_pantry_off": {"label": "feature_shop_pantry_link OFF (Ch.2 pending)", "status": "pass", "detail": "feature_shop_pantry_link=false (expected false)"}, "toggle_discover_off": {"label": "discover_enabled OFF (placeholder)", "status": "pass", "detail": "discover_enabled=false (expected false)"}, "toggle_community_off": {"label": "community_enabled OFF (placeholder)", "status": "pass", "detail": "community_enabled=false (expected false)"}, "toggle_cook_mode_off": {"label": "feature_cook_mode OFF (alpha)", "status": "pass", "detail": "feature_cook_mode=false (expected false)"}, "toggle_alert_off": {"label": "alert_enabled OFF by default", "status": "pass", "detail": "alert_enabled=false (expected false)"}, "toggle_ai_claude": {"label": "ai_provider_claude configured", "status": "pass", "detail": "ai_provider_claude=true (expected true)"}, "infra_version_file": {"label": "VERSION file exists", "status": "pass", "detail": "0.9.0-alpha"}, "infra_changelog": {"label": "CHANGELOG.md exists", "status": "pass", "detail": "found"}, "infra_roadmap": {"label": "ROADMAP_v2.md exists", "status": "pass", "detail": "found"}, "infra_restore_doc": {"label": "RESTORE.md exists", "status": "pass", "detail": "found"}, "infra_backup_dir": {"label": "instance/backups/ directory exists", "status": "pass", "detail": "found"}, "infra_backup_exists": {"label": "At least 1 DB backup exists", "status": "pass", "detail": "2 backups"}, "infra_backup_script": {"label": "backup_db.sh exists", "status": "pass", "detail": "found"}, "infra_secret_key": {"label": "SECRET_KEY configured", "status": "pass", "detail": "env var set"}, "infra_version_format": {"label": "VERSION matches expected format", "status": "pass", "detail": "0.9.0-alpha"}, "data_planned_meal_integrity": {"label": "All PlannedMealRecipe entries have valid recipe", "status": "pass", "detail": "all valid"}, "bp_social": {"label": "Social blueprint registered (26 routes)", "status": "pass", "detail": "23 social routes"}, "bp_admin": {"label": "Admin blueprint registered", "status": "pass", "detail": "66 admin routes"}}


# qa_checklist_item

block: shopping
item_key: shp_06
status: fail
updated_at: 2026-03-27 19:11:34.891009
notes:
  is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3)


block: shopping
item_key: shp_08
status: fail
updated_at: 2026-03-27 19:12:52.482457
notes:
  various issues, here is one error... is not bound to a Session; attribute refresh operation cannot proceed (Background on this error at: https://sqlalche.me/e/20/bhk3)


