v0.32.8
This commit is contained in:
1 parent
c41d1e00a2
commit
6987b3ce33
98 files changed
+146
-10827
No files matched your search
@@ -42,7 +42,7 @@ committed document at startup; this is not one cross-memory/SQLite transaction.
|
||||
### Rust source organization
|
||||
|
||||
Production Rust modules are kept as small responsibility-oriented files, with a
|
||||
**500-line limit** enforced by `tools/checks/rust_module_contracts.py`. Unit and
|
||||
**500-line engineering limit** for production modules. Unit and
|
||||
integration test files are explicitly exempt: related tests may live together in
|
||||
large `tests.rs` files rather than arbitrary numbered fragments. Large logical modules use a thin facade (`config.rs`, `docker.rs`,
|
||||
`server.rs`, `runtime.rs`, `balance.rs`, `prometheus.rs`, and similar) plus files in a
|
||||
@@ -52,9 +52,9 @@ submodules for configuration, filesystem confinement, responses, routing, FastCG
|
||||
|
||||
Unit-test implementations are not embedded in production source files. They live in
|
||||
`tests.rs` or `tests/` files and are included or declared only behind `#[cfg(test)]`.
|
||||
Source-level CI also checks `include!` targets, balanced split fragments and dangling
|
||||
attributes/doc comments. This prevents a file boundary from separating `#[derive]`,
|
||||
`#[test]` or documentation from the Rust item it belongs to.
|
||||
Keep `include!` targets, split fragments and attributes/doc comments alongside
|
||||
the items they describe. After removal of the old source-check scripts, review
|
||||
these invariants in code review and verify compilability with `./dev.sh check`.
|
||||
|
||||
Docker discovery is an optional provider boundary implemented through the standalone
|
||||
`docker-agent/`; the RustProxy process never opens the Docker socket. Cloudflare Tunnel
|
||||
|
||||
+5
-10
@@ -28,20 +28,15 @@ with real-runtime measurements rather than assuming either explanation.
|
||||
## Source/synthetic verification
|
||||
|
||||
```sh
|
||||
python3 tools/checks/memory_contracts.py
|
||||
python3 tools/checks/high_traffic_memory_model.py --http-requests 10000
|
||||
./dev.sh check
|
||||
./dev.sh test
|
||||
# Perform separate real-runtime load and RSS measurements on staging.
|
||||
```
|
||||
|
||||
The offline test replays 300,000 distinct PURGE identities over six periods.
|
||||
It verifies the old cumulative model retains 50k/100k/150k/200k/250k/300k
|
||||
metadata keys whereas the revised epoch-based model holds one key after each
|
||||
operation. This is a **cardinality model**, not a Rust heap measurement. It also
|
||||
sends 10,000 HTTP GETs across 24 concurrent persistent connections and 1,000
|
||||
paths to a **Python test peer** to validate the load driver (the default quick
|
||||
`./dev.sh test` run sends 2,000 of those requests). The Rust regression
|
||||
for 512 distinct purges is executed only if `cargo test` runs successfully.
|
||||
The old Python cardinality model and protocol-peer load driver were removed
|
||||
with `tools/checks/`. They were synthetic tests, not proof of RustProxy memory
|
||||
bounds. `./dev.sh test` now runs only the Rust suite; runtime memory behavior
|
||||
must still be verified by sustained staging traffic and RSS tracking.
|
||||
|
||||
## Real RustProxy staging traffic and RSS
|
||||
|
||||
|
||||
+1
-1
@@ -414,7 +414,7 @@ Managed paths now include build.rs, langs, deploy and make_zip.py. Extra *.json
|
||||
language packs from the installed langs directory are copied into the new tree
|
||||
when the new distribution does not contain the same filename. Shipped packs are
|
||||
updated, with old bytes preserved in the source backup. Invalid custom packs can
|
||||
correctly block a build; review them with tools/checks/langs_check.py. No symlinked
|
||||
correctly block a build; review their JSON syntax and metadata before building. No symlinked
|
||||
language pack is followed. The updater never copies a database from the package.
|
||||
|
||||
The old lockfile is preserved in the managed source backup and a new dependency
|
||||
|
||||
@@ -52,6 +52,14 @@ change does not alter server polling, proxy routing or backend metrics.
|
||||
|
||||
**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.
|
||||
|
||||
### Overview header actions (0.32.8)
|
||||
|
||||
On the Overview page, **Traffic, in focus.** remains on the left and actions
|
||||
align to the right on the same row when space permits. Buttons wrap to the right
|
||||
on very narrow displays instead of being compressed into equal-width columns.
|
||||
The existing Normal/Compact button preferences, editor confirmation actions,
|
||||
layout locking and account-specific saved card layout are unchanged.
|
||||
|
||||
## Refresh preferences (0.31.0)
|
||||
|
||||
**Settings -> Appearance -> Data refresh** saves an additional `refresh` object in the existing `admin_preferences` document for the signed-in account. It does not modify proxy configuration or create any migration. Older documents, including partially populated `refresh` objects, use defaults. Browser and server enforce exact allowed values:
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
# RustProxy 0.32.8 - verification report
|
||||
|
||||
## Scope
|
||||
|
||||
UI-only Overview header/editor button alignment, deletion of the complete
|
||||
`tools/checks/` source directory, retained source-upgrade preflight and the
|
||||
0.32.8 version bump. No proxy request path, backend behavior, preferences
|
||||
schema or dashboard JavaScript event handlers were changed.
|
||||
|
||||
## Checks performed
|
||||
|
||||
- **PASS** - Chromium headless checked the actual Overview HTML and CSS at
|
||||
viewport widths 320, 360, 375, 390, 430, 480, 600, 700, 768, 1024 and
|
||||
1440 px, with Normal and Compact button styles and four visibility/editing
|
||||
scenarios: 88 combinations. Title stays left, available actions align right;
|
||||
no overlapping buttons or page/header horizontal overflow was observed.
|
||||
This is a layout fixture, not a running API/backend acceptance test.
|
||||
- **PASS** - All Overview and editor controls use the original semantic
|
||||
`quiet`, `outline` and `primary` classes. No CSS class names were added.
|
||||
Removed obsolete dedicated button selectors. The Overview/core/refresh/layout
|
||||
JavaScript files are byte-identical to 0.32.7, so existing event handling,
|
||||
save/cancel and editor locking implementations were not changed.
|
||||
- **PASS** - Before removing the old QA directory, the 0.32.7 UI simulation
|
||||
suites `dashboard_layout_editor_0323_ui_test.mjs` and
|
||||
`dashboard_inline_layout_0323_ui_test.mjs` passed. The original
|
||||
`appearance_density_buttons_0327.py` source check also passed. These tests
|
||||
exercised simulated UI behavior, not a live RustProxy server.
|
||||
- **PASS** - `python3 scripts/preflight.py`, `./dev.sh doctor`,
|
||||
`./dev.sh repair`, shell syntax of `dev.sh` and the dependency-resolution
|
||||
script, all bundled language JSON files, version consistency and source
|
||||
class/handler comparisons.
|
||||
- **PASS** - Source-upgrade rehearsal from the supplied 0.32.7 release tree
|
||||
to 0.32.8 removed `tools/checks/` from the installed working tree, retained
|
||||
the previous sources under `.upgrade-backup/`, preserved `.env` and left
|
||||
`./dev.sh doctor` working. No live server/database was used in this rehearsal.
|
||||
- **PASS** - All eight bundled SQL migration scripts applied twice in an
|
||||
in-memory SQLite database; `PRAGMA integrity_check` returned `ok`.
|
||||
|
||||
## Limits and outstanding acceptance
|
||||
|
||||
- Rust/Cargo was **not available** in the verification environment, so
|
||||
`./dev.sh check`, `./dev.sh test`, binary build and live proxy/UI regression
|
||||
checks were not run. These remain required before production acceptance.
|
||||
- An unrelated legacy `dashboard_startup_0310_ui_test.mjs` assertion was already
|
||||
failing on the supplied 0.32.7 tree due to its expected
|
||||
`prefers-reduced-motion: reduce` CSS rule being absent. That test was removed
|
||||
with `tools/checks/`, not claimed as passing or fixed by this patch.
|
||||
- The intentionally removed `tools/checks/` suites are no longer executed by
|
||||
`dev.sh`; `./dev.sh test` now runs Cargo validation and the Rust test suite.
|
||||
Independent API, stress, browser and real-runtime acceptance tests must be
|
||||
run externally when required.
|
||||
Reference in new issue
Block a user