Files
AgentLab/backend/app/apps/validation.py
ThearchyHelios 9d8b41430e 完善口径管理、主动调查与后台任务,修复通用问题
- 完善口径编辑、只读试运行、统一质量验证与执行语义指纹
- 增加可执行指标约束、有预算的主动调查和过程评测
- 提取发布检查、证据读取与起草服务,支持任务停止、重试和检查点恢复
- 增加版本传递影响分析,修复并发覆盖、敏感值遮罩、异常评分及页面状态问题
- 修复 SQLite 复合查询追溯和 microVM 可选依赖缺失处理
- 纳入当前设计文档及部署配置调整

验证:相关主回归 3822 项通过,4 项跳过、8 项预期失败;补充回归通过。
前端构建、文案检查及 git diff --check 通过。
全量检查仍有环境权限、PostgreSQL 可选依赖和既有部署配置、SQLite 文件基线差异导致的未通过项。
2026-11-06 17:14:45 +08:00

25 lines
1.1 KiB
Python

"""发布预检的应用服务;编辑页、发布接口和发布单使用同一组检查。"""
from typing import Any
from sqlalchemy.ext.asyncio import AsyncSession
from app.engine.schema import GraphSpec
async def gate_issues(session: AsyncSession, graph: Any, level: str) -> list[dict[str, Any]] | None:
from app.data.catalog_impact import open_structure_issues
from app.data.sqlcheck import graph_sources, load_checkers_by_name
from app.engine.governance import publish_issues
from app.engine.lint_process import load_subgraphs, with_subgraphs
from app.engine.provider_refs import load_providers
try:
spec = GraphSpec.model_validate(graph)
except Exception:
return None
checkers = await load_checkers_by_name(session, graph_sources(spec.nodes))
providers = await load_providers(session, spec)
with with_subgraphs(await load_subgraphs(session, spec)):
issues = [i.model_dump() for i in publish_issues(spec, level=level, checkers=checkers, providers=providers)]
return issues + await open_structure_issues(session, spec)