Parse config.yaml into typed AppConfig dataclass

- ServerConfig, VideoConfig, ModelConfig, DeadBugConfig,
  AudioConfig, LoggingConfig as nested dataclasses
- Consumers use config.server.host, config.model.resolved_path etc.
- env var overrides preserved via _apply_env_overrides()
This commit is contained in:
2026-06-10 10:23:51 +08:00
parent c8fd057129
commit f9384f7bc1
7 changed files with 116 additions and 109 deletions
+2 -2
View File
@@ -1,10 +1,10 @@
from __future__ import annotations
from app.diagnostics.crash_handler import enable_crash_handler
from configs.load import LOG_DIR
from configs.load import config
def startup() -> None:
enable_crash_handler(LOG_DIR)
enable_crash_handler(config.logging.dir_path)
from app.core.logging import setup_logging
setup_logging()
+6 -5
View File
@@ -4,16 +4,17 @@ from pathlib import Path
from loguru import logger
from configs.load import LOG_DIR, LOG_RETENTION, LOG_ROTATION
from configs.load import config
def setup_logging() -> None:
LOG_DIR.mkdir(parents=True, exist_ok=True)
log_dir = config.logging.dir_path
log_dir.mkdir(parents=True, exist_ok=True)
logger.add(
LOG_DIR / "posefit-server_{time:YYYY-MM-DD}.log",
rotation=LOG_ROTATION,
retention=LOG_RETENTION,
log_dir / "posefit-server_{time:YYYY-MM-DD}.log",
rotation=config.logging.rotation,
retention=config.logging.retention,
enqueue=True,
backtrace=True,
diagnose=True,