diff --git a/CHANGELOG.md b/CHANGELOG.md index 0819f30939..8a87fb9d9a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -244,6 +244,14 @@ - **mcp:** move `enforceScopes` guard before `MCP_TOOL_MAP` lookup, add inline `scopes` parameter to `withScopeEnforcement()`, and declare scopes on all 24 dynamic tool definitions (memory, skills, plugins, gamification, compression) to fix scope enforcement for dynamic MCP tool groups (#2958) +### ✨ New Features + +- **notion:** add Notion as an MCP context source — 6 tools (`notion_search`, `notion_list_databases`, `notion_get_database`, `notion_query_database`, `notion_read`, `notion_append_blocks`) scoped under `read:notion` / `write:notion`, with dashboard "Context Sources" tab, settings API, and token persistence in `key_value` table (#2959) + +### 🔧 Bug Fixes + +- **mcp:** move `enforceScopes` guard before `MCP_TOOL_MAP` lookup, add inline `scopes` parameter to `withScopeEnforcement()`, and declare scopes on all 24 dynamic tool definitions (memory, skills, plugins, gamification, compression) to fix scope enforcement for dynamic MCP tool groups (#2958) + --- ## [3.8.7] — 2026-05-29 diff --git a/open-sse/config/errorConfig.ts b/open-sse/config/errorConfig.ts index 3bcad8edcc..e5333cd421 100644 --- a/open-sse/config/errorConfig.ts +++ b/open-sse/config/errorConfig.ts @@ -141,6 +141,12 @@ export const ERROR_RULES: ErrorRule[] = [ backoff: true, reason: "quota_exhausted", }, + { + id: "free_tier_exhausted", + text: "free tier of the model has been exhausted", + backoff: true, + reason: "quota_exhausted", + }, { id: "capacity", text: "capacity", backoff: true, reason: "model_capacity" }, { id: "overloaded", text: "overloaded", backoff: true, reason: "model_capacity" }, { id: "status_401", status: 401, cooldownMs: 0, reason: "auth_error" }, diff --git a/open-sse/services/accountFallback.ts b/open-sse/services/accountFallback.ts index 62527fb482..507e1c2bca 100644 --- a/open-sse/services/accountFallback.ts +++ b/open-sse/services/accountFallback.ts @@ -126,6 +126,7 @@ export const CREDITS_EXHAUSTED_SIGNALS = [ "resource has been exhausted", "resource_exhausted", "check quota", + "free tier of the model has been exhausted", ]; // T11: Signals that indicate OAuth token is invalid/expired (not permanent deactivation)