# Verification report - RustProxy 0.32.4 ## Scope Review of the supplied RustProxy 0.32.3 source and patch to 0.32.4: HTTP Host / HTTP/2 authority parity, explicit TCP/DNS destination and TLS/SNI isolation, relaxed HTTPS-by-IP troubleshooting hint, and uniform Overview gutters. Follow-up patch to the first 0.32.4 archive: - Fix reported `E0382` in `src/proxy/types.rs`: `Request::builder().uri(uri)` moved `uri` before `upstream_request_target(&uri, ...)` could borrow it. `.uri(uri.clone())` preserves the original URI for authority selection. - Make normal Overview gutters uniformly 4px (dense 3px, comfortable 12px). Resolve the higher-specificity `html[data-dashboard-density] .stats-grid` rule which otherwise overrode the aligned grid and kept the larger gaps. Existing database/configuration schemas and retry/transport policies are unchanged. Only compiling Rust and live protocol tests prove runtime behavior. ## Available checks - `./dev.sh test`: **all pre-Cargo checks passed**, including source/security, SQLite migration/upgrade/backup simulations, memory-model scripts and **35 Node.js UI/behavior test scripts**. The command then exited **127** because Rust/Cargo is not installed; this is **not** a passing Rust test run. - New `preserve_host_0324.py` and `preserve_host_0324_ui_test.mjs` passed: authority/destination split source contracts, four protocol selectors, verified/unencrypted origin warnings, explicit diagnostics preset. - Expanded Chromium CSS fixture `tools/checks/overview_gutters_0324_browser.py`: **27 checks passed** (3 container widths x 3 UI density modes x 3 Dashboard densities), checking horizontal/vertical gutters, equally high rows and numeric-to-large-card transition. Normal/dense/comfortable gaps measured **4/3/12px** and the outer grid bottom margin remained `0px`. The older `overview_grid_spacing_0323_browser.py` also passed with all 62 blocks, responsive breakpoints and browser zoom 90%-130%. These are simulated layout tests, not a live administrator session. - `preserve_host_0324.py` now guards against moving `uri` before its final authority adjustment, in addition to the backend/transport source contracts. The existing Rust unit test for retry authority remains in the source. - Version consistency: Cargo manifest, package root in existing lockfile, OpenAPI, README, release notes and static assertion fixtures updated to 0.32.4. External Cargo dependency resolutions have **not** been regenerated. ## Rust validation not performed (blocking for production) The user's Rust compiler reported `error[E0382]: borrow of moved value: uri` from the first 0.32.4 archive. This has been corrected in source, but **the corrected code has not been compiled here**: no Cargo or Rust compiler is available in the source-editing environment. Do not treat static tests or the simulated TLS-peer tests added to Rust source as evidence that RustProxy builds or that an actual Angie backend accepts the corrected requests. Run, on a Rust 1.99+ host: ```sh cargo fmt --all -- --check cargo check --locked --all-targets cargo test --locked ``` Then validate on staging with HTTPS-by-IP and `preserve_host: true` for HTTP/1.1, Auto (H2 and H1 ALPN), compatible HTTP/2 and strict H2; check `:authority` vs `Host`, SNI, certificate verification, WebSockets, H2C and HTTP health probe `host` overrides. Inspect Angie response/error logs for 400 responses and verify backend connectivity through pool rotation/retry. No claim of universal backend compatibility or measured throughput is made.