pub struct StateProposal {Show 17 fields
pub schema: String,
pub id: String,
pub kind: String,
pub target: StateTarget,
pub actor: StateActor,
pub created_at: String,
pub drafted_at: Option<String>,
pub reason: String,
pub payload: Value,
pub source_refs: Vec<String>,
pub status: String,
pub reviewed_by: Option<String>,
pub reviewed_at: Option<String>,
pub decision_reason: Option<String>,
pub applied_event_id: Option<String>,
pub caveats: Vec<String>,
pub agent_run: Option<AgentRun>,
}Fields§
§schema: String§id: String§kind: String§target: StateTarget§actor: StateActor§created_at: String§drafted_at: Option<String>v0.67: when an agent drafts a proposal long before the
reviewer accepts it, drafted_at records the draft moment.
created_at records the moment the proposal entered the
canonical store. The throughput dashboard reads against
drafted_at when present, falling back to created_at,
so the “median proposal-to-event latency” surfaces real
reviewer queue time rather than zero.
Backward-compatible: pre-v0.67 proposals load with None.
reason: String§payload: Value§source_refs: Vec<String>§status: String§reviewed_by: Option<String>§reviewed_at: Option<String>§decision_reason: Option<String>§applied_event_id: Option<String>§caveats: Vec<String>§agent_run: Option<AgentRun>v0.22 (Agent Inbox): when a proposal originates from a scoped agent run (e.g. Literature Scout reading a PDF folder), this captures the model, the run id, and the wall-clock window. The substrate stays dumb — it does not know whether the proposer was a human, a Claude run, a GPT run, or a lab pipeline; this is informational provenance only, surfaced in the Workbench Inbox so reviewers can judge what they’re looking at. Optional + skip-if-none so existing frontiers without proposals serialize byte-identically.
Trait Implementations§
Source§impl Clone for StateProposal
impl Clone for StateProposal
Source§fn clone(&self) -> StateProposal
fn clone(&self) -> StateProposal
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 StateProposal
impl Debug for StateProposal
Source§impl<'de> Deserialize<'de> for StateProposal
impl<'de> Deserialize<'de> for StateProposal
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for StateProposal
impl PartialEq for StateProposal
Source§fn eq(&self, other: &StateProposal) -> bool
fn eq(&self, other: &StateProposal) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for StateProposal
impl Serialize for StateProposal
impl Eq for StateProposal
impl StructuralPartialEq for StateProposal
Auto Trait Implementations§
impl Freeze for StateProposal
impl RefUnwindSafe for StateProposal
impl Send for StateProposal
impl Sync for StateProposal
impl Unpin for StateProposal
impl UnsafeUnpin for StateProposal
impl UnwindSafe for StateProposal
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.