What
- Token refresh now requests the
user:pluginsOAuth scope alongside existing scopes. If the server rejects the expanded scope request withinvalid_scope, the refresh automatically retries once with the original scope set, and the outcome is taggedinvalid_scope_retriedon both the success telemetry and the failure event's context. - The
tengu_oauth_token_refresh_successtelemetry event now records whether theuser:pluginsscope was requested and whether it was actually granted. - Account plugin sync now has its own experiment flag,
tengu_account_plugins_sync_enabled(default off); when enabled and either theallow_plugin_skill_searchorallow_account_plugins_syncpolicy is set, theuser:pluginsscope is included in the requested scope set. - A new gate decides whether to send a plugin/skill search request at all, based on being first-party, not essential-traffic-only, not a CCR session token, and whether the current OAuth token already carries the
user:pluginsscope (refreshing the token first to check). Third-party OAuth clients or tokens without a refresh token still send the request; only a stock login token missing the scope skips it.
Why This rolls out a new, narrower OAuth scope specifically for plugin-related features (account plugin sync, plugin/skill search) instead of relying on broader existing scopes, while making sure older servers that don't yet recognize the scope don't break token refresh.
Flag reading moved
The flag server now returns off for tengu_account_plugins_sync_enabled, read as this account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved
The flag server now returns on for tengu_account_plugins_sync_enabled, read as this account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved
The flag server now returns off for tengu_account_plugins_sync_enabled, read as this account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved
The flag server now returns on for tengu_account_plugins_sync_enabled, read as this account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved
The flag server now returns off for tengu_account_plugins_sync_enabled, read as this account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.
Flag reading moved
The flag server now returns on for tengu_account_plugins_sync_enabled, read as this account.
A reading is one sample. Claude Code evaluates its flags remotely, so no client sees the targeting rule behind a value and this says nothing about your account.