Skip to content

Server Location: region picker matching the official client#67

Open
oliversluke wants to merge 2 commits into
owenselles:mainfrom
oliversluke:feature/server-location
Open

Server Location: region picker matching the official client#67
oliversluke wants to merge 2 commits into
owenselles:mainfrom
oliversluke:feature/server-location

Conversation

@oliversluke

Copy link
Copy Markdown
Contributor

Replaces the dedicated-server picker with a region-based Server Location setting that mirrors the official client: users select a country/region (or Automatic) rather than pinning a specific numbered server.

Why: this is how the official client (and the tvOS Settings app generally) works, so it's the interaction users already expect — pick your region, done — instead of scrolling a long list of individual servers.

  • The region list comes from the same server-info endpoint the official client uses; region names are shown verbatim as delivered.
  • Automatic (server decides) (new default) lets the backend route the session server-side, matching the official client. Automatic (client decides) keeps the previous in-app ping+queue selection for anyone who wants it.
  • Added a Test Network action (ping / jitter / loss).
  • The picker opens focused on the current selection with a checkmark, like the tvOS Settings pickers.
  • Existing pinned servers migrate to Automatic (server decides); no other settings change.

🤖 Generated with Claude Code

@aarikmudgal aarikmudgal added the enhancement New feature or request label Jul 10, 2026
@aarikmudgal aarikmudgal self-requested a review July 10, 2026 20:55
@aarikmudgal

Copy link
Copy Markdown
Collaborator

@oliversluke

  • Server list looks identical to GFN
  • Server location title visible overlap with the list during scroll
  • Automatic (client decides) seems abstract since I can't select individual server manually after selecting this option, it should give the list of servers as of main branch if client decide option is selected
  • Maybe list should be devided into two parts. Automatic options and Regions

@aarikmudgal

Copy link
Copy Markdown
Collaborator

Conflicts, rebase needed :)

@oliversluke oliversluke force-pushed the feature/server-location branch from a84ed68 to 12c4bbb Compare July 10, 2026 21:18
@oliversluke

Copy link
Copy Markdown
Contributor Author

@aarikmudgal Already done — the rebase landed a minute or two after your comment :) The branch is on current main and GitHub shows it mergeable again. The conflicts were with #62: an enum insertion point in SessionState.swift, the README feature list, and a subtle one worth mentioning — both PRs had added a "server_location" L10n key (stats HUD row vs. settings section), which after a naive merge would have crashed at runtime as a duplicate dictionary key in all 34 localization files. Deduplicated so both UIs share the one key, and re-verified the full duplicate-key scan, lint, and a simulator build after the rebase.

@aarikmudgal

Copy link
Copy Markdown
Collaborator

Sounds good @oliversluke Quick question, I just tested and noticed the UI bugs I mentioned are still there, I guess they are WIP?

@aarikmudgal aarikmudgal requested a review from owenselles July 11, 2026 07:37
@aarikmudgal aarikmudgal marked this pull request as draft July 11, 2026 10:02
@oliversluke oliversluke force-pushed the feature/server-location branch from 12c4bbb to 83be022 Compare July 11, 2026 11:09
@aarikmudgal aarikmudgal self-assigned this Jul 11, 2026
oliversluke and others added 2 commits July 11, 2026 19:18
…cial client

Replace the dedicated-server picker with a Server Location setting that
selects a region (or Automatic), mirroring the official client instead of
pinning a specific numbered server.

- Region list from the same server-info endpoint the official client uses;
  region names shown verbatim as delivered.
- Automatic (server decides) — new default — lets the backend route the
  session; Automatic (client decides) keeps the in-app ping+queue picker.
- Test Network action (ping / jitter / loss).
- Picker opens focused on the active entry with a checkmark, like the
  tvOS Settings pickers.
- Existing pinned servers migrate to Automatic (server decides); no other
  settings change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@oliversluke oliversluke marked this pull request as ready for review July 11, 2026 17:27
@oliversluke oliversluke force-pushed the feature/server-location branch from 83be022 to 533e37f Compare July 11, 2026 17:27
@aarikmudgal

Copy link
Copy Markdown
Collaborator

@oliversluke The UI bug for the title is still there, you can see in the screenshot. Also the region list is nice. But we still cannot choose the server manually when Client select option is selected

Basically there are 3 options to be in this overlay

  1. Automatic (Server decides)
  2. Client Decides ->[Overlay goes one level down] Which updates the overlay to only show the entire server list as it is rendered today in main branch. Where we can visually see the Ping as well as the client load, etc and then the user can choose individual server
  3. Region -> [Overlay goes one level down] Which updates the overlay to only show the entire region list which you are rendering on the main overlay
Simulator Screenshot - Apple TV 4K (3rd generation) - 2026-07-12 at 17 51 58

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants