pub struct PostDeployReport {
pub command: TestCommand,
pub url: String,
pub mode: Option<String>,
pub outcome: TestOutcome,
pub summary: Option<TestSummary>,
pub failures: Vec<FailureDetail>,
pub duration_ms: u64,
pub schema_version: String,
}Expand description
Top-level machine-readable report emitted by cargo pmcp test {check, conformance, apps} --format=json. The canonical contract for Phase 79’s
post-deploy verifier (Plan 79-03 consumes this via
serde_json::from_str::<PostDeployReport>(stdout)).
§Schema version
"1"(Phase 79) — initial release.
§Outcome semantics
Passed— subcommand exit code 0;summarypopulated where applicable.TestFailed— subcommand exit code 1 (verdict on the new code);failurespopulated.InfraError— subcommand exit code 2 (network / spawn failure / timeout);failuresmay be empty;summarymay beNone.
§URL hygiene (Threat T-79-15)
cargo pmcp URL parsing strips embedded credentials before display per the
existing convention; PostDeployReport.url inherits that hygiene — callers
MUST NOT inject a URL with embedded credentials.
Fields§
§command: TestCommandWhich subcommand emitted this report.
url: StringURL the subcommand probed.
mode: Option<String>For apps: validation mode ("claude-desktop", "chatgpt", "standard").
For check and conformance: always None.
outcome: TestOutcomeTrinary outcome — see struct doc.
summary: Option<TestSummary>Pass/fail counts. None when not applicable (e.g., check connectivity
is binary so summary is None for that subcommand).
failures: Vec<FailureDetail>Per-failure detail with pre-formatted reproduce commands. Empty Vec
when no failures (e.g., Passed outcome).
duration_ms: u64Wall-clock duration of the subcommand invocation (milliseconds).
schema_version: StringWire-format version. Currently "1". Future breaking changes bump.
Trait Implementations§
Source§impl Clone for PostDeployReport
impl Clone for PostDeployReport
Source§fn clone(&self) -> PostDeployReport
fn clone(&self) -> PostDeployReport
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 PostDeployReport
impl Debug for PostDeployReport
Source§impl Default for PostDeployReport
impl Default for PostDeployReport
Source§impl<'de> Deserialize<'de> for PostDeployReport
impl<'de> Deserialize<'de> for PostDeployReport
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 PostDeployReport
impl PartialEq for PostDeployReport
Source§fn eq(&self, other: &PostDeployReport) -> bool
fn eq(&self, other: &PostDeployReport) -> bool
self and other values to be equal, and is used by ==.