- compute_nodes() 的 current_running_jobs 纳入运行中的评测任务(eval_tasks) 与已加载的推理模型(compare_tasks 持久化状态 + 内存标记兜底), 多节点时 GPU 被评测/推理占用不再显示 0/1 - gpus() 直接按 eval_tasks / compare_tasks 派生 GPU busy/reserved 状态, 修复 gpu_id=0 时 or -1 导致匹配失败;删除评测后 GPU 不再残留 busy - 评测不再复用 mark_inference_loaded 内存标记,GPU 占用由任务数据驱动 - requirements.txt 补充 pytest / ruff(此前仅声明在 pyproject dev 可选依赖) Co-Authored-By: Claude <noreply@anthropic.com>
Backend Module Convention
每个业务模块建议保持一致结构:
module_name/
__init__.py
router.py # FastAPI router
schemas.py # Pydantic request/response models
service.py # Business orchestration
repository.py # Database access
permissions.py # Optional resource permission checks
模块边界以 docs/system-development-plan.md 的页面模块开发工作包为准。