chore(release): v0.7.26 - #271
Conversation
Ships the 10 PRs merged since v0.7.25 (#261-#270). No schema change, no config change, so the deployment-side config.toml needs no edit. One fact, one source / display must equal what it consumes (frontend, 6 places) - #261 read the spendable half of the wallet payload when refreshing your own balance; #262 the transactions payload signature covers the time range, with one reload trigger shared by the four controls; #263 the settings controls are either wired or explicitly inert; #265 the re-list outcome comes from the same entry as its action; #268 the sharing form shows a plan's label, not its config id; #269 the ops card stops reading a key's status count as a health verdict. i18n reachability - #266 every pack key must reach a consumer (the gate), and #270 drops the 23 keys that gate proved unreachable: ZH/EN key count 811 -> 788, sunset list 59 -> 36. Gateway - #267 applies the body limit where axum actually reads it (per-route DefaultBodyLimit, 8 MiB on the three gateway routes; unauthenticated endpoints keep the 2 MiB default). This is the application half of rant 2026-09-18T09:14:18. It also corrects the false v0.7.10 "raised to 70MB" CHANGELOG line, which described installing a layer rather than raising a limit. - Cargo.toml / Cargo.lock: 0.7.25 -> 0.7.26. - CHANGELOG.md: v0.7.26 entry plus the v0.7.10 correction. - ui/index.html cache-bust left as-is: this release touches no UI file; the live values are app.js 20260921-2 / i18n.js 20260921-2. cargo test 302 passed; cargo fmt --check clean; clippy -D warnings clean.
|
Self-review ( Scope. Version bump + CHANGELOG only. No production code, no test, no UI file. On this branch: Why this release exists. The gateway body-limit fix (#267, Three deliberate decisions.
Verification plan after merge. Tag |
Summary
Release v0.7.26: ships the 10 PRs merged since v0.7.25 (#261-#270). No code changes of its own
—
Cargo.toml/Cargo.lockversion bump +CHANGELOG.mdentry (plus a correction to a falsehistorical entry, see below).
Two themes run through the release:
One fact, one source — display must equal the value it consumes (frontend, 6 places). #261 (the
wallet refresh reads the spendable half, not the permanent half), #262 (the transactions payload
signature covers the time range, and one reload trigger is shared by the four controls), #263 (the
settings controls are either wired or explicitly inert), #265 (the re-list outcome comes from the
same entry as its action), #268 (the sharing form shows a plan's label, not its config id), #269
(the ops card stops reading a key's status count as a health verdict).
i18n reachability. #266 adds the gate (
every_pack_key_reaches_a_consumer), #270 drops the 23keys that gate proved unreachable — ZH/EN key count
811 -> 788, sunset list59 -> 36.Gateway. #267 is the application half of host rant
2026-09-18T09:14:18: the body limit is nowapplied where axum actually reads it (per-route
DefaultBodyLimit,GATEWAY_BODY_LIMIT = 8 MiBonthe three gateway routes; unauthenticated endpoints keep the 2 MiB default).
70MB" described installing a layer, not raising a limit — the effective cap stayed at axum's 2 MiB
default until #267. That entry is now struck through with the correction inline.
v0.7.25 contains it — this release is what puts it in an image. The public endpoint stays capped
at prod nginx's built-in 1 MB default until the host adds a per-domain
client_max_body_sizeforaitokenpool.args.fun(a deployment action, outside this repo).No schema change and no
config.tomlchange, so nothing to sync on the deployment side.Related Issue
No issue; #267's work order is host rant
2026-09-18T09:14:18(that rant staysin_progressuntilthe host-side nginx change lands).
Changes
Cargo.toml/Cargo.lock:0.7.25->0.7.26.CHANGELOG.md:v0.7.26entry describing all 10 PRs.CHANGELOG.md: the v0.7.10 body-limit entry corrected in place (struck through + inline note).ui/index.htmlcache-bust left as-is: this release touches no UI file; the live values areapp.js20260921-2andi18n.js20260921-2(advanced by the UI PRs inside this release).Tests
cargo test— 302 passed, 0 failedcargo fmt --checkcleancargo clippy --all-targets -- -D warningscleanChecklist
release/v0.7.26)chore(release): v0.7.26)