Skip to content

chore(release): v0.7.26 - #271

Merged
argszero merged 1 commit into
mainfrom
release/v0.7.26
Sep 21, 2026
Merged

argszero merged 1 commit into
mainfrom
release/v0.7.26

Conversation

@argszero

Copy link
Copy Markdown
Owner

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.lock version bump + CHANGELOG.md entry (plus a correction to a false
historical 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 23
keys that gate proved unreachable — ZH/EN key count 811 -> 788, sunset list 59 -> 36.

Gateway. #267 is the application half of host rant 2026-09-18T09:14:18: the body limit is now
applied where axum actually reads it (per-route DefaultBodyLimit, GATEWAY_BODY_LIMIT = 8 MiB on
the three gateway routes; unauthenticated endpoints keep the 2 MiB default).

⚠️ The same PR corrects a false historical entry. The v0.7.10 line "Request body limit raised to
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.

⚠️ Note on deployment. #267 landed after the v0.7.25 release commit, so neither v0.7.24 nor
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_size for
aitokenpool.args.fun (a deployment action, outside this repo).

No schema change and no config.toml change, 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 stays in_progress until
the host-side nginx change lands).

Changes

  • Cargo.toml / Cargo.lock: 0.7.25 -> 0.7.26.
  • CHANGELOG.md: v0.7.26 entry describing all 10 PRs.
  • CHANGELOG.md: the v0.7.10 body-limit entry corrected in place (struck through + inline note).
  • No config/data-structure change, so no example file to sync.
  • ui/index.html cache-bust left as-is: this release touches no UI file; the live values are
    app.js 20260921-2 and i18n.js 20260921-2 (advanced by the UI PRs inside this release).

Tests

  • cargo test302 passed, 0 failed
  • cargo fmt --check clean
  • cargo clippy --all-targets -- -D warnings clean
  • No new tests (version bump + docs only)

Checklist

  • Branch name follows the convention (release/v0.7.26)
  • Commit message uses Conventional Commits (chore(release): v0.7.26)
  • Single purpose

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.
@argszero

Copy link
Copy Markdown
Owner Author

Self-review (allow_self_merge is on; gh pr review --approve on your own PR always fails — pitfall #331).

Scope. Version bump + CHANGELOG only. No production code, no test, no UI file. On this branch:
cargo test 302 passed / 0 failed (same count as main — a release adds no tests), cargo fmt --check clean, cargo clippy --all-targets -- -D warnings clean.

Why this release exists. The gateway body-limit fix (#267, 2ccbc76) landed after the v0.7.25
release commit (68a7068), so no published image contains it. Re-measured today: prod runs
ghcr.io/argszero/aitokenpool:latest = sha256:24128e54…, built 2026-09-14T14:05:51Z, /healthz =
0.7.24; a 2.25 MB body sent direct to the app still returns 413 Failed to buffer the request body. This release is what puts #267 into an image.

Three deliberate decisions.

  1. The v0.7.10 CHANGELOG line is corrected in place (struck through + inline note) rather than
    left standing. It claimed the limit was "raised to 70MB" when it only described installing a
    layer
    — the same trap this project keeps hitting ("configured a value" ≠ "it took effect").
  2. The host-side half of rant 2026-09-18T09:14:18 is not claimed as fixed here: the public
    endpoint is still capped by prod nginx's built-in 1 MB default. That rant stays in_progress.
  3. ui/index.html cache-bust is untouched — this release contains no UI file change, and the UI PRs
    inside it already advanced the live tokens (app.js / i18n.js = 20260921-2).

Verification plan after merge. Tag v0.7.26 on the squash commit (verify peel == main and that
the merged tree equals the tested tree), then let Docker Publish produce v0.7.26 + latest.

@argszero
argszero merged commit 49c212f into main Sep 21, 2026
1 check passed
@argszero
argszero deleted the release/v0.7.26 branch September 21, 2026 11:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant