Skip to content

Fix sync-failure email links, subjects, and noop logging #345

Description

@joestump

Part of #323. Governing: ADR-0026, SPEC-0015 REQ "Email Content" / "SMTP Configuration". Depends on: #324 (server.base_url).

Requirements

  • Wrong link (audit CRITICAL): the notifier's baseURL is cfg.Navidrome.BaseURL, so the email's "open preferences" link points at the user's Navidrome server, not Spotter (cmd/server/main.go:131; internal/notifications/templates.go:62; notifier.go:162). Use the new server.base_url
  • Subject uses lowercase provider ids ("[Spotter] spotify sync error…"); spec says display names — map to display casing (templates.go:56)
  • sanitizeError collapses every fatal error to "Authentication failed (fatal)" — misleading for non-auth fatals; keep credential-safety but reflect the failure class (templates.go:37-45)
  • SPEC-0015 "silently skipped and logged at debug level": the NoopNotifier logs nothing — add the debug line (notifier.go:30-32)

Acceptance Criteria

  • Test email and real notification link to the Spotter instance URL
  • Subjects match the spec'd format; SMTP-disabled runs emit the debug skip log

Branch

feature/345-email-content-fixes

PR Convention

PR title references the story; body ends with Closes #345, references the parent epic and governing artifacts above.

🤖 Posted on behalf of @joestump by Claude.

Metadata

Metadata

Assignees

Labels

backendGo backend codebugSomething isn't workingin-progressAgent is actively workingstoryStory issue

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions