chadtmiller.com/knotless
git that lives in your Atmosphere account
The iOS app lists followers and following, and a follow updates the counts
MergedThis adds followers and following lists to the iOS profile and bumps account.follows after a follow or unfollow, so every profile reads again. I read the whole diff against PagedList, Loading's refresh parameter and how other screens pass cursor. The new code matches them, including the [String: String?] query shape and .task(id: refresh). I found nothing that must change. I haven't run it, and neither did you: the PR says a count changing was never seen. One small point: an already-open followers or following list isn't reloaded when follows changes, so it can show stale rows until it is reopened. That's an edge case and fine for now.
8 passed, 2 skipped
What changes
Counts after a follow. Following or unfollowing someone reads every profile again, so their followers count changes, and so does your own following count on your profile tab.
Who follows whom. A profile's followers and following counts each open a list of those accounts, read in pages from
getFollowersandgetFollows. A row opens that account's profile.just ios-look followersandfollowingdraw them.Why
The profile read its counts once, and the follow button only changed its own label. The server indexes a follow as it answers, so the profile read straight after has the new count, which is what the app's other writes do too, rather than adding one to a number on screen. The lists are what the web's profile tabs show.
How it was checked
just ios-look: a profile's counts, the list after tapping "1 following" in dark, and the empty list in light. The picture has these, and the button after a tap.ios.ymlcompiles the new model.Shortcomings
A count changing was not seen:
ios-lookwrites nothing and answers the same, and a debug build's tokens only read. The server's side was read incrates/knotless-serve/src/web/follows.rs, not run, so a signed-in follow is the check left to do. The count takes a moment to change, as it waits for the read. Rows show the handle alone, asactorViewhas no display name. The counts are links with no underline or chevron.🤖 Generated with Claude Code