# Changelog

User-facing changes. Operator-only internals are omitted.

## 2026-08-22

### Raw source and branding

- New guide: what View Source shows (Message-ID, Return-Path, List-Unsubscribe, branded DNS) versus the platform DKIM / `Received` / `Feedback-ID` lines that cannot be renamed.
- SMTP relay documented as the only way to drop platform signatures entirely.

### Privacy document

- The human-readable privacy policy is a standalone HTML document. It is excluded from the docs site, `llms.txt`, sitemaps, and crawler allow-lists.

### Public documentation site

- Canonical docs host at `docs.` + brand apex, served from the same app as the product.
- Server-rendered HTML (no JavaScript required to read a page).
- Raw Markdown at the same path with a `.md` suffix.
- `/llms.txt` and `/llms-full.txt` for language-model crawlers.
- Docs-specific robots and sitemap.

### Discovery (marketing origin)

- `robots.txt` allows major search and AI crawlers.
- `sitemap.xml`, `/llms.txt`, `/humans.txt`, and `/.well-known/security.txt`.
- Per-path title, description, canonical, Open Graph, and JSON-LD on public pages.
- Favicon, Apple touch icon, and social share image.

## 2026-08-21

### App navigation

- Reloading the dashboard keeps the current page (`/domains`, `/projects`, `/emails/messages`, `/settings`, and selected workspace).

### Add a sending domain

- Dedicated create form so “Add domain” no longer jumps to another tenant’s DNS records.
- DNS panels scroll into view only when you open them.

### Messages and onboarding

- Message search matches stored fields correctly.
- Four-step onboarding no longer hides the create-domain form after a tenant already exists.

### DNS and brand records

- Branded DNS targets with a fallback when aliases are not yet live.
- Cloudflare BIND / zone export from the DNS panel.
- DKIM alias harvest so Check DNS accepts both brand aliases and working targets.

### Abuse

- Inbound abuse mailbox on the inbound host (never apex MX).
- Operator replies as plain text from Settings → Abuse reports.
- Ticket pipeline: open → investigating → closed, with reporter stage mail.

## Earlier 2026

- Team and project API tokens (`wm_team_…`, `wm_proj_…`).
- Signed outbound webhooks (`X-Werkmail-Signature`).
- Inbound send hooks (`X-Werkmail-Hook-Secret`).
- Batch (500) and templated bulk send.
- Content reputation gate and inbox-risk dry-run.
- List-Unsubscribe on every send when the public origin is HTTPS.
- Scoped suppressions (team / project / route).
- Supporter plan (€5 / 1,000 emails) via Creem checkout.
