Changelog — 2026-09-01

Window: 2026-08-31T17:05:57Z → 2026-09-01T17:05:57Z (UTC) · Branch: main · PRs merged: 7

At a glance

Daily Dispatch stats — PRs merged today 7, all-time 768; issues closed today 2, all-time 602; lines added today +14,569, all-time +2,354,190; lines removed today -323, all-time -325,594.

Line counts come from git log --numstat on main and include generated, vendored, and lock files. "Today" line counts are bucketed by commit date, while PR/issue counts use merge/close date.

Bug Fixes

#1628 — fix(i18n): Phase 1 A — dynamic , user-local date default, corruption-free CSV number parsing (#1032)

by @jdooley-clt · 2026-09-01

Summary

#1632 — fix(i18n): route all currency display through CatalogMoney.Format with real symbols (#1032 I1.4)

by @jdooley-clt · 2026-09-01

Summary

Other

#1617 — Make SendGrid webhook event processing idempotent

by @jdooley-clt · 2026-08-31

Summary

  • persist SendGrid sg_event_id values in an additive processed-event ledger
  • atomically claim each event and serialize per-recipient suppression updates with a PostgreSQL advisory lock
  • treat replayed events as no-ops while rolling back claims when downstream processing fails
  • document the behavior and add unit, constraint, controller,…

#1623 — Add approved custom-run source lookup

by @jdooley-clt · 2026-08-31

Summary

  • replace the custom-run source free-text field with an accessible combined lookup over approved manufacturers and shared pre-order dealers
  • enforce canonical approved values server-side for Scale Model and Set create/edit flows, including manufacturer aliases and unchanged legacy-value compatibility
  • connect the field to the existing man…

#1629 — Require richer catalog completion data

by @jdooley-clt · 2026-09-01

Summary

  • require locomotive class and road number, Electric AAR, Rolling Stock road number/type, and O-scale control/coupler data before marking a ScaleModel complete
  • require Set railroad and validate every distinct member model against its current completeness fields
  • eager-load member completeness graphs with split queries and automatically u…

#1631 — Rename current Lionel era to Lionel Brands

by @jdooley-clt · 2026-09-01

Summary

  • rename the current Lionel era display label to The Lionel Brands Era
  • update the matching public reference description
  • regenerate the enum reference documentation

#1630 — Populate manufacturer link and description from model lookup

by @jdooley-clt · 2026-09-01

Summary

  • return the manufacturer product URL and parsed description from the Scale Model live-lookup endpoint
  • populate the empty Manufacturer Link and Description fields alongside the other lookup results
  • synchronize Description through the shared EasyMDE instance so the visible Markdown editor updates immediately
  • apply the same Markdown-edi…

Generated 2026-09-01T17:05:57Z UTC by scripts/generate-changelog.ps1. Summaries: github-models (openai/gpt-4o-mini).

By Jeramiah Dooley Last updated