feat: show running state of skills in frontend using psutil
Ampel / ampel (push) Failing after 21s

This commit is contained in:
Hitonabi
2026-08-07 17:03:30 +02:00
parent a6e2f78c27
commit 6cb29ee70e
4 changed files with 25 additions and 440 deletions
+6 -5
View File
@@ -9,6 +9,7 @@ import { JobsBar } from "@/components/models/JobsBar"
interface Skill {
name: string
description: string
running?: boolean
}
interface SkillsResp {
@@ -98,16 +99,16 @@ export function SkillsView() {
</div>
<button
onClick={() => mutation.mutate(skill.name)}
disabled={runningSkill === skill.name || mutation.isPending}
disabled={runningSkill === skill.name || skill.running || mutation.isPending}
className={cn(
"shrink-0 h-8 px-3 rounded-md text-xs font-semibold uppercase tracking-wider flex items-center gap-1.5 transition-all cursor-pointer",
runningSkill === skill.name
? "bg-muted text-muted-foreground cursor-not-allowed"
(runningSkill === skill.name || skill.running)
? "bg-sky-500/10 border border-sky-500/40 text-sky-400 cursor-not-allowed"
: "bg-primary/10 text-primary hover:bg-primary hover:text-primary-foreground group-hover:shadow-md group-hover:shadow-primary/20"
)}
>
{runningSkill === skill.name ? <Loader2 className="h-3.5 w-3.5 animate-spin" /> : <Play className="h-3.5 w-3.5" />}
{runningSkill === skill.name ? "Startet" : "Starten"}
{(runningSkill === skill.name || skill.running) ? <Loader2 className="h-3.5 w-3.5 animate-spin" /> : <Play className="h-3.5 w-3.5" />}
{(runningSkill === skill.name || skill.running) ? "Läuft …" : "Starten"}
</button>
</div>
<div className="text-sm text-muted-foreground flex-1">