pub struct Report {Show 22 fields
pub schema_version: u32,
pub tool_version: String,
pub lang: Lang,
pub started_at: String,
pub finished_at: String,
pub duration_ms: u64,
pub host: String,
pub base_url: String,
pub protocol: Protocol,
pub model: String,
pub claimed_model: String,
pub depth: String,
pub seed: u64,
pub steps: Vec<String>,
pub request_count: u32,
pub results: Vec<ProbeResult>,
pub verdict: Verdict,
pub identity: Identity,
pub billing: BillingAudit,
pub channel: ChannelSignature,
pub perf: PerfSummary,
pub skipped: Vec<String>,
}Fields§
§schema_version: u32Shape of this JSON, independent of Report::tool_version.
A caller that stores reports needs to know whether an old row can still be deserialised, and the tool version cannot answer that: most releases change no field at all. Bumped only when a field is removed or its meaning changes; additive fields do not move it.
tool_version: String§lang: LangLanguage every human-readable string in this report is written in.
started_at: String§finished_at: String§duration_ms: u64§host: String§base_url: String§protocol: Protocol§model: String§claimed_model: String§depth: String§seed: u64The random seed this run’s payloads were generated from. Replaying the same seed, depth and step list reproduces the same probes — which is what makes a verdict auditable after the fact.
Serialised as a string, and that is not cosmetic. A u64 seed
routinely exceeds 2^53, and JSON numbers above that lose precision in
every JavaScript consumer — a report rendered in a browser showed
2543944364647182727 as 25439443646471830000, next to a sentence
promising the run could be replayed from it. A seed that cannot be
copied accurately is worse than no seed, because it looks like evidence.
steps: Vec<String>Registry ids of the steps that ran, in order. A report that covers part of the suite must say which part: absent evidence is not evidence.
request_count: u32§results: Vec<ProbeResult>§verdict: Verdict§identity: Identity§billing: BillingAudit§channel: ChannelSignature§perf: PerfSummary§skipped: Vec<String>Probes that never ran, and why — so “not tested” is never read as “passed”.