Files
RustProxy/docs/TEST_REPORT.md
T
2026-10-07 09:15:21 +02:00

4.7 KiB

Verification report - RustProxy 0.27.0

Scope

RustProxy 0.27.0 changes downstream compression policy, Docker-vhost publication continuity, cache-meter rendering, fresh-install response identity and source-package layout while keeping SQLite schema 8.

Dynamic response compression defaults to zstd, Brotli and gzip enabled, with deflate opt-in. Client Accept-Encoding quality values are authoritative; equal quality uses deterministic zstd -> br -> gzip -> deflate server preference. Existing Content-Encoding, no-transform, range responses/requests, SSE and upgrades remain excluded. Cookie, authorization, Set-Cookie, private and no-store no longer disable compression as blanket rules.

Ordinary vhosts and Web Server services can inherit, enable or disable dynamic compression and independently inherit/enable/disable zstd, Brotli, gzip and deflate. Docker vhosts expose one Compression checkbox only and use the codec set/priorities from global Settings -> Response. Global codec switches remain the hard availability ceiling and min_bytes remains global.

An explicitly published Docker assignment keeps its generated hostname even when its service disappears. A successful inventory without the assigned service materializes an unavailable route that returns HTTP 503 instead of removing the hostname. Agent polling errors retain the previous successful inventory when one exists, and a returning service is reconciled automatically. The cache overview progress elements have explicit WebKit/Chromium and Firefox progress-value styling so their visual fill follows the numeric meter value.

Fresh installations now default the response Server policy to custom with the exact value RustProxy. Existing stored settings are not rewritten, and a configuration document predating the server_header field still deserializes with the historical preserve behavior. Debian package-build metadata is no longer shipped in the main source tree; ready packages are maintained separately at https://rustproxy.linuxiarz.pl.

Regression coverage

Compression unit coverage checks defaults, q-value negotiation, equal-quality priority, each supported codec, existing-encoding passthrough, scoped per-codec resolution and the revised cookie/auth/cache-privacy policy. Docker unit coverage checks missing published service -> retained 503, failed agent observation -> retained last-known backend, the single compression switch and ignoring legacy Docker per-codec values. Settings coverage checks the fresh-install Server: RustProxy default and legacy missing-field compatibility. Static/UI contracts require ordinary-vhost and Web-Service codec controls to hide/disable when their scope is explicitly OFF, require Docker vhosts to expose only the single Compression checkbox, and retain the 503 path, visible cache progress styling, external Debian-packaging separation and reproducible archives without a debian/ tree.

Verification status in this workspace

Rust/Cargo is not installed in this workspace. Rust-independent checks pass here; compiler/type/runtime gates remain explicitly open until this source is checked on a Rust-enabled release host.

Check Status
changed administration JavaScript syntax (node --check) PASS
language/OpenAPI JSON parse PASS
python3 scripts/langs_check.py PASS
python3 scripts/memory_contracts.py PASS
python3 scripts/web_server_contracts.py PASS
python3 scripts/security_contracts.py PASS
python3 scripts/security_dependency_contracts.py PASS
python3 scripts/source_module_contracts.py PASS
python3 scripts/rust_module_contracts.py PASS
python3 scripts/docs_check.py PASS
python3 scripts/release_smoke.py PASS
node scripts/web_service_ui_test.mjs PASS
go test ./... in docker-agent PASS
python3 scripts/check_source.py PASS; explicitly reports Rust parsing/types/runtime as not verified
./dev.sh test Rust-independent gates PASS; wrapper exits 127 at the Rust stage because Cargo is unavailable
./dev.sh check BLOCKED: Rust/Cargo toolchain unavailable
cargo fmt --check BLOCKED: Rust/Cargo toolchain unavailable
cargo clippy --all-targets --all-features -- -D warnings BLOCKED: Rust/Cargo toolchain unavailable
cargo test --all-targets --all-features BLOCKED: Rust/Cargo toolchain unavailable
complete release build BLOCKED at Rust compilation: Rust/Cargo toolchain unavailable

The 0.27.0 source archive must not be described as compiler-verified or production-ready until the Rust-enabled release-host gates pass. Static/source contracts do not substitute for Rust parsing, type checking, Clippy, unit tests or real protocol runtime tests.