This commit is contained in:
Mateusz Gruszczyński committed 2026-10-04 11:15:58 +02:00
1 parent 87e571c170
commit fa7abc9e53
308 files changed
+49746 -50237

No files matched your search

+56
View File
@@ -0,0 +1,56 @@
# RustProxy 0.25.1 release audit
RustProxy 0.25.1 is a focused Traffic-UX and source-modularization release on top of the 0.25.0 Web Server foundation. No configuration-schema migration is introduced.
## Implemented scope
- Traffic is split into **Overview**, **Clients**, **Requests** and **Delivery** sub-tabs so the page no longer requires a long vertical scroll.
- All bounded Traffic dimensions are visualized: donuts for methods/status/cache/countries and horizontal bars for User-Agent, effective client IP, path, route and byte volume.
- Every Rust source file is release-guarded at **500 lines maximum** and unit tests must live outside implementation files.
- Oversized dashboard JavaScript is split into bounded modules while `/assets/app.js` and `/assets/vhosts.js` remain stable browser URLs assembled by the Rust admin router.
- Docker Agent implementation is split into model, Docker, network, certificate, server and entry-point modules; tests remain in `main_test.go`.
- Deployment and NPM migration utilities are split into bounded implementation modules while keeping their existing command-line entry points and helper API used by release tests.
- The Web Server split regressions reported after 0.25.0 are guarded explicitly: dangling attributes, unresolved `htaccess`, inaccessible `server_protocol`, missing `anyhow::Context`, broken `include!` targets and test code embedded in implementation modules.
## Compiler-error regression status
The current source tree contains the intended corrections:
- `src/web_server/response.rs` ends with valid `include!` items and cannot end with a dangling `#[derive(...)]` under the structural contract.
- the FastCGI logical module imports `htaccess` and `anyhow::Context`;
- `server_protocol` is exposed inside the Web Server module through `request::server_protocol` and imported by FastCGI;
- `serve.rs` does not retain the previously unused `str::FromStr` import.
- split runtime documentation comments are attached to their actual methods instead of ending an `include!` fragment immediately before `}`;
- included Rust fragments cannot start with inner `//!` module documentation;
- the split Web Server response-header fragment imports sibling `htaccess` explicitly and no longer retains the stale `ACCEPT_ENCODING`/`FromStr` imports;
- split proxy/config/Prometheus fragments no longer export unnecessary `mut` bindings or unused values from their `include!` tuples.
`python3 scripts/rust_module_contracts.py` checks these conditions without a compiler. A real `cargo check --locked --all-targets` remains mandatory on the release host.
## Verification gates
Rust-independent acceptance for this package includes:
```text
python3 scripts/rust_module_contracts.py
python3 scripts/source_module_contracts.py
python3 scripts/check_source.py
python3 scripts/release_smoke.py
python3 scripts/memory_contracts.py
python3 scripts/web_server_contracts.py
python3 scripts/security_contracts.py
python3 scripts/security_dependency_contracts.py
python3 scripts/docs_check.py
python3 scripts/langs_check.py
go test ./... # from docker-agent/
```
The packaging workspace has no Rust/Cargo toolchain. Before production/release acceptance, run:
```bash
cargo fmt --all -- --check
cargo check --locked --all-targets
cargo test --locked --all-targets
```
No claim of compiler success is made until those commands pass on a Rust-enabled host.