Claros v0.4.0
v0.4.0 - Sending
Claros now sends email.
What works in this release:
- Approved messages are delivered through Resend. Every lifecycle email
carries RFC 8058 one-click unsubscribe headers and a CAN-SPAM footer
with the sender's postal address. A tenant without a postal address
configured does not send at all rather than sending a non-compliant
message. - Unsubscribing works. The one-click endpoint and the hosted page both
write to the suppression list, and the suppression gate is checked
before every send. - Bounces, complaints, opens, and clicks are ingested from signed
provider webhooks. Permanent bounces and complaints suppress the
address automatically. - Messages wait for human approval by default. Flows can be set to
approve automatically. - An operator CLI covers first-run setup: postal address, model
provider, and transport credentials, all stored encrypted. Credentials
never live in environment files. - Login links are emailed once transport is configured, and printed to
the console before that, so a fresh install is usable immediately.
What does not work yet:
- Resend is the only transport. SES and SMTP are not implemented; the
CLI accepts those names but nothing will send. - Bounce and open tracking needs a publicly reachable install and a
webhook registered with the provider. It is untested against live
provider traffic. - There is no dashboard. Everything is API or CLI.
- No automatic pause on high bounce rates, and the per-tenant daily
limit is stored but not enforced. - The knowledge base has no file upload, no crawling, and no search
endpoint. Entries are created through the API.
Not ready for production use.