Mentions now remember the person, not the name
Tag a developer and the @name still reads the way you typed it, but the link now follows that account through renames, even if someone else takes the old handle. Approve a queued commit days later and the right person still gets the ping.

You type "nice work, @elenadev" into a commit and hit send. The name turns blue and clicks through to Elena. A week later Elena renames to @elena, and a stranger signs up as @elenadev. Open the old thread. The sentence still reads @elenadev, but the link opens Elena's new profile, and the stranger's page never appears.
Credit xHeaven, who taught the posting path to remember people. When you send a commit, the server pulls every @name out of the prose, skips code in backticks and fenced blocks, emails and paths, looks each name up, and stores a small map of lowercased handle to account ID alongside the commit. Handles run to 39 characters. On approval, notifications go to those IDs, once per commit, skipping you, the person you replied to or quoted, and anyone who mutes or blocks you. A one-time pass gives old commits the same map, reading 200 at a time.
There is one catch. The map freezes when you post. Tag @newkid before that account exists and the name stays plain text on the page forever, even after they sign up. Nothing goes back to link it. Your only fix is to post again.
Key files · #141
- app/
Services/ Mentions.php - app/
Queries/ MentionedUsersQuery.php - app/
Actions/ CreateCommit.php - app/
Actions/ CreateMentionNotifications.php - app/
Http/ MentionController.phpControllers/ - resources/
js/ linkified-text.tsxcomponents/ - database/
migrations/ 2026_10_15_201953_add_mentions_to_commits_table.php - database/
migrations/ 2026_10_15_201954_backfill_commit_mentions.php