Repository navigation
Mute and block people, and undo it from your account - #6
Merged
Merged
Conversation
Someone else's profile now has the web's safety menu behind a ⋯ in the nav bar: Mute or Unmute, and Block in red. Each asks first in the web's words, then changes straight away and goes back if devnull says no. Blocking turns the profile into the blocked page, which now has Unblock as on the web, and devnull sends who you blocked with it, so the page has their name and avatar even with nothing kept. A new Muted and blocked screen lists both groups as the web's Safety settings do, with Unmute and Unblock. It opens from a Safety section on the Account screen, and from a blocked profile instead of the web. Mutes and blocks patch the kept answers they change. Their commits leave the kept logs, and the log takes out what it still shows of them when you come back, Trending included. NativePHP gives a screen one listener per event, so Profile's alert handler passes the delete alert on to ShowsCommits, and deleting your own commit from your profile still works. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
simonhamp
force-pushed
the
feat/mute-block
branch
from
October 18, 2026 19:35
3dc217d to
61620aa
Compare
This was referenced Oct 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds muting and blocking to the app, and a screen to undo them, the way the web does it.
API PR: simonhamp/devnull.com#1, stacked on nunomaduro/dev-null.sh#130. The app needs it for the new endpoints, and for the blocked user that now comes with
user_blocked.What changed
Dialog::alert. Block uses the web's Block dialog word for word. Mute uses the web's own line for it ("You won't see their commits or hear from them, and they won't know."), and Unblock what the web's Safety page says ("Unblocking doesn't bring back follows."). The web has no wording for Unmute beyond the label, so that alert is just "Unmute @them?".Safety, at{tab}/safety), from a Safety section on the Account screen. It lists both groups with the web's headings and empty states, Unmute and Unblock beside each person, and Show more when there's another page. It opens on what was kept last time and refreshes behind it, like the other screens.is_muting, the two lists, and the kept logs, which drop the person's commits. A block also forgets their kept profile and commits, and takes the ended follows off your counts. The Log takes their commits out of what it's showing when you come back to it, which Trending and pages further down need since a fresh first page doesn't touch them.volume-x,volume-2andban.What to look at
mute:ada), so a button press only reaches the profile that asked.#[On]listener per event on a screen, so Profile'sonAlertButton()would have replaced the oneShowsCommitsuses for Delete commit. The trait's handling now lives inanswerDeleteAlert(), which Profile's handler calls before its own alerts. CommitMenuTest's "deletes your own commit from your profile" fails without that call.Verified
php artisan testafter rebasing onto main: 769 passed, CommitMenuTest and SavedTest included, with new tests for the menu, each confirmation, the rollbacks, the blocked page, the new screen, the Account entry and the cache patches.Screenshots, from the orphan branch
mute-block-screenshots(delete it after merge):After rebasing onto main, on a fresh simulator: deleting your own commit from the Log and from your profile, then mute, block, the blocked page and undoing both from Muted and blocked. The lists also show a mute and a block another session made on the shared dev account.
🤖 Generated with Claude Code