feat: Add comprehensive timeline editor with frame editing and regeneration capabilities
This commit is contained in:
@@ -186,7 +186,7 @@ class TaskManager:
|
||||
message: str = ""
|
||||
):
|
||||
"""
|
||||
Update task progress
|
||||
Update task progress and add to logs
|
||||
|
||||
Args:
|
||||
task_id: Task ID
|
||||
@@ -205,6 +205,17 @@ class TaskManager:
|
||||
percentage=percentage,
|
||||
message=message
|
||||
)
|
||||
|
||||
# Add to logs if message is new
|
||||
if message:
|
||||
# Check last log to avoid duplicates
|
||||
if not task.logs or task.logs[-1].get("message") != message:
|
||||
task.logs.append({
|
||||
"timestamp": datetime.now().isoformat(),
|
||||
"message": message,
|
||||
"percentage": round(percentage, 1)
|
||||
})
|
||||
logger.debug(f"Task {task_id} log: {message} ({percentage:.1f}%)")
|
||||
|
||||
def cancel_task(self, task_id: str) -> bool:
|
||||
"""
|
||||
|
||||
@@ -16,7 +16,7 @@ Task data models
|
||||
|
||||
from datetime import datetime
|
||||
from enum import Enum
|
||||
from typing import Any, Optional
|
||||
from typing import Any, Optional, List
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
@@ -51,10 +51,13 @@ class Task(BaseModel):
|
||||
# Progress tracking
|
||||
progress: Optional[TaskProgress] = None
|
||||
|
||||
# Result
|
||||
# Results and Errors
|
||||
result: Optional[Any] = None
|
||||
error: Optional[str] = None
|
||||
|
||||
# Event logs/History
|
||||
logs: List[dict] = Field(default_factory=list)
|
||||
|
||||
# Metadata
|
||||
created_at: datetime = Field(default_factory=datetime.now)
|
||||
started_at: Optional[datetime] = None
|
||||
|
||||
Reference in New Issue
Block a user