Files
RustProxy/docs/TEST_REPORT.md
T
2026-10-06 23:54:01 +02:00

4.1 KiB

Verification report - RustProxy 0.26.7

Scope

RustProxy 0.26.7 is a compatibility-preserving cache observability, backend-client lifecycle and documentation patch on top of 0.26.6. SQLite remains schema 8 and the saved proxy configuration format is unchanged.

The release adds explicit HOT/COLD cache occupancy meters on /cache for configured object and byte limits. It also preserves compatible upstream client instances across unrelated active-snapshot rebuilds, preventing generation age, generation request counts and cumulative Rotations from being reset by configuration publication. Backend changes that alter origin, address policy, keepalive settings or connect timeout still create fresh clients. The OCI/container documentation now matches the shipped certificate environment: Certbot plus the Cloudflare, OVH and RFC2136 DNS plugins are provided together. The same 0.26.7 source now also hardens cache Age ownership and aligns downstream compression with the static-cookie cache exception.

Regression coverage

Static source contracts require all four /cache occupancy meters (HOT objects, HOT bytes, COLD objects and COLD bytes) and their configured-limit inputs. Browser JavaScript syntax is checked with Node.

The existing upstream-client unit coverage retains age-triggered rotation without user traffic. A new pool regression, compatible_pool_rebuild_reuses_upstream_clients, verifies that a compatible rebuild reuses the previous compiled backend/client object so rotation state remains continuous. Source contracts also require the reusable_with compatibility check, maintenance calls for normal/WebSocket clients and backend reuse path. These Rust tests require a compiler-enabled release host.

Cache regressions now require a stored HIT/dashboard object to advance Age, while compression regressions require Age to survive encoding and require cookie-bearing compression to stay blocked unless the internal cache/static safety marker is present. Existing 0.26.6 Age rules stay loadable; response-side Age is tagged as a late wire-only override so the generic response-rule pass cannot influence cache freshness/storage. The bundled compression tester no longer forces Cache-Control: no-cache unless --revalidate is requested.

Documentation checks cover the 0.26.7 release note, Reader index, local Markdown links, cache diagnostics and container/ACME provider guidance. Packaging smoke tests verify the 0.26.7 release identity and deterministic source archive contract.

Verification status in this workspace

Check Status
node --check for changed administration JavaScript 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
language/OpenAPI JSON parse 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 in this workspace
cargo fmt --check BLOCKED: Rust/Cargo toolchain unavailable in this workspace
cargo clippy --all-targets --all-features -- -D warnings BLOCKED: Rust/Cargo toolchain unavailable in this workspace
cargo test --all-targets --all-features BLOCKED: Rust/Cargo toolchain unavailable in this workspace
complete release build BLOCKED at Rust compilation: Rust/Cargo toolchain unavailable in this workspace

The 0.26.7 source archive must not be described as compiler-verified until the Rust-enabled release-host gates pass. Rust-independent checks do not substitute for Rust parsing, type checking, Clippy or runtime tests.