All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Replaced ~25 lines of manual string parsing with serde_json for extracting newest_version from the crates.io API response. This fixes a bug where the parser could extract a version from a nested object instead of the top-level crate object, and reduces maintenance burden.
Configure a URL to fetch a plain text message from when an update is detected. Messages are best-effort (failures are silent), only fetched when an update exists, and trimmed/truncated to 4KB. Accessed via the new DetailedUpdateInfo::message field using the check_detailed() method.
New response-body feature flag includes the raw crates.io API response in DetailedUpdateInfo::response_body, enabling custom field parsing. New check_detailed() method returns DetailedUpdateInfo with optional message and response_body fields, maintaining backward compatibility with UpdateInfo.
Updated the async feature's reqwest dependency to use the rustls feature instead of the deprecated rustls-tls feature.
The minimum supported Rust version (MSRV) has been increased from 1.85 to 1.87.
Replaced the dirs crate with ~10 lines of platform-specific code for cache directory detection. This removes dirs and its transitive dependencies (dirs-sys, redox_users, libredox, getrandom 0.2), eliminating the duplicate getrandom version warning.
Replaced ureq HTTP client with minreq for a significantly smaller dependency tree. minreq is designed for simple blocking HTTP requests, aligning with the crate's "tiny" philosophy. Both native-tls and rustls feature flags are preserved.