Skip to content

Release: develop -> main - #4569

Merged
TaprootFreak merged 3 commits into
mainfrom
develop
Aug 1, 2026
Merged

Release: develop -> main#4569
TaprootFreak merged 3 commits into
mainfrom
develop

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown

Automatic Release PR

This PR was automatically created after changes were pushed to develop.

Commits: 1 new commit(s)

Checklist

  • Review all changes
  • Verify CI passes
  • Approve and merge when ready for production

…widen the window to one hour (#4522)

* perf(payment): serve the asset list from the specification cache

The fiat endpoint was moved to the cached repository earlier; the asset list
still issued the same query per request. This is the second call site the issue
names.

* perf(payment): widen the specification cache window to one hour

The specifications are edited outside the application, so the cache does not
have to follow a write path, and the cache lives in the process and is dropped
on every restart.

The window is passed explicitly, and two assertions pin it: one fails if the
argument is dropped and the 5 minute default applies again, the other fails if
the entry never expires.

* docs(payment): narrow the specification cache comment to a checkable claim

The sentence claimed that no write path exists anywhere in the codebase. That
is an absolute statement a reader cannot check and that any future commit can
silently invalidate. The class itself carries the same information: it declares
read methods only.
Follow-up to the two review points left open when the staff KYC error code was merged.

The protected-file endpoint now documents the structured 403 it can answer with, the way
the same controller already documents the analogous 2FA case.

The tests asserted on ForbiddenException, which the new exception extends - a regression
back to the generic answer would have stayed green. They now pin the concrete exception
and its response body, and a new case pins the counterpart: a wrong role must keep
answering generically, without the code, so the two situations stay distinguishable in
both directions.
* docs(payment): correct the specification cache comment

The comment claimed the repository exposes read methods only. It does not: over
CachedRepository and BaseRepository it inherits TypeORM's public save, update,
insert and delete, none of which touch the cache. The sentence was meant to
explain why no caller invalidates the cache today, but it stated something a
reader can disprove by opening the base class.

Replaced by the obligation itself, which stays true no matter what the class
inherits or which callers exist.

* docs(payment): drop the cache invalidation sentence instead of rewording it

Third attempt at that sentence, third defect: after the unverifiable claim and
the factually wrong one, the remaining version was misleading. invalidateCache()
clears the caches of one instance, while RepositoryFactory builds its own
alongside the DI provider, and TransactionHelper keeps a separate copy on its
own cron.

The instance question is not specific to this repository and does not belong in
this file. What remains is the one statement a reader can check right here.
@TaprootFreak
TaprootFreak merged commit fbb0e87 into main Aug 1, 2026
16 checks passed
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