Commit Graph

4570 Commits

Author SHA1 Message Date
Abhishek Divekar
39b2bbfea2 feat(combo): add sticky weighted selection limit with exhaustion-aware renormalization (#4489)
Integrated into release/v3.8.33
2026-06-21 18:43:23 -03:00
Hernan Javier Ardila Sanchez
6b5590e8f4 fix(auto-combo): respect model visibility (isHidden) in auto-combo candidate pool (#4558)
Integrated into release/v3.8.33
2026-06-21 18:34:01 -03:00
Diego Rodrigues de Sa e Souza
cf6546e6d3 perf(quota): skip redundant quota_snapshots from idle connections (#4438) (#4565)
Closes #4438. Dedupes quota_snapshots writes for idle connections via pure quotaSnapshotChanged() gate. TDD 5/5. Admin-merged over a pre-existing, unrelated base red (model-lockout-max-cooldown.test.ts 'markAccountUnavailable local 404 ... maxCooldownMs', from #4530 incomplete wiring) proven to fail on release/v3.8.33 HEAD without this change.
2026-06-21 18:27:57 -03:00
Rahul sharma
448741fe5f feat(combos): provider-wildcard expansion in combo steps (#2562) (#4545)
Integrated into release/v3.8.33
2026-06-21 18:26:30 -03:00
janeza2
9447de08b7 fix(dashboard): make API Manager key table usable on mobile (#4556)
Integrated into release/v3.8.33
2026-06-21 18:25:05 -03:00
KooshaPari
8fc331513d fix(dashboard): avoid overlapping provider health polls (#4557)
Integrated into release/v3.8.33
2026-06-21 18:23:34 -03:00
Diego Rodrigues de Sa e Souza
0b402e9bf3 refactor(chatCore): restore #4507 + #4511 leaves orphaned from release by churn (#3501) (#4547)
Re-applies the endpoint/format (requestFormat.ts, #4507) and Claude effort-variant (claudeEffortVariant.ts, #4511) extractions that were orphaned from release/v3.8.33 by a parallel force-push. 19/19 chatCore tests pass.

Integrated into release/v3.8.33.
2026-06-21 16:32:15 -03:00
Diego Rodrigues de Sa e Souza
8273dfd370 chore(quality): rebaseline cognitiveComplexity 792->793 (r3) (#4543)
Rule #9.
2026-06-21 15:54:04 -03:00
Diego Rodrigues de Sa e Souza
059b7efeb3 chore(quality): reconcile file-size baseline (r3 #4522/#4530/#4524) (#4542)
Rule #9.
2026-06-21 15:49:09 -03:00
Ronald Estacion
eb47b92f22 fix(compression): allow enginesExplicit through PUT validation schema (#4532)
Adds enginesExplicit to the strict compression PUT schema so the panel can save without a 400. Kept only this commit; the Hub-render commit was superseded by Phase 2 (#4521) which rewrote CompressionHub.tsx. Does not reopen the Phase 1 gate (enginesExplicit is recomputed from stored engines, the persisted row is ignored). Tested.

Integrated into release/v3.8.33.
2026-06-21 15:44:22 -03:00
Diego Rodrigues de Sa e Souza
4d3a9fd3df fix(mcp): webFetchInput emits 'URL is required' for a missing url (#4510) (#4541)
The omniroute_web_fetch input schema (#4510) used z.string().min(1, "URL is
required") for the url field, but .min() only fires for an empty string. A
MISSING url (webFetchInput.parse({})) fails the z.string() type check first and
emitted the default Zod v4 message ("expected string, received undefined"), so
the existing test 'webFetchInput rejects missing URL' (expecting /URL is
required/) failed on the full unit suite — a latent base red on release/v3.8.33.

Add the custom message to the type check: z.string({ error: "URL is required" }).
Now both the missing-field and empty-string cases emit 'URL is required'; a valid
url still passes. No other web_fetch behavior changes.

Co-authored-by: Diego Rodrigues de Sa e Souza <diego.souza@cdwasolutions.com.br>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 15:43:55 -03:00
Marcos
2b21bb60d9 feat(webhooks): enrich telegram request notifications (#4524)
Adds account/combo/latency/fallbackCount to telegram request.completed notifications; account UUID rendered via truncated display name (no sensitive data leak). Tested. Rebuilt onto release/v3.8.33.

Integrated into release/v3.8.33.
2026-06-21 15:43:21 -03:00
Abhishek Divekar
f91cf72c16 feat(bazaarlink): add authHint to existing APIKEY_PROVIDERS entry (#4522)
Adds authHint + enriched freeNote/apiHint on the existing bazaarlink entry (distinct from the closed-redundant #4497). Integrity test included.

Integrated into release/v3.8.33.
2026-06-21 15:42:45 -03:00
Rahul sharma
9ade3e5f52 fix(no-think): normalize provider prefix to canonical in no-think variants (#4531)
Adds pure normalizeProviderPrefix helper + opt-in aliasToCanonical map so no-think variant ids use canonical provider prefixes in canonical catalog mode. Tested. Rebuilt onto release/v3.8.33.

Integrated into release/v3.8.33.
2026-06-21 15:41:59 -03:00
Chewji
9cf96d0e9f fix(combo): pass maxCooldownMs from settings to recordModelLockoutFailure call sites (#4530)
The combo.ts lockout call sites never forwarded mlSettings.maxCooldownMs to recordModelLockoutFailure, so the admin-configured cap fell back to BACKOFF_CONFIG.max. Passes it at all 3 sites. TDD included.

Integrated into release/v3.8.33.
2026-06-21 15:37:23 -03:00
Diego Rodrigues de Sa e Souza
948213899f chore(quality): reconcile file-size baseline (owner final) (#4535)
Rule #9.
2026-06-21 14:26:25 -03:00
Diego Rodrigues de Sa e Souza
2601a557b8 refactor(chatCore): extract Background Task Redirect decision (T41) (#4526, #3501)
Rebuilt onto release/v3.8.33 (base was the now-merged #4511 branch). Integrated into release/v3.8.33.
2026-06-21 14:23:36 -03:00
Diego Rodrigues de Sa e Souza
b28f6e9346 refactor(chatCore): extract pure persistCodexQuotaState core (#4492, #3501)
Rebuilt onto release/v3.8.33. Extracts persistCodexQuotaState into a pure leaf (chatCore/codexQuota.ts). Integrated into release/v3.8.33.
2026-06-21 14:19:34 -03:00
Diego Rodrigues de Sa e Souza
aa019bbb95 fix(mitm): gate sudo prompts on server platform, not browser UA (#4514)
Rebuilt onto release/v3.8.33; reconciled with #4503 (kept fetchModelAliases) — sudo gating now uses server-reported isWin/needsSudoPassword instead of browser UA. Integrated into release/v3.8.33.
2026-06-21 14:16:40 -03:00
Diego Rodrigues de Sa e Souza
96d7f2ac62 fix(mitm): graceful sudo degradation in slim Docker / non-root containers (#4513)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:15:06 -03:00
Diego Rodrigues de Sa e Souza
34d9335c5f fix(pricing): default cost rows for Antigravity Gemini 3.5 Flash tiers + gemini-pro-agent (#4508)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:14:53 -03:00
Diego Rodrigues de Sa e Souza
840413faa2 feat(dashboard): inline show/hide toggle for API keys on API Manager page (#4505)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:14:41 -03:00
Diego Rodrigues de Sa e Souza
bb16f88524 fix(dashboard): enable Codex Apply/Reset buttons when the CLI is installed (#4504)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:14:28 -03:00
Diego Rodrigues de Sa e Souza
d83e0a4fab fix(dashboard): show API-Key-compatible providers in Antigravity CLI Tools model picker (#4503)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:14:16 -03:00
Diego Rodrigues de Sa e Souza
4cf73428f8 fix(dashboard): migrate ManualConfigModal copy to shared useCopyToClipboard hook (#4502)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:14:02 -03:00
Diego Rodrigues de Sa e Souza
89606a2bfe feat(dashboard): toggle-style model deselection in combo builder modal (#4498)
Rebuilt onto release/v3.8.33; reconciled with the already-merged keepOpenOnSelect (#4496) — deselection now rides the existing keepOpenOnSelect + onDeselect wiring instead of a redundant closeOnSelect prop. Integrated into release/v3.8.33.
2026-06-21 14:13:38 -03:00
Diego Rodrigues de Sa e Souza
247e578778 feat(dashboard): Done button in model picker for combo creation (#4496)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:09:55 -03:00
Diego Rodrigues de Sa e Souza
dac9f7de16 feat(dashboard): per-provider dropdown filter on the quota dashboard (#4495)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:09:43 -03:00
Diego Rodrigues de Sa e Souza
bb8104f454 chore(quality): reconcile file-size baseline (owner batch1 #4488/#4500) (#4534)
Rule #9.
2026-06-21 14:09:16 -03:00
Diego Rodrigues de Sa e Souza
3a0c40bb5e fix(usage): clear auth-expired message for Kiro social-auth accounts (#4512)
Rebuilt onto release/v3.8.33; usage.ts baseline reconciled for the #4493/#4494/#4512 quota trio. Integrated into release/v3.8.33.
2026-06-21 14:08:01 -03:00
Diego Rodrigues de Sa e Souza
a37ee2fac5 feat(usage): surface Codex code-review weekly window + additional_rate_limits fallback (#4494)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:06:18 -03:00
Diego Rodrigues de Sa e Souza
cd45943015 fix(usage): parse numeric-string quota reset timestamps as Unix sec/ms (#4493)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:06:05 -03:00
Diego Rodrigues de Sa e Souza
4279751abd fix(sse): skip disabled providers in combo fallback (#4500)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:05:53 -03:00
Diego Rodrigues de Sa e Souza
e1546c0118 fix(api): dedupe exact-duplicate ids in /v1/models (#4506, #4424)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:05:41 -03:00
Diego Rodrigues de Sa e Souza
482433e44f feat(translator): accept OpenAI audio input parts in Gemini translation (#4434)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:05:29 -03:00
Diego Rodrigues de Sa e Souza
81016bdaeb feat(pricing): add default pricing for Qwen coder-model on qw provider (#4488)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:05:16 -03:00
Diego Rodrigues de Sa e Souza
aee1f7445d feat(providers): expose gpt-4o on built-in GitHub Copilot (gh) provider (#4487)
Rebuilt onto release/v3.8.33 (squash-base-stale). Integrated into release/v3.8.33.
2026-06-21 14:04:40 -03:00
Diego Rodrigues de Sa e Souza
58d1cc8f03 feat(compression): Phase 2 — named profiles + active selector (#4521)
Compression config Phase 2: named profiles + single active-combo selector wired into the runtime.

Integrated into release/v3.8.33.
2026-06-21 14:02:56 -03:00
Diego Rodrigues de Sa e Souza
185c474ee0 feat(sse): route web_search requests to a configured model (#4509, #4481)
Routes requests carrying a web_search tool to a configured webSearchRouteModel (#4481 layer-2).

Integrated into release/v3.8.33.
2026-06-21 14:02:29 -03:00
Diego Rodrigues de Sa e Souza
f3253ee706 fix(sse): crypto-secure RNG for combo/deck load-balancing selection (#4455)
Replaces Math.random with crypto-secure RNG in combo/deck load-balancing selection (CodeQL #665).

Integrated into release/v3.8.33.
2026-06-21 14:02:01 -03:00
Diego Rodrigues de Sa e Souza
bb4aa0d793 chore(quality): rebaseline cognitiveComplexity 783->792 (#4529)
Cycle drift + #4398 +2. Documented breakdown. Rule #9.
2026-06-21 12:41:55 -03:00
Diego Rodrigues de Sa e Souza
5b15e0192e chore(quality): reconcile file-size baseline for #4519 (#4528)
combo.ts/accountFallback.ts/openai-responses.ts from #4519. Rule #9.
2026-06-21 12:38:34 -03:00
Abhishek Divekar
cda583114f fix(command-code): cap max_tokens per model using registry maxOutputTokens (#4518)
clampMaxTokens now uses the per-model maxOutputTokens from REGISTRY['command-code'] as the upper bound (falls back to MAX_COMMAND_CODE_TOKENS), so GLM-5.x stops being rejected for max_tokens > 131072. Rebuilt onto release/v3.8.33 (passthrough block from the PR base is already present via #2986); 3 tests added.

Integrated into release/v3.8.33.
2026-06-21 12:33:25 -03:00
KooshaPari
c5f3d5fb56 fix(db): scheduled VACUUM + persist lastVacuumAt (#4480, #4437)
Adds a scheduled SQLite VACUUM job that persists last-run state to key_value and fixes the hardcoded lastVacuumAt:null in getDatabaseSettings. Review fixes: corrected the key_value write (no updated_at column), dropped a dead/colliding migration, rewrote the test from Vitest to node:test against the real interface.

Integrated into release/v3.8.33.
2026-06-21 12:29:23 -03:00
Abhishek Divekar
694adf7e13 fix(combo): allow fallback on context-overflow & param-validation 400s; preserve upstream codes (#4519)
Context-overflow and param-validation 400s now fall through to the next combo target (different targets have different context windows / output limits); normalizeUpstreamFailure keeps context_length_exceeded=400 and rate-limit=429. Pure predicates extracted + tested (Rule #18). The codex.ts compression seen in the raw diff was base-divergence noise, not in the feature commit.

Integrated into release/v3.8.33.
2026-06-21 12:29:20 -03:00
Witroch4
d3f1b23a93 feat(usage): API-key USD quota percent + reset hints, weekly window cutoff (#4398)
Adds USD usage percentages and reset hints to @@om-usage and 400 quota rejections, and cuts the weekly USD window at the real observed reset via quota_snapshots instead of resetAt-7d. Rebuilt onto release/v3.8.33 (squash-base-stale; delta = 5 files/+353).

Integrated into release/v3.8.33.
2026-06-21 12:02:34 -03:00
Diego Rodrigues de Sa e Souza
69f63898de chore(quality): reconcile file-size baseline for #4510 web_fetch tool (#4523)
tools.ts 1437->1497, server.ts 1509->1555 from #4510. Justification per Rule #9.
2026-06-21 12:01:57 -03:00
KooshaPari
39592420e4 chore(i18n): remove unused config helpers (#4482)
Removes dead exports DOCS_TARGET_LOCALES and getLanguage (zero callers, Knip-reported) and adds config-adapter coverage test.

Integrated into release/v3.8.33.
2026-06-21 11:58:33 -03:00
Rahul sharma
296b72d070 feat(models): qualify duplicate model names with provider prefix (#4516)
Disambiguates display names when the same model name appears across distinct provider prefixes. Pure, non-mutating; complementary to id-dedupe.

Integrated into release/v3.8.33.
2026-06-21 11:55:11 -03:00
Oonishi
75a84b055f feat(mcp): add omniroute_web_fetch tool for URL content extraction (#4510)
Adds an MCP tool to extract URL content via the existing /v1/web/fetch endpoint (Firecrawl/Jina/Tavily). Mirrors omniroute_web_search; scope execute:search; mcp_audit logged.

Integrated into release/v3.8.33.
2026-06-21 11:55:08 -03:00