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.