From 60d25e0e26ca803bf3f8adc44290184ff5f8bf31 Mon Sep 17 00:00:00 2001 From: Ashvin <76151462+ashvinctrl@users.noreply.github.com> Date: Tue, 9 Jun 2026 21:09:06 +0530 Subject: [PATCH] fix(cookbook): use COOKBOOK_STATE_FILE constant for state path (#3623) The module derived its state file path as Path(os.environ.get("DATA_DIR", "data")) / "cookbook_state.json". The correct env var is ODYSSEUS_DATA_DIR, which is already read by src/constants.py and exported as COOKBOOK_STATE_FILE. When ODYSSEUS_DATA_DIR is set (Docker, custom installs), the old code read the wrong env var and silently wrote state to data/cookbook_state.json relative to CWD while every other file resolved under the custom data directory. Fixes #3621 --- routes/cookbook_routes.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/routes/cookbook_routes.py b/routes/cookbook_routes.py index 081638cae..4a4764232 100644 --- a/routes/cookbook_routes.py +++ b/routes/cookbook_routes.py @@ -15,6 +15,7 @@ from pathlib import Path from fastapi import APIRouter, HTTPException, Request, Depends from src.auth_helpers import require_user +from src.constants import COOKBOOK_STATE_FILE from pydantic import BaseModel from core.middleware import require_admin @@ -54,7 +55,7 @@ _HF_TOKEN_STATUS_SNIPPET = ( def setup_cookbook_routes() -> APIRouter: router = APIRouter(tags=["cookbook"]) - _cookbook_state_path = Path(os.environ.get("DATA_DIR", "data")) / "cookbook_state.json" + _cookbook_state_path = Path(COOKBOOK_STATE_FILE) def _mask_secret(value: str) -> str: if not value: