Skip to content

v0.0.10 — a thread is one request

Pre-release
Pre-release

Choose a tag to compare

@Faultless Faultless released this 10 Aug 05:06
· 6 commits to main since this release

Mostly about being a better guest on someone else's server, and about failing in ways you can act on.

A thread is one request now

Opening a thread used to walk the whole tree, firing a request for every branching
node in it. Measured against a local server: 16 requests at once for a thread four
levels deep, fifteen of them for posts nobody had opened.

Threads now load one level. Each branch says + N more replies and loads in place when
you tap it, one request each. Nothing that was visible before is hidden: every post
already tells us how many replies it has, so the counts cost nothing.

Starting the app was doing the same thing on a smaller scale. All three tabs were built
at launch, so opening to the latest feed also fetched the hot feed and opened a live
connection. Tabs mount when you first visit them. Cold start went from three requests and
an open connection to one request.

Thanks to @stagas for
reporting it.

Rate limits behave like rate limits

Being told to slow down used to be handled badly in several places at once:

  • A rate limited launch signed you out. Any failure from /me was treated as a
    rejected token, so a limit logged you out, and then signing back in was refused too.
    Only a genuinely rejected token clears the session now.
  • A failed page kept retrying itself, once per frame, for as long as you sat at the
    bottom of a feed. It waits for you to tap retry.
  • Nothing waited. Background refreshes and live reconnects now stand down while a
    limit is tripped, and the live connection obeys Retry-After.
  • Nothing had a timeout, so a request that never came back left a spinner with no way
    out. Everything gives up after 20 seconds and offers a retry.

Errors say how long to wait where the server tells us, and an error page that is not JSON
now reads as what it actually was instead of "could not reach textlog".

Which file

File Size For
textlog-0.0.10-arm64-v8a.apk 17 MB Virtually every Android phone from the last decade — take this one
textlog-0.0.10-armeabi-v7a.apk 15 MB Older 32-bit Android devices
textlog-0.0.10.apk 49 MB Universal Android; runs on anything
textlog-0.0.10-macos.dmg 19 MB macOS (Apple silicon)

Coming from v0.0.3 or earlier, or the very first v0.0.4 upload? Those were debug-signed
and Android will refuse to install over them — uninstall first. From signed v0.0.4 or
later this updates normally.

macOS, first launch

The app is ad-hoc signed, not notarised. macOS will refuse it the first time. Allow it once
under System Settings → Privacy & Security → Open Anyway, or run
xattr -dr com.apple.quarantine /Applications/textlog.app.

Unofficial client. textlog is by stagas.