Tag name normalization causes actors to be served with an unexpected name
- Dominant language
- Rust
- Stars
- 110
- Forks
- 11
- PR merge metrics
- No merged PRs in 30d
Description
This was reported by GotoSocial user @chri2 in superseriousbusiness/gotosocial#3063. When they enter the tag name `trööt` in the relay URL page at https://relay.fedi.buzz/, the resulting actor URL is https://relay.fedi.buzz/tag/tr%C3%B6%C3%B6t. However, resolving that URL shows an actor where `deunicode` normalization results in the actor's ID actually being https://relay.fedi.buzz/tag/troot, and GtS currently rejects that as a match for the actual URL being queried, so the actor doesn't appear in search results.
Mastodon doesn't appear to care, and will show the deunicoded version of the actor in search results.
AP is vague enough on actor resolution that I'm not sure which, if not both, actor resolution behaviors are correct, so I'd like to propose a low-impact fix: apply a deunicode-equivalent transform in the page at https://relay.fedi.buzz/, so that entering `trööt` as a tag name would result in the actor URL https://relay.fedi.buzz/tag/troot being shown to the user.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start at the tag-name handling for the relay URL page and trace how the entered name becomes the actor URL. Compare the current encoded form with the proposed deunicode-equivalent form, then verify that entering `trööt` produces `/tag/troot` and that the resulting actor resolves as expected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- backend-api-design, web-dev
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100