ToolResult is non_exhaustive (v4.0.0): what it prevents and how to add a field Records the sealing, the builder requirement, and the latent-breakage it stops -- a public field added to a literal-constructed struct is breaking by Rust's rules and semantic-release publishes it as a minor. Also records why the guard reads the source and must not be simplified into a substring search: the doc comment names the attribute, so a substring match stayed green through a mutation that removed it.