Bug fix: Google Gemini's DCR-registered clients were classified as "Others" on the AI Connectors → Connections panel instead of Gemini.
Merged via #23.
What broke
Google's custom-MCP-connector flow registers itself with client_name="Google" and callbacks under three Google-owned proxies:
oauth-redirect.googleusercontent.comoauth-redirect-sandbox.googleusercontent.comoauth-redirect-test.googleusercontent.com
None appeared in GeminiConnectorProfile::DCR_HOSTS (only gemini.google.com, vertexaisearch.cloud.google.com, antigravity.google were listed), and the \bgemini\b name-regex fallback doesn't match "Google" — so every such Gemini DCR row fell through to the "Others" bucket.
Why this mattered beyond the UI label
Attribution runs at two points:
- Write time (
ClientRegistrationController.php:479-485) — persisted into theconnector_slugcolumn. - Display time (
AIConnectorsTab.php:429-437) — fallback re-attribution when the stored slug is empty.
Only the display path had a fallback, so the UI showed "Others" while enforcement kept reading the empty stored slug — meaning AuthorizationController's per-connector gating treated the client as an unclassified OAuth client subject to the default-OFF Others toggle + forced per-user admin approval, rather than routing it through the Gemini profile as the operator expects.
Fix
GeminiConnectorProfile::DCR_HOSTS extended with the three googleusercontent.com hosts. Future registrations attribute correctly at write time.
For operators upgrading with an existing "Others"-classified Google row
The display-time fallback re-attributes the visual label instantly on next page load. To also backfill enforcement, run:
UPDATE wp_acrossai_mcp_oauth_clients
SET connector_slug='gemini'
WHERE client_name='Google' AND connector_slug='';Or revoke + re-register the client (the fresh registration goes through the fixed write path).
Preserved contracts
- No schema changes.
- No new hosts / capabilities beyond the three Google-owned proxies.
- Upgrade is a runtime no-op for Claude / ChatGPT / Grok connections.
- Non-Google clients that happen to register with
googleusercontent.comhosts (none known) would newly attribute to Gemini — that's Google's own OAuth proxy so the attribution is correct by construction.
Requirements
- WordPress 6.9 or later
- PHP 8.1 or later
- AcrossAI MCP Manager must be active
Full diff: v0.6.0…v0.6.1