# RustProxy 0.33.7 - verification report ## Scope (2026-10-15) 0.33.7 changes the Dashboard UI without changing proxy traffic handling or telemetry collection: - Replace the duplicated **Arrange Overview** editor modal with an account-scoped **Dashboard presets** manager. A named preset stores Dashboard density, card order, visibility and optional custom widths; presets can be saved/updated, loaded and deleted through the existing administrator preferences document. - Keep actual Dashboard editing in the existing inline **Unlock layout** flow and Settings visibility/order controls. - Use the same monospace font family as **CONNECTION ACTIVITY** for Overview chart titles, including compact chart cards and wide charts. - No SQLite schema migration, new telemetry polling loop or proxy-path change is introduced. ## Checks completed - **PASS:** `python scripts/tests/dashboard_presets_0337_browser_test.py` against the real bundled HTML/CSS/JS with a simulated preferences API at 320, 375, 768 and 1440px. Covered save/update snapshot data, load, delete, responsive modal layout, removal of the former duplicated editor controls, and chart-title font parity with **CONNECTION ACTIVITY**. - **PASS:** `python scripts/tests/dashboard_modal_0333_browser_test.py` after the 0.33.7 preset conversion at 320, 375, 550, 620, 800, 900, 960, 1158, 1440 and 1920px with no horizontal viewport overflow. - **PASS:** updated `dashboard_layout_0331_browser_test.py` and `dashboard_resizing_0333_browser_test.py`; inline editing still covers add/hide/reorder/resize, live refresh, cancel/save and persisted custom widths, while opening/closing the preset modal does not mutate the active layout. - **PASS:** all 13 current `scripts/tests/*browser_test.py` simulated-browser regressions, including chart heading/width/fixed CPU/stable scale coverage, progress bars, sidebar, RAM, Web observability and Web Server live metrics. The obsolete CPU autoscale regression was removed because 0.33.5 intentionally replaced that behavior with a fixed 0-100% CPU scale and has its own current regression test. - **PASS:** `node scripts/tests/overview_samples_0330_ui_test.mjs`, `node scripts/tests/dashboard_resume_rate_charts_ui_test.mjs` and `node scripts/tests/dashboard_metric_visuals_ui_test.mjs`. - **PASS:** JSON parsing for `src/admin/openapi.json`, `langs/en_US.json` and `langs/pl_pl.json`; JavaScript syntax checks for the changed preferences/preset files; Python syntax checks for changed browser tests; `python scripts/preflight.py`. - **PASS:** `./dev.sh doctor` reports the source layout as OK and confirms that a C compiler and Python are available. - **PASS:** all eight `migrations/*.sql` applied successfully in two successive cycles to a disposable in-memory SQLite database. This verifies SQL script execution/idempotency in this context, not a production-data upgrade. - **PASS:** parsed `scripts/deploy/upgrade.py --help` and `scripts/migration/migrate_npm.py --help`; no live external upgrade/migration was performed. ## Not verified in this environment - `./dev.sh check` and `./dev.sh test` exit 127 because Cargo/rustc are not installed. Therefore Rust compilation, Rust unit/integration tests, an actual RustProxy process, real SSE traffic, production database upgrade and live load testing are not verified here. - The real-runtime acceptance gate remains open until Rust builds and runs against representative test traffic.