pub struct ToolPin {
pub program: String,
pub want: String,
}Expand description
One manifest line: usable, or not.
A SUM, not a struct with an Option<why> beside the fields. The struct
form let a broken line carry a severity, a scope and an argv that meant
nothing — and it produced a wrong diagnosis: because broken and usable
entries shared one list, a valid line was rejected as “declared twice” for
colliding with a line that could not run. Dedup now sees only Usable.
Separate from External because the fleet reads ninety-six manifests and may
re-read them on every refresh, while External holds a Scope whose
&'static slices are LEAKED.
tool <program> <version-substring> — a version this repository expects
of a tool its checks drive, so cross-machine skew is a printed fact
instead of “the hook is flaky here”. Verified once per hook run, warn-only.
Fields§
§program: String§want: StringA substring <program> --version’s first line must contain — 0.6.
pins a minor, 0.6.3 pins a patch. Substring, not semver: the point
is agreement between machines, not range arithmetic.