Owner ruling 2026-09-21: each default-off control gets its own ruling issue, with its blast
radius measured before the default is touched. This is the egress one.
Current state
guard_egress= is a per-call-site opt-in parameter, not a global default. It appears at 28
call sites against ~103 shared-client callers, and a further ~51 files call
requests / httpx / aiohttp directly, bypassing the shared client entirely.
The guard itself is an address deny-list (loopback, link-local, cloud-metadata, reserved),
not a destination allow-list — so with the guard on, internal addresses are refused but
any public host is reachable.
Evidence: autobot_shared/http_client_manager.py:209-272.
Not every guard_egress=False is wrong. autobot-backend/llm_shared/pricing/live_sources.py:48
documents its own as deliberate — public addresses only, redirects refused — and that call site
is a reasonable exception. The defect is that the safe setting is the one you have to ask for.
Why the default matters here
A control that must be requested protects only the call sites whose author knew to request it.
The 28/103 ratio is the measurement of that gap, and the ~51 direct-library callers are outside
the mechanism altogether — flipping the default does nothing for them.
Acceptance criteria
Related
Owner ruling 2026-09-21: each default-off control gets its own ruling issue, with its blast
radius measured before the default is touched. This is the egress one.
Current state
guard_egress=is a per-call-site opt-in parameter, not a global default. It appears at 28call sites against ~103 shared-client callers, and a further ~51 files call
requests/httpx/aiohttpdirectly, bypassing the shared client entirely.The guard itself is an address deny-list (loopback, link-local, cloud-metadata, reserved),
not a destination allow-list — so with the guard on, internal addresses are refused but
any public host is reachable.
Evidence:
autobot_shared/http_client_manager.py:209-272.Not every
guard_egress=Falseis wrong.autobot-backend/llm_shared/pricing/live_sources.py:48documents its own as deliberate — public addresses only, redirects refused — and that call site
is a reasonable exception. The defect is that the safe setting is the one you have to ask for.
Why the default matters here
A control that must be requested protects only the call sites whose author knew to request it.
The 28/103 ratio is the measurement of that gap, and the ~51 direct-library callers are outside
the mechanism altogether — flipping the default does nothing for them.
Acceptance criteria
callers, whether it would still function with the guard on, and which of the 28 existing
Falsesites are deliberate exceptions like the pricing one.guard_egress=Falseexplicitly with acomment saying why, so the exception is visible at the call site.
requests/httpx/aiohttpcallers are counted and tracked — flipping theshared-client default does not reach them, and a ruling that ignores them overstates its own
coverage. File separately if out of scope here.
Related