v0.33.7
This commit is contained in:
1 parent
162e986d37
commit
f462ca7194
26 files changed
+980
-710
No files matched your search
+28
-14
@@ -37,20 +37,36 @@ Open **Settings → Certificate API** (`/settings?tab=certificate-api`) to manag
|
||||
|
||||
The existing **Generate / rotate token** form still creates new Key IDs (and retains its previous ability to rotate a Key ID by supplying it). Use **Edit settings** to modify settings without rotating, and **Regenerate token** to rotate without changing any settings. See [API](API.md) and [access control](API_ACCESS.md).
|
||||
|
||||
## Dashboard presets (0.33.7)
|
||||
|
||||
**Dashboard presets** on Overview and under **Settings → Appearance → Dashboard layout**
|
||||
opens the same account-scoped preset manager. Enter a name to save the current
|
||||
Dashboard density, card order, visibility and custom widths. A saved preset can be
|
||||
loaded later in one preferences update or deleted. Saving an existing name updates
|
||||
that preset. Up to 20 presets are retained per administrator.
|
||||
|
||||
The preset manager no longer duplicates card editing. Use **Unlock layout** on
|
||||
Overview for drag-and-drop, hide/show and width changes, or use the existing
|
||||
visibility/order controls in Settings. Presets use the existing `/api/preferences`
|
||||
document; they do not add a database migration, status polling or proxy-path work.
|
||||
|
||||
Overview chart titles use the same monospace font family as **CONNECTION ACTIVITY**.
|
||||
This is typography-only and does not change chart scales, samples or telemetry.
|
||||
|
||||
## Compact Overview card controls (0.32.6 development branch)
|
||||
|
||||
**Settings → Appearance → Dashboard layout** now puts Dashboard density on a
|
||||
compact row and gives the Overview card controls the full width of the section.
|
||||
The card selector is a single horizontally scrollable strip by default, with
|
||||
left/right browsing buttons and accessible keyboard focus. **Show all cards**
|
||||
expands the same 62 visibility/reorder controls into a wrapped grid. Use the
|
||||
existing visual layout editor for drag-and-drop arrangement. Reordering and
|
||||
expands the same 62 visibility/reorder controls into a wrapped grid. Use
|
||||
**Unlock layout** on Overview for drag-and-drop arrangement. Reordering and
|
||||
visibility still save through `/api/preferences` per account; this UI-only
|
||||
change does not alter server polling, proxy routing or backend metrics.
|
||||
|
||||
### Overview controls and density (0.32.7 development follow-up)
|
||||
|
||||
**Refresh now**, **Arrange Overview**, **Unlock layout**, **Visual Overview editor** and **Show all cards** inherit the same Normal/Compact button size rules as other buttons. Responsive placement still adapts to narrow screens, but no independent font-size, padding or height override applies. Dashboard density more clearly adjusts numeric tile sizing, inline chart height and the padding/title size of non-table Overview panels; the common tile gutters are unchanged. Button style and dashboard density remain independent per-account preferences.
|
||||
**Refresh now**, **Dashboard presets**, **Unlock layout** and **Show all cards** inherit the same Normal/Compact button size rules as other buttons. Responsive placement still adapts to narrow screens, but no independent font-size, padding or height override applies. Dashboard density more clearly adjusts numeric tile sizing, inline chart height and the padding/title size of non-table Overview panels; the common tile gutters are unchanged. Button style and dashboard density remain independent per-account preferences.
|
||||
|
||||
### Overview header actions (0.32.8)
|
||||
|
||||
@@ -581,9 +597,9 @@ Under **Settings → Appearance → Dashboard layout**, the existing Show/Hide a
|
||||
|
||||
## Full Overview layout and additional metrics (0.32.3)
|
||||
|
||||
Open **Overview -> Arrange cards visually** (or **Settings -> Appearance -> Dashboard layout -> Visual layout editor**) to change **all 49** dashboard blocks: 30 previous tiles, 12 new optional charts, three large live charts, three diagnostic panels and the backend table. Drag tiles/sections, use arrow buttons for keyboard access, or hide and re-enable individual blocks. Large sections retain their own original charts, controls and live data after being moved. The responsive six-column desktop view scales to narrower widths. Visibility and order are account-scoped; they never alter backend behavior.
|
||||
Use **Overview -> Unlock layout** to change the Dashboard blocks directly: drag cards/sections, use arrow buttons for keyboard access, resize supported cards, or hide and re-enable individual blocks. The same visibility/order controls remain available under **Settings -> Appearance -> Dashboard layout**. Large sections retain their original charts, controls and live data after being moved. The responsive desktop grid scales to narrower widths. Visibility, order and widths are account-scoped; they never alter backend behavior.
|
||||
|
||||
**Default view** loads the factory order and visibility into the editor **without saving**; **Save layout** applies it. **Reset layout** asks for confirmation, then persists the same default order and visibility in one preferences write. **Cancel** preserves the current layout. All 12 added charts are hidden until explicitly enabled and use a maximum of 30 status samples without additional HTTP polling. They cover process CPU/RSS/file descriptors, connections, WebSocket tunnels, TLS handshake failure and request-error rates, cache HIT share and HOT RAM usage, incoming HTTP/2 request share, mean response duration, and unhealthy backends. Unknown and first-delta measurements show `-`; response time is a mean, not a percentile, and HTTP/2 share is **frontend** traffic rather than negotiated upstream ALPN.
|
||||
From 0.33.7, **Dashboard presets** replaces the older duplicated visual-editor modal. The modal saves or loads named snapshots of the current density, order, visibility and widths; it does not provide a second card-editing surface. All optional charts continue to use bounded histories without additional HTTP polling. Unknown and first-delta measurements show `-`; response time is a mean, not a percentile, and HTTP/2 share is **frontend** traffic rather than negotiated upstream ALPN.
|
||||
|
||||
## HTTP backend Overview cards (0.32.3)
|
||||
|
||||
@@ -620,15 +636,13 @@ and capacity rejections, and Hyper client-generation rotations and age. Rotation
|
||||
are **not TLS handshake counts**. Rates are based on per-member positive counter
|
||||
differences; newly added or reset members cannot create arbitrary spikes.
|
||||
|
||||
To arrange the actual Overview cards visually, click **Arrange cards visually**
|
||||
on Overview or **Visual layout editor** in Settings -> Appearance -> Dashboard
|
||||
layout. The modal displays copies of the existing telemetry cards; drag to
|
||||
reorder, or use the move arrows for keyboard-only input. Hide/show tiles in
|
||||
the modal and select **Save layout** once to persist order and visibility in
|
||||
the existing `dashboard_widgets` and `dashboard_hidden_widgets` preferences.
|
||||
Cancel/Escape discards the draft. The existing Appearance visibility and move
|
||||
buttons remain available. No extra API endpoint, refresh loop, or database
|
||||
migration is needed.
|
||||
To arrange the actual Overview cards, click **Unlock layout** on Overview. Drag
|
||||
the real cards or use the move/resize/hide controls, then save and lock the
|
||||
layout. The existing Appearance visibility and move controls remain available.
|
||||
Use **Dashboard presets** only to save, inspect and load named snapshots of the
|
||||
current layout. Presets reuse `dashboard_widgets`, `dashboard_hidden_widgets`,
|
||||
`dashboard_widget_sizes` and Dashboard density in the existing preferences
|
||||
document. No extra status refresh loop or database migration is needed.
|
||||
|
||||
TLS ALPN selects H2 or H1 only when opening a **new TLS connection**, not for
|
||||
each request. Hyper already pools reusable connections per compiled backend;
|
||||
|
||||
+51
-34
@@ -1,44 +1,61 @@
|
||||
# RustProxy 0.33.6 - verification report
|
||||
# RustProxy 0.33.7 - verification report
|
||||
|
||||
## Scope (2026-10-15)
|
||||
|
||||
Additional 0.33.6 chart/UI changes:
|
||||
- All 14 full-width Overview and Web Server plots retain a fixed 125px SVG
|
||||
height, regardless of viewport width and dashboard density.
|
||||
- Grid lines are mapped to the actual plotting range rather than approximate
|
||||
horizontal positions.
|
||||
- Transform and Compression activity (plus other unbounded unit series) use
|
||||
sane zero-based minimum ranges and monotonic, rounded range expansion, so
|
||||
low values do not look like maximum utilization and spikes remain visible.
|
||||
- Full Cache and Transform live charts keep an 180px plot height and the same
|
||||
stable per-second range policy. Compact percent sparklines stay 0-100%.
|
||||
0.33.7 changes the Dashboard UI without changing proxy traffic handling or
|
||||
telemetry collection:
|
||||
|
||||
Previous 0.33.5 regression scope:
|
||||
|
||||
Correct the Overview **System and process CPU** widget:
|
||||
- Use a fixed 0-100% vertical range, not the measured-history peak.
|
||||
- Map 25%, 50% and 75% to the horizontal grid lines.
|
||||
- Clip plotted CPU values above 100% at the top without modifying their measured values in the legend or summary.
|
||||
- Fix only this plot's CSS height at 125px, independent of viewport width, dashboard density and CPU samples.
|
||||
- Leave other chart scales, plot dimensions, status sampling and dashboard preferences unchanged.
|
||||
- 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_stable_scales_0336_browser_test.py`
|
||||
with real bundled HTML/CSS/JS in simulated Chromium at 320, 375, 768,
|
||||
1440 and 1920px and all three density modes. Covered 14 large plots,
|
||||
125/180px plot heights, quarter-grid alignment, 0-100% CPU mapping,
|
||||
steady low/high traffic plotting, minimum count/rate/latency/memory scales,
|
||||
sticky expanded scales, reset and non-clipped live operation-rate labels.
|
||||
|
||||
- **PASS:** `python scripts/tests/dashboard_cpu_fixed_scale_0335_browser_test.py` against the actual bundled HTML/CSS/JS in simulated Chromium, at 320, 375, 768, 1440 and 1920px, in normal/compact/ultra densities. Checked low and high CPU histories, missing samples, new status revisions, clipping above 100%, actual percentage labels, consistent grid positions, fixed plot height and no sample-dependent changes to the CPU/adjacent Connection Activity cards' heights.
|
||||
- **PASS:** All 11 prior `scripts/tests/*browser_test.py` simulated-browser regressions (including the 0.33.5 CPU test) and the new 0.33.6 browser regression: chart headers, resized widths, dashboard grid/modal resizing, sidebar, progress bars, System RAM, Web observability and Web Server metrics. No live RustProxy server was used.
|
||||
- **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:** `./dev.sh doctor` and `python scripts/preflight.py` (source layout).
|
||||
- **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 an upgrade of production data.
|
||||
- **PASS:** Parsed `scripts/deploy/upgrade.py --help` and `scripts/migration/migrate_npm.py --help`; did not run a live upgrade or migration against an external database or service.
|
||||
- **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` both exit 127: Cargo/rustc are unavailable. Therefore no Rust compilation, unit/integration suite, actual proxy runtime, real SSE feed, production database upgrade or live load test has been verified.
|
||||
- The real-runtime acceptance gate remains open until Rust builds and runs against representative test traffic.
|
||||
- `./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.
|
||||
Reference in new issue
Block a user