From 16029460bca976aadd1375c51795ce93da219140 Mon Sep 17 00:00:00 2001 From: Julien Herr Date: Mon, 25 May 2026 15:52:51 +0200 Subject: [PATCH] refactor(feed): drop unused aggregate getter, dedupe sender parse MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The sender-in-title rendering reads the FeedConfig DTO via the read model, so the Feed.senderInTitle getter had no consumer — remove it. In buildFeed, parse the from-address once and reuse it for both the title prefix and the author; drop the dead `?? email.from` fallback (parseFromAddress already returns the address as the name). Co-Authored-By: Claude Opus 4.7 --- src/domain/feed.aggregate.ts | 5 ----- src/infrastructure/feed-generator.ts | 10 +++++----- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/domain/feed.aggregate.ts b/src/domain/feed.aggregate.ts index 88b4035..320025c 100644 --- a/src/domain/feed.aggregate.ts +++ b/src/domain/feed.aggregate.ts @@ -138,11 +138,6 @@ export class Feed { return this._state.language; } - /** Whether entry titles render as `[Sender] Subject` in the feed output. */ - get senderInTitle(): boolean { - return this._state.senderInTitle ?? false; - } - /** The inbound mailbox (`noun.noun.NN`) — the feed's email address is `mailboxId@domain`. */ get mailboxId(): MailboxId { return MailboxId.unchecked(this._state.mailboxId); diff --git a/src/infrastructure/feed-generator.ts b/src/infrastructure/feed-generator.ts index 169862a..0957daa 100644 --- a/src/infrastructure/feed-generator.ts +++ b/src/infrastructure/feed-generator.ts @@ -74,17 +74,17 @@ function buildFeed( baseUrl, EmailAddress.parse(email.from)?.siteBaseUrl() ?? "", ); + const sender = parseFromAddress(email.from); const subject = htmlToText(email.subject); - const title = feedConfig.sender_in_title - ? `[${parseFromAddress(email.from).name ?? email.from}] ${subject}` - : subject; feed.addItem({ - title, + title: feedConfig.sender_in_title + ? `[${sender.name}] ${subject}` + : subject, id: entryUrl, link: entryUrl, description: bodyContent, content: bodyContent, - author: [parseFromAddress(email.from)], + author: [sender], date: new Date(email.receivedAt), enclosure: firstAttachment ? {