Commit Graph

3952 Commits

Author SHA1 Message Date
diegosouzapw
968cbfeb15 fix(providers): support local OpenAI-style endpoints without auth
Treat LM Studio, vLLM, Llamafile, Triton, Docker Model Runner,
XInference, and oobabooga as managed local providers with default
base URLs and passthrough model discovery.

Avoid sending empty bearer headers during validation, model discovery,
and execution so self-hosted endpoints work without API keys while
still honoring custom base URLs and localized dashboard hints.
2026-04-23 16:57:43 -03:00
diegosouzapw
01dd72cf1f feat(dashboard): add custom CLI builder and eval suite management
Introduce a custom CLI tools card that generates OpenAI-compatible
env vars and JSON config, and add a cost overview tab with pricing
source visibility.

Add persisted custom eval suites with authenticated CRUD routes and
validation, plus new translator stream transformation tooling and
richer live monitor routing details.

Improve localization coverage across dashboard flows and add unit
tests for custom CLI config, pricing sources, eval suites, and
stream transformation.
2026-04-23 16:57:43 -03:00
diegosouzapw
9a8404b733 fix(evals): persist run history and secure eval management routes
Store eval executions with target metadata, expose aggregated scorecard
and recent run history endpoints, and return dashboard-ready eval data
including target options and API key metadata.

Also require management auth for eval read endpoints and preserve
per-case latency, errors, and output snippets so historical results are
more reliable and easier to inspect.
2026-04-23 16:57:43 -03:00
diegosouzapw
47468636e4 feat(dashboard): expand observability and provider tooling
Unify audit access under the logs experience and add richer active
request visibility with sanitized client and provider payload previews.

Expose provider warnings from upstream responses in compliance audit
logs, surface learned rate-limit header data in health monitoring, and
add MCP cache stats and cache flush tools with test coverage.

Also add local provider catalog support for SD WebUI and ComfyUI,
include video generation in endpoint docs and UI, add eval run storage
migrations, and refresh docs and translations to match the expanded
feature set.
2026-04-23 16:57:43 -03:00
diegosouzapw
05005acabd chore(agents): remove obsolete workflow playbooks
Delete the fix-ci and Node 22 CLI entrypoint workflow documents
from .agents/workflows to clean up outdated internal guidance on the
release branch.
2026-04-23 16:57:43 -03:00
Prakersh Maheshwari
a42ef13b61 fix: normalize Anthropic header keys to lowercase in provider registry
The provider registry used PascalCase header keys (e.g. "Anthropic-Version")
while the Claude Code client path in base.ts sets lowercase keys
("anthropic-version"). Since JS object keys are case-sensitive, both keys
coexist in the headers object. When fetch() sends them, HTTP treats them
as duplicates and concatenates the values ("2023-06-01, 2023-06-01"),
causing Anthropic's API to reject the request with a 400 error.

Normalize all Anthropic-specific header keys to lowercase to match the
convention used in executors and the upstream API.
2026-04-23 16:57:42 -03:00
wauputr4
49a5a552a3 refactor(providers): address code review feedback for KIE provider 2026-04-23 16:28:33 +00:00
wauputr4
19bf03542c refactor(providers): robust KIE handlers with dynamic polling and improved types 2026-04-23 15:03:44 +00:00
wauputr4
ee55ab522f feat(ui): update media dashboard with new KIE video models 2026-04-23 13:34:12 +00:00
wauputr4
bbfcd65855 feat(providers): add KIE text models and expand video models catalog 2026-04-23 13:23:52 +00:00
wauputr4
25e1be8001 Update open-sse/handlers/imageGeneration.ts
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-23 20:13:05 +07:00
wauputr4
18f2f0446d Update open-sse/handlers/imageGeneration.ts
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-23 20:12:52 +07:00
wauputr4
550d15b49e Update open-sse/handlers/videoGeneration.ts
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-23 20:12:42 +07:00
wauputr4
4920295e3e feat: add kie media provider support 2026-04-23 12:25:12 +00:00
diegosouzapw
c5dcf35281 chore(release): update changelog and docs for v3.7.0 finalization 2026-04-23 08:33:32 -03:00
Diego Rodrigues de Sa e Souza
34bdd1e8d0 Merge pull request #1524 from kang-heewon/provider-account-concurrency-cap
feat: provider/account-level concurrency cap enforcement
2026-04-23 08:31:51 -03:00
diegosouzapw
1568c53faa Resolve conflicts with release/v3.7.0 2026-04-23 08:30:03 -03:00
diegosouzapw
6b86fb9966 docs: document maxConcurrent in OpenAPI schema 2026-04-23 08:25:17 -03:00
Qiwen Chen
2a58543b4d fix(sse): map Claude output_config/thinking to OpenAI reasoning_effort (#1528)
Integrated into release/v3.7.0
2026-04-23 08:23:14 -03:00
kang-heewon
0f95330bc1 fix: address PR review feedback — stream semaphore release, key scope, test location
- Stream release: wrap stream body with TransformStream to release
  account semaphore only when stream is fully consumed (Thread 1)
- Key scope: remove model from semaphore key — was per-account-per-model,
  now truly per-account to match PR motivation (Thread 2)
- Test location: move accountSemaphore.test.ts to tests/unit/ per style guide (Thread 3)
- Fix flaky timestamp assertions in semaphore tests
2026-04-23 15:24:17 +09:00
kang-heewon
bdfcec7cf7 feat: provider/account 단위 동시성 cap 추가
- DB 마이그레이션 028: provider_connections.max_concurrent 컬럼 추가
- AccountSemaphore: 계정별 FIFO 세마포어 (acquire/release/timeout/block)
- chatCore.ts: 요청 파이프라인에 선제적 cap enforcement 통합
- providers.ts: maxConround-trip round-trip 저장/조회, cleanNulls() 보정
- API: provider limits route에서 maxConcurrent GET/PUT 지원
- UI: provider 연결 상세 페이지 account native cap 입력 필드 + hint
- UI: ResilienceTab combo concurrency 라벨 구분 (combo vs account)
- i18n: en/ko 번역 키 추가
- schemas.ts: maxConcurrent 음수 검증 + null 허용
- 테스트: semaphore 6개, DB round-trip + validation 6개
2026-04-23 14:02:45 +09:00
Diego Rodrigues de Sa e Souza
7388623244 fix(combo): fallback to next model on all-accounts-rate-limited 503 (… (#1523)
Integrated into release/v3.7.0
2026-04-23 01:53:00 -03:00
Randi
fff025ca0f Fix OpenRouter remote discovery and unify managed model sync (#1521)
Integrated into release/v3.7.0
2026-04-23 01:14:59 -03:00
Prakersh Maheshwari
331e1b7d61 feat(usage): MiniMax + MiniMax-CN quota tracking in provider limits dashboard (#1516)
Integrated into release/v3.7.0
2026-04-22 19:35:14 -03:00
diegosouzapw
16b0499192 fix(api): harden batch and file endpoints for auth and recovery
Reject invalid API keys even when authentication is optional and add
OPTIONS handlers for batch and file routes to support CORS preflights.

Also recover orphaned batches stuck in finalizing after restarts,
include finalizing in pending batch queries, preserve multipart upload
content handling, and fetch remote vision images as data URIs for
Anthropic requests.
2026-04-22 17:10:47 -03:00
diegosouzapw
fe09fe485f fix: Strip reasoning_content from OpenAI format messages for non-reasoning models (#1505) 2026-04-22 14:52:35 -03:00
diegosouzapw
d52a5af87d docs: update changelog with recent PR merges for v3.7.0 2026-04-22 12:27:15 -03:00
diegosouzapw
d539a21f69 fix(ui): add dark mode support for native dropdown options (#1488) 2026-04-22 12:26:21 -03:00
diegosouzapw
128f242808 Feature/OpenAI batching gui (#1500)
* Added GUI for OpenAI batching
* Support downloading files via API
* Set stream: false for chat completions in batchProcessor
2026-04-22 12:26:21 -03:00
Markus Hartung
66bf8054f9 bug: fixes Error: Cannot find module 'process/' #1507 (#1509)
Integrated into release/v3.7.0
2026-04-22 12:26:17 -03:00
austrian_guy
d99cf6350f fix(logs): add periodic runtime log rotation check (#1504)
Integrated into release/v3.7.0
2026-04-22 12:25:53 -03:00
Owen
9bd7cb7d00 feat(opencode-go): register 6 missing models from upstream catalog (#1510)
Integrated into release/v3.7.0
2026-04-22 12:25:49 -03:00
th-ch
f804a5f443 Add search in the providers page (#1511)
Integrated into release/v3.7.0
2026-04-22 12:25:44 -03:00
diegosouzapw
7549a68d6c feat(release): implement Hermes CLI config and message content stripping (#1475, #1387) 2026-04-22 01:39:49 -03:00
diegosouzapw
1ef354465a fix(release): resolve combo prefixing, electron packaging, and CLI auth regressions (#1471, #1492, #1496, #1497, #1486) 2026-04-21 22:11:19 -03:00
diegosouzapw
a7b6dfb06e chore: apply PR 1495 and update changelog 2026-04-21 21:12:29 -03:00
diegosouzapw
98c5b250b9 refactor: implement path utilities, add custom date formatting, improve type safety, and unify database imports 2026-04-21 21:10:48 -03:00
Markus Hartung
098639e146 fix: add batch item dispatching to specific handlers based on URL (#1495)
Integrated into release/v3.7.0
2026-04-21 21:10:38 -03:00
diegosouzapw
a7d30d9c6f test: isolate batch API unit tests with temp DATA_DIR to prevent schema state collisions 2026-04-21 19:32:20 -03:00
diegosouzapw
0937c5a8a3 chore(release): v3.7.0 — final integration of batch ui and versions 2026-04-21 19:01:56 -03:00
diegosouzapw
56608a4654 feat(ui): add batch processing dashboard page and translations 2026-04-21 19:01:48 -03:00
diegosouzapw
8bb1c83479 chore: merge release/v3.7.0 2026-04-21 18:47:17 -03:00
Hernan Javier Ardila Sanchez
b709dca2d6 feat(vision-bridge): add automatic image description fallback for non-vision models (#1476)
* feat(vision-bridge): add automatic image description fallback for non-vision models

Implements VisionBridgeGuardrail (priority 5) that intercepts image-bearing
requests to non-vision models, extracts descriptions via a configurable
vision model (default: gpt-4o-mini), and replaces images with text before
forwarding. Fails open on any error.

- Add VisionBridgeGuardrail class extending BaseGuardrail
- Add visionBridgeHelpers: extractImageParts, callVisionModel, replaceImageParts, resolveImageAsDataUri
- Add visionBridgeDefaults with configurable settings
- Register VisionBridgeGuardrail in GuardrailRegistry at priority 5
- Add 51 unit tests covering all spec scenarios (VB-S01 through VB-S10)
- Dependency injection for getSettings and callVisionModel (testable without SQLite)

Closes diegosouzapw/OmniRoute#1424

* fix(vision-bridge): resolve Anthropic API, parallel processing, provider keys, structuredClone
2026-04-21 18:14:24 -03:00
diegosouzapw
b925be2758 fix: update prompt injection test for fail-closed policy 2026-04-21 17:54:37 -03:00
Markus Hartung
2e36599d40 fix: resolve code rebase issues 2026-04-21 22:53:19 +02:00
diegosouzapw
0d852ab3e0 fix: restore local test fixes for encryption and resilience 2026-04-21 17:46:47 -03:00
Jason Landbridge
495ca290e0 docs: add Arch Linux AUR install notes (#1478)
Integrated into release/v3.7.0
2026-04-21 17:18:34 -03:00
cloudy
de1bea8227 fix: deduplicate case-variant anthropic-version header in Claude Code patch (#1481)
Integrated into release/v3.7.0
2026-04-21 17:18:29 -03:00
vanminhph
9cd36af3e8 fix(codex): preserve namespace MCP tools forwarded to Codex Responses API (#1483)
Integrated into release/v3.7.0
2026-04-21 17:18:26 -03:00
clousky2020
3502c5afd1 fix(fallback): use shared CircuitBreaker instead of undefined constants (#1485)
Integrated into release/v3.7.0
2026-04-21 17:18:23 -03:00