Conversation
Keep original error classification and default response behavior. Allow request-scoped policies to omit cause/stack enrichment and replace only resolved 400 messages.
peterkc
marked this pull request as ready for review
September 14, 2026 00:02
Owner
|
declined. We can review a model for redaction later. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
ErrorHandler. Applications can suppress new cause/stack log fields and replace a 400 message. Defaults, error classification and non-400 responses stay unchanged.ComposeErrorPresentationPoliciesfor independent application rules. All rules run in order; suppression combines with OR and the first non-nil message wins, including an empty string. Message selection never skips later privacy rules.Verification
Passed locally with Go 1.26.6:
make fmtmake lintmake test(race tests)go build -v ./...Tests cover default behavior, error precedence, headers, ordered composition, nil/empty results, ownership and concurrent use. The split-rule regression proves that an early message rule cannot bypass later suppression. Bounded duplication analysis found no new production duplication.
Local CodeRabbit reviewed all three changed files against the PR base and reported no findings. CI success is not yet established.
Review notes
Suppression affects only this
ErrorHandlerinvocation's new cause/stack fields. Earlier fields and other log events remain unchanged. A replacement 400 message omits detailed fields; this is not general log redaction. Child policies must remain safe for concurrent use.