feat(audit): finalize incomplete stdio requests - #77
Open
P4ST4S wants to merge 1 commit into
Open
Conversation
|
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
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
Complete terminal audit finalization for stdio requests that do not receive a normal JSON-RPC response.
Pending operations now leave one terminal audit entry when they expire, the upstream emits malformed output, a pipe fails, the client disconnects, the upstream terminates, or the proxy is cancelled.
Context
Implements the stdio portion of #69.
Stacked on #74 only.
Approach
timeoutmalformed_upstream_responsewhen upstream stdout violates the JSON-RPC wire formatclient_disconnectcancelledMessage forwarding remains unchanged: malformed or uninspectable messages are still passed through as required by the proxy transparency invariant.
Test plan
go test -race ./internal/proxy/... ./internal/audit/...go test -race ./...go build ./...go vet ./...All commands pass.
Tests cover expiry without sleeps, malformed upstream output, late responses, bidirectional pending calls, upstream write failure, and client write failure.
Stability impact
No existing field or error-code semantics change. The additive
outcomeandaudit_operation_idfields introduced by #74 are now populated on stdio failure paths that previously produced no terminal audit entry.Notes for reviewer
This PR does not close #69 because the HTTP failure paths are isolated in the next PR.