15 October 2026
Change #7873 was merged on 14 October. It is tiny: one file, 21 lines added against four removed, of which the actual code is three. What makes it interesting is not the size but where it sits.
The file is called patches/react-native+0.81.6.patch. It is a patch to the sources of the platform the app is written on. That is what you do when the fault is not in your own code but below it — and waiting for a fix from above is not an option.
You pull a list down and a refresh starts. You leave for another screen. The refresh finishes while that screen is away. You come back — and the refresh indicator is sitting there, open, for good.
When a refresh ends, the app does two things in a row: first it notes internally that the refresh is over, then it asks the system to take the indicator away. And that request begins with a check: if the screen is not on display right now, return quietly and do nothing.
That is all it takes. The note is already made, so this path is never entered again: re-entry requires the state to change, and it already has. The system, meanwhile, is still in the "refreshing" position.
The curious part is why this went unnoticed for years. The opposite action, starting, has a safety net: if a refresh did not manage to start, it starts again on the first layout pass. So the "failed to start" case was thought through, and the "failed to finish" case was not.
Three lines at the moment the screen comes back: if our own records say the refresh is over while the system still thinks it is running, stop it. The deferred request fires exactly when the condition that caused it to be dropped is finally met.
The same file already held another patch, about corner rounding. The author did not simply add theirs next to it — they rewrote the file's header, separating the two entries so each now carries its own condition for being removed.
A patch to someone else's library is a debt. When the condition for clearing it is written down, a year later nobody is afraid to touch it.
Any list that refreshes on a pull. Not one section, but the whole app at once — there have not been many changes like that in recent weeks.
Not yet. The latest released version is 2.0.46 from 8 October, and the change was merged on the 14th. Rainbow does not announce in advance which version it will land in.
What's changing in the wallet's code: rnbw.wiki/pulse
$RNBW #RNBW
These entries go out in the channel @RNBWwiki.