Commit Graph

475 Commits

Author SHA1 Message Date
oyi77
d7dcd233a2 feat(provider): add hasFree flag to friendliai, chutes, featherless-ai 2026-05-17 05:24:11 +07:00
oyi77
b83d1a0fc8 feat(provider): add Gitlawb Opengateway provider (xiaomi-mimo + gmi-cloud)
Add two OpenAI-compatible API-key providers via the Gitlawb Opengateway
gateway at opengateway.gitlawb.com:

- gitlawb (alias glb): xiaomi-mimo endpoint with 5 MiMo models
- gitlawb-gmi (alias glb-gmi): gmi-cloud endpoint with 40+ models
  including GPT-5.x, Claude 4.x, DeepSeek, Gemini, Qwen, GLM, Kimi

Both providers include CLI-mimicking headers (User-Agent, X-Title,
HTTP-Referer) to avoid upstream rate limiting. GMI Cloud provider
has passthroughModels enabled since model access varies per API key.
2026-05-17 05:24:11 +07:00
diegosouzapw
789a263967 feat(dashboard): provider summary card, free test btn, sidebar order, i18n fix
- sidebarVisibility: move endpoints before api-manager
- en.json: add freeTierProviders/Label/Desc + providerSummaryAll to providers namespace
- page.tsx: apply showConfiguredOnly filter to free tier section (was hardcoded false)
- page.tsx: replace search bar with summary Card containing:
    search (25%) + configured-only toggle + test-all button / dot legend / stats row
    stats show Total / Free / OAuth / API Key configured/total counts
- page.tsx: add batch test button to Free Tier Providers section header
- page.tsx: remove duplicate configured-only toggle from OAuth section header
- page.tsx: import Card component
2026-05-16 15:53:37 -03:00
diegosouzapw
b3b006b630 fix(dashboard): compact empty state, remove free badges, shrink toggle
- ProviderCard: remove Free Tier badge (dots already indicate type/free)
- ProviderCard: add dual-dot for providers with hasFree + paid authType
- ProviderCard: font-size xs for name, Toggle shrunk to size xs
- Toggle: add xs size variant (w-6 h-3 track, 8px thumb)
- page.tsx: compact Compatible Providers empty state (single inline line)
2026-05-16 12:25:02 -03:00
diegosouzapw
91af593bb2 feat(dashboard,sse): add OpenCode Free provider (noAuth, public endpoint)
Adds 'opencode' to FREE_PROVIDERS as a no-auth provider using the public
OpenCode endpoint (https://opencode.ai/zen/v1). The existing OpencodeExecutor
already skips the Authorization header when no API key is present. Registry
entry reuses the opencode executor and shares models from the zen/v1 endpoint.
2026-05-16 11:29:57 -03:00
diegosouzapw
beb43a8bea feat(dashboard): add A2A audit page, stats bar on MCP audit, fix sidebar duplicates
- Add /dashboard/audit/a2a page with A2aAuditTab: lists tasks with skill/state
  filters, colored state badges, duration, events and artifacts counts
- Add "A2A Audit" item to Audit sidebar group (Monitoring section)
- Remove duplicate "MCP Audit" from MCP Server sidebar group — it stays
  only in the Audit group under Monitoring
- Improve McpAuditTab: fetch /api/mcp/audit/stats and show 4-card stat bar
  (calls 24h, success rate, avg duration, top tool) above the filters
- Add audit-a2a to HIDEABLE_SIDEBAR_ITEM_IDS
- Add i18n keys: auditA2a in sidebar + header sections, a2a* in compliance namespace
2026-05-16 09:57:40 -03:00
diegosouzapw
06bdc31a50 refactor(dashboard): rename MCP/A2A pages to *Server, wrap headers in Card, add MCP sidebar group
- Rename sidebar/page titles: "mcp" → "MCP Server", "a2a" → "A2A Server" (en.json)
- Wrap top header section in <Card> on both MCP and A2A pages for consistent styling
- Remove redundant "hub MCP Server" / "group_work A2A Server" headings from page body
- Add MCP_GROUP collapsible sidebar group (MCP Server + MCP Audit) in Agentic Features
- Update AGENTIC_FEATURES_ITEMS type to SidebarSectionChild[] to support groups
2026-05-16 09:38:07 -03:00
diegosouzapw
da8218856b refactor(dashboard): reestruturação completa do sidebar — 9 seções, sub-grupos visuais, abas → páginas
- sidebarVisibility: novo tipo SidebarItemGroup para sub-grupos; SidebarSectionDefinition usa children[] (flat items + grupos); getSectionItems() helper; 9 seções (home, omni-proxy, analytics, monitoring, devtools, agentic-features, other-features, configuration, help); 8 sub-grupos (Compression Context, Tools, Integrations, Proxy, Costs Parameters, Audit, Batch); novos itens mitm-proxy e 1proxy
- Sidebar: OmniProxy pinada por default na primeira visita; home sem cabeçalho de seção; sub-grupos renderizados como separadores visuais (não colapsáveis); collapsed mode achata grupos corretamente
- Header: getSectionItems para lookup de hrefs; descrições para mitm-proxy, 1proxy
- Páginas convertidas (tabs → conteúdo direto): analytics, costs, audit, batch, logs, system/proxy
- Páginas com redirect: settings/page → /settings/general; settings/pricing → /costs/pricing
- McpAuditTab extraído para componente compartilhado (elimina duplicação audit/page + audit/mcp/page)
- Novas páginas: system/mitm-proxy e system/1proxy (wrappers das abas existentes)
- i18n: 17 novas chaves em 41 locales (sub-grupos, seções renomeadas, novos itens)
- AppearanceTab: usa getSectionItems para visibilidade do sidebar
2026-05-15 22:48:35 -03:00
diegosouzapw
a5f33017fd feat(dashboard): accordion sidebar + OmniProxy section + pin behavior
- Rename first section from "Routing" to "OmniProxy" with collapsible header
- Accordion behavior: opening a section closes all non-pinned sections
- Pin button (push_pin) on section headers — visible on hover, always visible when pinned
- Pinned sections stay open regardless of accordion toggle
- Both expanded + pinned state persisted to localStorage
- i18n: add omniProxySection key to all 41 locales
2026-05-15 20:26:45 -03:00
diegosouzapw
a045ddca56 feat(dashboard): tabs → pages, collapsible sidebar, narrower width, tooltips
- Sidebar: w-80 → w-[220px], 12 collapsible sections (default: routing open),
  localStorage persistence, auto-expand active section, styled JS tooltip on mini mode
- sidebarVisibility: restructure from 6 to 12 sections, add 22 new item IDs
- Header: add HEADER_DESCRIPTIONS for all 22 new routes
- i18n: add 23 sidebar + 20 header keys to all 41 locale files
- New pages (Proposal A — tabs become dedicated routes):
  /dashboard/mcp, /dashboard/a2a, /dashboard/api-endpoints
  /dashboard/analytics/{evals,search,utilization,combo-health,compression}
  /dashboard/costs/{budget,pricing}
  /dashboard/batch/files
  /dashboard/logs/{proxy,console,activity}
  /dashboard/audit/mcp
  /dashboard/settings/{general,appearance,ai,security,routing,resilience,advanced}
2026-05-15 19:53:02 -03:00
diegosouzapw
3975d2c10f feat(dashboard): complete header descriptions for all sidebar pages
- Add header descriptions for 13 remaining pages (agents, cloud-agents, memory,
  skills/omniSkills, agent-skills, translator, playground, search-tools, logs,
  audit, webhooks, health, proxy) across all 41 locale files
- Update HEADER_DESCRIPTIONS map in Header.tsx to cover all 30 sidebar pages
- Remove page-body title block from agent-skills page (cherry-picked from feat/v3.8.0-features)
2026-05-15 17:26:42 -03:00
diegosouzapw
291c1ffaf8 feat(skills): add 5 CLI skills + split AgentSkills / OmniSkills pages
- Add skills/omniroute-cli/SKILL.md — CLI entry point (install, global flags, output formats, env vars)
- Add skills/omniroute-cli-admin/SKILL.md — server lifecycle, setup, doctor, backup, autostart, tunnels
- Add skills/omniroute-cli-providers/SKILL.md — provider connections, keys, OAuth, models, combos, quota
- Add skills/omniroute-cli-cloud/SKILL.md — Codex / Devin / Jules cloud agent task workflow
- Add skills/omniroute-cli-eval/SKILL.md — eval suites, run + watch, scorecard, CI integration
- Update agentSkills.ts: add category field (api | cli), add 5 new CLI skills (18 total)
- Create /dashboard/agent-skills page (AgentSkills) with API + CLI sections and copy-URL buttons
- Remove AI Skills tab from /dashboard/skills (OmniSkills) — now a separate page
- Add agent-skills to sidebar (CLI section) with i18n keys omniSkills + agentSkills
- Update skills/README.md and omniroute/SKILL.md index tables
2026-05-15 17:23:42 -03:00
diegosouzapw
68ca8bf1e9 refactor(dashboard): remove page-body headers, add topology multi-ring, icon+title header
- ProviderTopology: replace single-ring ellipse with multi-ring concentric layout (6 rings)
  - Providers sorted active → error → last-used → rest; compact node design (text-xs, 16px icon)
- Header: derive icon/title from SIDEBAR_SECTIONS auto-mapping, remove breadcrumbs logic
  - Add HEADER_DESCRIPTIONS map for all pages with known descriptions
  - Use sidebar i18n namespace for titles (covers all 42 locales)
- DashboardLayout: remove <Breadcrumbs /> component
- Add header descriptions for 9 new pages (costs, cache, limits, api-manager, batch,
  context-caveman/rtk/combos, changelog) across all 41 locale files
- Remove duplicate page-body title+description from 16 pages: costs, analytics, cache,
  cache/media, context/caveman/rtk/combos, changelog, agents, cloud-agents, skills,
  audit, translator, webhooks, memory, health — preserving action buttons in each
- Rename sidebar "Limits & Quotas" → "Quota Limits" (en.json)
- run-next.mjs: pre-read DATA_DIR from .env before bootstrap (zero-config dev start)
2026-05-15 17:20:48 -03:00
diegosouzapw
678dee2ede Merge PR #2240: feat: CLI Integration Suite for issue #2016
Adds 5 new CLI management commands (config, status, logs, update, provider),
3 API endpoints (/api/cli-tools/{detect,config,apply}), config generators
for 6 tools (Claude, Cline, Codex, Continue, KiloCode, OpenCode), zero-config
auto-routing via auto/ prefix, and @omniroute/opencode-provider npm package.

Fixes: merge conflict in RoutingTab.tsx, help text indentation, README conflicts.
Closes #2016

Co-authored-by: oyi77 <paijo@users.noreply.github.com>
2026-05-14 09:27:18 -03:00
oyi77
2d601ea459 feat: CLI Integration Suite for issue #2016
- Add tool-detector.ts (6 CLI tools: claude, codex, opencode, cline, kilocode, continue)
- Add config-generator/ factory + 6 generators (JSON + YAML)
- Add doctor/checks.ts for CLI tool health checks
- Add log-streamer.ts for usage log streaming
- Add @omniroute/opencode-provider npm package
- Add 5 CLI commands: config, status, logs, update, provider
- Add 3 API routes: config, detect, apply
- Update bin/omniroute.mjs, bin/cli/index.mjs, package.json
- Update docs: SETUP_GUIDE.md, CLI-TOOLS.md
- All tests pass (4302/4326, 24 pre-existing failures unchanged)
2026-05-14 17:26:30 +07:00
Andrew Munsell
0caca472d4 feat(search): add Z.AI Coding Plan Search via MCP protocol (#2238)
Integrated into release/v3.8.0 with Zod schema validation replacing JSON.parse(parsed)
2026-05-14 05:42:22 -03:00
Anton
b9db934e39 fix(sse-heartbeat): shape-aware keepalives keep streams alive through stricter proxies (#2233)
Integrated into release/v3.8.0 with idle timeout default reverted to 600s
2026-05-14 05:23:26 -03:00
Anton
253f5e5904 fix(ModelSync): shared loopback readiness gate + IPv4 force (#2221)
Integrated into release/v3.8.0
2026-05-14 00:16:22 -03:00
diegosouzapw
46932961d4 refactor(env): promote hardcoded URLs and circuit-breaker timeouts to environment
Centralizes a handful of hardcoded URLs, fetch timeouts, and circuit-breaker
constants behind opt-in environment variables. Behavior is unchanged when
the variables are unset because every call site keeps its current default.

- open-sse/services/usage.ts: extracts CROF_USAGE_URL,
  GEMINI_CLI_USAGE_URL, CODEWHISPERER_BASE_URL constants backed by
  OMNIROUTE_CROF_USAGE_URL, OMNIROUTE_GEMINI_CLI_USAGE_URL, and
  OMNIROUTE_CODEWHISPERER_BASE_URL. Lets operators redirect quota probes
  through corporate mirrors or a test fixture.
- open-sse/config/constants.ts: PROVIDER_PROFILES circuit-breaker
  thresholds and reset timeouts now honor OMNIROUTE_CIRCUIT_BREAKER_*
  env vars (oauth/api-key/local) with the same defaults as before.
- src/shared/utils/fetchTimeout.ts: DEFAULT_TIMEOUT_MS reads
  OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS (fallback 120000) so deployments can
  raise the global fallback without changing FETCH_TIMEOUT_MS semantics.
- open-sse/services/chatgptTlsClient.ts: DEFAULT_TIMEOUT_MS and
  HARD_TIMEOUT_GRACE_MS now honor OMNIROUTE_CHATGPT_TLS_TIMEOUT_MS and
  OMNIROUTE_CHATGPT_TLS_GRACE_MS (defaults 60000 / 10000).
- .env.example: documents the 11 new variables in the URLs and TIMEOUT
  sections.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 10:55:33 -03:00
diegosouzapw
46e5aa5522 refactor(api): consolidate auth routing and provider config handling
Centralize optional API key capability checks so dashboard forms and
provider schemas share the same rules, including keyless Pollinations
support and cloud-agent batch testing mode.

Also align auto-combo config on `routerStrategy`, keep legacy combo
reads compatible, preserve MCP routes as management APIs, narrow
`require-login` public access to readonly/bootstrap flows, and make
cloud-agent CORS reflect the request origin for credentialed requests.
2026-05-13 03:47:40 -03:00
Dohyun Jung
fc620514a9 feat(providers): add Command Code provider (#2199)
Integrated into release/v3.8.0 after syncing the contributor branch, removing unrelated workflow/package-lock changes, and validating Command Code provider, auth, validation, and Responses coverage locally.
2026-05-12 19:57:35 -03:00
backryun
af7d056f7e chore(providers): improve BazaarLink and Completions.me support (#2177)
Integrated into release/v3.8.0 after syncing the contributor branch, removing unrelated dependency churn, and validating executor/default URL coverage locally.
2026-05-12 19:57:06 -03:00
Anton
340f68bbee fix(modelSpecs): cap thinking budget for Claude Opus 4.6 / 4.7 / Sonnet 4.6 (#2197)
Integrated into release/v3.8.0 after syncing the contributor branch and validating tests/unit/thinking-budget.test.ts locally.
2026-05-12 19:44:45 -03:00
diegosouzapw
be76707452 fix(cliRuntime): resolve TDZ for isWindows in devin config via lazy getter, add spawn metachar guard
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-11 22:22:26 -03:00
Andrew Munsell
ed1554b7a1 feat(search): add Ollama Search as a web search provider (#2176)
Integrated into release/v3.8.0 — adds Ollama Search as a web search provider.
2026-05-11 21:54:34 -03:00
Aleksandr
ff730b372e feat(oauth): complete Windsurf / Devin CLI OAuth + API-token flows (#2168)
Integrated into release/v3.8.0 — complete Windsurf/Devin CLI OAuth + API-token executor flows with unit tests.
2026-05-11 21:49:32 -03:00
Dohyun Jung
dcb32a6ba0 feat(api): aggregate combo model metadata in catalog (#2166)
Integrated into release/v3.8.0 — adds target-based metadata aggregation for combo entries in /v1/models using least-common-denominator approach (context_length, max_output_tokens, capabilities, modalities).
2026-05-11 21:14:25 -03:00
Anton
b3fe7ddcb1 chore(registry): refresh per-model contextLength/maxOutputTokens for active providers (#2163)
Integrated into release/v3.8.0 — refreshes per-model contextLength/maxOutputTokens for claude, kiro, github, kimi-coding, xiaomi-mimo, and codex/gpt-5.5 (OAuth cap 400K). Fixes provider-ID mismatch causing context_length fallthrough to defaults.
2026-05-11 21:04:01 -03:00
Andrew Munsell
6d722ecd27 fix(providers): allow optional-key providers to pass connection test (#2169)
Integrated into release/v3.8.0 — allows optional-key providers (SearXNG, Petals, self-hosted chat, OpenAI/Anthropic-compatible) to pass connection test by centralizing the check in providerAllowsOptionalApiKey().
2026-05-11 20:57:01 -03:00
diegosouzapw
0594b1d2ea fix(providers): correct pollinations requests and provider dashboard state
Update Pollinations request transformation to send the selected model
and stream flag so requests match the active endpoint behavior.

Align the ChatGPT TLS client with shared proxy resolution so dashboard
proxy context is honored before falling back to environment settings.
Also refresh provider display names across dashboard pages, correct the
Claude extra-usage toggle messaging and visual state, and mark
Pollinations as offering a free public endpoint.
2026-05-11 15:51:05 -03:00
backryun
602f897c50 fix: remove duplicate cloud agent provider constants (#2141)
Integrated into release/v3.8.0 — Kiro model alias normalization (dash→dot), trimmed duplicate catalog entries, and new tests.
2026-05-10 23:47:20 -03:00
diegosouzapw
fa1295d3cf Merge remote-tracking branch 'origin/release/v3.8.0' into bugs/2120_docker
# Conflicts:
#	open-sse/executors/antigravity.ts
#	open-sse/services/accountFallback.ts
#	open-sse/services/usage.ts
#	open-sse/translator/helpers/geminiHelper.ts
#	open-sse/utils/error.ts
#	src/lib/db/apiKeys.ts
2026-05-10 21:22:21 -03:00
diegosouzapw
8b3f170b38 Merge branch 'release/v3.8.0' of https://github.com/diegosouzapw/OmniRoute into release/v3.8.0
# Conflicts:
#	open-sse/services/autoCombo/virtualFactory.ts
2026-05-10 21:21:31 -03:00
backryun
110fa35d04 fix: restore cloud agent provider exports and logger import (#2138)
Integrated into release/v3.8.0 — cloud agent provider exports and logger import fixes were already present in the release branch. Thank you for the quick response to the crash report!
2026-05-10 21:20:39 -03:00
diegosouzapw
40bd60959e refactor(core): strengthen typing and normalize auth and model flows
Tighten executor, usage, model-resolution, and state-management
code with explicit types and safer record handling to reduce runtime
edge cases across providers.

Also normalize management-token failures to 403 responses, require API
keys consistently on cloud agent task routes with CORS-safe errors,
refresh stale Gemini CLI project IDs, prioritize Gemini search tools
correctly, add new provider/model registry entries, and serialize
integration tests for more reliable CI.
2026-05-10 20:48:03 -03:00
Markus Hartung
bff9a0c4a6 refactor: improve type safety and add cloud agent providers
- Update types in several files to reduce usage of `any`
- Fix `fetch` body type error in `AntigravityExecutor` by returning `ReadableStream`
- Add `CLOUD_AGENT_PROVIDERS` constants

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-11 00:41:36 +02:00
diegosouzapw
87dfbcca62 Merge remote-tracking branch 'origin/release/v3.8.0' into feat/zero-config-auto-routing
# Conflicts:
#	CHANGELOG.md
#	Dockerfile
#	docs/i18n/ar/CHANGELOG.md
#	docs/i18n/bg/CHANGELOG.md
#	docs/i18n/bn/CHANGELOG.md
#	docs/i18n/cs/CHANGELOG.md
#	docs/i18n/da/CHANGELOG.md
#	docs/i18n/de/CHANGELOG.md
#	docs/i18n/es/CHANGELOG.md
#	docs/i18n/fa/CHANGELOG.md
#	docs/i18n/fi/CHANGELOG.md
#	docs/i18n/fr/CHANGELOG.md
#	docs/i18n/gu/CHANGELOG.md
#	docs/i18n/he/CHANGELOG.md
#	docs/i18n/hi/CHANGELOG.md
#	docs/i18n/hu/CHANGELOG.md
#	docs/i18n/id/CHANGELOG.md
#	docs/i18n/it/CHANGELOG.md
#	docs/i18n/ja/CHANGELOG.md
#	docs/i18n/ko/CHANGELOG.md
#	docs/i18n/mr/CHANGELOG.md
#	docs/i18n/ms/CHANGELOG.md
#	docs/i18n/nl/CHANGELOG.md
#	docs/i18n/no/CHANGELOG.md
#	docs/i18n/phi/CHANGELOG.md
#	docs/i18n/pl/CHANGELOG.md
#	docs/i18n/pt-BR/CHANGELOG.md
#	docs/i18n/pt/CHANGELOG.md
#	docs/i18n/ro/CHANGELOG.md
#	docs/i18n/ru/CHANGELOG.md
#	docs/i18n/sk/CHANGELOG.md
#	docs/i18n/sv/CHANGELOG.md
#	docs/i18n/sw/CHANGELOG.md
#	docs/i18n/ta/CHANGELOG.md
#	docs/i18n/te/CHANGELOG.md
#	docs/i18n/th/CHANGELOG.md
#	docs/i18n/tr/CHANGELOG.md
#	docs/i18n/uk-UA/CHANGELOG.md
#	docs/i18n/ur/CHANGELOG.md
#	docs/i18n/vi/CHANGELOG.md
#	docs/i18n/zh-CN/CHANGELOG.md
#	open-sse/config/providerRegistry.ts
#	open-sse/handlers/chatCore.ts
#	open-sse/services/usage.ts
#	open-sse/utils/streamReadiness.ts
#	scripts/check-docs-sync.mjs
#	src/app/(dashboard)/dashboard/cache/media/MediaPageClient.tsx
#	src/app/(dashboard)/dashboard/providers/[id]/page.tsx
#	src/app/(dashboard)/dashboard/settings/components/ProxyTab.tsx
#	src/app/(dashboard)/dashboard/settings/components/RoutingTab.tsx
#	src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.tsx
#	src/app/api/usage/analytics/route.ts
#	src/i18n/messages/zh-CN.json
#	src/lib/embeddings/service.ts
#	src/lib/usage/providerLimits.ts
#	src/mitm/cert/install.ts
#	src/shared/constants/providers.ts
#	src/sse/handlers/chat.ts
#	tests/unit/compression/rtk-code-stripper.test.ts
#	tests/unit/usage-service-hardening.test.ts
2026-05-10 18:33:20 -03:00
eleata
e58aea9df7 feat(resilience): useUpstream429BreakerHints toggle (#2100 follow-up to #2116) (#2133)
Integrated into release/v3.8.0 — adds useUpstream429BreakerHints toggle with per-provider defaults for circuit breaker cooldown trust.
2026-05-10 18:27:24 -03:00
oyi77
fbb4dfaf37 fix(auto): address PR #2131 review issues
- Fix OAuth expiry handling for ISO strings in virtualFactory.ts
- Move AutoRoutingBanner test from src/ to tests/unit/shared/components/
- Remove mock metrics from analytics endpoint, return only real data
- Fix error handling for bare 'auto' prefix in chat.ts (check isAutoRouting)
- Update vitest.config.ts to include tests/unit/**/*.test.tsx pattern
2026-05-11 01:49:10 +07:00
oyi77
e1ab7c9273 feat(auto): complete zero-config auto-routing feature
- Add auto-prefix parser (autoPrefix.ts) for auto/Cvariant detection
- Add virtual auto-combo factory (virtualFactory.ts) building combos from active providers
- Integrate auto/ prefix into chat routing (chat.ts) - supports bare 'auto' and 'auto/variant'
- Add system provider 'auto' in providers.ts (systemOnly)
- Add AutoRoutingBanner component with localStorage dismissal
- Add auto-routing settings in RoutingTab (toggle + variant selector)
- Add auto-routing analytics tab (AutoRoutingAnalyticsTab) + API endpoint
- Add Case 0 zero-config documentation to README.md
- Add autoRoutingEnabled/enforcement and autoRoutingDefaultVariant settings
- Add analytics endpoint auth via requireManagementAuth
- Add empty-pool graceful handling in virtualFactory
- Add dynamic import error handling with try/catch
- Tests: 126/126 passing
2026-05-11 01:49:10 +07:00
payne0420
ee228e6657 feat(cursor): surface Cursor Pro plan usage on provider-limits dashboard (#2128)
- Replace legacy getCursorUsage with dashboard API (cursor.com/api/dashboard/get-current-period-usage)
- Use WorkOS session cookie auth instead of Bearer token
- Surface 3 quota windows: Total, Auto + Composer, API
- Register cursor in USAGE_SUPPORTED_PROVIDERS
- Add fetchUserInfo() to resolve real email on import
- Remove ~170 lines of dead code (old fetcher + helpers)
- Add 6 comprehensive tests with fetch mocking

Co-authored-by: payne0420 <baboialex95@gmail.com>
2026-05-10 13:33:55 -03:00
eleata
e0928f6b37 feat(circuit-breaker): classify 429 errors and apply per-kind cooldowns (#2116)
Integrated into release/v3.8.0
2026-05-10 09:43:22 -03:00
diegosouzapw
73bda23c60 chore(release): finalize v3.8.0 stabilization and fix typescript regressions
- Fix stream readiness loop and upstream error code propagation in chatCore.ts

- Resolve Headers iterator TypeScript errors

- Fix type mismatches and missing props in BuilderIntelligentStep, Card, and providers page

- Fix providerLimits typecasts and resolve implicit any errors

- Ensure green build and strict type compliance for production
2026-05-10 09:10:43 -03:00
diegosouzapw
7e13bd36f5 Merge branch 'pr-2019' into release/v3.8.0
# Conflicts:
#	open-sse/handlers/chatCore.ts
#	open-sse/services/comboConfig.ts
#	open-sse/services/usage.ts
#	src/app/(dashboard)/dashboard/providers/[id]/page.tsx
#	src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.tsx
#	src/app/(dashboard)/dashboard/usage/components/ProviderLimits/utils.tsx
#	src/app/api/usage/analytics/route.ts
#	src/lib/db/migrationRunner.ts
#	src/lib/usage/providerLimits.ts
#	src/shared/constants/providers.ts
#	src/sse/handlers/chat.ts
#	tests/unit/provider-limits-ui.test.ts
#	tests/unit/usage-analytics.test.ts
#	tests/unit/usage-service-hardening.test.ts
2026-05-10 01:06:59 -03:00
Paijo
9d663db3f0 feat(cli): Comprehensive CLI Enhancement Suite - 20+ new commands (#2074)
Integrated into release/v3.8.0
2026-05-10 00:58:13 -03:00
Diego Rodrigues de Sa e Souza
3d75fb3fae Release v3.8.0 (#2073)
Integrated into release/v3.8.0
2026-05-10 00:55:06 -03:00
Raxxoor
a8106bbadd fix(glm): add dedicated coding transport (#2087)
Integrated into release/v3.8.0
2026-05-10 00:52:00 -03:00
backryun
09733e4906 Refresh providers, model catalogs, and docs for v3.8.0 (#2088)
Merged automatically
2026-05-10 00:00:11 -03:00
Pham Quang Hoa
75008d8098 feat(mcp): add DeepSeek quota and limit feature
- Add deepseekQuotaFetcher.ts for DeepSeek balance API integration
- Integrate with quotaPreflight and quotaMonitor systems
- Support both USD and CNY currency display
- Add DeepSeek to USAGE_SUPPORTED_PROVIDERS whitelist
- Add DeepSeek to PROVIDER_LIMITS_APIKEY_PROVIDERS
- Credits-style UI display with currency symbols and color coding
- Add comprehensive unit tests

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-09 23:59:45 -03:00
Yoviar Pauzi
bfb5ab0f58 fix(api): usage and keys (#2092)
Integrated into release/v3.8.0
2026-05-09 22:04:07 -03:00