30 days free. No credit card. Full access from the moment you connect your site.

Start free trial

v0.6.1 — Google Gemini DCR attribution fix

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.com
  • oauth-redirect-sandbox.googleusercontent.com
  • oauth-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 the connector_slug column.
  • 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.com hosts (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


Keep reading