Skip showing OS version in device list if the value is a frozen token
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 685
- Forks
- 237
- Avg merge
- 2d 17h
- Merged PRs (30d)
- 136
Description
Description
"Connected Services" device list contains some user agent data that's no longer updated by the browsers/OSes, resulting in confusing device list to users unaware of that gotcha.
Steps to reproduce
Sign in using W11, macOS 11+, iPad in "dektop mode" or iOS 26+
Expected result
Correct device OS is shown, or, when in doubt, no specific OS version listed.
Actual result
User–agent HTTP header–based identification is shown, confusing users — as these OS/platform values have been frozen in browsers for a long time, so users randomly report "Firefox not recognizing I've updated to W11, how do I install the correct version instead of this W10" or "somebody with iOS 18.7 has access to my account please help" kind of woes just based on the UAstring parsing cap limitations.
Environment
macOS 12+15, iPadOS 18+26; + reporters regularly W11 getting confused by W10 devices listed.
| This is my macOS 12, and the iOS "Safari" entries are actually FxA SSO into native apps (think VPN) using the in–app webview flow. | This user is on Windows 11, not Windows 10; however both browsers cap Win NT version in UA. |
┆Issue is synchronized with this Jira Task
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Connected Services device-list entry point and the user-agent HTTP header parsing used to derive OS versions. Trace how frozen values for Windows, macOS, iPadOS and iOS are displayed, then add or update tests so unreliable specific versions are omitted while reliable OS information remains visible.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100