normalize cursor todo items (#1473)
This commit is contained in:
@@ -872,7 +872,7 @@ impl CursorToolCall {
|
||||
.iter()
|
||||
.map(|t| TodoItem {
|
||||
content: t.content.clone(),
|
||||
status: t.status.clone(),
|
||||
status: normalize_todo_status(&t.status),
|
||||
priority: None, // CursorTodoItem doesn't have priority field
|
||||
})
|
||||
.collect()
|
||||
@@ -921,6 +921,16 @@ impl CursorToolCall {
|
||||
}
|
||||
}
|
||||
|
||||
fn normalize_todo_status(status: &str) -> String {
|
||||
match status.to_lowercase().as_str() {
|
||||
"todo_status_pending" => "pending".to_string(),
|
||||
"todo_status_in_progress" => "in_progress".to_string(),
|
||||
"todo_status_completed" => "completed".to_string(),
|
||||
"todo_status_cancelled" => "cancelled".to_string(),
|
||||
other => other.to_string(),
|
||||
}
|
||||
}
|
||||
|
||||
/* ===========================
|
||||
Typed tool results for Cursor
|
||||
=========================== */
|
||||
|
||||
@@ -13,6 +13,8 @@ function getStatusIcon(status?: string) {
|
||||
return <Check aria-hidden className="h-4 w-4 text-success" />;
|
||||
if (s === 'in_progress' || s === 'in-progress')
|
||||
return <CircleDot aria-hidden className="h-4 w-4 text-blue-500" />;
|
||||
if (s === 'cancelled')
|
||||
return <Circle aria-hidden className="h-4 w-4 text-gray-400" />;
|
||||
return <Circle aria-hidden className="h-4 w-4 text-muted-foreground" />;
|
||||
}
|
||||
|
||||
@@ -57,7 +59,11 @@ function TodoPanel() {
|
||||
{getStatusIcon(todo.status)}
|
||||
</span>
|
||||
<span className="text-sm leading-5 break-words">
|
||||
{todo.content}
|
||||
{todo.status?.toLowerCase() === 'cancelled' ? (
|
||||
<s className="text-gray-400">{todo.content}</s>
|
||||
) : (
|
||||
todo.content
|
||||
)}
|
||||
</span>
|
||||
</li>
|
||||
))}
|
||||
|
||||
Reference in New Issue
Block a user