pub struct CommitmentPayload {
pub commitment_id: String,
pub action: String,
pub authority_scope: String,
pub reason: String,
pub mode_version: String,
pub policy_version: String,
pub configuration_version: String,
pub outcome_positive: bool,
pub supersedes: Option<CommitmentRef>,
}Expand description
The fields below are frozen under hashing label “macp-commitment-hash/1” (RFC-MACP-0013 §5): CommitmentRef.commitment_hash is computed over exactly these nine fields. Adding a field to this message is a LABEL BUMP to “macp-commitment-hash/2” (RFC-MACP-0013 §5, §7), not a routine additive proto change — a new field MUST either be explicitly excluded from the hash under the existing label or included only under a newly defined and advertised label. Read RFC-MACP-0013 before adding field 10.
Fields§
§commitment_id: String§action: StringAction identifier describing the outcome (e.g., “decision.approved”, “task.completed”, “quorum.rejected”). Mode RFCs define the normative vocabulary for their action values.
reason: String§mode_version: String§policy_version: String§configuration_version: String§outcome_positive: boolTrue when the commitment represents a positive/successful outcome; false for definitive negative outcomes (e.g., rejection, failure). Modes that allow negative commitments MUST set this field explicitly.
supersedes: Option<CommitmentRef>Cross-session supersession (RFC-MACP-0001 §7.3): when present, this commitment supersedes a prior commitment identified by {session_id, commitment_hash}. The superseding commitment lives in a NEW session (a RESOLVED session accepts no further messages). The kernel validates only structural well-formedness and this-session authority; chain resolution and whether supersession is permitted are consumer governance.
Trait Implementations§
Source§impl Clone for CommitmentPayload
impl Clone for CommitmentPayload
Source§fn clone(&self) -> CommitmentPayload
fn clone(&self) -> CommitmentPayload
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CommitmentPayload
impl Debug for CommitmentPayload
Source§impl Default for CommitmentPayload
impl Default for CommitmentPayload
impl Eq for CommitmentPayload
Source§impl Hash for CommitmentPayload
impl Hash for CommitmentPayload
Source§impl Message for CommitmentPayload
impl Message for CommitmentPayload
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.