Repository navigation
Hardening pass around reliability, validation, and secure/error handling - #17
Merged
Merged
Conversation
Initialize the server and provider before recovery, replay, and purge. Test that a missing model key file prevents forwarding and purge.
Read one extra byte on conflicts to detect truncated replay evidence. Test that an oversized conflict leaves delivery pending and a valid retry succeeds.
Classify transport failures and record numeric HTTP statuses. Test logs, stored receipts, and webhook responses with hostile text.
Share safe transport diagnostics between proxy forwarding and annotation publishing. Replace publisher request construction errors with a fixed message. Test diagnostic categories, publisher log containment, HTTP client timeouts, and receipt persistence after sweep cancellation.
- share transport classification across ScanRelay and model clients, including deadline errors wrapped through multiple layers. - test refused and untrusted TLS connections, provider error privacy, and publisher status handling and cancellation.
- require a complete JSON value in provider envelopes, briefings, and incident summaries while keeping rejection messages free of model text. - pin transport diagnostic wording, handle sandboxed loopback tests, and correct the duplicate waiter documentation.
- require EOF after one model value and preserve safe rejection messages. - cover evidence references, citations, and malformed suffixes. Exercise host envelope validation in the ingest fuzz target and handle unavailable loopback addresses in the transport tests.
- fuzz complete model responses against Go's JSON validity check and cover empty inputs, type mismatches, nested unknown fields, and null. - preserve typed destination errors and pin repair diagnostics.
Return typed destination errors before parsing and preserve them through briefing and summary parsers. Test invalid destinations with malformed input and pin decoded values for the documented JSON behavior.
Correct the unknown-field fixture and pin briefing rejection messages. Compare strict decoding with encoding/json in the fuzz target and clarify the decoder contract.
Cover malformed summaries, missing required fields, and invalid citations and evidence references. Pin the existing briefing diagnostic for a field type mismatch.
Pin nested model errors at the repair boundary, isolate config validation rules, and verify signed envelope rejection and non-persistence.
Pin the intended rejection for each config case and add positive controls for the isolated rules. Cover evidence and citation errors at the parent repair boundary. The prior handler-above-Pro fixture duplicated the write-timeout rejection, since the earlier checks already bound the handler.
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.
Uh oh!
There was an error while loading. Please reload this page.