diff --git a/packages/plugins/plugin-missions/src/mission-service.ts b/packages/plugins/plugin-missions/src/mission-service.ts index a7140730b8e..3a2b976dfc9 100644 --- a/packages/plugins/plugin-missions/src/mission-service.ts +++ b/packages/plugins/plugin-missions/src/mission-service.ts @@ -331,6 +331,12 @@ function normalizeId(value: string) { return value.trim().toUpperCase(); } +function toIsoDateString(value: Date | string | null | undefined): string { + if (value instanceof Date) return value.toISOString(); + if (typeof value === "string") return value; + return new Date(0).toISOString(); +} + function rootMissionOrigin(pluginId: string) { return `plugin:${pluginId}`; } @@ -1585,7 +1591,7 @@ export async function listMissionSummaries(ctx: PluginContext, companyId: string }, costCents: summary.costSummary.costCents, latestRunStatus: summary.runSummary.latestRunStatus, - updatedAt: root.updatedAt.toISOString(), + updatedAt: toIsoDateString(root.updatedAt), })) .sort((a, b) => b.updatedAt.localeCompare(a.updatedAt)); } diff --git a/packages/plugins/plugin-missions/src/ui/index.tsx b/packages/plugins/plugin-missions/src/ui/index.tsx index efb4b682716..71571bb3e0f 100644 --- a/packages/plugins/plugin-missions/src/ui/index.tsx +++ b/packages/plugins/plugin-missions/src/ui/index.tsx @@ -204,6 +204,10 @@ function formatDate(value: string | null) { }); } +function findingRenderKey(finding: MissionSummary["validationSummary"]["findings"][number]) { + return `${finding.sourceReportKey}:${finding.id}`; +} + function Section({ title, action, @@ -408,7 +412,7 @@ function SummarySections({ {summary.validationSummary.findings.length > 0 ? (