aboutsummaryrefslogtreecommitdiffstats
path: root/android/app/src/main/java
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-09-10 23:09:14 -0700
committerAdam Soltys <[email protected]>2026-09-10 23:09:14 -0700
commit7539975beed48ed7aa9c35495d34f5b8b547cc93 (patch)
treed92aaea48ac7e3f4d0a5a8363602ef22c164e895 /android/app/src/main/java
parent48e8e588f1a3dee26a2497d1a1757f2f294413a3 (diff)
downloadcoinosv3-7539975beed48ed7aa9c35495d34f5b8b547cc93.tar.gz
coinosv3-7539975beed48ed7aa9c35495d34f5b8b547cc93.zip
A transient failure shouldn't cost a face its thumbnail for good.
Pinguimdarelva's picture is 52KB on a CDN that answers in 700ms one minute and times out the next — I measured both from this machine. The thumbnail attempt hit one of the bad minutes, and `thumbFail` was written as if the host had refused us: never retried, so that avatar went back to fetching the original on every boot. Only a tainted canvas is a real refusal (no CORS header, nothing to be done), and that is remembered for good. Everything else — a load error, or a host that won't answer inside twenty seconds — is stamped with the time and tried again in six hours. The timeout also frees the slot: three thumbnails run at a time, and a hanging image used to hold one of them indefinitely. And zap tallies are remembered between sessions. They were asked of the relays on every boot, which takes seconds, so a room full of zapped messages painted bare and filled in afterwards. The totals (never the receipts) are kept locally and painted straight away; the moment the relays answer for a message, their word replaces it — so a tally that changed, or a receipt that was deleted, still settles correctly. Opening a DM thread doesn't forget what the chat had learned, and the store is capped at 400. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_019mrt228Upn9nNCwGixzSLx
Diffstat (limited to 'android/app/src/main/java')
0 files changed, 0 insertions, 0 deletions