Commit Graph

655 Commits

Author SHA1 Message Date
diegosouzapw
ed19e0f43e Merge branch 'feat/zero-config-auto-routing' into release/v3.8.0 2026-05-10 18:34:04 -03: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
diegosouzapw
ec6456ba73 chore(release): align migration compatibility and packaged CLI runtime
Skip the superseded 041 session_account_affinity migration when
the canonical 050 file is present, and remap legacy migration
markers so upgraded databases do not replay the duplicate slot.

Also include the CLI entrypoints in packaged artifacts and extend
management-auth coverage across admin memory, pricing, routing,
provider validation, and usage endpoints to keep release bundles
runnable and sensitive operations protected.
2026-05-10 18:27:41 -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
9ddcd8bda8 feat(auto): add auto prefix parser 2026-05-11 01:45:56 +07:00
diegosouzapw
c14e43a52f fix(translator): preserve body.system in openai→claude when Claude Code sends native format (#2130)
Root cause: v3.7.9 fix for #1966 removed the unconditional CLAUDE_SYSTEM_PROMPT
injection, which also removed the else branch that always set result.system.
When Claude Code sends system prompt as body.system (native Anthropic array)
through /v1/chat/completions, the translator only looked at role='system'
messages in body.messages — body.system was silently dropped.

Fix: The translator now checks for body.system and preserves it:
- If both body.system and role='system' messages exist, they are merged
- If only body.system exists, it passes through as-is
- If only role='system' messages exist, behavior unchanged
- If neither exists, result.system remains undefined (no forced injection)

Also removes the dead CLAUDE_SYSTEM_PROMPT import.

Includes 4 regression tests covering all combinations.
2026-05-10 15:29:17 -03: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
HomerOff
4ea2a96e13 fix(authz): classify /dashboard/onboarding as PUBLIC to unblock setup wizard (#2127)
- Add exact-match guard for /dashboard/onboarding before the broad /dashboard prefix
- Add setup_wizard and client_api_mcp to ClassificationReason union type
- Update test to verify PUBLIC classification

Co-authored-by: HomerOff <homeroff76@gmail.com>
2026-05-10 13:33:20 -03:00
diegosouzapw
58e5ce3900 chore: enhance Inworld TTS support 2026-05-10 10:26:22 -03:00
diegosouzapw
cc79237af7 Fix CC-compatible streaming bridge 2026-05-10 09:44:11 -03:00
diegosouzapw
01aafd348c fix(sse): classify hour quota errors as QUOTA_EXHAUSTED 2026-05-10 09:44:05 -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
887926e0ad chore(security): fix code scanning alerts 2026-05-10 01:15:07 -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
smartenok-ops
fa29e19863 feat(auth): per-session sticky routing for codex (#1887)
Integrated into release/v3.8.0
2026-05-10 00:58:07 -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
payne
d06d1ae49c feat(cursor): full OpenAI parity (tool calls, streaming, sessions) (#2082)
Merged automatically
2026-05-10 00:00:18 -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
Gioxa
149d13cb9c fix(kiro): merge adjacent user history turns after role normalization (#2105)
Merged automatically
2026-05-10 00:00:08 -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
Paijo
cdd71ab211 feat(providers): batch delete provider connections via checkbox multi-select (#2094)
Integrated into release/v3.8.0
2026-05-09 21:43:10 -03:00
Ilham Ramadhan
4a6865650d fix(kiro): normalize tool-use payloads (#2104)
Integrated into release/v3.8.0
2026-05-09 21:39:10 -03:00
Gleb Peregud
043d345647 feat(api): allow configuration via API calls - open management routes to Bearer keys with manage scope - (#2103)
Integrated into release/v3.8.0
2026-05-09 21:35:51 -03:00
Jan Leon
ad2600b4d0 feat: update API bridge proxy timeout to 600000ms and enhance related tests 2026-05-09 12:42:59 +00:00
diegosouzapw
7b80e80a1e fix(runtime): harden timer handling and model pricing fallback
Align runtime behavior with test and stream expectations across the app.

Use `globalThis` timer APIs for SSE heartbeats, set the Playwright
server `NODE_ENV` explicitly by mode, and fall back to Codex pricing
lookups after stripping effort suffixes when a direct model match is
missing.

Refresh affected unit and e2e coverage to use deterministic timers and
updated settings navigation so timeout- and stream-related assertions are
stable on release builds.
2026-05-08 19:00:06 -03:00
diegosouzapw
276e5da137 Merge PR #2019 and resolve conflicts 2026-05-08 17:54:35 -03:00
diegosouzapw
a52c9ceb45 fix: update dependencies and merge PR 2035 2026-05-08 17:46:32 -03:00
diegosouzapw
aacd43bb45 fix: clean up proxy page redundancy and fix 1proxy sync empty body error (#2052) 2026-05-08 17:43:41 -03:00
Paijo
13ce9d69cb feat(multi): manifest-aware tier routing — W1-W4 complete (#2014)
Integrated into release/v3.8.0
2026-05-08 17:35:49 -03:00
Raxxoor
831829dbc3 fix(compression): support Responses input and expand Spanish rules (#2028)
Integrated into release/v3.8.0
2026-05-08 17:35:43 -03:00
Raxxoor
deb2180c9b fix(db): reduce hot-path persistence overhead (#2039)
Integrated into release/v3.8.0
2026-05-08 17:35:36 -03:00
Paijo
60bb00be41 fix(db): add missing migration renumbering entries for compression migrations (#2041)
Integrated into release/v3.8.0
2026-05-08 17:35:31 -03:00
Markus Hartung
a47bb90388 fix: Follow OpenAI specification, handle throttling in batch and fix UI (#2045)
Integrated into release/v3.8.0
2026-05-08 17:35:06 -03:00
Wauputra
bc6d0a3641 [cli omniroute] Add modular CLI setup and provider commands (#2046)
Integrated into release/v3.8.0
2026-05-08 17:35:01 -03:00
Dohyun Jung
39ae0314b6 feat(combo): add context_length input field to combo edit form (#2047)
Integrated into release/v3.8.0
2026-05-08 17:34:56 -03:00
Eric Chan
dc94613e6a fix(auth): allow bootstrap without password (#2048)
Integrated into release/v3.8.0
2026-05-08 17:34:51 -03:00
diegosouzapw
ad966b15f2 fix(core): restore Claude Code adaptive thinking defaults and resolve audio transcription CORS regression
- Restored default adaptive thinking injection for non-Haiku Claude Code models when explicit client headers are omitted.
- Updated Claude OAuth unit tests to accurately account for dynamic cliUserID property injection in mapped credentials.
- Fixed module resolution regression in audio transcription handler caused by missing getCorsOrigin utility.
2026-05-08 16:37:36 -03:00
Jan Leon
43553646ed feat: add fallbackDelayMs to combo configuration and related settings 2026-05-08 19:21:34 +00:00
diegosouzapw
4331e129ab chore(release): v3.8.0 — optimize cache control preservation and align Antigravity provider 2026-05-08 16:19:04 -03:00
guanbear
fc84e5a34a Fix bare GPT-5.5 routing for Codex-only installations (#2054)
Integrated into release/v3.8.0
2026-05-08 15:57:52 -03:00
Paijo
962faa84e9 feat(chat): dynamic tool limit detection with proactive truncation (#2061)
Integrated into release/v3.8.0
2026-05-08 15:57:46 -03:00
ivan-mezentsev
afdebbc793 fix(sse): use Gemini schema for Antigravity Claude (#2063)
Integrated into release/v3.8.0
2026-05-08 15:57:41 -03:00
Jan Leon
3662f90095 feat: enhance chat handling with cached settings and deduplicate quota fetches in reset-aware strategy 2026-05-08 16:57:25 +00:00
Jan Leon
9d3eb480a2 feat(usage): account for codex fast tier analytics 2026-05-08 11:16:14 +00:00
Jan Leon
1929b44235 feat: implement global Codex fast service tier functionality and related settings 2026-05-08 08:58:38 +00:00
ivan_yakimkin
f1af90e97e feat(antigravity): overhaul identity, fingerprinting & envelope format
- Add centralized antigravityIdentity service (sessionId, machineId, requestId)
- Switch User-Agent to Electron/Chrome desktop format
- Reorder upstream URLs: sandbox first, production last
- Add runtime headers: x-client-name, x-client-version, x-machine-id, x-vscode-sessionid, x-goog-user-project
- Add 403 retry without x-goog-user-project header
- Add generation defaults (topK=40, topP=1.0, maxOutputTokens guard)
- Strip cache_control from Claude requests recursively
- Enterprise/consumer routing via userAgent field (jetski vs antigravity)
- Update envelope field order and add enabledCreditTypes
- MITM proxy: support multiple target hosts
- Version: semver comparison with pickNewestVersion(), bump fallback to 4.1.33
- Update all affected tests
2026-05-07 18:14:55 +03:00