feat&fix: enhance task status handling and update logging configuration

This commit is contained in:
adlsdztony
2025-06-05 09:33:36 +00:00
parent 2bfb4af8b5
commit 3b1540ed23
6 changed files with 17 additions and 31 deletions

View File

@@ -122,6 +122,8 @@ def get_task_status(task_type, task_id):
status = "Error"
elif log_data.get("exit_condition") and "message_exit: True" in log_data.get("exit_condition", ""):
status = "Done (Message Exit)"
elif log_data.get("exit_condition") and "thought_exit: True" in log_data.get("exit_condition", ""):
status = "Done (Thought Exit)"
elif len(steps) >= MAX_STEPS:
status = "Done (Max Steps)"
else:
@@ -231,6 +233,8 @@ def get_task_status_brief(task_type, task_id):
log_tail = result.stdout
if "message_exit: True" in log_tail:
status = "Done (Message Exit)"
elif "thought_exit: True" in log_tail:
status = "Done (Thought Exit)"
except:
pass

View File

@@ -85,6 +85,7 @@ function updateTaskStatus(data) {
case 'Done':
case 'Done (Message Exit)':
case 'Done (Max Steps)':
case 'Done (Thought Exit)':
statusClass = 'status-completed';
statusIcon = 'fa-check-circle';
break;
@@ -183,7 +184,7 @@ function updateStatistics(data) {
tasks.forEach(task => {
if (task.status.status === 'Running' || task.status.status === 'Preparing' || task.status.status === 'Initializing') {
activeTasks++;
} else if (task.status.status === 'Done' || task.status.status === 'Done (Message Exit)' || task.status.status === 'Done (Max Steps)') {
} else if (task.status.status === 'Done' || task.status.status === 'Done (Message Exit)' || task.status.status === 'Done (Max Steps)' || task.status.status === 'Done (Thought Exit)') {
completedTasks++;
// Calculate score if task is completed
if (task.status.result) {
@@ -241,7 +242,7 @@ function renderTasks(data) {
if (currentFilter === 'active') {
filteredTasks = tasks.filter(task => ['Running', 'Preparing', 'Initializing'].includes(task.status.status));
} else if (currentFilter === 'completed') {
filteredTasks = tasks.filter(task => task.status.status === 'Done' || task.status.status === 'Done (Message Exit)' || task.status.status === 'Done (Max Steps)');
filteredTasks = tasks.filter(task => task.status.status === 'Done' || task.status.status === 'Done (Message Exit)' || task.status.status === 'Done (Max Steps)'|| task.status.status === 'Done (Thought Exit)');
} else if (currentFilter === 'error') {
filteredTasks = tasks.filter(task => task.status.status === 'Error');
}
@@ -264,7 +265,7 @@ function renderTasks(data) {
tasks.forEach(task => {
if (task.status.status === 'Running' || task.status.status === 'Preparing' || task.status.status === 'Initializing') {
runningCount++;
} else if (task.status.status === 'Done' || task.status.status === 'Done (Message Exit)' || task.status.status === 'Done (Max Steps)') {
} else if (task.status.status === 'Done' || task.status.status === 'Done (Message Exit)' || task.status.status === 'Done (Max Steps)' || task.status.status === 'Done (Thought Exit)') {
completedCount++;
} else if (task.status.status === 'Error') {
errorCount++;
@@ -346,6 +347,7 @@ function renderTasks(data) {
case 'Done':
case 'Done (Message Exit)':
case 'Done (Max Steps)':
case 'Done (Thought Exit)':
statusClass = 'status-completed';
statusIcon = 'fa-check-circle';
break;

View File

@@ -173,7 +173,7 @@ pre {
.status-not-started { background: linear-gradient(135deg, #f0f0f0, #e6e6e6); color: #555; }
.status-preparing, .status-initializing { background: linear-gradient(135deg, #fff7e0, #ffe8a3); color: #8a6d00; }
.status-running { background: linear-gradient(135deg, #e3f2fd, #bbdefb); color: #0d47a1; }
.status-done, .status-done-message-exit, .status-done-max-steps { background: linear-gradient(135deg, #e8f5e9, #c8e6c9); color: #1b5e20; }
.status-done, .status-done-message-exit, .status-done-max-steps, .status-done-thought-exit { background: linear-gradient(135deg, #e8f5e9, #c8e6c9); color: #1b5e20; }
.status-error { background: linear-gradient(135deg, #ffebee, #ffcdd2); color: #b71c1c; }
.step-intent {

View File

@@ -41,6 +41,11 @@
<i class="fas fa-question-circle"></i>
<span class="tooltip-text">Maximum steps reached, task completed</span>
</span>
{% elif task_status.status == 'Done (Thought Exit)' %}
<span class="tooltip">
<i class="fas fa-question-circle"></i>
<span class="tooltip-text">Task completed with a thought exit condition</span>
</span>
{% endif %}
</dd>
<dt>Current Step</dt>