5.3 KiB
Verification report - RustProxy 0.26.3
Scope
RustProxy 0.26.3 keeps the 0.26.2 log workflow and focuses on administration appearance, scaling and draft/settings ergonomics. 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.
This workspace retains session-only draft docking for dirty Web Server, Vhost, Redirect and Stream editors; opening a second editor no longer reuses or blocks the suspended form state. In 0.26.3 the dock uses the same square-corner panel language as the rest of RustProxy, can collapse to one bar and shows draft age. Settings -> Appearance persists theme, language, 70-125% global interface scale, 12/24-hour display, eight chart styles, Normal/Compact button style, table/log density, dashboard density and Overview-card layout/visibility in the existing account-scoped administrator preference document. Scaling includes dialogs, overlays and the draft dock; form fields also receive a bounded additional size response so control proportions follow 70-125% more visibly. Compact buttons restore the smaller source-style control dimensions without changing the whole-interface scale and now apply explicitly to generated vhost/entity actions and dialog tab buttons. Settings adds content search; Appearance exposes chart palette previews, per-section resets and a full reset. Expanded Stored Logs details remain compact. SQLite schema 8 remains unchanged.
Source-level regression coverage
0.26.2 log-query Rust tests continue to 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. It also validates the language, 70-125% interface-scale, time-format, expanded chart-style fields, Normal/Compact button style, table/log density, dashboard density, dashboard card ordering and hidden-card list while retaining defaults for legacy preference JSON. Browser JavaScript is syntax-checked, the Web Server UI harness loads the draft manager in production order, 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 for settings.js, drafts.js, app/preferences.js, traffic-panel.js and 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.