diff --git a/backend/middlewares.py b/backend/middlewares.py index 5f699d2..b6ccfa2 100644 --- a/backend/middlewares.py +++ b/backend/middlewares.py @@ -115,8 +115,8 @@ async def on_model_call( logger.error("[ModelRetry] Fallback model also failed: %s", fallback_exc) raise fallback_exc from last_exc - # 无回退模型,抛出最后一个异常 - raise last_exc # type: ignore[misc] + # 无回退模型,抛出最后一个异常(or 兜底满足静态分析:循环至少执行一次时 last_exc 必非 None) + raise last_exc or RuntimeError("ModelRetry: model call failed before any attempt was made") # --------------------------------------------------------------------------- diff --git a/backend/services/orchestrator.py b/backend/services/orchestrator.py index 78418d3..73e6d23 100644 --- a/backend/services/orchestrator.py +++ b/backend/services/orchestrator.py @@ -740,15 +740,13 @@ async def execute( spec = spec_map[sid] dep_outputs = [completed_outputs[dep] for dep in resolved_deps[sid]] - # 依赖传递由 Leader 控制:摘要而非原文 - task_input = user_input + # 依赖传递由 Leader 控制:摘要而非原文;无依赖时直接用任务描述 + task_input = spec.description if dep_outputs: summarized = await self._summarize_dependency_output( dep_outputs, spec.description ) task_input = f"## Background Context\n{summarized}\n\n## Your Task\n{spec.description}" - else: - task_input = spec.description ready_tasks.append((subtask, task_input)) diff --git a/backend/tests/services/test_team_tools.py b/backend/tests/services/test_team_tools.py index a5ea70b..3d93c12 100644 --- a/backend/tests/services/test_team_tools.py +++ b/backend/tests/services/test_team_tools.py @@ -12,14 +12,15 @@ class TestTeamEventType: def test_all_values_are_str(self): - for e in TeamEventType: + # 通过 __members__ 显式取成员,规避 CodeQL 无法识别 Enum 类可迭代的误报 + for e in TeamEventType.__members__.values(): assert isinstance(e.value, str) assert e == e.value # str enum def test_expected_members(self): expected = {"team_created", "team_dissolved", "worker_spawned", "worker_message", "worker_completed", "worker_dismissed"} - assert {e.value for e in TeamEventType} == expected + assert {e.value for e in TeamEventType.__members__.values()} == expected class TestTeamEventPayload: