Merge origin/master before analysis handoff push

This commit is contained in:
wtx
2026-08-08 10:41:45 +08:00
31 changed files with 4074 additions and 36 deletions
+19 -11
View File
@@ -777,18 +777,12 @@ def _reconcile_confirmed_gene_family_species(
job_id,
_param_list(routed_params.get("comparativeSpecies") or routed_intent.get("comparative_species")),
)
explicit_reference_set = set(explicit["referenceSpecies"])
explicit_assigned_set = set(
explicit["targetSpecies"]
+ explicit["referenceSpecies"]
+ explicit["comparativeSpecies"]
)
explicit_unassigned_set = set(explicit["unassigned"])
for species in structured_targets:
config_role = config_role_by_species.get(species)
if (
config_role in {None, "reference"}
and species not in explicit_reference_set
and species not in explicit_assigned_set
and species in explicit_unassigned_set
):
conflicts.append({
"code": "analysis_target_config_role_conflict",
@@ -865,10 +859,24 @@ def _species_role_conflict_message(conflicts: list[Dict[str, str]]) -> str:
config_role = role_labels.get(conflict.get("config_role") or "", conflict.get("config_role") or "未知")
requested_role = role_labels.get(conflict.get("requested_role") or "", conflict.get("requested_role") or "配置内部重复角色")
details.append(f"{species}:config.xlsx 为{config_role},本轮为{requested_role}")
conflict_codes = {str(conflict.get("code") or "") for conflict in conflicts}
detail_text = ";".join(details)
if "config_species_role_conflict" in conflict_codes:
return (
"检测到 config.xlsx 内部物种角色冲突:"
+ detail_text
+ "。请发送“打开 config.xlsx”,修正并重新确认物种角色后再继续。"
)
if "analysis_target_config_role_conflict" in conflict_codes:
return (
"检测到系统意图解析发生角色漂移:"
+ detail_text
+ "。config.xlsx 未被修改,系统已阻止按错误范围执行,请重新提交当前分析请求。"
)
return (
"检测到物种角色不一致:"
+ ";".join(details)
+ "。为避免按错误范围执行,请发送“打开 config.xlsx”,核对并重新确认物种角色后再继续。"
"检测到本轮请求与项目物种角色不一致:"
+ detail_text
+ "。系统已阻止执行,请按 config.xlsx 中已确认的角色重新描述分析范围。"
)