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.