* fix(adventure): Use task start position for stuck/path failure recovery
Replace centerPosition-based recovery with taskStartPosition which is
captured when the task starts. This ensures recovery always works
regardless of whether centerX/Y/Z is specified in the route JSON.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(tasks): Add MoveToTaskStartTask and task start position tracking
- Add MoveToTaskStartTask to teleport bots back to a previous task's
starting position (useful for recovery scenarios)
- TaskExecutorAI now tracks start positions for each task
- Add TaskStarted event and TaskStartedEventArgs for task lifecycle
- Add GetTaskStartPosition/GetTaskStartPositionRelative APIs
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ui): Add real-time task progress events to test detail page
- Broadcast taskStarted/taskCompleted events via SignalR
- Add ApiTaskStartedEvent and ApiTaskCompletedEvent DTOs
- UI shows current task name and progress for running bots
- Task results update in real-time without page refresh
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: Remove obsolete test route files
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(ui): Remove emoji icons from dashboard and fix dialog width
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* style(ui): Clean up path displays and fix Priest class color
- Remove redundant path displays from test/suite lists and detail pages
- Change Priest class color from pure white to light gray for visibility
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(ui): Add copy button to raw logs dialog
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>