Skip to content

Commit 463cd2d

Browse files
committed
feat(api): enhance news item processing in firecrawl agent
1 parent fee8f14 commit 463cd2d

File tree

2 files changed

+29
-9
lines changed

2 files changed

+29
-9
lines changed

apps/api/src/trigger/vendor/vendor-risk-assessment/firecrawl-agent.ts

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -167,14 +167,33 @@ Focus on their official website (especially trust/security/compliance pages), pr
167167
})) ?? [];
168168

169169
const news =
170-
parsed.data.news?.map((n) => ({
171-
date: normalizeIso(n.date) ?? n.date,
172-
title: n.title,
173-
summary: n.summary ?? null,
174-
source: n.source ?? null,
175-
url: normalizeUrl(n.url ?? null),
176-
sentiment: n.sentiment ?? null,
177-
})) ?? [];
170+
parsed.data.news
171+
?.flatMap((n) => {
172+
const isoDate = normalizeIso(n.date);
173+
if (!isoDate) {
174+
// Avoid storing invalid/non-ISO dates (frontend uses Date parsing + formatting).
175+
logger.debug('Skipping news item due to invalid date', {
176+
vendorWebsite,
177+
title: n.title,
178+
date: n.date,
179+
source: n.source ?? null,
180+
});
181+
return [];
182+
}
183+
184+
return [
185+
{
186+
date: isoDate,
187+
title: n.title,
188+
summary: n.summary ?? null,
189+
source: n.source ?? null,
190+
url: normalizeUrl(n.url ?? null),
191+
sentiment: n.sentiment ?? null,
192+
},
193+
];
194+
})
195+
// Extra guard, in case future changes return null-ish entries
196+
.filter(Boolean) ?? [];
178197

179198
const result: VendorRiskAssessmentDataV1 = {
180199
kind: 'vendorRiskAssessmentV1',

apps/app/src/components/task-items/TaskItemFocusView.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import { Comments } from '../comments/Comments';
3232
import { CommentEntityType } from '@db';
3333
import { GeneratedTaskItemMainContent } from './generated-task/GeneratedTaskItemMainContent';
3434
import { CustomTaskItemMainContent } from './custom-task/CustomTaskItemMainContent';
35+
import { isVendorRiskAssessmentTaskItem } from './generated-task/vendor-risk-assessment/is-vendor-risk-assessment-task-item';
3536

3637
interface TaskItemFocusViewProps {
3738
taskItem: TaskItem;
@@ -67,7 +68,7 @@ export function TaskItemFocusView({
6768
const [isSidebarCollapsed, setIsSidebarCollapsed] = useState(false);
6869

6970
const pathname = usePathname();
70-
const isGeneratedTask = taskItem.title === 'Risk Assessment' && taskItem.entityType === 'vendor';
71+
const isGeneratedTask = isVendorRiskAssessmentTaskItem(taskItem);
7172

7273
const { optimisticUpdate, optimisticDelete } = useOptimisticTaskItems(
7374
entityId,

0 commit comments

Comments
 (0)