Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
a821937
Enable no_std core and std feature flag
RAprogramm Sep 25, 2025
0710906
Merge pull request #129 from RAprogramm/eye-of-ra/proanalizirovat-pro…
RAprogramm Sep 25, 2025
12bd677
Add AppError detail payload handling
RAprogramm Sep 26, 2025
f0d7762
Merge pull request #131 from RAprogramm/eye-of-ra/extend-apperror-wit…
RAprogramm Sep 26, 2025
1924dc1
feat: restore AppError::with_context helper
RAprogramm Sep 26, 2025
08b61e6
Merge pull request #132 from RAprogramm/eye-of-ra/add-apperror-with_c…
RAprogramm Sep 26, 2025
412d358
up deps
RAprogramm Sep 26, 2025
8ba7832
chore: fix lint warning
RAprogramm Sep 26, 2025
ed5383d
Merge pull request #133 from RAprogramm/eye-of-ra/fix-unused-import-e…
RAprogramm Sep 26, 2025
3d104d8
Optimize last4 masking iterator
RAprogramm Sep 26, 2025
e25bc54
Merge pull request #134 from RAprogramm/eye-of-ra/refactor-mask_last4…
RAprogramm Sep 26, 2025
0041cf0
Use stack buffers for metadata redaction
RAprogramm Sep 26, 2025
b692ec9
Merge pull request #135 from RAprogramm/eye-of-ra/introduce-stack-buf…
RAprogramm Sep 26, 2025
48db55d
Refactor AppCode newtype and update docs
RAprogramm Sep 26, 2025
ef44371
Merge pull request #136 from RAprogramm/eye-of-ra/refactor-appcode-to…
RAprogramm Sep 26, 2025
42bfae3
Move context AppCode into promoted errors
RAprogramm Sep 26, 2025
9ab290c
Merge pull request #137 from RAprogramm/eye-of-ra/refactor-into_error…
RAprogramm Sep 26, 2025
8dc421a
Optimize context field redactions
RAprogramm Sep 26, 2025
3a521de
Merge pull request #138 from RAprogramm/eye-of-ra/optimize-context-wi…
RAprogramm Sep 26, 2025
a9f4844
Refactor metadata redaction to avoid lowercase allocations
RAprogramm Sep 27, 2025
48eeea1
Merge pull request #139 from RAprogramm/eye-of-ra/refactor-infer_defa…
RAprogramm Sep 27, 2025
f5e4083
Use AppErrorKind labels without extra allocations
RAprogramm Sep 27, 2025
673fe6c
Merge pull request #140 from RAprogramm/eye-of-ra/add-label-method-to…
RAprogramm Sep 27, 2025
dce3de4
Add benchmarks for error conversion hot paths
RAprogramm Sep 27, 2025
955a6d5
Merge pull request #141 from RAprogramm/eye-of-ra/add-criterion-bench…
RAprogramm Sep 27, 2025
e3cefad
Avoid cloning AppCode in response conversions
RAprogramm Sep 27, 2025
cac6378
Merge pull request #142 from RAprogramm/eye-of-ra/refactor-error-hand…
RAprogramm Sep 27, 2025
d1ea1f3
Optimize tonic metadata formatting
RAprogramm Sep 27, 2025
8aaea6c
Merge pull request #143 from RAprogramm/eye-of-ra/refactor-serializat…
RAprogramm Sep 27, 2025
9d87446
Refactor tonic metadata formatting
RAprogramm Sep 27, 2025
5c56ba4
Merge pull request #144 from RAprogramm/eye-of-ra/refactor-metadata_v…
RAprogramm Sep 27, 2025
6bede37
Use stack buffers for Retry-After headers
RAprogramm Sep 27, 2025
1e2125b
Merge pull request #145 from RAprogramm/eye-of-ra/update-response-met…
RAprogramm Sep 27, 2025
a1119ad
Validate legacy error response statuses
RAprogramm Sep 27, 2025
22844e1
Merge pull request #146 from RAprogramm/eye-of-ra/refactor-errorrespo…
RAprogramm Sep 27, 2025
e476108
Optimize context metadata redaction handling
RAprogramm Sep 27, 2025
cf01d36
Merge pull request #147 from RAprogramm/eye-of-ra/refactor-error-reda…
RAprogramm Sep 27, 2025
70bdeb9
Fix OpenAPI schema and telemetry for dependency updates
RAprogramm Sep 27, 2025
f22c6ac
Merge pull request #148 from RAprogramm/eye-of-ra/fix-trait-implement…
RAprogramm Sep 27, 2025
2b168d0
up deps
RAprogramm Sep 27, 2025
3d50db1
Fix benchmark black_box usage
RAprogramm Sep 27, 2025
77fbb35
Merge pull request #149 from RAprogramm/eye-of-ra/fix-deprecated-blac…
RAprogramm Sep 27, 2025
aa1a22b
Fix no_std doc build regressions
RAprogramm Sep 27, 2025
9fb5cf4
Merge pull request #150 from RAprogramm/eye-of-ra/fix-target-failure-…
RAprogramm Sep 27, 2025
fa948d1
Restore Rust 1.89 MSRV
RAprogramm Sep 27, 2025
106a256
Merge branch 'new_verison' into eye-of-ra/fix-target-failure-in-maste…
RAprogramm Sep 27, 2025
9190bd5
Merge pull request #151 from RAprogramm/eye-of-ra/fix-target-failure-…
RAprogramm Sep 27, 2025
ddd9200
Raise MSRV to Rust 1.90
RAprogramm Sep 27, 2025
88b4305
Merge pull request #152 from RAprogramm/eye-of-ra/update-dependencies…
RAprogramm Sep 27, 2025
ed7877d
up deps
RAprogramm Sep 28, 2025
352a217
Normalize AppCode equality for custom codes
RAprogramm Sep 28, 2025
73b4457
Merge pull request #153 from RAprogramm/eye-of-ra/fix-custom_codes_ro…
RAprogramm Sep 28, 2025
46e3a0e
up deps
RAprogramm Sep 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .github/workflows/reusable-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ jobs:
runs-on: ubuntu-latest
env:
CARGO_LOCKED: "true"
CARGO_TERM_COLOR: always

steps:
- uses: actions/checkout@v4
Expand Down
145 changes: 145 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,151 @@ All notable changes to this project will be documented in this file.

## [Unreleased]

## [0.24.9] - 2025-10-25

### Fixed
- Treat compile-time and runtime custom `AppCode` values as equal by comparing
their canonical string representation, restoring successful JSON roundtrips
for `AppCode::new("…")` literals.

### Changed
- Equality for `AppCode` is now string-based; prefer `==` checks instead of
pattern matching on `AppCode::Variant` constants.

## [0.24.8] - 2025-10-24

### Changed
- Raised the documented and enforced MSRV to Rust 1.90 across the workspace to
satisfy dependencies that no longer compile on Rust 1.89.

## [0.24.7] - 2025-10-23

### Fixed
- Restored the documented MSRV of Rust 1.89 across the workspace so crates
compile on stable 1.89 again, updating metadata, READMEs and regression tests
to match.

## [0.24.6] - 2025-10-22

### Fixed
- Restored `no_std` builds by importing `alloc::String` for response helpers and
the legacy constructor, keeping textual detail setters available without the
`std` feature.
- Ensured `AppCode::from_str` remains available in `no_std` mode by explicitly
bringing `ToOwned` into scope and gated the `std::io::Error` conversion example
so doctests compile without the standard library.

## [0.24.5] - 2025-10-21

### Fixed
- Replaced deprecated `criterion::black_box` usage in the error path benchmarks
with `std::hint::black_box` so benches compile cleanly under `-D warnings`.

## [0.24.4] - 2025-10-20

### Fixed
- Implemented a manual OpenAPI schema for `AppCode`, restoring `utoipa`
compatibility and documenting the SCREAMING_SNAKE_CASE contract in generated
specs.
- Emitted owned label values when incrementing `error_total` telemetry metrics
so the updated `metrics` crate no longer requires `'static` lifetimes.
- Relaxed gRPC metadata serialization to avoid `'static` lifetime requirements
introduced by recent compiler changes, preserving zero-copy formatting where
possible.

## [0.24.3] - 2025-10-19

### Fixed
- Reused stack-allocated format buffers when emitting gRPC metadata for HTTP
status codes and retry hints, and added regression coverage to ensure metadata
strings remain ASCII encoded.

## [0.24.2] - 2025-10-18

### Added
- Introduced a Criterion benchmark (`benches/error_paths.rs`) covering
`Context::into_error` redaction scenarios and `ProblemJson::from_app_error`
conversions to track serialization hot paths.
- Documented the benchmarking workflow in the README and exposed the suite via
`cargo bench --bench error_paths` with the default harness disabled.

## [0.24.1] - 2025-10-17

### Fixed
- Updated `Context::into_error` to move dynamic `AppCode` values into the
resulting `AppError`, reworking field redaction plumbing to avoid clones and
preserve custom code ownership. Added a regression test covering pointer
identity for context-promoted errors.

## [0.24.0] - 2025-10-16

### Added
- Introduced `AppCode::new` and `AppCode::try_new` constructors with strict
SCREAMING_SNAKE_CASE validation, plus regression tests covering custom codes
flowing through `AppError` and `ErrorResponse` JSON serialization.
- Documented runtime-defined codes across the wiki pages to highlight
`AppCode::try_new` usage.

### Changed
- Replaced the closed `AppCode` enum with a string-backed newtype supporting
caller-defined codes while preserving built-in constants.
- Updated mapping helpers and generated tables to work with the new representation
by returning references instead of copying codes.
- Adjusted serde parsing to validate custom codes and report
`ParseAppCodeError` on invalid payloads.

## [0.23.3] - 2025-10-15

### Changed
- Replaced temporary `String` allocations in RFC7807 metadata hashing and masking
with stack buffers to keep the textual representations and digests stable
while avoiding heap usage.

### Added
- Regression tests covering hashed and last-four redaction paths for numeric,
UUID, and IP metadata to guarantee the legacy formatting remains unchanged.

## [0.23.2] - 2025-10-14

### Fixed
- Removed an unused `String` import from the response details module to keep
builds warning-free under `-D warnings`.

## [0.23.1] - 2025-10-13

### Fixed
- Restored the `AppError::with_context` helper as an alias for `with_source`,
preserving the `Arc` fast-path, updating documentation and README templates,
and adding regression tests for plain and `anyhow::Error` diagnostics.

## [0.23.0] - 2025-10-12

### Added
- Added feature-gated detail payload storage to `AppError` with new
`with_details`, `with_details_json`, and `with_details_text` helpers plus unit
tests covering both serde-json configurations.
- Exposed the stored details through `ProblemJson` and legacy `ErrorResponse`
conversions so RFC7807 and historical payloads emit the supplied data.

### Changed
- Updated the documentation set to highlight the new helpers and clarify
feature requirements for attaching structured details.

## [0.22.0] - 2025-10-11

### Added
- Introduced an explicit `std` feature (enabled by default) and made the core
crate compile in `no_std + alloc` environments, including metadata builders
and error helpers.

### Changed
- Reworked `AppError` internals to rely on `core`/`alloc` primitives and
`core::error::Error`, providing `std::error::Error` only when the `std`
feature is active.
- Replaced `thiserror` derives on `AppErrorKind` with manual `Display`/error
implementations so the taxonomy remains available without the standard
library.

## [0.21.2] - 2025-10-10

### Added
Expand Down
Loading
Loading