fix(frontend): refresh immédiat de la liste des agents après ajout — bus d'événements agent-roster (CustomEvent + BroadcastChannel multi-fenêtres) publié à la création d'un agent et écouté par useAgents, LayoutGrid et les panneaux skills/permissions/tâches planifiées/templates/tickets/workstate, plus besoin d'ajouter-retirer une cellule pour forcer le refresh — #361 (QA verte: typecheck OK, vitest agents/singletonAgent OK, npm test 1416 tests OK)

This commit is contained in:
2026-09-16 20:14:51 +02:00
parent 3f6beb149b
commit 1cc842fd8b
13 changed files with 169 additions and 0 deletions

View File

@ -1,6 +1,7 @@
import { useCallback, useEffect, useMemo, useState } from "react";
import { useGateways } from "@/app/di";
import { onAgentRosterChanged } from "@/features/agents/agentRosterEvents";
import type { Agent, BackgroundCompletion, GatewayError, ScheduledProjectTask } from "@/domain";
import type { ScheduledTaskDefinitionInput } from "@/ports";
@ -42,6 +43,15 @@ export function useScheduledTasks(projectId: string) {
void refresh();
}, [refresh]);
useEffect(
() =>
onAgentRosterChanged((change) => {
if (change.projectId !== projectId) return;
void agent.listAgents(projectId).then(setAgents).catch(() => {});
}),
[agent, projectId],
);
useEffect(() => {
let unsubscribe: (() => void) | undefined;
let cancelled = false;