Changelog
Changelog
Two version numbers matter, and they move independently. Draft revisions (-00, -01, ...) version the document. contract_version, carried in AMMP's documents, versions the wire.
Where versions stand
Internet-Draft
draft-rapp-ammp-00, posted 22 October 2026. An individual Internet-Draft: no working group has adopted it.
Wire version
contract_version is "2". A consumer accepts the wire version it supports and refuses any other value, failing closed.
Implementations
Released together as pinned sets in amap-release. As of 27 October 2026, the most recent is amap-2026-10-10; the releases list is always current.
Internet-Draft revisions
- draft-rapp-ammp-00, 22 October 2026. The first submission. The contract's prose and the peer-origin profile became one document. The protocol was renamed from AMAP, the Agent Mailbox Access Protocol, to AMMP, the Agent Mediated Messaging Protocol, because it mediates all of an agent's correspondence, not only a mailbox, and because the acronym AMAP was already used by an expired 2003 draft. Nothing on the wire changed.
Open questions for -01 are tracked in the draft-rapp-ammp-01 milestone.
Before the IETF
The contract was versioned on its own scale, 1.0.0 to 3.1.0, while implementations were built against it. That scale numbered the document, not the wire: the wire value has been "2" since contract 2.0.0, and the draft keeps it, so nothing on the wire was renumbered when the contract reached 3.x. That history, newest first, is the "Historical Background" appendix of the draft. In short:
- 3.1.0. The outbound extension space and the peer-origin profile.
- 3.0.0. Direction-aware tolerance: documents the runtime writes are open to new members, documents the agent writes are closed. Six safety holes closed.
- 2.3.0. Inbound byte access in force.
- 2.2.0. Deletion rights, and a read-only inbound tree as a valid posture.
- 2.1.0. The body spool, and three optional Result members.
- 2.0.0. Attachments, and
contract_versionrequired. The wire value moved from"1"to"2".
An entry that turned out to be wrong is left standing with a correction attached, rather than rewritten.
How changes are versioned
The wire major, contract_version, changes only when a counterpart speaking the old major could no longer accept whole documents safely. Changes short of that leave it alone. Contract 3.0.0 tightened obligations and moved fixtures, yet the wire stayed "2", because a bump would have made every major-2 counterpart refuse all traffic. A consumer that reads a version it doesn't support fails closed, as a logged version refusal, never a silent mis-parse. Draft revisions are numbered separately. Every capability change lands as specification, schemas and fixtures together. See Get involved.