Fix #276: [milestone Milestone 7 ] Implement real-time evidence streaming with EvidencePublisher for live monitor... - #277
Open
telleroutlook wants to merge 1 commit into
Open
Fix #276: [milestone Milestone 7 ] Implement real-time evidence streaming with EvidencePublisher for live monitor...#277telleroutlook wants to merge 1 commit into
EvidencePublisher for live monitor...#277telleroutlook wants to merge 1 commit into
Conversation
…ming with `EvidencePublisher` for live monitor...
Collaborator
Author
SummaryThis PR implements real-time evidence streaming with EvidencePublisher and OTLP transport; the code is well-designed with proper error handling, lifecycle management, and comprehensive tests Severitynone Blocking findingsNone. Verdict✅ Approved Merge risklow Audit
{
"approved": true,
"severity": "none",
"summary": "This PR implements real-time evidence streaming with EvidencePublisher and OTLP transport; the code is well-designed with proper error handling, lifecycle management, and comprehensive tests",
"findings": [],
"merge_risk": "low",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 1
} |
Collaborator
Author
SummaryPotential resource leak and race condition in evidencePublisher Severitymedium Blocking findings
Verdict❌ Rejected Merge riskmedium Audit
{
"approved": false,
"severity": "medium",
"summary": "Potential resource leak and race condition in evidencePublisher",
"findings": [
{
"file": "packages/otel-exporter/src/evidenceOtlpTransport.ts",
"line": 311,
"issue": "Resource leak: timeout timer not cleared if fetch throws. The clearTimeout(timer) call is inside the try block after await fetch(), but if fetch() throws, the timer is never cleared, causing a resource leak. Move clearTimeout() into a finally block.",
"kind": "blocker"
},
{
"file": "packages/aep/src/evidencePublisher.ts",
"line": 218,
"issue": "Race condition: close() can be called while #poll() is still executing. The close() method sets #closed=true and stops the timer, but if a poll is in progress, it will continue and attempt to publish to the now-closed stream. While EvidenceStream.publish() will likely handle this gracefully, the design allows overlapping close/poll operations. The close() method should await completion of any in-flight poll before proceeding.",
"kind": "blocker"
},
{
"file": "packages/aep/src/evidencePublisher.ts",
"line": 145,
"issue": "The publish() method increments #errors counter in the catch block but then re-throws the error, making the error counter increment meaningless (the counter is only observable via stats() if the error is caught higher up). Either don't re-throw or document that errors from publish() are always fatal and the counter is for internal tracking only.",
"kind": "suggestion"
},
{
"file": "packages/otel-exporter/src/evidenceOtlpTransport.ts",
"line": 93,
"issue": "No validation that record.actions is a non-empty array. If an AEPRecord with empty actions is published, aepRecordToOtlpSpans returns an empty spans array, resulting in an OTLP payload with no spans being POSTed. While this might be valid, it's worth considering whether empty evidence records should be filtered earlier or explicitly handled.",
"kind": "suggestion"
},
{
"file": "packages/otel-exporter/src/evidenceOtlpTransport.ts",
"line": 217,
"issue": "The ensureHex function silently truncates IDs that are too long, which could result in non-unique trace/span IDs if the input ID has unique significant bits beyond the target length. This could cause trace collisions in production. Consider throwing an error or logging a warning when truncation occurs.",
"kind": "suggestion"
}
],
"merge_risk": "medium",
"Model": "opus",
"model": "claude-cli",
"effort": "high",
"tokens": {
"input_tokens": 0,
"output_tokens": 0
},
"same_verdict_count": 1
} |
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.
Fixes #276
Generated by claude-bot-go worker.