feat: Add async middleware, HTTP error mapping, schema validation, useragent, and failover - #64
Conversation
…eragent, and failover Include the remaining 3.0 items in the recut: promise-based first-party middleware, status-to-exception mapping after retry, optional JSON Schema body validation, optional jooservices/useragent helpers, and curl/Guzzle transport failover.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
|
Warning Review limit reached
Next review available in: 11 seconds Limit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?Wait for the limit to reset, then comment An organization admin can change what happens after included review limits in Billing. How do review limits work?CodeRabbit enforces per-developer PR review limits within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (56)
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 |
Up to standards ✅🟢 Issues
|
| Metric | Results |
|---|---|
| Complexity | 138 |
| Duplication | 0 |
🟢 Coverage 96.70% diff coverage · -0.24% coverage variation
Metric Results Coverage variation ✅ -0.24% coverage variation (-1.00%) Diff coverage ✅ 96.70% diff coverage Coverage variation details
Coverable lines Covered lines Coverage Common ancestor commit (7af8655) 3219 3166 98.35% Head commit (9b739a5) 3653 (+434) 3584 (+418) 98.11% (-0.24%) Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch:
<coverage of head commit> - <coverage of common ancestor commit>Diff coverage details
Coverable lines Covered lines Diff coverage Pull request (#64) 515 498 96.70% Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified:
<covered lines added or modified>/<coverable lines added or modified> * 100%
NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.
Summary
Recut 3.0.0 so the previously deferred items ship in this major:
AsyncMiddlewareInterface) — Guzzle promises chain withoutwait(). Third-party sync middleware still uses a blocking fallback. Retry delay still sleeps viaSleeperInterface.withHttpErrorMapping()/HttpErrorMappingMiddleware— maps HTTP error statuses toHttpResponseExceptionafter retry sees the raw status.withJsonSchemaValidation()/JsonSchemaBodyValidator— optionaljustinrainbow/json-schema(fail closed when missing).withUserAgent(string|callable),withGeneratedUserAgent(),withRotatingUserAgent()— optionaljooservices/useragent, never the default identity.withFailoverTransport()— curl ↔ Guzzle (or custom adapters) on transport-level failures only, not HTTP 4xx/5xx.Checks
composer lint:allpass (Docker PHP 8.5)composer test:coverage98.06%After this lands on develop: delete GitHub release + tag
v3.0.0, cutrelease/3.0.0from develop, PR into master, retagv3.0.0.