Apply word replacement at translation time, not ingestion

FixSecurityService
Shipped
April 17, 2026 at 4:05 AM UTC
Author
Kamo
Commit
80e8594

Original text is preserved in the DB so that adding a new rule and re-triggering translation is all that is needed to update existing records. Changes: - ChangelogSanitizationService: sanitize() no longer calls replaceText() — the two concerns are now clearly separate (strip bad lines vs. replace words) - CommitLogTranslationListener: injects ChangelogSanitizationService and calls replaceText() on title+description after loading from DB and before sending to the translation service; fallback strings also use sanitized text - ChangelogWebhookController: reverts title to raw stripPrefix() at ingestion; getPublicChangelog() calls replaceText() on English text at response time (non-English locales already have censored text from the translation step)

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing