diegosouzapw
6de76ea5d1
chore(docs): update CHANGELOG for v3.4.0 integrations
2026-03-31 09:18:00 -03:00
diegosouzapw
262e72d541
fix(migrations): rename 013 to 014 to avoid collision with v3.3.11
2026-03-31 09:13:25 -03:00
diegosouzapw
2f765529e5
Merge PR #851 : feat(logging): unify request log retention and artifacts
2026-03-31 09:11:57 -03:00
diegosouzapw
bcea92e313
chore: bump version to v3.4.0-dev
2026-03-31 09:11:38 -03:00
diegosouzapw
56ef849868
Merge PR #850 : test: add unit and E2E tests for settings toggles
2026-03-31 09:11:11 -03:00
diegosouzapw
2a0c4d2b0d
Merge PR #853 : fix(model-sync): log only real channel model changes
2026-03-31 09:11:10 -03:00
diegosouzapw
d4ad9b3778
Merge PR #854 : feat(providers): add 4 free models to opencode-zen
2026-03-31 09:11:09 -03:00
diegosouzapw
df972b9ae9
Merge PR #855 : feat: Improve the Chinese translation
2026-03-31 09:11:07 -03:00
diegosouzapw
f695559379
Merge PR #856 : fix: preserve client cache_control for all Claude-protocol providers
2026-03-31 09:11:02 -03:00
diegosouzapw
3fa7828324
Merge PR #859 : fix(429): parse long quota reset times from error body
2026-03-31 09:10:56 -03:00
Diego Rodrigues de Sa e Souza
dbe17b4b16
Merge pull request #860 from diegosouzapw/release/v3.3.11
...
chore(release): v3.3.11 — analytics, backup control, CLI fixes, workflow unification
v3.3.11
2026-03-31 08:20:04 -03:00
diegosouzapw
ee4df2806f
chore(release): v3.3.11 — analytics, backup control, CLI fixes, workflow unification
2026-03-31 08:17:07 -03:00
oyi77
a405f2e81e
fix(429): parse long quota reset times from error body
...
- Parse XhYmZs format from antigravity error messages (e.g., 27h41m36s)
- Dynamic retry-after threshold (60s default) instead of hardcoded 10s
- Add parseRetryFromErrorText() in accountFallback.ts for body parsing
- Fix 403 'verify your account' to trigger permanent deactivation
- Add keyword matching for 'quota will reset', 'exhausted capacity'
- Add unit tests for retry parsing and keyword matching
Fixes #858 (Antigravity 429 handling)
Fixes #832 (Qwen quota 429 - same underlying bug)
2026-03-31 17:59:54 +07:00
diegosouzapw
afc0bc9323
fix: resolve CLI detection regression and model catalog tests
2026-03-31 07:57:43 -03:00
tombii
ce28dcc630
fix: restore CacheStatsCard — was not a duplicate
...
The first commit incorrectly deleted CacheStatsCard from
settings/components/ as a "duplicate". It's the only copy — both
settings/page.tsx and cache/page.tsx import from this location.
Restored the i18n-ized version from main.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 11:40:55 +02:00
tombii
892830e125
fix: pure passthrough for Claude→Claude when cache_control preserved
...
The Claude passthrough path round-trips through OpenAI format
(claude→openai→claude) for structural normalization. This strips
cache_control markers from every content block since OpenAI format
has no equivalent, causing ~42k cache creation tokens per request
with zero cache reads.
When preserveCacheControl is true (Claude Code client, "always"
setting, or deterministic combo), skip the round-trip entirely and
forward the body as-is. Claude Code sends well-formed Messages API
payloads — the normalization was only needed for non-Code clients.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 11:17:05 +02:00
tombii
75425ab1a9
fix: preserve client cache_control for all Claude-protocol providers
...
Previously, the cache control preservation logic only recognized a
hardcoded list of providers (claude, anthropic, zai, qwen, deepseek).
This caused OmniRoute to inject its own cache_control markers for
Claude-protocol providers not in that list (bailian-coding-plan, glm,
minimax, minimax-cn, etc.), overwriting the client's cache markers.
The fix checks both:
1. Known caching providers list (existing behavior)
2. Whether targetFormat === 'claude' (all Claude-protocol providers)
This ensures all Claude-compatible providers properly preserve client
cache_control headers when appropriate (Claude Code client, deterministic
routing, etc.).
Also removes unused CacheStatsCard from settings/components (duplicate
of the one in cache/ page).
Fixes cache token calculation for GLM, Minimax, and other Claude-compatible providers.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-03-31 11:17:05 +02:00
gmw
2722847a59
feat: Improve the Chinese translation
2026-03-31 15:16:51 +08:00
kang-heewon
641f84e9f8
feat(providers): add contextLength for all opencode-zen models
2026-03-31 14:54:56 +09:00
kang-heewon
1f0a5842f9
feat(providers): add explicit contextLength for opencode-zen free models
2026-03-31 14:53:09 +09:00
kang-heewon
28c2fb92a8
feat(providers): add 4 free models to opencode-zen
2026-03-31 14:46:34 +09:00
R.D.
715101cf5e
fix(model-sync): log only channel-level model changes
2026-03-31 00:44:38 -04:00
oyi77
ac37a44ffa
fix(cache): only inject prompt_cache_key for supported providers
...
Only inject prompt_cache_key for providers that support prompt caching
(Claude, Anthropic, ZAI, Qwen, DeepSeek). This fixes issue #848 where
NVIDIA API rejected the parameter.
2026-03-31 11:30:03 +07:00
oyi77
ae3d2bebbe
docs: add dashboard settings toggles to CONTRIBUTING
...
Add section documenting:
- Debug Mode toggle (Settings → Advanced)
- Sidebar Visibility toggle (Settings → General)
2026-03-31 11:21:30 +07:00
R.D.
f8d4e1a307
feat(logging): unify request log retention and artifacts
2026-03-31 00:19:55 -04:00
oyi77
b98d6984a1
fix(tests): address code review issues
...
- Unit tests: fix async/await for getSettings, use direct db functions
- E2E tests: remove conditional logic, use Playwright auto-waiting assertions
2026-03-31 11:15:54 +07:00
oyi77
8f5c9a3c72
test(e2e): add Playwright tests for settings toggles
...
Tests cover:
- Debug mode toggle on/off
- Sidebar visibility toggle
- Settings persistence after page reload
2026-03-31 10:54:07 +07:00
diegosouzapw
e071393eb5
chore(release): v3.3.10 — version bump and docs
v3.3.10
2026-03-31 00:16:51 -03:00
Diego Rodrigues de Sa e Souza
6f9fec658f
chore(release): v3.3.10 — merge Analytics and SQLite fixes ( #849 )
...
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com >
2026-03-31 00:15:20 -03:00
Owen
9227964cb6
feat(analytics): add subscription utilization analytics ( #847 )
...
- Add quota_snapshots table for time-series quota tracking
- Add QuotaSnapshot DB module with CRUD + cleanup (6h gate)
- Add snapshot save hook in quotaCache.setQuotaCache()
- Add Provider Utilization API: GET /api/usage/utilization
- Add Combo Health API: GET /api/usage/combo-health
- Add ProviderUtilizationTab with recharts LineChart
- Add ComboHealthTab with quota/skew/performance metrics
- Add TimeRangeSelector component (1h/24h/7d/30d)
- Integrate tabs into /dashboard/analytics
- Add unit tests for quotaSnapshots module
- Add E2E tests for analytics tabs
- Add i18n keys for 33 languages
2026-03-31 00:12:27 -03:00
Randi
cf6056cede
Add env flag to disable automatic SQLite backups ( #846 )
...
* feat(db): allow disabling sqlite auto backups
* chore(db): rename sqlite auto backup env flag
2026-03-31 00:12:23 -03:00
Diego Rodrigues de Sa e Souza
4397612349
Merge pull request #842 from rdself/coder/fix-codex-fast-tier-light-mode
...
Restore Codex fast tier toggle visibility in light mode
2026-03-30 23:24:44 -03:00
diegosouzapw
cf3719a663
Merge pull request #843 from rdself/coder/provider-limits-last-refreshed with i18n synchronization
2026-03-30 23:24:41 -03:00
diegosouzapw
77bf35d728
chore(i18n): sync lastUsed key across all 30 languages
2026-03-30 23:11:55 -03:00
R.D.
e7addec0a1
fix(usage): track provider limit refreshes per account
2026-03-30 21:17:24 -04:00
R.D.
243d61d95f
fix(ui): restore codex service tier toggle contrast
2026-03-30 21:14:52 -04:00
Diego Rodrigues de Sa e Souza
028874fd05
Merge pull request #840 from diegosouzapw/release/v3.3.9
...
chore(release): v3.3.9 — summary
v3.3.9
2026-03-30 21:38:32 -03:00
diegosouzapw
6d366fe80f
chore(release): v3.3.9 — custom provider key rotation fix
2026-03-30 21:33:21 -03:00
Diego Rodrigues de Sa e Souza
0924f767e9
Merge pull request #839 from diegosouzapw/fix/issue-815-custom-provider-key-rotation
...
fix: rotate extra api keys for custom providers (#815 )
2026-03-30 21:30:56 -03:00
diegosouzapw
173b5a1cd1
fix: rotate extra api keys for custom providers ( #815 )
2026-03-30 21:13:50 -03:00
diegosouzapw
49e1d51be9
chore(release): v3.3.8
v3.3.8
2026-03-30 20:54:02 -03:00
diegosouzapw
23e47a74ee
Merge remote main
2026-03-30 20:48:25 -03:00
Diego Rodrigues de Sa e Souza
fce7f6ce47
Merge pull request #830 from rdself/coder/fix-openrouter-available-models
...
fix: align OpenRouter auto-sync with available models
2026-03-30 20:47:59 -03:00
Diego Rodrigues de Sa e Souza
f3b47a16dd
Merge pull request #831 from christopher-s/gemini-cli-adjustments
...
fix: use gemini-cli/ as model prefix instead of gc/
2026-03-30 20:47:56 -03:00
Diego Rodrigues de Sa e Souza
aa7b754693
Merge pull request #834 from oyi77/feat/cache-page-prompt-cache-tracking
...
fix(debug/sidebar): debug toggle and sidebar visibility
2026-03-30 20:47:54 -03:00
Diego Rodrigues de Sa e Souza
397b13e2d8
Merge pull request #835 from tombii/fix/cache-page-ui-polish
...
fix(ui): improve cache page header sizing and context
2026-03-30 20:47:40 -03:00
diegosouzapw
b2c203e8c1
Merge branch 'fix/streaming-reasoning-field-alias' into main
...
# Conflicts:
# open-sse/services/combo.ts
# open-sse/utils/stream.ts
# tests/unit/chat-combo-live-test.test.mjs
2026-03-30 20:45:44 -03:00
diegosouzapw
6afb314d26
Merge branch 'feat/cache-page-prompt-cache-tracking' into main
...
# Conflicts:
# src/app/(dashboard)/dashboard/settings/page.tsx
# src/app/api/settings/cache-config/route.ts
# src/i18n/messages/ar.json
# src/i18n/messages/bg.json
# src/i18n/messages/cs.json
# src/i18n/messages/da.json
# src/i18n/messages/de.json
# src/i18n/messages/es.json
# src/i18n/messages/fi.json
# src/i18n/messages/fr.json
# src/i18n/messages/he.json
# src/i18n/messages/hi.json
# src/i18n/messages/hu.json
# src/i18n/messages/id.json
# src/i18n/messages/in.json
# src/i18n/messages/it.json
# src/i18n/messages/ja.json
# src/i18n/messages/ko.json
# src/i18n/messages/ms.json
# src/i18n/messages/nl.json
# src/i18n/messages/no.json
# src/i18n/messages/phi.json
# src/i18n/messages/pl.json
# src/i18n/messages/pt-BR.json
# src/i18n/messages/pt.json
# src/i18n/messages/ro.json
# src/i18n/messages/ru.json
# src/i18n/messages/sk.json
# src/i18n/messages/sv.json
# src/i18n/messages/th.json
# src/i18n/messages/tr.json
# src/i18n/messages/uk-UA.json
# src/i18n/messages/vi.json
2026-03-30 20:43:25 -03:00
diegosouzapw
28123355b4
Merge branch 'feat/issue-660-qoder' into main
...
# Conflicts:
# docs/i18n/ar/README.md
# docs/i18n/bg/README.md
# docs/i18n/da/README.md
# docs/i18n/de/README.md
# docs/i18n/es/README.md
# docs/i18n/fi/README.md
# docs/i18n/fr/README.md
# docs/i18n/he/README.md
# docs/i18n/hu/README.md
# docs/i18n/id/README.md
# docs/i18n/in/README.md
# docs/i18n/it/README.md
# docs/i18n/ja/README.md
# docs/i18n/ko/README.md
# docs/i18n/ms/README.md
# docs/i18n/nl/README.md
# docs/i18n/no/README.md
# docs/i18n/phi/README.md
# docs/i18n/pl/README.md
# docs/i18n/pt-BR/README.md
# docs/i18n/pt/README.md
# docs/i18n/ro/README.md
# docs/i18n/ru/README.md
# docs/i18n/sk/README.md
# docs/i18n/sv/README.md
# docs/i18n/th/README.md
# docs/i18n/uk-UA/README.md
# docs/i18n/vi/README.md
# docs/i18n/zh-CN/README.md
2026-03-30 20:39:31 -03:00
diegosouzapw
bcb87f5d55
feat: Return only accessible models from /models for restricted API keys ( #781 )
2026-03-30 20:31:32 -03:00