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, generated Docker vhosts and Web Server services can inherit, enable or disable dynamic compression and can independently inherit/enable/disable zstd, Brotli, gzip and deflate. Global Settings -> Response codec switches remain the hard availability ceiling and min_bytes remains global. A scoped codec cannot activate a codec disabled globally. When scoped compression is explicitly Disabled, the dashboard hides and disables its codec selectors while preserving the stored override values.
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 and persistence of Docker codec overrides. Settings coverage checks the fresh-install Server: RustProxy default and legacy missing-field compatibility. Static/UI contracts require ordinary-vhost, Docker-vhost and Web-Service codec controls to hide/disable when their scope is explicitly OFF without clearing saved values, plus 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.