feat(core): add sourceId to FeedItem (#72)

Each FeedSource implementation now sets sourceId on items
it produces, allowing consumers to trace items back to
their originating source.

Co-authored-by: Ona <no-reply@ona.com>
This commit is contained in:
2026-03-14 23:51:41 +00:00
committed by GitHub
parent bed033652c
commit 5ea24b0a13
17 changed files with 92 additions and 12 deletions

View File

@@ -113,7 +113,7 @@ export class GoogleCalendarSource implements FeedSource<CalendarFeedItem> {
const now = context.time.getTime()
const lookaheadMs = this.lookaheadHours * 60 * 60 * 1000
return events.map((event) => createFeedItem(event, now, lookaheadMs))
return events.map((event) => createFeedItem(event, now, lookaheadMs, this.id))
}
private async resolveCalendarIds(): Promise<string[]> {
@@ -208,11 +208,13 @@ function createFeedItem(
event: CalendarEventData,
nowMs: number,
lookaheadMs: number,
sourceId: string,
): CalendarFeedItem {
const itemType = event.isAllDay ? CalendarFeedItemType.AllDay : CalendarFeedItemType.Event
return {
id: `calendar-${event.calendarId}-${event.eventId}`,
sourceId,
type: itemType,
timestamp: new Date(nowMs),
data: event,