feat: added current alfred version from pyproject.py to healthcheck

This commit is contained in:
2026-01-01 04:44:15 +01:00
parent 9a95cdb107
commit af311720b6
4 changed files with 17 additions and 1 deletions

View File

@@ -13,6 +13,7 @@ HOST=0.0.0.0
PORT=3080
# Build informations (Synced with pyproject.toml via bootstrap)
ALFRED_VERSION=
IMAGE_NAME=
LIBRECHAT_VERSION=
PYTHON_VERSION=

View File

@@ -110,7 +110,7 @@ def extract_last_user_content(messages: list[dict[str, Any]]) -> str:
@app.get("/health")
async def health_check():
"""Health check endpoint."""
return {"status": "healthy", "version": "0.2.0"} # TODO: SHOULD BE DYNAMIC
return {"status": "healthy", "version": f"v{settings.alfred_version}"}
@app.get("/v1/models")

View File

@@ -25,6 +25,7 @@ class ProjectVersions(NamedTuple):
librechat: str
rag: str
alfred: str
def get_versions_from_toml() -> ProjectVersions:
@@ -42,6 +43,7 @@ def get_versions_from_toml() -> ProjectVersions:
return ProjectVersions(
librechat=data["tool"]["alfred"]["settings"]["librechat_version"],
rag=data["tool"]["alfred"]["settings"]["rag_version"],
alfred=data["tool"]["poetry"]["version"],
)
except KeyError as e:
raise KeyError(f"Error: Missing key {e} in pyproject.toml") from e
@@ -66,6 +68,7 @@ class Settings(BaseSettings):
data_storage: str = "data"
librechat_version: str = Field(VERSIONS.librechat, description="Librechat version")
rag_version: str = Field(VERSIONS.rag, description="RAG engine version")
alfred_version: str = Field(VERSIONS.alfred, description="Alfred version")
# --- CONTEXT SETTINGS ---
max_history_messages: int = 10

View File

@@ -87,6 +87,7 @@ def bootstrap(): # noqa: PLR0912, PLR0915
security_keys = data["tool"]["alfred"]["security"]
settings_keys = data["tool"]["alfred"]["settings"]
dependencies = data["tool"]["poetry"]["dependencies"]
alfred_version = data["tool"]["poetry"]["version"]
# Normalize TOML keys to UPPER_CASE for .env format (done once)
security_keys_upper = {k.upper(): v for k, v in security_keys.items()}
@@ -144,6 +145,13 @@ def bootstrap(): # noqa: PLR0912, PLR0915
else:
new_lines.append(f"{key}={existing_env[key]}\n")
print(f" ↻ Kept Python (short): {existing_env[key]}")
elif key == "ALFRED_VERSION":
if existing_env.get(key) != alfred_version:
new_lines.append(f"{key}={alfred_version}\n")
print(f" ↻ Updated Alfred version: {existing_env.get(key, 'N/A')}{alfred_version}")
else:
new_lines.append(f"{key}={alfred_version}\n")
print(f" ↻ Kept Alfred version: {alfred_version}")
# Keep other existing values
else:
new_lines.append(f"{key}={existing_env[key]}\n")
@@ -163,6 +171,9 @@ def bootstrap(): # noqa: PLR0912, PLR0915
elif key == "PYTHON_VERSION_SHORT":
new_lines.append(f"{key}={python_version_short}\n")
print(f" + Python version (short): {python_version_short}")
elif key == "ALFRED_VERSION":
new_lines.append(f"{key}={alfred_version}\n")
print(f" + Alfred version: {alfred_version}")
else:
new_lines.append(raw_line)
else:
@@ -217,6 +228,7 @@ def bootstrap(): # noqa: PLR0912, PLR0915
env_make_path = base_dir / ".env.make"
with open(env_make_path, "w", encoding="utf-8") as f:
f.write("# Auto-generated from pyproject.toml by bootstrap.py\n")
f.write(f"export ALFRED_VERSION={alfred_version}\n")
f.write(f"export PYTHON_VERSION={python_version_full}\n")
f.write(f"export PYTHON_VERSION_SHORT={python_version_short}\n")
f.write(f"export RUNNER={settings_keys['runner']}\n")