v1.7.9
Recovery and hardening release for the sender-identity subsystem, plus self-hosting safety fixes.
Sender identity (custom-domain outbound)
- Adopt provably-owned pre-tag identities instead of stranding them (#908): domains whose SES identity predates the v1.7.8 ownership tags are now adopted (tagged and re-ledgered) when ownership is provable, instead of being disowned into
sending_status: failed. Ships migration 105, which automatically re-ledgers domains stranded by the v1.7.8 regression so the reaper reconverges them. - Recover
faileddomains when the provider re-verifies (#911): the reaper now flips a domain back toverifiedwhen SES reports its identity healthy, instead of discarding that signal. - Review follow-up cleanups (#912).
Domain registration
- Check domain ownership before the plan cap on register (#903).
- Close the check-then-act race on
max_domains(#901, fixes #822). - Skip DKIM keygen on a domain reclaim (#906).
Self-hosting safety
- Stop defaulting to the operator's infrastructure (#918): the MCP HTTP server, CLI, TS SDK
WSListener, tether skill, and/api/feedbackno longer fall back toapi.e2a.dev/agents.e2a.dev/ the upstream issue tracker — they fail closed or discover the deployment's own values. Self-hosted deployments must set their own URLs explicitly (see each component's README). - Guard against accidental credential publication (#916).
Web
- Render HTML bodies in the review-hold detail view (#907).
- Fix hero explainer link colliding with CTA buttons (#904); consent account-scope UI styling (#899).
- Enumerate ways to give an agent an email address (#902).
Tests & docs
- Staging promotion now gates on the SES sender-identity path (#913); prod-suite report consolidation actually reads prod reports (#914); integration-suite timeout raised (#922).
- Metrics CLI documentation, MCP tool-count fixes (#905).
Note for self-hosters: if you run the MCP HTTP server, set E2A_API_URL (or E2A_URL/E2A_BASE_URL) and MCP_ALLOWED_HOSTS (or MCP_PUBLIC_URL) explicitly — the server now exits with a config error instead of silently using the hosted service's endpoints.
SDK/CLI package versions are unchanged in this release (TS SDK 5.7.0, Python 5.7.0, CLI 2.4.0 remain current); client-side fixes from #918 will ship in the next client release.
What's Changed
- chore(web): drop red styling from consent account-scope UI by @jiashuoz in #899
- release: publish Python/TypeScript SDK 5.7.0 and CLI 2.4.0 by @jiashuoz in #900
- fix(identity): close the check-then-act race on max_domains by @AmirF194 in #901
- feat(web): enumerate ways to give an agent an email address by @jiashuoz in #902
- fix(web): stop hero explainer link colliding with CTA buttons by @jiashuoz in #904
- fix(identity): check domain ownership before the plan cap on register by @AmirF194 in #903
- fix(identity): skip DKIM keygen on a domain reclaim by @AmirF194 in #906
- docs: document e2a metrics CLI command, fix stale MCP tool counts by @jiashuoz in #905
- fix(web): render HTML bodies in the review-hold detail view by @jiashuoz in #907
- fix(senderidentity): adopt provably-owned pre-tag identities, stop stranding the ledger by @jiashuoz in #908
- fix(senderidentity): recover failed domains when SES re-verifies by @jiashuoz in #911
- chore: cleanup follow-ups from #908/#911 reviews by @jiashuoz in #912
- test(e2e-prod): gate staging promotion on the SES sender-identity path by @jiashuoz in #913
- fix(e2e-prod): consolidate skipped every prod-suite report, so their fail()s were decorative by @jiashuoz in #914
- fix: guard against accidental credential publication by @jiashuoz in #916
- test(e2e): raise the integration-suite package timeout above 10m by @jiashuoz in #922
- fix: stop defaulting to the operator's infrastructure by @jiashuoz in #918
Full Changelog: v1.7.8...v1.7.9