fix: Cleanup pass — 7 audit findings#136
Conversation
Fixes from the reference-doc-guided codebase audit: - #125: StreamingBuilder ghost columns — move has_int/has_float flags after parse success (was creating all-null columns on parse failure) - #128: Add 30s HTTP timeout to OtlpSink and JsonLinesSink via ureq Agent with timeout_global - #129: FanOut tries ALL sinks before returning error (was short- circuiting on first failure, skipping remaining sinks) - #130: Reuse ureq::Agent for HTTP connection pooling (was creating throwaway connections per request) - #132: RawParser escapes JSON control chars 0x00-0x1F per RFC 8259 (was passing them through raw, producing invalid JSON) - #134: Replace assert! panics in add_enrichment_table with Result (was runtime panic on bad config instead of error propagation) Closes #125, #128, #129, #130, #132, #134. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Caution Review failedPull request was closed or merged during review WalkthroughChanges span multiple crates addressing encoding, HTTP efficiency, error handling, and validation. JSON output now escapes newlines and control characters per RFC 8259. Numeric parsing flags are set only after successful validation, preventing ghost null columns. HTTP sinks now reuse persistent agents with 30-second timeouts rather than creating requests through global constructors. Multi-sink error handling defers failures to complete all operations before returning the first error. Enrichment table validation transitions from panics to explicit Result returns with checks for reserved names and duplicates. 🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
Summary
Fixes 7 findings from the reference-doc-guided codebase audit. All verified against current master.
has_int/has_floatafter parse successureq::Agentfor connection poolingassert!withResultinadd_enrichment_tableNot in this PR (bigger changes):
Test plan
cargo clippy -- -D warningscleancargo testall passcargo fmt --checkcleanCloses #125, #128, #129, #130, #132, #134.
🤖 Generated with Claude Code