mail-address-semantics/mas-modes-v0.1-spec
tegwick 8de8fddf37 MAS-WP-0012 finished: one outbound path and one send cap
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
2026-10-19 12:44:16 +02:00
..
conformance MAS-WP-0011 finished: peer authentication in mode contract v0.1 2026-10-19 11:25:24 +02:00
schema MAS-WP-0011 finished: peer authentication in mode contract v0.1 2026-10-19 11:25:24 +02:00
CONTRACT.md MAS-WP-0012 finished: one outbound path and one send cap 2026-10-19 12:44:16 +02:00
README.md MAS-WP-0011 finished: peer authentication in mode contract v0.1 2026-10-19 11:25:24 +02:00

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 message
  • schema/mas-event-v0.1.schema.json: the normalized gateway event (mas-gateway → application, and case.intake / case.message payloads)
  • conformance/transitions.json: the status machine as data
  • conformance/messages.json: valid and invalid messages
  • conformance/flows.json: scripted flows for MAS-MODES-EMAIL-MASTER and MAS-MODES-EMAIL-SLAVE
  • conformance/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.