Skip to content

feat(client): toggle default and dev metaserver providers - #572

Merged
zoeyrose merged 13 commits into
mainfrom
feat/client-metaserver-toggle
Oct 10, 2026
Merged

zoeyrose merged 13 commits into
mainfrom
feat/client-metaserver-toggle

Conversation

@zoeyrose

@zoeyrose zoeyrose commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

Summary

Add an always-visible button to the Classic intro screen that switches the server listing between the default and development metaserver providers. Its label shows the destination: Dev on the default provider and Default on the development provider.

Implementation / behavior

  • Switch both directory and rendezvous endpoints together:
    • Default: classic.metaserver.atrinik.org and rendezvous.meta.atrinik.org.
    • Development: classic.dev.metaserver.atrinik.org and rendezvous.dev.meta.atrinik.org.
  • Keep the choice session-only. Startup endpoint overrides remain effective until the button is clicked; clicking also enables discovery after --nometa.
  • Refresh the list without blocking the intro screen. Workers own endpoint snapshots, obsolete results are discarded, and repeated switches coalesce into the latest request.
  • Invalidate copied server rows even when providers return the same number of entries. Clear the selected server and pending access-code attempts when switching providers. Access workers retain endpoint snapshots, and provider switches cancel them without blocking.
  • Cover provider lifecycle, stale results, shutdown, and both button directions in the offline intro fixtures. Route provider clicks ahead of the active access-code popup and verify this through the production SDL input queue, including cancellation and unrelated modal blocking.

Validation

Validated integration revision: b49818be8c271203116f5d73439a1d7b7a5e545e, merged with main at f7da19591ce104ae27d52dbd5ba7cce9a835505f.

  • Pinned Classic build image 1.16.0: client build passed; 71 tests passed and 24 GPU tests skipped.
  • Focused metaserver options, provider lifecycle and access-resolver tests: all three passed with coverage instrumentation and under ASan/UBSan.
  • Focused metaserver/access-worker coverage: 85.8% lines, 96.2% functions, 56.3% branches.
  • Offline software Vulkan: 18 UI closure states and nine book editor states passed; strict record verification and screenshot artifact hashes passed.
  • GPU verification Python tests: 24 passed.
  • Imported component history and whitespace verification passed.
  • Independent concurrency and ownership review found no actionable issues.
  • Final-head Codex code and security reviews completed without findings; all review threads are resolved.
  • GitHub Check and CodeQL passed, including trusted software GPU coverage and native Windows security tests.

Limitations / follow-up

UI validation uses offline software Vulkan; it does not constitute physical GPU qualification.

zoeyrose commented Oct 9, 2026

Copy link
Copy Markdown
Member Author

@codex review

Please review the current head 7bbe3efcf29a49344aa2c5665163217ca3adc8bd, including the integration with access-code endpoint snapshots and cancellation when switching metaserver providers. Conflicts with current main are resolved; fresh build, sanitizer and offline UI validation are running.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-09T01:49:22.501786Z b49818b Draft marked ready
🔒 Security Review ✅ Completed 2026-10-09T01:50:12.288526Z b49818b Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 7bbe3efcf2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread client/src/gui/misc/intro.c Outdated
@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 7bbe3efcf2

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

zoeyrose commented Oct 9, 2026

Copy link
Copy Markdown
Member Author

@codex review

Please review head 9d7f85cdf33096f1899653bbde0d90985cee84dc. It addresses the modal-routing feedback with access-popup-only priority for uncovered provider clicks, plus a regression that queues events through Event_PollInputDevice() and verifies resolver cancellation, endpoint snapshot isolation and unrelated modal blocking. Independent review and focused coverage/ASan/UBSan checks passed; the full build and offline UI checks are running.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🎉

Reviewed commit: 9d7f85cdf3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: 9d7f85cdf3

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

zoeyrose commented Oct 9, 2026

Copy link
Copy Markdown
Member Author

@codex review

Final validated head: b49818be8c271203116f5d73439a1d7b7a5e545e. The last update fixes offline fixture initialization to service startup window/GPU recovery and preserve SDL text-input state. The production modal-routing fix is unchanged from your previous review. The real SDL input/cancellation regression, strict offline UI/artifact verification, full client suite and focused ASan/UBSan tests now all pass.

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Breezy!

Reviewed commit: b49818be8c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@chatgpt-codex-connector

Copy link
Copy Markdown

🛡️ Codex Security Review · Automatically triggered

Security review completed. No security issues were found in this pull request.

Reviewed commit: b49818be8c

View security finding report

Only the user who started this review can view the report in Codex.

ℹ️ About Codex security reviews in GitHub

This is an experimental Codex feature. Security reviews are triggered when:

  • You comment "@codex security review"
  • A regular code review gets triggered (for example, "@codex review" or when a PR is opened), and you’re opted in so security review runs alongside code review

Once complete, Codex will leave suggestions, or a comment if no findings are found.

@zoeyrose
zoeyrose marked this pull request as ready for review October 9, 2026 01:46
@zoeyrose
zoeyrose merged commit 9f208e5 into main Oct 10, 2026
29 checks passed
@zoeyrose
zoeyrose deleted the feat/client-metaserver-toggle branch October 10, 2026 18:39
zoeyrose added a commit that referenced this pull request Oct 11, 2026
## Summary

Correct the Classic directory hostnames introduced in #572, which made
server-list discovery fail with a hostname-resolution error.

## Implementation / behavior

- Use `classic.meta.atrinik.org` for Default and
`classic.dev.meta.atrinik.org` for Dev.
- Synchronize packaged configuration, provider selection, intro
tooltips, documentation, and existing options/lifecycle/GPU assertions.
- Preserve the rendezvous/access endpoints and protocol/TLS validation.

## Validation

- Both affected native tests pass: `client-metaserver-options` and
`client-metaserver-lifecycle`, compiled with warnings as errors in the
pinned Classic build 1.16.0 CPU image.
- Imported-history verification passes for all five components.
- `git diff --check` passes.
- Independent review of final commit
`145686fcf1f5adb040b10fba843e2ce6d2e41209` found no blocking defects.
- Required client CI is pending; this PR starts as a draft.

## Limitations / follow-up

The production directory currently serves protocol 4; this client
requires protocol 6. This hostname-only correction does not resolve that
separate compatibility issue or the game-news certificate error.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant