Task attempt 661f4103-d3a8-4f67-a2b8-fd9c8633ac00 - Final changes

This commit is contained in:
Louis Knight-Webb
2025-06-24 17:09:15 +01:00
parent b16726cc2b
commit fb8c03fb1f

View File

@@ -4,7 +4,6 @@ import {
X, X,
History, History,
Clock, Clock,
FileText,
Code, Code,
ChevronDown, ChevronDown,
ChevronUp, ChevronUp,
@@ -15,6 +14,7 @@ import {
Send, Send,
AlertCircle, AlertCircle,
Play, Play,
GitCompare,
} from "lucide-react"; } from "lucide-react";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Alert, AlertDescription } from "@/components/ui/alert"; import { Alert, AlertDescription } from "@/components/ui/alert";
@@ -700,6 +700,9 @@ export function TaskDetailsPanel({
</div> </div>
<div className="flex items-center gap-1"> <div className="flex items-center gap-1">
{onEditTask && ( {onEditTask && (
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<Button <Button
variant="ghost" variant="ghost"
size="icon" size="icon"
@@ -707,8 +710,17 @@ export function TaskDetailsPanel({
> >
<Edit className="h-4 w-4" /> <Edit className="h-4 w-4" />
</Button> </Button>
</TooltipTrigger>
<TooltipContent>
<p>Edit task</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
)} )}
{onDeleteTask && ( {onDeleteTask && (
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<Button <Button
variant="ghost" variant="ghost"
size="icon" size="icon"
@@ -716,10 +728,25 @@ export function TaskDetailsPanel({
> >
<Trash2 className="h-4 w-4 text-red-500" /> <Trash2 className="h-4 w-4 text-red-500" />
</Button> </Button>
</TooltipTrigger>
<TooltipContent>
<p>Delete task</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
)} )}
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<Button variant="ghost" size="icon" onClick={onClose}> <Button variant="ghost" size="icon" onClick={onClose}>
<X className="h-4 w-4" /> <X className="h-4 w-4" />
</Button> </Button>
</TooltipTrigger>
<TooltipContent>
<p>Close panel</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
</div> </div>
</div> </div>
@@ -803,6 +830,9 @@ export function TaskDetailsPanel({
{/* Attempt Management Group */} {/* Attempt Management Group */}
<div className="flex items-center gap-1"> <div className="flex items-center gap-1">
{taskAttempts.length > 1 && ( {taskAttempts.length > 1 && (
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<DropdownMenu> <DropdownMenu>
<DropdownMenuTrigger asChild> <DropdownMenuTrigger asChild>
<Button variant="outline" size="sm"> <Button variant="outline" size="sm">
@@ -837,8 +867,17 @@ export function TaskDetailsPanel({
))} ))}
</DropdownMenuContent> </DropdownMenuContent>
</DropdownMenu> </DropdownMenu>
</TooltipTrigger>
<TooltipContent>
<p>View attempt history</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
)} )}
<div className="flex"> <div className="flex">
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<Button <Button
variant="outline" variant="outline"
size="sm" size="sm"
@@ -847,6 +886,15 @@ export function TaskDetailsPanel({
> >
{selectedAttempt ? "Retry" : "Start"} {selectedAttempt ? "Retry" : "Start"}
</Button> </Button>
</TooltipTrigger>
<TooltipContent>
<p>{selectedAttempt ? "Retry task with current executor" : "Start task with current executor"}</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<DropdownMenu> <DropdownMenu>
<DropdownMenuTrigger asChild> <DropdownMenuTrigger asChild>
<Button <Button
@@ -875,6 +923,12 @@ export function TaskDetailsPanel({
))} ))}
</DropdownMenuContent> </DropdownMenuContent>
</DropdownMenu> </DropdownMenu>
</TooltipTrigger>
<TooltipContent>
<p>Choose executor</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
</div> </div>
</div> </div>
@@ -885,6 +939,9 @@ export function TaskDetailsPanel({
{/* Execution Control Group */} {/* Execution Control Group */}
<div className="flex items-center gap-1"> <div className="flex items-center gap-1">
{(isAttemptRunning || isStopping) && ( {(isAttemptRunning || isStopping) && (
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<Button <Button
variant="outline" variant="outline"
size="sm" size="sm"
@@ -894,6 +951,12 @@ export function TaskDetailsPanel({
> >
<StopCircle className="h-4 w-4" /> <StopCircle className="h-4 w-4" />
</Button> </Button>
</TooltipTrigger>
<TooltipContent>
<p>{isStopping ? "Stopping execution..." : "Stop execution"}</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
)} )}
<TooltipProvider> <TooltipProvider>
<Tooltip> <Tooltip>
@@ -975,6 +1038,9 @@ export function TaskDetailsPanel({
{/* Code Actions Group */} {/* Code Actions Group */}
<div className="flex items-center gap-1"> <div className="flex items-center gap-1">
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<Button <Button
variant="outline" variant="outline"
size="sm" size="sm"
@@ -982,13 +1048,28 @@ export function TaskDetailsPanel({
> >
<Code className="h-4 w-4" /> <Code className="h-4 w-4" />
</Button> </Button>
</TooltipTrigger>
<TooltipContent>
<p>Open in editor</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
<TooltipProvider>
<Tooltip>
<TooltipTrigger asChild>
<Button variant="outline" size="sm" asChild> <Button variant="outline" size="sm" asChild>
<Link <Link
to={`/projects/${projectId}/tasks/${task.id}/attempts/${selectedAttempt.id}/compare`} to={`/projects/${projectId}/tasks/${task.id}/attempts/${selectedAttempt.id}/compare`}
> >
<FileText className="h-4 w-4" /> <GitCompare className="h-4 w-4" />
</Link> </Link>
</Button> </Button>
</TooltipTrigger>
<TooltipContent>
<p>View code changes</p>
</TooltipContent>
</Tooltip>
</TooltipProvider>
</div> </div>
</> </>
)} )}