Skip to content

chore(release): v0.7.25 - #260

Merged
argszero merged 1 commit into
mainfrom
release/v0.7.25
Sep 15, 2026
Merged

argszero merged 1 commit into
mainfrom
release/v0.7.25

Conversation

@argszero

Copy link
Copy Markdown
Owner

Summary

Release v0.7.25: ships the 18 PRs merged since v0.7.24 (#242-#259). No code changes of its
own — Cargo.toml/Cargo.lock version bump + CHANGELOG.md entry.

Two themes run through the release:

NFS performance on dev. Driven by host rant 2026-09-15T10:33:34 (/api/transactions
1.7-2.3s, /api/ops/runtime 2.1s). #259 removes the memory mapping (PRAGMA mmap_size 64MB -> 0)
and the per-request write (dao::touch_api_key gains a 60s guard) — the two mechanisms stack, so
neither alone pays off. #242 codifies the two emergency indexes in a v15 migration and gates the
conditional joins at the plan level. #243 reads the sharing page's earn total from one batched
aggregate instead of one query per row.

Frontend: display must equal what it filters on, and one fact, one source. #250 (one writer for
the transaction cache), #251 (clear every session slot at the identity boundary + give the wallet
view a loader), #253 (one shared writer for the wallet/dashboard month-changes), #254 (boot loads
only the destination view), #255 (a model row's identity is the model, not its array index), #256
(the marketplace source follows the session, not whether data arrived), #257 (the sidebar
advertises only digits that work), #258 (the admin total-balance card sums the gift amount its
caption names).

Plus i18n (#249, #252), forms and robustness (#244, #245, #246, #247, #248).

⚠️ Schema 14 → 15 (two covering indexes, applied at startup). No config.toml change, so
nothing to sync on the deployment side.

Related Issue

No issue; the work order is host rant 2026-09-15T10:33:34.

Changes

  • Cargo.toml / Cargo.lock: 0.7.240.7.25.
  • CHANGELOG.md: v0.7.25 entry describing all 18 PRs.
  • No config/data-structure change beyond the schema migration already shipped in perf(db): codify the emergency transaction indexes and gate the conditional joins #242, so no
    example file to sync.
  • ui/index.html cache-bust left as-is: the UI PRs in this release already advanced it past
    the value deployed with v0.7.24 (app.js 20260915-13, i18n.js 20260915-3).

Tests

  • cargo test288 passed, 0 failed
  • cargo fmt --check clean; cargo clippy --all-targets unchanged (only the pre-existing
    protocol.rs:662 warning)
  • No new tests (version bump + docs only)

Checklist

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

Ships the 18 PRs merged since v0.7.24 (#242-#259). Schema 14 -> 15 (two
covering indexes, applied at startup). No config change, so no deployment-side
config.toml edit is needed.

Two themes:

Perf on the NFS dev database
- #259: stop mapping the db (PRAGMA mmap_size 64MB -> 0) and stop a real write
  per request (dao::touch_api_key gains a 60s guard). Measured on the live dev
  db: mmap=64MB 1.7-3.1s per COUNT / 250 MiB read vs mmap=0 ~10.5ms / 80 KiB;
  mmap=0 alone still leaves ~1.2s behind any write, so the pair is required.
- #242: codify the two emergency indexes in a v15 migration and gate the
  conditional joins at the plan level.
- #243: read the sharing page's earn total from one batched aggregate.

Frontend: display must equal what it filters on, and one fact, one source
- #250 one writer for the transaction cache; #251 clear every session slot at
  the identity boundary and give the wallet view a loader; #253 one shared
  writer for the wallet/dashboard month-changes; #254 boot loads only the
  destination view; #255 a model row's identity is the model, not its index;
  #256 the marketplace source follows the session, not whether data arrived;
  #257 the sidebar advertises only digits that work; #258 the admin
  total-balance card sums the gift amount its caption names.

i18n
- #249 every backend error reaches the wordlist, and the comment stripper stops
  mangling UTF-8; #252 the backend stops inventing Chinese display labels in
  response data fields.

Forms and robustness
- #244 a non-auth boot failure no longer looks like being logged out; #245 a
  credential 401 is no longer read as a session expiry; #246 wire timestamps
  reach the renderer unsliced; #247 inline cards submit from every field; #248
  a market row's availability label comes from that row.

- Cargo.toml / Cargo.lock: 0.7.24 -> 0.7.25.
- CHANGELOG.md: v0.7.25 entry.
- ui/index.html: cache-bust left as-is; the UI PRs in this release already
  advanced it past the value deployed with v0.7.24 (app.js 20260915-13,
  i18n.js 20260915-3).

cargo test 288 passed; cargo fmt --check clean; clippy unchanged.
@argszero
argszero merged commit 68a7068 into main Sep 15, 2026
1 check passed
@argszero
argszero deleted the release/v0.7.25 branch September 15, 2026 03:23
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