fix: suppress signatures for errored streams - #998
Conversation
|
Review: fix: suppress signatures for errored streams Traced the change through The core change is correct. Inverting to No critical issues. Two non-blocking follow-ups: 1. Errored streams now return an opaque 404 from This is the user-visible consequence of the fix. match stop_reason {
Some(StopReason::ClientDisconnect) => Ok(SignatureLookupResult::Unavailable { ... }),
_ => Err(AttestationError::SignatureNotFound(...)),
}
Some(StopReason::ProviderError | StopReason::Timeout | StopReason::RateLimited) => {
Ok(SignatureLookupResult::Unavailable {
error_code: "STREAM_ERROR".to_string(),
message: "Verification not available: the stream ended with an upstream error.".to_string(),
})
}2. Test asserts storage, not the client contract
Pre-existing, out of scope
Logging reviewed against CLAUDE.md -- no new log statements, and the test asserts only on IDs/counts. Approved. |
Review · Status🟩 CompletedIronLoop completed the review and posted it to GitHub. ResultRun detailsAutomatic trigger · attempt 1 of 3 · completed in 25m 42s |
|
✅ OpenCodeReview: Review failed: 0 finding(s); 2 of 2 selected item(s) failed. |
There was a problem hiding this comment.
Review · Summary
🟢 No actionable findings
No actionable issues found in the reviewed change.
Validation
- ✅ Rust formatting — Formatting checks passed.
- ✅ Focused completion tests — 50 completion-focused service tests passed.
- ✅ API regression-test build — The API end-to-end test target, including the added regression test, compiled successfully.
- ✅ Signature-pin lifecycle — The focused release-without-storage lifecycle test passed.
Review details
- Run:
d6729709-f45f-44c1-9b8b-e1ab751e7cbf - Attempts: 1
4384a9c to
49dbdc1
Compare
think-in-universe
left a comment
There was a problem hiding this comment.
No actionable findings. The error path now releases the routing pin without storing a successful signature.
|
@ironloopai review |
Review · Status🟩 CompletedIronLoop completed the review and posted it to GitHub. ResultRun detailsManual command by think-in-universe · attempt 1 of 3 · completed in 26m 29s |
There was a problem hiding this comment.
Review · Summary
Found one medium-severity error-lifecycle gap in the Responses API path.
Findings: 🟠 Medium 1
Code-specific findings are attached to the diff.
Validation
- ✅ Formatting — Rust formatting check passed.
- ✅ Completions unit tests — 50 focused completions unit tests passed.
- ⚪ Focused E2E signature test — Not run. The database-backed regression test could not execute because PostgreSQL on localhost:5432 was unavailable; the runner has no local PostgreSQL or container runtime.
Review details
- Run:
ed3ce10e-9c90-4e4e-b1bb-6b2dc628774f - Attempts: 1
think-in-universe
left a comment
There was a problem hiding this comment.
Approved.
Please resolving the pending comments before merge
fc0113b to
66679a6
Compare
49dbdc1 to
e167021
Compare
Summary
This is stacked on #996, which handles a clean EOF without an upstream terminal frame.
Fixes #997
Testing
cargo fmt --checkcargo test -p services completions:: --libcargo test -p api --libcargo test -p api --test e2e_all --no-runFocused E2E execution is blocked locally by PostgreSQL authentication during test bootstrap.