security: reject connection-pool policy subclasses on the current policy stack - #221
Conversation
|
Warning Review limit reached
Next review available in: 78 minutes 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?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
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 |
|
@coderabbitai review Please review exact head |
|
Please perform a fresh exact-head semantic review of |
|
@cwl-noema-review Please independently review exact head |
|
|
Purpose
Reconstruct the unique exact
EgressConnectionPoolPolicytype boundary from stale stacked Draft #182 on the current HTTP-method and timeout-policy stack without transferring historical acceptance evidence.This PR is intentionally stacked on #220 because all three lanes modify
src/egressweave/policy.py. Serializing them avoids parallel writers and preserves a reviewable policy-hardening dependency order.Exact stack identity
mainancestor:7faf7a3b8a47980113982914000e724ab6a6cda5;ab51ef1725bd20c898a3e3df82994b576e675e7b;b0e9b43d4b3c8701e8b6af7a93f1e82a0e9030c7;834ec1979e48c37ae35483e20563772caabd59fd;26fb5b2a84f8efa9a19b5ca5fc32e177786e0145;f97084256922f7085b94096f6c20e4a613fac738;2cce1de4a153b8b844b4dfd80de868f0667b7cae.Test-first evidence
The RED-only head added two regressions requiring both public policy constructors to reject an
EgressConnectionPoolPolicysubclass before later dynamic attribute dispatch can replace the finite pool capacities that were reviewed and fingerprinted.Hosted CI run
31784137903failed on every Python 3.10–3.14 lane exactly because both new tests reportedDID NOT RAISE TypeError; the Python 3.14 lane otherwise had 1,035 passing tests.The minimal GREEN change replaces the subclass-accepting
isinstance(...)check with an exact-type boundary. Follow-up commits document the pre-1.0 compatibility narrowing and add a documentation contract requiring the threat and migration path to remain explicit.Implemented boundary
EgressConnectionPoolPolicydataclass type during trusted policy construction;Exact-head verification
Exact head:
f97084256922f7085b94096f6c20e4a613fac738main.Merge contract
Keep Draft behind #220 and #204. Historical #182 checks, reviews, base identity, and mergeability are not acceptance evidence. Do not merge until:
Progresses #113. Supersedes #182 after the exact-count successor is reconstructed on this head and historical dependent PRs no longer require the old branch.