Skip to main content

StatusOutput

Struct StatusOutput 

Source
pub struct StatusOutput {
    pub schema_version: String,
    pub emitted_at: DateTime<Utc>,
    pub runner: String,
    pub runner_distro: Option<String>,
    pub fallback_used: bool,
    pub canonicalization_version: String,
    pub canonicalization_backend: String,
    pub artifacts: Vec<ArtifactInfo>,
    pub last_receipt_path: String,
    pub effective_config: BTreeMap<String, ConfigValue>,
    pub lock_drift: Option<LockDrift>,
    pub pending_fixups: Option<PendingFixupsSummary>,
}
Expand description

Status output for a spec, matching schemas/status.v1.json.

StatusOutput provides comprehensive status information about a spec’s current state, including artifacts, configuration, and any detected drift from locked values.

This is a stable public type. Changes in 1.x releases are additive only.

§Schema

This type conforms to schemas/status.v1.json and is emitted using JCS (RFC 8785) canonicalization for stable, deterministic JSON output.

§Example

use chrono::Utc;
use std::collections::BTreeMap;
use xchecker_utils::types::{ConfigValue, StatusOutput};

let status = StatusOutput {
    schema_version: "1".to_string(),
    emitted_at: Utc::now(),
    runner: "native".to_string(),
    runner_distro: None,
    fallback_used: false,
    canonicalization_version: "yaml-v1,md-v1".to_string(),
    canonicalization_backend: "jcs-rfc8785".to_string(),
    artifacts: Vec::new(),
    last_receipt_path: "receipts/latest.json".to_string(),
    effective_config: BTreeMap::<String, ConfigValue>::new(),
    lock_drift: None,
    pending_fixups: None,
};

println!("Schema version: {}", status.schema_version);
println!("Artifacts: {}", status.artifacts.len());

§Fields

  • schema_version: Always "1" for this schema version
  • emitted_at: RFC3339 UTC timestamp when status was generated
  • runner: Execution mode ("native" or "wsl")
  • artifacts: List of artifacts with BLAKE3 hashes (first 8 chars)
  • effective_config: Configuration values with source attribution
  • lock_drift: Detected differences from locked values (if any)
  • pending_fixups: Summary of pending code changes (if any)

Fields§

§schema_version: String

Schema version for this status format (always "1" for v1).

§emitted_at: DateTime<Utc>

RFC3339 UTC timestamp when the status was emitted.

§runner: String

Runner mode used for Claude CLI execution ("native" or "wsl").

§runner_distro: Option<String>

WSL distribution name if runner is "wsl".

§fallback_used: bool

Whether fallback to text format was used during LLM invocation.

§canonicalization_version: String

Version of the canonicalization algorithm used (e.g., "yaml-v1,md-v1").

§canonicalization_backend: String

Backend used for canonicalization (e.g., "jcs-rfc8785").

§artifacts: Vec<ArtifactInfo>

Artifacts with path and blake3_first8 hash (sorted by path).

§last_receipt_path: String

Path to the most recent receipt file.

§effective_config: BTreeMap<String, ConfigValue>

Effective configuration with source attribution (cli, config, programmatic, or default).

§lock_drift: Option<LockDrift>

Lock drift information if lockfile exists and drift is detected.

§pending_fixups: Option<PendingFixupsSummary>

Pending fixup summary (counts only, no file contents).

Trait Implementations§

Source§

impl Clone for StatusOutput

Source§

fn clone(&self) -> StatusOutput

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for StatusOutput

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for StatusOutput

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for StatusOutput

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,