Files
RustProxy/docs/TEST_REPORT.md
T
2026-10-05 22:29:54 +02:00

3.8 KiB

Verification report - RustProxy 0.26.2

Scope

RustProxy 0.26.2 keeps the 0.26.1 vhost-aware persistent protocol diagnostics and focuses on the administration log workflow. Stored Logs and Live Logs now share one top-bar Logs menu while retaining independent data paths.

Stored Logs replaces the fixed event/status/client/vhost controls with an optional source selector, one bounded field-query input and page size. The query parser supports field:value, explicit AND, ! negation, quoted values, wildcards, numeric comparisons and aliases such as req -> method. JSON/JSONL records expose a bounded discovered-field list for dynamic columns; protocol-specific fields such as matched_by and sni are no longer hard-coded table columns. RAW error-log lines are best-effort parsed into timestamp, level, target, message and detected key=value fields while preserving raw.

The dashboard removes the Configured files inventory but keeps an optional source selector with All configured files as the default, moves the column picker to the table toolbar, expands selected rows as parsed fields plus optional raw JSON, and uses ↑/↓ for backend sort direction. SQLite schema 8 and the saved proxy configuration format remain unchanged.

Source-level regression coverage

0.26.2-specific Rust tests cover field aliases, explicit AND, negation, quoted values, wildcard/status/numeric matching and built-in RAW error parsing. Retained 0.26.1 tests continue to cover canonical field recovery, safe source derivation, symlink refusal, bounded reads and protocol diagnostic normalization.

Administration preference validation now permits up to 64 bounded, control-free Stored Logs field names so dynamically discovered JSON fields can be persisted per account. Browser JavaScript is syntax-checked, and the language/documentation/source-contract suites cover the new UI strings and release identity.

Verification status in this workspace

Check Status
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 after keeping modified Rust modules within the 500-line contract
python3 scripts/docs_check.py PASS
node scripts/web_service_ui_test.mjs PASS
node --check src/admin/web/file-logs.js PASS
language/OpenAPI JSON parse PASS
python3 scripts/check_source.py PASS; explicitly reports Rust parsing/types/runtime as not verified
python3 scripts/release_smoke.py PASS, including upgrade/package/reproducibility contracts
go test ./... in docker-agent PASS
./dev.sh test Rust-independent gates PASS; exits 127 when the Rust stage is reached 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
bash dev.sh complete release build BLOCKED at Rust compilation: Rust/Cargo toolchain unavailable in this workspace

The source archive must not be described as compiler-verified until the Rust-enabled release-host gates pass. Rust-independent gates verify source structure, security contracts, documentation, browser JavaScript, packaging invariants and deterministic archive behavior, but they cannot substitute for Rust parsing, type checking, Clippy or runtime tests.