# Verification report - RustProxy 0.27.1 ## Scope RustProxy 0.27.1 changes first-administrator onboarding, ACME/Certbot runtime preparation and account-scoped sorting for vhosts, Docker vhosts, redirects, 404 hosts and streams while keeping SQLite schema 8. The first-run administrator screen now presents a complete command using the default `./data` directory and a second standard-service example using `/var/lib/rustproxy`. Certificate automation now prefers a RustProxy-owned Python environment at `/acme-python`. Missing environments are prepared with `venv` and pip; when a distribution omits the stdlib `venv` module but provides pip, RustProxy can bootstrap `virtualenv` into its own data directory rather than changing distribution site-packages. Certbot 5.8.0 and the Cloudflare, OVH and RFC2136 plugins are installed into that managed environment. A runnable distribution Certbot remains the fallback. The Certificates panel reports managed/system/preparing/unavailable state and missing Python/pip diagnostics; manual PEM import and existing-file workflows do not depend on ACME runtime availability. The route/list pages gain feature-specific sort-column and sort-direction controls. Their values are saved in the existing account-scoped administrator preferences and default safely when absent. Redirects and 404 hosts use the same search/sort/action toolbar structure as Vhosts. ## Regression coverage Static/source contracts cover the new first-run commands, ACME runtime status UI/API, managed environment path and pinned package set, distro fallback markers, preference fields and list-specific sort controls. They also reject the development-only `./dev.sh tls deploy` UI hook and require the production binary/data-directory example, both official repository links and Python/pip/Certbot runtime metadata in the startup banner and authenticated application information. Existing release-smoke, language/OpenAPI, source-module, security, web-server, browser-service and Docker-agent gates remain part of the Rust-independent verification set. ## Verification status in this workspace Rust/Cargo is not installed in this workspace. Rust-independent checks are run 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.1 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.