security: reconstruct exact request-timeout policy boundary on integrated main - #158
security: reconstruct exact request-timeout policy boundary on integrated main#158seonghobae wants to merge 20 commits into
Conversation
|
Warning Review limit reached
Next review available in: 11 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 (5)
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 |
|
|
@coderabbitai review Please review the unchanged exact current head |
|
|
# Conflicts: # CHANGELOG.md
|
@coderabbitai review Please review exact current head |
|
I will validate only the current exact diff. I will not transfer findings or evidence from predecessor heads.
|
|
@coderabbitai review Please review exact current head |
|
I will review only the exact current diff. I will focus on
|
Integrate protected main 1d2e190 without rebasing. Preserve the current timeout-policy source/tests/research delta and take protected-main CHANGELOG as the initial merge resolution so integrated documentation parity can be revalidated independently.
|
@coderabbitai review Please review exact current head This branch non-destructively integrated protected main via two-parent merge Exact-current-head CI Revalidate only the current integrated tree: exact |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
set -euo pipefail
head='496d81709ad63be6b921510c447e7d2393daed96'
base='1d2e19049354115776804c66b9366fad2ea5b6c5'
printf '%s\n' '== Exact revisions =='
git rev-parse "$head" "$base"
printf '%s\n' '== Merge base =='
git merge-base "$head" "$base"
printf '%s\n' '== Diff summary (base...head) =='
git diff --stat "$base...$head"
printf '%s\n' '== Changed files (base...head) =='
git diff --name-status "$base...$head"
printf '%s\n' '== Direct post-merge changelog diff =='
git diff --unified=20 'f4d14ae32b401bb9aabe66289737d8f8b8fede74' "$head" -- CHANGELOG.md
printf '%s\n' '== Candidate files containing EgressTimeoutPolicy =='
rg -n -C 4 --glob '!**/.git/**' '\bEgressTimeoutPolicy\b' .
printf '%s\n' '== Candidate files containing as_httpcore_timeout or policy fingerprints/diagnostics =='
rg -n -C 4 --glob '!**/.git/**' \
'\bas_httpcore_timeout\s*\(|\bfingerprint\b|timeout.*diagnostic|diagnostic.*timeout|type\(.*EgressTimeoutPolicy|isinstance\(.*EgressTimeoutPolicy' .
printf '%s\n' '== Documentation and release-history diff =='
git diff --unified=30 "$base...$head" -- CHANGELOG.md README.md docs 2>/dev/null || trueLength of output: 57316 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='496d81709ad63be6b921510c447e7d2393daed96'
base='1d2e19049354115776804c66b9366fad2ea5b6c5'
printf '%s\n' '== AST outlines =='
ast-grep outline src/egressweave/policy.py --items all --view expanded
ast-grep outline src/egressweave/timeout_policy.py --items all --view expanded
ast-grep outline src/egressweave/request_safety.py --items all --view expanded
ast-grep outline src/egressweave/decision_evidence.py --items all --view expanded
ast-grep outline tests/test_timeout_policy_type_boundary.py --items all --view expanded
ast-grep outline tests/test_timeout_policy_type_documentation.py --items all --view expanded
printf '%s\n' '== Complete implementation diff =='
git diff --unified=80 "$base...$head" -- src/egressweave/policy.py
printf '%s\n' '== Policy construction and timeout implementation =='
sed -n '140,455p' src/egressweave/policy.py
sed -n '1,100p' src/egressweave/timeout_policy.py
printf '%s\n' '== Sanitizer and fingerprint implementation =='
sed -n '240,325p' src/egressweave/request_safety.py
sed -n '1,100p' src/egressweave/decision_evidence.py
printf '%s\n' '== New boundary and documentation tests =='
cat -n tests/test_timeout_policy_type_boundary.py
cat -n tests/test_timeout_policy_type_documentation.py
printf '%s\n' '== Timeout policy construction/fingerprint/transport parity tests =='
sed -n '35,115p' tests/test_request_timeout_policy.py
sed -n '205,345p' tests/test_request_timeout_policy.py
printf '%s\n' '== All direct calls to EgressPolicy constructors and timeout sanitizer =='
rg -n -C 3 --glob '*.py' \
'(EgressPolicy\s*\(|EgressPolicy\.from_hosts\s*\(|EgressPolicy\.from_authorities\s*\(|_bind_bounded_request_timeouts\s*\()' \
src testsLength of output: 128233 🏁 Script executed: #!/bin/bash
set -euo pipefail
head='496d81709ad63be6b921510c447e7d2393daed96'
base='1d2e19049354115776804c66b9366fad2ea5b6c5'
merge='f4d14ae32b401bb9aabe66289737d8f8b8fede74'
printf '%s\n' '== Requested merge topology =='
git show -s --format='commit=%H%ntree=%T%nparents=%P%nsubject=%s' "$merge"
git show -s --format='commit=%H%ntree=%T%nparents=%P%nsubject=%s' "$head"
printf '%s\n' '== Remaining exact-authority constructor =='
sed -n '397,465p' src/egressweave/policy.py
printf '%s\n' '== Sync and async transport timeout-binding call sites =='
sed -n '180,235p' src/egressweave/sync_transport.py
sed -n '340,390p' src/egressweave/transport.py
printf '%s\n' '== All production accesses to request_timeout_policy =='
rg -n -C 3 --glob '*.py' '\.request_timeout_policy\b|request_timeout_policy\s*=' src
printf '%s\n' '== Exact type checks and timeout-export calls in production =='
rg -n -C 3 --glob '*.py' \
'type\([^)]*request_timeout_policy[^)]*\)|as_httpcore_timeout\s*\(' src
printf '%s\n' '== Direct-construction position-parity regression =='
sed -n '185,225p' tests/test_request_target_limits.py
printf '%s\n' '== Diff integrity =='
git diff --check "$base...$head"
git diff --word-diff=porcelain "$base...$head" -- src/egressweave/policy.py \
docs/research/request-timeout-boundaries.md CHANGELOG.mdLength of output: 22437
No current-head actionable findings. The merge base matches the requested protected-main commit. The stated merge has the expected two parents. The final commit restores only the four-line The exact-type check rejects I used the existing repository guidance that aggregate Security Scan success does not replace Dependency Review acceptance. I excluded the separately skipped dependency-review gate from this review, as requested. 🧠 Learnings usedYou are interacting with an AI system. |
|
Exact current-head local revalidation completed on |
|
@coderabbitai review |
|
|
Superseded by #220, which reconstructs the unique timeout-policy exact-type delta on the current policy stack with explicit hosted RED evidence, minimal GREEN implementation, migration documentation, and exact-head 100% statement/branch coverage. Historical checks, reviews, base identity, and mergeability from this diverged branch are intentionally not transferred. |
Purpose
Preserve the exact request-timeout policy type repair while preventing stale predecessor/base evidence from being mistaken for current merge authority.
Exact current identity
main:7faf7a3b8a47980113982914000e724ab6a6cda5;496d81709ad63be6b921510c447e7d2393daed96;71a3aba28e2147ee81e63dbca24b284ae52eebb2;1d2e19049354115776804c66b9366fad2ea5b6c5.The prior
1d2e190...base and its hosted evidence remain immutable development history only. They are not current-main acceptance evidence and must not be transferred after reconstruction or integration.Security contract
Trusted policy construction requires the exact
EgressTimeoutPolicytype. Non-exact subclasses are rejected before subclass-controlledas_httpcore_timeout()dispatch can replace reviewed finite phase ceilings. Exact factory-created timeout values, defaults/normalization, constructor parity, deterministic fingerprints, normalized(hostname, port)authorization, DNS/TLS/proxy/request/response boundaries and public builders remain unchanged.Historical exact-head proof
On unchanged historical head
496d81709ad63be6b921510c447e7d2393daed96over its then-current integrated base:31552525856: success across package acceptance and Python 3.10–3.14, including Ruff, full pytest/coverage, product guard, compileall, wheel/sdist verification and installed-wheel smoke;31552525848: success;31552525855: OSV, Trivy and Scorecard succeeded, but dependency-review job93978067181skipped the actual immutable-pinnedDependency reviewaction;94015723146concluded wrapper success while its annotation statedStrix backend unavailableand no vulnerability report was produced;Skipped Dependency Review and unavailable/no-report Strix are explicitly non-passing semantic evidence. Aggregate wrapper green does not repair either boundary.
Current RCA / feasibility
The first merge blocker is no longer merely provider review latency: the candidate is materially behind and diverged from protected main, while the organization-owned Dependency Review and Strix semantic evidence channels are also not acceptable. Repeated clean-head churn or another local security workflow would not change those root causes.
The central Dependency Review repair remains separately governed and read-only to this writer as
ContextualWisdomLab/.github#897, exact head59505c1d89eb7ea816e921b6da38079c736608c2, still open/unmerged at the latest refetch. The Strix false-green boundary is tracked separately by EgressWeave issue #197 and is organization-control-plane owned.Do not refresh this branch merely to retrigger external behavior or race current policy writers. When the overlapping policy lane and central evidence prerequisites are stable, reconstruct only this unique timeout-policy delta non-destructively on the exact accepted protected tree and regenerate all base/head-sensitive evidence.
Remaining acceptance
Dependency reviewaction to execute and succeed rather than skip.Progresses #113.