fix dashboard validation fallback and semantic relation parsing
This commit is contained in:
@@ -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]
|
||||
|
||||
Reference in New Issue
Block a user