fix: handle missing template files gracefully at startup

This commit is contained in:
2026-05-31 12:59:12 +08:00
parent b76a2baad2
commit 323e7cf572
+12 -3
View File
@@ -41,10 +41,16 @@ def _load_phase13_template_asset(
template_category: str,
industry_category: str,
description: str,
) -> dict[str, Any]:
) -> dict[str, Any] | None:
asset_dir = TEMPLATE_LIBRARY_ROOT / folder_name
markdown = (asset_dir / f"{template_code}.md").read_text(encoding="utf-8-sig")
variables_data = json.loads((asset_dir / f"{template_code}-variables.json").read_text(encoding="utf-8-sig"))
md_file = asset_dir / f"{template_code}.md"
if not md_file.is_file():
return None
json_file = asset_dir / f"{template_code}-variables.json"
if not json_file.is_file():
return None
markdown = md_file.read_text(encoding="utf-8-sig")
variables_data = json.loads(json_file.read_text(encoding="utf-8-sig"))
required_variables = variables_data.get("required_variables", [])
optional_variables = variables_data.get("optional_variables", [])
variables = [
@@ -688,6 +694,9 @@ DEFAULT_TEMPLATES: list[dict[str, Any]] = [
),
]
# Filter out templates whose source files are missing (e.g. in Docker builds without project-docs)
DEFAULT_TEMPLATES: list[dict[str, Any]] = [t for t in DEFAULT_TEMPLATES if t is not None]
class TemplateService:
def __init__(self, db: Session):