Repository navigation
fix(framework-context): preserve request errors when provider cleanup fails - #3438
Merged
Merged
Conversation
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 58 minutes. View limit detailsLimit details: You’ve used the included review currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
📊 Benchmark Results✅ All benchmarks passed
Updated: 2026-10-09T05:17:53.165Z · Commit: 5ca9aee |
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.
요청 provider 정리 중 잡은
Error를 JSON-safe 메시지로 변환하고 첫Error는cause로 보존합니다. 성공한 요청의 정리 실패는framework-context/request-scope-disposal-failed(500)로 나타나며, 이미 실패한 요청은 원래 오류 객체를 유지하고 기존 Inspector → logger → console 경로로 정리 실패를 한 번 보고합니다.동기·비동기 callback, 여러 provider의 역순 정리, 비-Error throw를 검증합니다. 객체·함수 throw는 사용자 coercion을 실행하지 않으므로 메시지 변환 실패가 요청 오류를 가리지 않습니다.
cause가 없을 때는 옵션에서 제외하여 strict optional-property 계약을 지킵니다. Problem extensions 검증과 요청 오류 hook·transport 응답 정책은 유지합니다.framework-contextpatch changeset을 포함합니다.Closes #3006
Validation
Elevated profile: 요청 오류 전파 계약을 HTTP·tRPC·GraphQL·testing·search 소비 경로가 사용합니다.
Local verification conditions
로컬
pnpm check의 Container 벤치마크가 실패했습니다. 별도 실행에서도 등록 p75 42.4ms가 10ms 임계값을 초과했습니다. 변경 전 production Context로 실행한 동일 benchmark도 등록 60.5ms·검증 30.8ms로 실패했습니다. Container 등록·검증 구현, benchmark와 임계값은 이 PR에서 변경하지 않았습니다. 이 결과는 #3006 없이도 실패가 재현된다는 근거이며, host 경합이나 성능 원인을 확정하는 근거는 아닙니다. 별도 추적: #3435. 임계값을 완화하거나 검증을 우회하지 않았습니다.Head:
5ca9aee756cc0d6cf886f0adef6fe34248e4b025.최초 검증 base:
02b2e262ea083076b613839cf2749ee3c44c1495.Integration
현재 base는 최초 검증 base와 같습니다. GitHub merge candidate
e92422571aac120a9dcb9949d421266f631746be의 부모는 기록된 base·head이고, tree는 head와 동일한26d977eb8e171ed94b64fb000057f29eadb23682입니다. 해당 범위의 로컬 검증·리뷰 결과를 재사용합니다. 필수 CI run 37887680423과 별도 benchmark run 37887680462는 아직 진행 중이며, 통과로 기록하지 않았습니다.CI benchmark run 37887680462 attempt 1에서 최종 head를 검증한 실제
benchmark-result.json은allPassed: true,gateFailures: []이며 모든 임계값이 통과했습니다. advisory workflow의 초록 상태에만 의존하지 않고 산출물로 확인했습니다. 로컬 benchmark 실패의 재현 기록은 #3435에 유지합니다. 나머지 필수 CI는 진행 중입니다.최종 독립 검증에서 로컬 통과 항목, strict·format 보완, 최종 head의 CI benchmark artifact를 대조한 증거 통합을 PASS로 판정했습니다. 최초
pnpm check실행의 실패 기록은 유지하며 전체 wrapper가 통과했다고 주장하지 않습니다. 아직 진행 중인 필수 CI가 완료되어야 병합할 수 있습니다.