feat(FN-1569): add mission validation telemetry APIs and UI

- Emit fix-feature mission events and forward validator telemetry through mission execution
- Add core and dashboard API types plus a validation telemetry route in mission-routes
- Update SSE mission event handling so validation telemetry updates stream reliably to clients
- Add telemetry surfaces in MissionManager with corresponding mission-specific UI styling
- Expand MissionManager and mission e2e test coverage for validation telemetry flows
This commit is contained in:
Fusion
2026-04-16 23:33:05 -07:00
committed by gsxdsm
parent c0e68f21d8
commit 0d94bc39df
11 changed files with 1242 additions and 78 deletions

View File

@@ -63,6 +63,7 @@ import type {
import type { PlanningQuestion, PlanningSummary } from "@fusion/core";
import type { ScheduledTask, ScheduledTaskCreateInput, ScheduledTaskUpdateInput, AutomationRunResult, Routine, RoutineCreateInput, RoutineUpdateInput, RoutineExecutionResult } from "@fusion/core";
import type { DiscoveredSkill, CatalogEntry, CatalogFetchResult, ToggleSkillResult } from "@fusion/dashboard";
import type { MilestoneValidationTelemetry } from "./components/mission-types";
// Re-export skills types for use by hooks and components
export type { DiscoveredSkill, CatalogEntry, CatalogFetchResult, ToggleSkillResult };
@@ -3925,6 +3926,7 @@ export interface MilestoneValidationRollup {
failedAssertions: number;
blockedAssertions: number;
pendingAssertions: number;
unlinkedAssertions: number;
state: "not_started" | "needs_coverage" | "ready" | "passed" | "failed" | "blocked";
}
@@ -3933,6 +3935,11 @@ export function fetchMilestoneValidation(milestoneId: string, projectId?: string
return api<MilestoneValidationRollup>(withProjectId(`/missions/milestones/${encodeURIComponent(milestoneId)}/validation`, projectId));
}
/** Fetch grouped validation telemetry for a milestone */
export function fetchMilestoneValidationTelemetry(milestoneId: string, projectId?: string): Promise<MilestoneValidationTelemetry> {
return api<MilestoneValidationTelemetry>(withProjectId(`/missions/milestones/${encodeURIComponent(milestoneId)}/validation-telemetry`, projectId));
}
// ── Validation Loop API ───────────────────────────────────────────────────────
/** Loop state snapshot for a feature */