Proxy arguments previously applied to individual HTTP tool calls only, leaving operators without a persistent way to keep session egress stable. This PR adds Settings → Proxy settings with manual arguments, a fixed proxy, or an explicitly enabled pool. Fixed mode retains the configured endpoint across invocations; pool mode supports sticky/round-robin selection and a minimum switch interval that also prevents early failover.
The policy applies only to http-framework-test. Other Kali tools, arbitrary shell commands, external MCP servers and LLM API transports retain their existing routing. No global HTTP_PROXY changes, model-client rotation, or restarts of running tools are introduced. A fixed proxy URL still requires provider-side fixed/sticky egress to guarantee a stable public IP.
Implementation:
- Persist and validate a
proxyconfiguration section through the existing settings API. Saves apply to subsequent HTTP invocations without calling the platform-wide apply/restart endpoint; active processes and PTY retries retain their launch snapshot. - Mask saved proxy URLs, lists and provider URLs in API responses. Preserve masked values on save, roll back proxy state on save failure, and pass only active-mode credentials through a tool-specific environment snapshot instead of command arguments.
- Support HTTP/HTTPS CONNECT/SOCKS5, static or provider-supplied proxy lists (including structured entries), provider-outage fallback to static endpoints, bounded attempts, cooldowns and rate-limit waits. Replay only GET/HEAD/OPTIONS before response bodies; never fall back to a direct target connection.
- Keep literal request paths and existing manual/single-proxy behavior. Add Chinese, English and Russian UI text plus bilingual guidance comparing Zyte sessions, HTTPX clients, Nuclei controls and Nmap proxy limitations.
Validation: 33 Python scenarios passed on both HTTPX 0.27.0 and 0.28.1; 333 frontend tests passed; go test -race ./internal/config ./internal/security ./internal/handler and go build ./... passed. Tests cover actual local proxies/TLS/SOCKS5, managed settings overriding model arguments, switch intervals, configuration persistence/masking/rollback/hot application, and routing isolation. The settings panel was visually checked with local preview fixtures. A pre-existing shell test's process-start race was corrected so the race check is reliable.
Limits: switch timing/pool health are invocation-local; use fixed mode for stable egress across calls. HTTP 200 CAPTCHA/block pages are not classified. Status matching is a policy, not proof of an IP ban. Managed policy is not a network sandbox for arbitrary shell commands. No production deployment or real provider/target testing was performed.
Refs #357. This implements the HTTP-tool scope and does not automatically close the broader issue.