Silence and exile go mobile
The phone app can now mute someone with a tap or block them outright, and lists who you've silenced. Twenty names a page, most recent first.

You're on the phone when a reply arrives from the person you'd rather not hear from, and this time you don't reach for a laptop. Tap mute and their commits stop turning up in your log. Tap block and they drop out of your view, the follows between you end, and the app answers with their name, avatar and color so its blocked page can draw them the way the web does.
Credit goes to simonhamp, who gave the signed side of the API the gestures Settings → Safety already had. Six requests are involved. They are mute, unmute, block, unblock, and two lists. Each list comes newest first, 20 a page with a cursor for the next 20, so 25 muted people take two pages. Point one at yourself and you get a 403. Undoing something you never did still answers 200. Every call needs the key your phone keeps on the device, and mute and block share the signed budget of 120 requests a minute, with no smaller allowance of their own the way follows has 30.
One catch. Blocking is a one-way door for follows. It cuts them both ways, and unblocking takes back only your half, so you'll have to follow again. And if they had blocked you too, your unblock leaves their block in place, so you still won't see them.
Part of a larger story
Key files · #555
- app/
Http/ UserMuteController.phpControllers/ Api/ - app/
Http/ UserBlockController.phpControllers/ Api/ - app/
Http/ CreateApiUserMuteRequest.phpRequests/ - app/
Http/ CreateApiUserBlockRequest.phpRequests/ - app/
Actions/ CreateUserBlock.php - app/
Exceptions/ ApiException.php - app/
Http/ ListApiUserCommitsRequest.phpRequests/ - routes/
api.php