Skip to content

Releases: RAprogramm/masterror

v0.20.7

24 Sep 11:17

Choose a tag to compare

Fixed

  • Replaced the remaining fallible Status::try_from conversions in the Tonic
    adapter tests with the infallible Status::from API so Clippy's
    unnecessary_fallible_conversions lint passes under -D warnings.

v0.20.6

24 Sep 11:17

Choose a tag to compare

Fixed

  • Restored compilation on Rust 1.90+ by aliasing the infallible gRPC
    conversion error to core::convert::Infallible and re-exporting it without
    exposing the private convert::tonic module.

v0.20.5

24 Sep 11:17

Choose a tag to compare

Changed

  • Rewrote the English and Russian READMEs to reflect the matured workspace, feature flags, telemetry flows and transport integrations introduced across the 0.20 releases.

Fixed

  • Promoted the gRPC converter to an infallible From<Error> implementation
    while retaining the TryFrom API via the new documented
    StatusConversionError, satisfying Clippy's infallible conversion lint.
  • Collapsed nested metadata guards in the Tonic adapter and reused borrowed
    booleans to silence Clippy without regressing runtime behaviour.
  • Simplified the AppResult alias test to avoid large Err variant warnings
    from Clippy's result_large_err lint.

v0.20.4

24 Sep 11:17

Choose a tag to compare

Added

  • Implemented FromStr support for AppCode together with a lightweight
    ParseAppCodeError so RFC7807 responses and documentation examples can parse
    machine codes without bespoke helpers.

Fixed

  • Removed the redundant #![cfg(feature = "axum")] attribute and tightened
    Axum, SQLx and Tonic integration tests to satisfy -D warnings builds.
  • Allowed attaching JSON details via ErrorResponse::with_details without
    tripping Clippy's result_large_err lint by documenting the intentional
    AppError return shape.

v0.20.3

24 Sep 11:17

Choose a tag to compare

Fixed

  • Restored the Axum transport adapter in builds by wiring the convert::axum
    module into the crate graph and relaxing the tests to validate responses via
    serde_json::Value instead of requiring ProblemJson deserialization.
  • Hardened converter telemetry for Redis, Reqwest, SQLx, Tonic and multipart
    integrations by owning metadata strings where necessary and covering
    non-exhaustive enums so the crate compiles cleanly on Rust 1.90.
  • Reworked ProblemJson metadata internals to use Cow<'static, str> keys and
    values, preserving zero-copy behaviour for borrowed data while allowing owned
    fallbacks required by the updated converters.

v0.20.2

24 Sep 11:17

Choose a tag to compare

Fixed

  • Restored compatibility with Rust 1.89 by updating gRPC, Redis, SQLx and
    serde_json integrations to avoid deprecated APIs, unsafe environment
    mutations and Debug requirements that no longer hold.
  • Added deterministic backtrace preference overrides for unit tests so
    telemetry behavior remains covered without mutating global environment
    variables.
  • Ensured config error mapping gracefully handles new non-exhaustive variants
    by falling back to a generic context that captures the formatted error.

v0.20.1

24 Sep 11:17

Choose a tag to compare

Changed

  • Enriched converter metadata across multipart, redis, reqwest,
    serde_json and sqlx integrations to surface HTTP status details,
    retry-after hints and structured failure positions while keeping existing
    error categories intact.
  • Updated the Teloxide mapping to classify ApiError::InvalidToken as
    Unauthorized and hash potentially sensitive network error details before
    emitting telemetry.

Tests

  • Extended integration tests to assert the new metadata fields, retry hints,
    and redaction policies covering the updated converters.

v0.20.0

24 Sep 11:16

Choose a tag to compare

Added

  • Added a Context::redact_field_mut builder method to tweak metadata
    redaction policies in place before attaching additional fields.
  • Extended response tests to cover JSON serialization of redacted payloads and
    hashed metadata along with checks for the opt-in internal formatters.

Changed

  • Verified ErrorResponse and ProblemJson serialization respects message and
    metadata redaction policies, ensuring secrets stay out of wire payloads while
    keeping diagnostic logging intact.

v0.19.0

24 Sep 11:16

Choose a tag to compare

Changed

  • Reworked AppError storage to keep sources behind shared Arc handles and
    lazily capture optional Backtrace snapshots without allocating when
    RUST_BACKTRACE disables them.
  • Updated the masterror::Error derive and ResultExt conversions to forward
    sources/backtraces automatically under the new storage layout.

Tests

  • Added regression coverage for chained error sources and conditional
    backtrace capture driven by the RUST_BACKTRACE environment variable.

v0.18.0

24 Sep 11:16

Choose a tag to compare

Added

  • Added the AppCode::UserAlreadyExists classification and mapped it to RFC7807
    responses with the appropriate retry hint.

Changed

  • Switched all integration converters in src/convert/* to build structured
    Context metadata before producing Error values, including HTTP status,
    operation, endpoint, duration and retry/edit flags.
  • Extended integration tests to validate the enriched metadata, retry behavior
    and error code/category mappings across the updated converters.