From 6c973203fc725b80aadc0202f72e941a5c08044d Mon Sep 17 00:00:00 2001 From: gilesb Date: Mon, 12 Jan 2026 20:35:06 +0000 Subject: [PATCH] Add debug logging to recipe upload and get To help diagnose why recipes are not found after upload. Co-Authored-By: Claude Opus 4.5 --- app/services/recipe_service.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/services/recipe_service.py b/app/services/recipe_service.py index c7f855c..f9be0c6 100644 --- a/app/services/recipe_service.py +++ b/app/services/recipe_service.py @@ -33,10 +33,15 @@ class RecipeService: async def get_recipe(self, recipe_id: str) -> Optional[Recipe]: """Get a recipe by ID (content hash).""" import yaml + import logging + logger = logging.getLogger(__name__) # Get from cache (content-addressed storage) + logger.info(f"get_recipe: Looking up recipe_id={recipe_id[:16]}...") path = self.cache.get_by_cid(recipe_id) + logger.info(f"get_recipe: cache.get_by_cid returned path={path}") if not path or not path.exists(): + logger.warning(f"get_recipe: Recipe {recipe_id[:16]}... not found in cache") return None with open(path) as f: @@ -160,14 +165,18 @@ class RecipeService: return None, f"Compile error: {e}" # Write to temp file for caching + import logging + logger = logging.getLogger(__name__) try: with tempfile.NamedTemporaryFile(delete=False, suffix=".sexp", mode="w") as tmp: tmp.write(content) tmp_path = Path(tmp.name) # Store in cache (content-addressed, auto-pins to IPFS) + logger.info(f"upload_recipe: Storing recipe in cache from {tmp_path}") cached, ipfs_cid = self.cache.put(tmp_path, node_type="recipe", move=True) recipe_id = ipfs_cid or cached.cid # Prefer IPFS CID + logger.info(f"upload_recipe: Stored recipe, cached.cid={cached.cid[:16]}..., ipfs_cid={ipfs_cid[:16] if ipfs_cid else None}, recipe_id={recipe_id[:16]}...") # Track ownership in item_types and assign friendly name if uploader: