mas_modes.mailer.Mailer is the only outbound path (own SQLite + lock), shared by the ticket service and both EmailMode roles. Over the cap mail is held and reported (send-cap-reached, held); held mail is purged after email-held-duration-max (7d) and not stored beyond emails-held-storage-max (100MB). The ticket service's legacy outbox is imported once so the live count carries over (checked on a copy of the live DB: 4 sent). Entrypoint passes the cap and both limits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: opus Assistant-Process: 5787@bnt-lap001 Assistant-Session: 5db26b82-138b-40cc-9856-4d5eb0f752fd |
||
|---|---|---|
| .. | ||
| conformance | ||
| schema | ||
| CONTRACT.md | ||
| README.md | ||
MAS mode contract v0.1 (draft): specification bundle
How email hands a case to another communication mode, and how email works
as one element of a control flow it does not own. It is versioned
separately from the MAS address specification (mas-v0.2-spec/, §7).
Contents
CONTRACT.md: normative text (roles, transport, status machine, message types, principle 10)schema/mas-modes-v0.1.schema.json: every contract messageschema/mas-event-v0.1.schema.json: the normalized gateway event (mas-gateway→ application, andcase.intake/case.messagepayloads)conformance/transitions.json: the status machine as dataconformance/messages.json: valid and invalid messagesconformance/flows.json: scripted flows forMAS-MODES-EMAIL-MASTERandMAS-MODES-EMAIL-SLAVEconformance/auth.json: signing vectors and verification cases (§7)conformance/statute.json: the statute the flows run under
The reference email side, the callback stub and the stub outside master are
in mas_modes/. mas test runs this bundle against them.