Changelog
What shipped, grouped by the day it landed. Generated from every release commit so far — nothing here is written by hand, so nothing is left out because somebody forgot.
- Newonboarding email triggered by state, with RFC 8058 one-clickAPI ·
54e498c - Fixedregenerate the derived surfaces on the M4.3-M4.9 baseProduct ·
a3aeea8 - Newgenerated Go and PHP clients from openapi.json, with a smoke gateSDKs and CLI ·
aa6e219 - Newthe AgentiSend skill, with generated referencesBudgets and limits ·
0029734 - Newfull Resend compat surface, complete client groups, honest rate-limit fieldsSDKs and CLI ·
0923793 - Newwebhooks listen, doctor, profiles, completions, agent-shaped outputSDKs and CLI ·
8ff4839 - Newgenerated MCP page, real JSON-RPC codes, honest scope catalogueMCP ·
b87a517 - Newlocal stdio server with the launcher artifact gateMCP ·
0566b1d - Newresources and prompts — the reference and the proceduresMCP ·
49d34d6 - Newcatalogue completion — 34 tools, one source, idempotency declaredMCP ·
6c500f9 - Newrequest_approval and list_agent_actions — asking a human is a toolMCP ·
9191a7e - Newexplain_email — the fix comes back as calls, not proseMCP ·
079f023 - Newpreflight_email — test a send for free, against every gate (M5.23)MCP ·
4e1e1c5 - Newwhoami — identity, scopes, budget and stop-state in one read (M5.22)MCP ·
564f3a9 - Fixeda 500 is non-retryable on both surfaces (owner's call)API ·
1698f06 - Newtenant audit log in settings (M4.9)Product ·
43164d6 - Newteam, roles and invites — owner, admin, viewer (M4.8)Product ·
7d8a6f9 - Newmount the operator surface at /admin (M4.7)Product ·
4690f8e - Fixedan honest reason token on a 402, and one name for the cursorMCP ·
02bf3ea - Newan empty scope grants nothing, plus two sentinels (M5.21)API ·
f25c791 - Newfour sentinels, and the three bugs they caught (M5.20)MCP ·
496b9da - Newwhy_was_this_not_sent, worded once across tool and console (M5.19)MCP ·
d201835 - Newcontrol-plane read tools, and refusals that stay distinct (M5.18)MCP ·
c9a0e8c - Newshape-based output scrubbing and an explicit result cap (M5.17)MCP ·
cac3807 - Newa wrapped input schema advertises its fields (M5.16)MCP ·
739473a - Newone send costs one unit of one meter, whichever door (M5.15)MCP ·
4a711ae - Newasymmetric rate-limiter failure policy (M5.14)MCP ·
a58bc3d - Newbound the session table and bind teardown to the transport (M5.13)MCP ·
a7ae9d7 - Newrefuse batched JSON-RPC after auth, give /mcp its own body limit (M5.12)MCP ·
c976193 - Newlegal and policy pages, branded errors, stale-bundle recovery (M4.6)Product ·
48741f1 - Newpublic status page with availability history (M4.5)Product ·
27220ca - Newnotification emails gated on type, linking the console (M4.4)API ·
028c368 - Newnotification recorder, bell and preferences (M4.3)Product ·
6dd155a - NewSvix-compatible signature headers, opt-in per endpoint (M5.11)API ·
fe1d874 - Newattachment bytes outlive the send and are retrievable (M5.10)API ·
870f3a4 - Newthe request log reader — GET /logs with date and status filters (M5.9)API ·
31f9a65 - Newthe inbound read API — received mail stops being write-only (M5.8)API ·
89ba112 - Newpublish GET /status in the OpenAPI documentAPI ·
fdf9456 - Fixeda topic opt-out refusal names the endpoint that governs itAPI ·
4283937 - Newthe custom-event registry — a typo stops being a silent 202 (M5.7)API ·
e6c3c5f - Newautomation runs — every step outcome, kept (M5.6)API ·
9a04921 - Newthe verbs a Resend integration already calls (M5.5)API ·
dee9c31 - Newsubscription topics, topic-scoped sends and one-click opt-out (M5.4)API ·
b39b38a - Fixedopenapi spec generation leaves crypto state aloneAPI ·
cf02f2c - Newagent quickstart, transparency page, crawlability gate (M4.2f)Product ·
eef7792 - NewJSON-LD, canonical, OG per route, .well-known and facts endpoints (M4.2e)Product ·
1d84c77 - Newrobots, sitemap, noindex on private surfaces (M4.2d)Product ·
9cf37dc - Newllms.txt and llms-full.txt generated with derived numbers (M4.2c)Product ·
a1fbe90 - Newmarkdown twin for every public route (M4.2b)Product ·
e80278a - Newdocs site generated from the API — reference, errors, events, guides, search (M4.1)Product ·
2989a1a - NewResend error-code aliases for find-replace migrations (M5.3)API ·
0501b7d - Newone pagination envelope on every list endpoint (M5.2)API ·
cea71ef - Newidempotency and rate-limit headers declared and emitted everywhere (M5.1)API ·
bebd1a5 - Newproduct captures from the seeded console demo (M3.14)Product ·
86f8645 - Newsettings — usage, integrations, connection, appearance, policy, account (M3.13)Product ·
85926cc - Newtemplates — editor, versions, diff, rollback (M3.12)Product ·
7d64f7b - Newmetrics — grouped breakdowns, event filter, low-sample state (M3.11)Product ·
ce57661 - Newtrust — ladder, thresholds, samples, appeal SLA, export (M3.10)Product ·
94666eb - Newapi keys — rotate with grace, typed-confirm revoke, usage columns (M3.9)Product ·
6162db1 - Newwebhooks — endpoints, deliveries, replay range, secret rotation (M3.8)Product ·
6ccdf94 - Newdomains — add-domain stepper, explicit region, tracking defaults (M3.7)Product ·
1cb6592 - Newdeliverability screen — thresholds, bounce classes, remediation (M3.6)Product ·
bbc8f33 - Newagents fleet, approvals, global kill switch (M3.5)Product ·
15ecd70 - Fixeda row click opens the peek, it does not select (§4.4)Product ·
d85edb8 - Newsimulation sends consume no budget (M3.4b, F11)API ·
724fc66
- NewPostiz colour pattern and a live product frame (M3.15b)Product ·
e1d9a3b - Newemails screen to spec, email events + search (M3.4)Product ·
47f8e06 - Newthe landing shows the console — tabbed product frame, facts strip, audiences (M3.15)Product ·
ead7e60 - Newsession cookie authenticates resource routes alongside bearer keys (M3.3b)API ·
59674cb - Newauth screens, route guard, demo mode, first-run (M3.3)Product ·
0ecc523 - New⌘K object search and recents (M3.2 part C)Product ·
3d771e6 - Newtopbar, nav order, keyboard map, lazy routes (M3.2 part B)Product ·
fb3cd4b - Newurl state, density, recents (M3.2 part A)Product ·
837b30a - Fixedfonts actually load, selectable rows click, skeleton timer stable (M3.1 review)Product ·
d44f30d - Newdesign system v2 foundation (M3.1)Product ·
5be0561
- Newposition for developers AND agents; make every advertised path realProduct ·
fdcfb10 - Newrewrite the copy in Resend's registerProduct ·
79e2500 - Fixedcode blocks no longer overflow the page before shiki loadsProduct ·
0a73255 - Newthe house theme and flow — navy ground, ember accent, plain languageProduct ·
e07f588
- Newrewrite the remaining jargon for a non-technical readerProduct ·
749d149
- Newnew identity — paper, ink, ember; Fraunces + Instrument SansProduct ·
20757c5 - Newcentered pattern heroProduct ·
4482798 - Fixedabove-the-fold arrivals use clock-based CSS, not rAFProduct ·
7a3d12b - Newthe house depth system — fleet hero panel, aurora, grain, glow rings, LenisProduct ·
0c02cf5 - Newthe signature demo plays — shiki duotone code, NumberFlow numeralsProduct ·
c7498ef - Fixedload the real fonts, one header voice, spec-violation cleanupProduct ·
71ab1b8
- Newdomain connect — NS-based provider detection with the record set attachedAPI ·
157c5cb - NewGET /usage — the bill, made legibleAPI ·
5b5fe90 - NewPOST /emails/lint — the Insights linter, scored placement feedbackAPI ·
eb011d1 - NewGET /emails/:id/explain — machine-readable remediation on every outcomeAPI ·
c76d228 - NewPOST /emails/preflight — every gate, reported before the sendAPI ·
52f8427 - Newwire the ported packages — transient-503 classification + the NDR bounce pathAPI ·
ead9c32
- Fixedcommit the SUPER_ADMIN_EMAIL key the admin ladder readsProduct ·
47b5a39 - Newthe audit log API (V3) — every recorded action, visibleAPI ·
a310671 - Newthe public status endpoint (B9) — per-component, honest about unknownsAPI ·
4708ae8 - Newthe agentisend CLI — machine-readable agent surface (M1)SDKs and CLI ·
29082a3 - Newcompat-resend — the from-Resend migration shim (ENGINEERING §6)SDKs and CLI ·
dc02196 - NewL5 content scanning — credential harvest refuses, warnings eventAPI ·
cb33409 - NewRFC 8058 one-click unsubscribe — the bulk-sender mandate, honoredAPI ·
89b2bea - Newthe account lifecycle — sandbox by default, risk-scored auto-approval, admin ladderAPI ·
f8f5b2a - NewF7 complete — segment.joined/left via membership snapshots, scheduled cadenceAPI ·
1553209
- Newthe live-API lane — every screen can talk to the real APIProduct ·
040150c - NewGET /metrics — console figures come from the event spine (F3 parity)API ·
8a787da - NewB6 — warmup-backed dedicated IPs with a published ramp curveAPI ·
74baffd - NewB7 — pre-send verification as a quality gateAPI ·
be0c0e4 - Newinbound receiving — store-and-webhook on the event spineAPI ·
f6d5a7f - NewF7 — automations with versioned enabling and a custom-event intakeAPI ·
8ed131c - NewF14 — broadcasts with snapshot content, rename/archive anytimeAPI ·
766c83a - NewF6 — dynamic segments evaluated live, never snapshotsAPI ·
7a53b87 - NewF10 — contacts with auto-created typed propertiesAPI ·
89cca14 - NewV2 foundations — marketing tables, inbound, dedicated IPs, 11 event typesAPI ·
527c423 - Fixeddeliverability rates serialize in the contract's snake_case shapeAPI ·
eb5c8bc - Newthe running server is now the whole product — SMTP, ingest, trust sweepAPI ·
3e74356 - NewB3 deliverability panel — real rates, snapshots, honest placeholdersAPI ·
bccc01e - Newprovider-event ingest — the delivery half of the catalog now has a producerAPI ·
534aa35 - NewB8 human approval queue — held sends are recorded, decided, never lostAPI ·
5e48d4c - NewSMTP relay — key-as-password, one accept pathAPI ·
136bdf6 - NewF5 template version API mounted — list/diff/rollback/render over real tablesAPI ·
6408a65 - NewF8 — cancel/reschedule both ways, raw MIME/.eml, bulk cancel, CSV exportAPI ·
dcff3d9 - Newopen/click tracking — signed pixel + click proxy with link rewriteAPI ·
6136be6 - Newthe trust ladder — published thresholds, enforcement, appeals (B1)API ·
4d459f9 - Newsuppression layers — address/domain/global, partial-drop sends, REST APIAPI ·
fc78201 - Fixeddurable attachments on the running server + boot recovery for stranded 202sAPI ·
cc2df54 - NewGoogle sign-in over OAuth 2.0 with PKCEAPI ·
821b88d - Newrelease scheduled emails when they come dueAPI ·
3394eb3 - Fixedsurface catalog errors on the MCP path + fold the dev-gate flag into configAPI ·
a12c812 - Newwire the MCP OAuth 2.1 authorization server end to endAPI ·
aed4748 - Newmount the remote MCP endpoint — the agent entry point existsAPI ·
e5cb72a - Newsame primitive/motion/chart system as landingProduct ·
a837363 - Newmount passwordless auth so sign-up existsAPI ·
7e6be4f - Newhero sign-in — email plus Continue with Google, on the one motion systemProduct ·
7e5f8af - Newdesigned OG images, 404 page and a print stylesheetProduct ·
238b9b0 - Fixedevery text pair passes WCAG AA in both themes + a gate that keeps itProduct ·
8b16840 - Fixedmono fallback metrics load, no shift on font swapProduct ·
fa88309 - Fixedamber means attention only, never decorationProduct ·
8c56dde - Newreputation chart carries its threshold and scaleProduct ·
dc5498c - Fixeddark: utilities follow the theme class, not the OSProduct ·
6168aef - Newloop detection on the send pathAPI ·
9edd003 - Newdrizzle WebhookStore adapter for @agentisend/webhooksAPI ·
3baf2a1 - Newbudgets on by default for every new api keyBudgets and limits ·
58e4b7a - Newwebhook attempt log and endpoint failure countersAPI ·
0b012ba - Newinstrumentation identity across landing + console — replaces the default dev-tool templateProduct ·
173f8c9 - Fixedlive-journey findings — tolerate body-less json POSTs, bound DNS lookups, 400 for malformed jsonAPI ·
a56524b - Newcarry attachments to the transport and refuse unverified domainsProduct ·
c7d5ea0 - NewM2.6 retention policy — 90d default, account tiers, batched purge with dry-run + auditAPI ·
83fb070 - NewM2.5 metrics screen + perf budgets enforced in CI (PRD F12)Product ·
c050860 - NewM2.4 Python SDK — stdlib-only client, pinned OpenAPI parity, quickstart executed in CISDKs and CLI ·
4302ffd - Fixeda published default pepper is the same as no pepperProduct ·
17dafc3 - NewM2.5 metrics dashboard with an enforced performance budgetProduct ·
44cb327 - NewM1.1 key auth ported — HMAC-SHA256 at rest, paste normalization, scopes + expiryAPI ·
9c54864 - Fixedadd the missing lockfile importer and a type-only importProduct ·
c41979c - NewM2.2 loop detection, spend ceilings and kill switchBudgets and limits ·
51b605b - NewM2.3 pricing page and machine-readable /pricing.json from one sourceProduct ·
9d69c4b - NewM2.1 template store, rendering and the version APITemplates ·
dd95470 - NewM1.12 MCP install UX + llms.txt + docs twinsMCP ·
d262301 - Fixedtype-safe indexed access in the seeded backfillProduct ·
fa39fcd
- NewM1.2 retryability contract across the whole error catalogProduct ·
fe68ba1 - Fixedgreen the gatesProduct ·
467fa6b - NewM1.11 console scaffold — shell, palette, emails, domains, keys, webhooks, agents, trustProduct ·
d1e99d5 - NewM0.14 typed client and a README quickstart that CI runsSDKs and CLI ·
86446a8 - NewM0.13 domains with DKIM keygen and pluggable verificationAPI ·
b4a097b - NewM1.8 passwordless codes + PG-backed sessionsAPI ·
1cbca28 - NewM0.12 limits, kill switch and trust standingAPI ·
f6136d7 - NewM0.11 event spine, webhook outbox, replay and dead-lettersAPI ·
0894727 - NewM1.4 outbox + deliverer + HMAC signing + DLQWebhooks ·
a674003 - NewM0.10 batch send with partial-failure semanticsAPI ·
5589056 - NewAgentiSend marketing page per LANDING.md (amber direction)Product ·
0336ace - NewM0.9 emails send/get/list with filtersAPI ·
c2dd1e5 - NewM1.8 rate limiter + safeReturnTo (ported)API ·
a53528c - NewM1.6 registerTool wrapper + request context + audit log + first toolsMCP ·
ab6dd38 - NewM1.7 OAuth 2.1 + PKCE + DCR + opaque reference tokensMCP ·
5178cd4 - NewM1.9 admin auth + action log + alert foldingProduct ·
4015324 - NewM1.10 error-classification + system-logger (ported)Product ·
6763d58 - NewM0.8 idempotency middleware on every mutating route (PRD F1)API ·
dde144a - NewM0.7 API keys + bearer authAPI ·
7809543 - NewM0.6 Fastify skeleton — health, registry-driven OpenAPI 3.1, catalog error envelopesAPI ·
560dd43 - NewM1.3 keyset paginationProduct ·
3ce5707 - NewM1.5 bounce classification + suppressionDeliverability ·
9b8c826 - NewM0.5 Drizzle schema (18 tables, 13 enums), SQL migration, PGlite test harnessAPI ·
a5db554 - NewM0.4 Transport interface, FakeTransport, SesTransport, WeightedRouterProduct ·
a01f9da - NewM0.3 domain types, event taxonomy, ApiError + error catalogAPI ·
7eccba4 - NewM0.2 zod-validated env loaderProduct ·
fb1b4df