fix dashboard validation fallback and semantic relation parsing

This commit is contained in:
2026-03-15 16:32:39 +03:00
parent 6b66f2fb49
commit eba0fab091
4 changed files with 145 additions and 26 deletions

View File

@@ -189,15 +189,36 @@ class ResourceService:
)
return self._normalize_datetime_for_compare(raw_time)
last_task = max(matched_tasks, key=_task_time)
raw_result = getattr(last_task, "result", None)
validation_status = None
if isinstance(raw_result, dict):
validation_status = self._normalize_validation_status(raw_result.get("status"))
projected_tasks = []
for task in matched_tasks:
raw_result = getattr(task, "result", None)
validation_status = None
if isinstance(raw_result, dict):
validation_status = self._normalize_validation_status(raw_result.get("status"))
projected_tasks.append(
(
task,
validation_status,
_task_time(task),
)
)
projected_tasks.sort(key=lambda item: item[2], reverse=True)
latest_task, latest_validation_status, _ = projected_tasks[0]
decisive_task = next(
(
item for item in projected_tasks
if item[1] in {"PASS", "WARN", "FAIL"}
),
None,
)
validation_status = latest_validation_status
if validation_status == "UNKNOWN" and decisive_task is not None:
validation_status = decisive_task[1]
return {
"task_id": str(getattr(last_task, "id", "")),
"status": self._normalize_task_status(getattr(last_task, "status", "")),
"task_id": str(getattr(latest_task, "id", "")),
"status": self._normalize_task_status(getattr(latest_task, "status", "")),
"validation_status": validation_status,
}
# [/DEF:_get_last_llm_task_for_dashboard:Function]