v0.24.7_fix
This commit is contained in:
1 parent
3883a21bc4
commit
1bfec751d1
8 files changed
+20
-8
No files matched your search
@@ -8,6 +8,7 @@
|
||||
- Show transform-resource warnings when the selected budget cannot fit the worst-case buffers for one maximum compressed body or exceeds half of detected host/cgroup RAM.
|
||||
- Add live dashboard resource accounting: current transform RAM reservation/budget and active slots, HOT/transient cache RAM, non-cache process RSS, plus COLD disk occupancy and object limits.
|
||||
- Include global transform representation/eligibility settings in cache compatibility identity while excluding resource-only preset/budget/concurrency controls.
|
||||
- Map bounded transform-body collection failures explicitly into `anyhow::Error`, avoiding the `anyhow::Context` trait-bound compile failure for Axum/HTTP body boxed errors.
|
||||
- Extend SQLite/OpenAPI/offline memory/release regressions and update release identity to 0.24.7.
|
||||
|
||||
## 0.24.6
|
||||
|
||||
@@ -19,6 +19,7 @@ Named HTTP/HTTPS listener bind addresses use the same chip-style editor as vhost
|
||||
- Keep format switches and extension allow-lists independent from resource presets so selecting a performance profile does not silently change transformation semantics.
|
||||
- Show live transform RAM reservations and active transform slots in the Transform dashboard, and add overview RAM accounting for HOT cache, transient cache, transform reservations and the remaining non-cache process RSS.
|
||||
- Show current COLD storage occupancy against its disk/object limits in the overview cache block while keeping disk usage separate from process RAM.
|
||||
- Map bounded transform response collection errors explicitly into `anyhow::Error` so the new memory-bounded transform path compiles with the boxed Axum body error type used by the current dependency set.
|
||||
- Make global transform representation/eligibility settings part of cache compatibility identity while excluding resource-only preset/budget/concurrency metadata. Changing JSON/HTML/etc. or the max transformable body now invalidates incompatible cached representations; changing only resource capacity does not.
|
||||
- Update package/source/UI/OpenAPI/release identity to 0.24.7.
|
||||
|
||||
|
||||
+7
-7
@@ -2,11 +2,11 @@
|
||||
4140a2956264b44f259e6a37fc00ba02097bbe68b09296e04d3d243c1287129b .env.example
|
||||
9e6356475bf587091bab72246ec9e325b498f7e48a6220e9a18baa50d0a385a6 .gitignore
|
||||
6b594006d8214ed456fc514831a794ebcc1b7ac2b91b7f067da275d457881e96 AGENTS.md
|
||||
017ef806440a57e7da5a32dbfa4743424e55fceb07f124282b3d69da9b66d452 CHANGELOG.md
|
||||
1a88ab5dd45bcedb9a88dd84d8be9296cf623cb204a13798d750af703018748d CHANGELOG.md
|
||||
4ffe7181d7c69bc8d7e6373d2e67302f72934256f090d9131a087ce2f8e899b0 Cargo.lock
|
||||
6673250cb6640bfa7ec35e63c66882174ff80c6e62253b8cfd57b1ec7d00f3d2 Cargo.toml
|
||||
d6d22ba63f4bc3d16a13012ecaabff8a156be57c824d2f20f66976502fb27d1f Dockerfile
|
||||
cc5fd11f9d15334699bd75f979d624055e88ffacdad102dcb011f4c6b60e99af README.md
|
||||
df03e0db60d3531fde398dce26a7f448a802e2d50c546fc4fa6bd055180dd0c6 README.md
|
||||
b304b4a6b2c4edff114d0adbad79ad49cd344b3079006fe380693c9e68c1bb76 ROADMAP.md
|
||||
da8311e3db945290666324a2f24bf4521b365272d7ac3f862ded1be993eea646 UPDATE_CHECK.toml
|
||||
a55fafd4c9fc17f8af591407e7f86d222ce06658c64dcffda92acbf420f969f1 build.rs
|
||||
@@ -61,7 +61,7 @@ c6fa646500c0acac18bff6349cbb1d821680a849c8648b4eaa64f2a4305f9b9d docs/SECURITY.
|
||||
620b69e566d27af04f0604f4ca3f88cf95cdfea7fbc6ae9dd92446d2b2b5d9be docs/SECURITY_AUDIT.md
|
||||
fce52cc908fb86cab16072c0297b6cdaf4857e84185783bc96240d9a6bc321fd docs/SETTINGS.md
|
||||
3611defd206cde107e75cac006159856d12cd8f15df7ae2eb9ec3592ed2b4abd docs/STREAMS.md
|
||||
0dc5602cd1149419521cf808a4c9920b15a6e5c20414bd70b74991691d0ccb09 docs/TEST_REPORT.md
|
||||
855441be2d4e9aa401c6869bc6391b1167f22c35da9cefc6328cb930bf07424f docs/TEST_REPORT.md
|
||||
8ee6187a5460ca45643b7fd789e27bffd264449e3a92ff70e9359edee011bbbb docs/TRANSFORM.md
|
||||
b02957b708174c9def830ced3c70c943a47af7a33467ef858255d04ab92c4af0 docs/TRANSPORT.md
|
||||
96a6816915d526f00e261846131ee3f942ef332af996cf0f73c79ec1ba9f9c7a docs/V0.21.0_AUDIT.md
|
||||
@@ -79,7 +79,7 @@ e4d47b50fb0ce33d26817fc0afcc2f05ac53bc9b62c7e50e61b9fa9734e817b0 docs/V0.23.3_A
|
||||
b891db1453cd7cf6b10f79879f4edaf7c83f14e91e4e95826919d40cb5dca2d4 docs/V0.24.4_AUDIT.md
|
||||
8d6519b00e01e5cd41ee6772941fdc7e9a70fe29626df71cefced6eefe6a94d0 docs/V0.24.5_AUDIT.md
|
||||
4d2d8b84b38df57f5c6a03995019f8418806fe5867ee34ce192a90ef561986a8 docs/V0.24.6_AUDIT.md
|
||||
8299b980ef547f741ddc568f6e2270deb3cffcf26e4a88a147b7f2f82372bf06 docs/V0.24.7_AUDIT.md
|
||||
081f655554c62911b81719343e905f012356bf1df3054bda3ccd1a9bdffa89af docs/V0.24.7_AUDIT.md
|
||||
bd7959e325685085507a20b22254c7024ceb9396b6314257694bd764ec096ba5 docs/VHOSTS.md
|
||||
e32472cea5ef3cd25c058e55df8adfcc1d7bf03e0d12dba69d2f2b9b94fe04b7 docs/VHOST_ACCESS.md
|
||||
c336f998027330c58d5afbbbb3a3a682fd44ae3997643882fe342633822f8bb3 docs/screenshots/README.md
|
||||
@@ -117,7 +117,7 @@ ee50f38c037765fab742e888d4b9fc4d874c31c785c6064d4eca3d2c4d24d944 nagios/check_r
|
||||
e69813fb1d3a4cdcfb7243964cc323fc21a603087bf2e84188fa42b9d3cee4b5 scripts/acme_rfc2136.py
|
||||
ea2c670aa1fc2c145fb3666711642d526c2adb01537fc3b6398664e33136f0e4 scripts/admin_audit.py
|
||||
761aadaffbfb08c32afca28af7e5379f933712563b00dddab7261a9505cb7d5b scripts/backup.py
|
||||
599d83a655dd1851d674cfa38bc969b653041c7fbe018a80e4797090ed3b64ed scripts/check_source.py
|
||||
e2f9f18b19a9e976e4dbb8054b42b8eeb7f1897ac48b7e81b99e0a43fb908c00 scripts/check_source.py
|
||||
e10495bce1d229dc12a9a36a91453352fac77d9c69a26482f8748ad023eefb7f scripts/deploy.py
|
||||
6facb2d65bfab234f09855097d12da8f72669a38ebceb4b1cbd03ab42b8d2469 scripts/langs_check.py
|
||||
9f89ccdcd31da0f203113051a109ada8e51b44f91382ee2c5c75228d1e456540 scripts/memory_contracts.py
|
||||
@@ -127,7 +127,7 @@ d1418f8e574a7390fd45a2aa879bdf5720b773162d65e295ab0350506aa5220a scripts/mock_a
|
||||
2d4c859aae5ba357a6d30024c8487ae8f59f01b192711f13f9c2f8fee0f48b50 scripts/os-acme-client/README.md
|
||||
c73b814a42bb4ff703441dbd177ee625055eeb115f9b5bb0c2150aede573a159 scripts/os-acme-client/opnsense-rustproxy-cert-deploy.sh
|
||||
65a620b85e9c0011f5f20474a10add19a1a7ab6074112d8a2f6aed4b63b8e943 scripts/preflight.py
|
||||
348f0e4056945fdbea7a7bf371430b1adb0cf9e7242bfc7a7d4bd3de296c3e13 scripts/release_smoke.py
|
||||
9ba9292717c3b5f17e06527c7070bad1df909530ae5d7480ecf589f28e5eaf11 scripts/release_smoke.py
|
||||
c37847ae9663197d306ea55eadbe4a1892d61d031ced923a8eeffc1ae876bb4b scripts/routeros-oci-build/.env
|
||||
45be151cd85fc2ef2f1fdc3003ace63381af262e73af8a685ab48cb697cc0de1 scripts/routeros-oci-build/.env.routeros.example
|
||||
3b48cff8506e5a6ae7d3876f47721f5de7d63e2e02264a78cf5b6ddd52d9fbc6 scripts/routeros-oci-build/Dockerfile.routeros
|
||||
@@ -226,7 +226,7 @@ a026c13cc4757cb01bfd4595ac6b57a4d837482e40cd399e8d086a54700b2b97 src/tinyauth.r
|
||||
1b82a3ebf89e4ba198ed202bc026862568a41579de44aa8444990594fe3b98c0 src/transform/html.rs
|
||||
388f602176f152ef29a7c3ecd3ab328d6534b6d1eaae6e7c35a959b432232413 src/transform/js.rs
|
||||
eca00dadae42aecfdcd918ec62b8603deb27caa20e1778befe211b57afa35001 src/transform/json.rs
|
||||
e037ea5dd3639ab57258d1e70f1daaf9b80ba6f16d200da8deca134479074bbf src/transform/mod.rs
|
||||
bef367ca40eb3c25e39b6f51f82745a50e8112496ae7303939722e30698908db src/transform/mod.rs
|
||||
c0c150a8799942c53500e48b6c9d3068210d6e6ef5693514ee9602127f6e5b0c src/transform/svg.rs
|
||||
f255ed094a1cedf86f767bc062b1c589c5940a4f024274ca8238d2e83d0ede6c src/update_check.rs
|
||||
77cabbcd9730e01d19e1147ede94272f6100d97281f7892d2b1bc0279c780f63 src/upstream.rs
|
||||
|
||||
@@ -16,6 +16,7 @@ RustProxy 0.24.7 makes transformation memory/concurrency limits configurable and
|
||||
- Cache runtime telemetry exposes COLD byte/object limits so the overview can show disk occupancy against configured capacity without mixing disk and RAM.
|
||||
- `GET /api/transform` exposes current process-wide reserved transform bytes and active slots alongside the existing counters.
|
||||
- 0.24.6 aggregate/decode bounds, allocation reductions and bounded cache/background workers remain in place.
|
||||
- The bounded transform-body collection path maps its boxed body error explicitly into `anyhow::Error`; source/release regressions reject the incompatible `.context(...)` form that was reported by an external compiler run.
|
||||
|
||||
## Verification status in this workspace
|
||||
|
||||
|
||||
@@ -70,6 +70,7 @@ The dedicated Transform dashboard also shows current process-wide reserved bytes
|
||||
- cache identity ignores resource-only changes but rotates for transform representation/eligibility changes;
|
||||
- `scripts/memory_contracts.py` verifies the new dynamic memory/concurrency bounds without Rust;
|
||||
- source/release smoke checks verify the Transform UI, OpenAPI fields and release identity.
|
||||
- source/release smoke checks reject `anyhow::Context` on the boxed bounded-body collection error and require explicit `anyhow::Error` mapping.
|
||||
|
||||
## Release-host acceptance gate
|
||||
|
||||
|
||||
@@ -297,6 +297,8 @@ for marker in [
|
||||
'rustproxy-',
|
||||
]:
|
||||
assert marker in transform_source, marker
|
||||
assert 'collect bounded static response for transformation: {error}' in transform_source
|
||||
assert '.context("collect bounded static response for transformation")' not in transform_source
|
||||
for name in ['js.rs', 'css.rs', 'html.rs', 'svg.rs', 'json.rs']:
|
||||
assert (root / 'src/transform' / name).is_file(), name
|
||||
for name in ['js.rs', 'css.rs']:
|
||||
|
||||
@@ -774,6 +774,8 @@ def source_contract_smoke() -> None:
|
||||
"CanonicalIdentity",
|
||||
]:
|
||||
assert marker in transform, marker
|
||||
assert 'collect bounded static response for transformation: {error}' in transform
|
||||
assert '.context("collect bounded static response for transformation")' not in transform
|
||||
assert "pub mod transform;" in (ROOT / "src/lib.rs").read_text(encoding="utf-8")
|
||||
for name in ["js.rs", "css.rs"]:
|
||||
minifier = (ROOT / "src/transform" / name).read_text(encoding="utf-8")
|
||||
|
||||
@@ -854,7 +854,11 @@ pub async fn apply(
|
||||
let raw = Limited::new(body, settings.max_body_bytes)
|
||||
.collect()
|
||||
.await
|
||||
.context("collect bounded static response for transformation")?
|
||||
.map_err(|error| {
|
||||
anyhow::anyhow!(
|
||||
"collect bounded static response for transformation: {error}"
|
||||
)
|
||||
})?
|
||||
.to_bytes();
|
||||
if raw.len() > settings.max_body_bytes {
|
||||
let mut response = Response::from_parts(parts, Body::from(raw));
|
||||
|
||||
Reference in new issue
Block a user