Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
81 commits
Select commit Hold shift + click to select a range
07d1816
fix(providers): hidden models leak into GET /v1/models (#11300) (#11309)
diegosouzapw Aug 24, 2026
ac02c5b
fix(resilience): don't clear an active rate-limit cooldown for non-qu…
diegosouzapw Aug 24, 2026
adca3b8
fix(kie): map remaining google-imagen Market ids to their real KIE up…
diegosouzapw Aug 24, 2026
c3698ee
fix(dashboard): route the Adapta tutorial CTA through the branded sho…
diegosouzapw Aug 24, 2026
8d6f91b
fix(security): refuse proxy-authorization and proxy-authenticate upst…
ntdat812 Aug 24, 2026
24ac714
test(db): make singleton reset survive the full suite and un-skip the…
pacocartones Aug 24, 2026
04b2c47
fix(i18n): restore three placeholders dropped from the pt catalogue (…
ntdat812 Aug 24, 2026
79f8ae9
fix(i18n): add the 3 pt-BR CLI keys that break the locale parity test…
pacocartones Aug 24, 2026
6984676
fix(quality): report the real failure line and stop double-counting c…
pacocartones Aug 24, 2026
5ee646e
fix(github): verify access tokens during health checks (#11320)
RaviTharuma Aug 24, 2026
cb11592
fix(db): judge the proxy URL host by address, not by spelling (#11319)
ntdat812 Aug 24, 2026
29f2629
feat(compression): isolate sync engines in bounded worker pool (#11318)
RaviTharuma Aug 24, 2026
9b14896
feat(api): add Google AI Studio Gemini TTS (#11315)
RaviTharuma Aug 24, 2026
c21460f
fix(lint): drain release-green hard failures on release/v3.8.50 (#998…
jonlwheat2-gif Aug 24, 2026
c3cd1f9
feat(services): expose sanitized CLIProxyAPI account health (#11314)
RaviTharuma Aug 24, 2026
690f684
feat(audio): add native ElevenLabs HTTP compatibility routes (#11312)
RaviTharuma Aug 24, 2026
6945bba
fix(db): escape regex metacharacters in group model patterns (#11311)
ntdat812 Aug 24, 2026
338c05d
fix(models): expose Ollama Cloud native effort tiers (#11307)
ekinnee Aug 24, 2026
dafb4ae
fix(deps): keep unused pnpm peers out of production (#11342)
diegosouzapw Aug 24, 2026
38969ad
fix(video-bridge): render timestamped contact sheets
diegosouzapw Aug 24, 2026
2f18a85
docs(changelog): link Video Bridge contact-sheet fix
diegosouzapw Aug 24, 2026
d2cea08
fix(video): harden result cache identity and bounds
diegosouzapw Aug 24, 2026
e2e48fd
docs(changelog): link Video Bridge cache fix PR
diegosouzapw Aug 24, 2026
f54c93c
fix(video): key download flights with process HMAC
diegosouzapw Aug 24, 2026
d4ade9d
fix(video): separate tenant scope from download hash
diegosouzapw Aug 24, 2026
22086a7
fix(video-bridge): validate structural segment sampling
diegosouzapw Aug 24, 2026
93135f8
feat(guardrails): add focused video analysis mode
diegosouzapw Aug 24, 2026
05e76d6
docs(changelog): link FU-07 pull request
diegosouzapw Aug 24, 2026
38d21af
docs(changelog): link FU-04 pull request
diegosouzapw Aug 24, 2026
12b8df0
fix(catalog): keep large builds event-loop responsive (#11367)
diegosouzapw Aug 24, 2026
fdcd15e
docs(openapi): document try proxy operation (#11363)
diegosouzapw Aug 24, 2026
b010d8b
docs(readme): reconcile v3.8.50 metrics and contributors (#11356)
diegosouzapw Aug 24, 2026
c6963ca
fix(changelog): require verified reconciliation ledger (#11345)
diegosouzapw Aug 24, 2026
761d38f
fix(video): harden result cache identity and coalescing (#11362)
diegosouzapw Aug 24, 2026
7715825
fix(video): harden visual frame deduplication (#11382)
diegosouzapw Aug 24, 2026
c83116e
fix(video): isolate drill-down cache by principal (#11369)
diegosouzapw Aug 24, 2026
c8ad44e
merge #11350 onto updated tip
hartmark Aug 24, 2026
d23bfef
merge #11383 onto updated tip
hartmark Aug 24, 2026
04d2a60
fix(video): make one-frame scene sampling deterministic (#11344)
diegosouzapw Aug 24, 2026
e589831
sync with tip before push
hartmark Aug 24, 2026
9fedc1c
merge #11381 onto updated tip
hartmark Aug 24, 2026
0b7ac87
sync with tip before push
hartmark Aug 24, 2026
9df3f89
fix(build): stop bundling the better-sqlite3 stub at runtime (#11343)…
diegosouzapw Aug 24, 2026
644dd32
fix(cli): resolve tray runtime import to a file:// URL so --tray work…
pacocartones Aug 24, 2026
2af1326
fix(catalog): add Stealth Ox Alpha (stealth/ox-alpha) to the openrout…
stanleytejakusuma Aug 24, 2026
028f1b9
fix(release): count sweep-stale matches by their real category in the…
pacocartones Aug 24, 2026
8301984
fix(i18n): complete zh-CN/zh-TW CLI locales and guard their parity (#…
pacocartones Aug 24, 2026
f88aa48
test(db): make exclusive-connection-lease uniqueness test self-contai…
pacocartones Aug 24, 2026
e1c2b34
fix(quota): parse absolute ISO datetime reset timestamps in weekly qu…
sprintberlin Aug 24, 2026
315b0a9
fix(resilience): preserve active cooldowns during recovery and probes…
sprintberlin Aug 24, 2026
6de542b
fix(providers): mark Antigravity connects with no Cloud Code projectI…
rqzbeh Aug 24, 2026
378eff0
fix(combo): pre-skip targets with persisted connection cooldown and r…
sprintberlin Aug 24, 2026
077bc1a
fix(compression): use pathToFileURL for workerUrl to prevent bundler …
TheDemonTuan Aug 24, 2026
37e7191
fix(translator): preserve functionCall id in Gemini to OpenAI request…
Siva010 Aug 24, 2026
dfc9257
fix(cli): spawn npm the way Windows needs in `omniroute update` (#11374)
ntdat812 Aug 24, 2026
019ad33
fix(auth): keep the real upstream reason in lastError (#11376)
ntdat812 Aug 24, 2026
9f30b76
fix(live-ws): resolve the public socket URL at runtime (#11377)
ntdat812 Aug 24, 2026
20de0d9
fix(usage): parse CREDIT_LIMIT rows from z.ai coding-plan quota API (…
Neuron-Mr-White Aug 24, 2026
095f424
fix(sse): spare live user message across all aggressive compression s…
HouMinXi Aug 24, 2026
3c2906a
fix(sse): kill entire process tree on Linux for adobe firefly sign-in…
HouMinXi Aug 24, 2026
440113c
fix(dashboard): align sync interval slider ticks via magnetic checkpo…
An0nym0us92 Aug 24, 2026
2544ee9
feat: enable Linux PATH inheritance for autostart & extend loginShell…
ziuus Aug 24, 2026
13e29f2
fix(translator): preserve Claude tool call state
NicolasDuranGarces Aug 24, 2026
243445f
docs(changelog): record Codex tool call fix
NicolasDuranGarces Aug 24, 2026
f58e8be
fix(opencode): close Muse Responses streams at completion
AStupidBear Aug 24, 2026
d732cf6
feat(volcengine): add Ark plan providers
Aug 13, 2026
76ac1c8
feat(volcengine): live model discovery for Ark plan providers
Aug 17, 2026
3415050
fix(volcengine): retain API-callable Agent Plan models
Aug 18, 2026
07a378c
feat(volcengine): switch Agent Plan discovery to ListAgentPlanLatestM…
Aug 19, 2026
8f15b79
feat(volcengine): phone/SMS auto-login for console with MFA + identit…
Aug 21, 2026
815c7c2
fix(volcengine): exempt volcengine-console from the -web naming conve…
Aug 24, 2026
93da24c
fix(providers): reject reserved provider prefixes on compatible-node …
ggdayup Aug 24, 2026
0a53c8a
test(providers): update reserved-prefix count fixture to 391 after up…
ggdayup Aug 24, 2026
dfc5b5e
perf(providers): lazy validate provider schema on demand to reduce st…
hartmark Aug 24, 2026
406f452
chore(quality): rebaseline file-size for #11355/#11344/#11381/#11362/…
hartmark Aug 24, 2026
71eeaf2
fix(combo): reconcile #11360 retry-loop persisted-cooldown recheck re…
hartmark Aug 24, 2026
b1fdfd5
fix(sse): preserve auto-selected first target (#11399)
jacobsparts Aug 24, 2026
ddee064
fix(sse): preserve auto scoring order (#11400)
jacobsparts Aug 24, 2026
7b36e45
fix(dashboard): normalize explicit auto weights (#11402)
jacobsparts Aug 24, 2026
56d64e2
fix(dashboard): expose custom mode-pack option (#11407)
jacobsparts Aug 24, 2026
2c072a0
deps: bump oven/bun from 1.3.14-slim to 1.4.0-slim
dependabot[bot] Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
19 changes: 16 additions & 3 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -1027,6 +1027,16 @@ PROVIDER_LIMITS_SYNC_SPACING_MS=1500
# Used by: open-sse/services/compression/engines/rtk/filterLoader.ts. Default: 0.
#OMNIROUTE_RTK_TRUST_PROJECT_FILTERS=0

# Maximum concurrent synchronous compression workers. Excess jobs wait FIFO.
# Used by: open-sse/services/compression/compressionWorkerPool.ts. Default: 2.
#OMNI_COMPRESSION_WORKERS=2
# Per-job worker timeout (ms). A timed-out worker is terminated and the request fails open.
# Used by: open-sse/services/compression/compressionWorkerPool.ts. Default: 120000.
#OMNI_COMPRESSION_WORKER_TIMEOUT_MS=120000
# Terminate idle compression workers after this many milliseconds.
# Used by: open-sse/services/compression/compressionWorkerPool.ts. Default: 60000.
#OMNI_COMPRESSION_WORKER_IDLE_MS=60000

# T02 stacked-pipeline engine circuit-breaker (OPT-IN, default off). When enabled, a compression
# engine that throws repeatedly across requests is skipped (fail-open) for a cooldown.
# Used by: open-sse/services/compression/pipelineEngineBreaker.ts.
Expand Down Expand Up @@ -2011,6 +2021,9 @@ APP_LOG_TO_FILE=true
# CLIPROXYAPI_HOST=127.0.0.1
# CLIPROXYAPI_PORT=5544
# CLIPROXYAPI_CONFIG_DIR=~/.cli-proxy-api
# Management key for an externally managed instance. Embedded instances use
# OmniRoute's encrypted service key.
# CLIPROXYAPI_MANAGEMENT_KEY=

# ── Mux embedded service ──
# Override the port where the embedded Mux (coder/mux) agent-orchestration
Expand Down Expand Up @@ -2420,10 +2433,10 @@ APP_LOG_TO_FILE=true
# test suite must NEVER mutate the OS trust store (a fake test PEM installed via
# update-ca-certificates broke all system TLS on a persistent runner, 2026-07-05).
# OMNIROUTE_SKIP_SYSTEM_TRUST=1
# check-changelog-integrity.mjs (anti CHANGELOG-eat gate): explicit base ref
# override, and the justified-removal escape hatch for intentional bullet removals.
# check-changelog-integrity.mjs (anti CHANGELOG-eat gate): explicit base ref override.
# Intentional transformations require an exact reviewed entry in
# config/release/changelog-reconciliations.json; there is no runtime bypass.
# CHANGELOG_BASE_REF=origin/release/v0.0.0
# ALLOW_CHANGELOG_REMOVALS=1

# ── Remote audio provider nodes ──
# Used by: src/app/api/v1/_shared/audioProviderNodes.ts — lets the /v1/audio/*
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ _Living section — regenerated 2026-08-12 from all cycle commits (cycle open `e

### 🐛 Bug Fixes

- **fix(build):** every route no longer answers HTTP 500 on artifacts built from the release tip ([#11343](https://github.com/diegosouzapw/OmniRoute/issues/11343)) — `next.config.mjs` aliased `better-sqlite3` to its build-time stub **unconditionally**, on the premise that `serverExternalPackages` still won at runtime. It does not: a Turbopack `resolveAlias` rewrites the request *before* the externals check, so the request stopped matching the `better-sqlite3` external entry and the stub was baked into the shipped bundle. The sync driver then failed with `r(...) is not a constructor`, fell through `node:sqlite` and sql.js, and the instrumentation hook aborted at boot. Same failure shape as [#6344](https://github.com/diegosouzapw/OmniRoute/issues/6344), so it gets the same treatment: the alias is opt-in via `OMNIROUTE_BETTER_SQLITE3_STUB=1` through the shared `scripts/build/better-sqlite3-stub-flag.mjs` helper — set it only on a build host that actually hits the SIGABRT build-worker teardown ([#10060](https://github.com/diegosouzapw/OmniRoute/issues/10060)); default builds externalize the real native addon. Regression guards: `tests/unit/better-sqlite3-stub-alias-11343.test.mjs` (5) and the env matrix in `tests/unit/next-config.test.ts`.
- **security(search)**: block SSRF via `/v1/search` `provider_options.baseUrl` for the Firecrawl search provider — the client-controlled override is now validated as a public URL before it is used to build the server-side fetch target, so a caller with a valid API key can no longer redirect search requests at loopback, RFC1918, or cloud-metadata hosts — thanks @zmf963
- **providers**: honor `PATCH /api/providers/[id]` so `omniroute providers rotate` stops 405ing (the OpenAPI spec and CLI already use PATCH) (PR #10366)
- **cli**: route provider test commands through configured connection test endpoints (#10570)
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.bun
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# ── Multi-stage Dockerfile for Native Bun Runtime (web-latest-bun) ───────────
FROM oven/bun:1.3.14-slim AS base
FROM oven/bun:1.4.0-slim AS base
WORKDIR /app

RUN apt-get update \
Expand Down Expand Up @@ -50,7 +50,7 @@ ENV NODE_ENV=production
RUN bun run --quiet build

# ── Runner Base stage (100% Bun Native Production Runtime) ──────────────────
FROM oven/bun:1.3.14-slim AS runner-base
FROM oven/bun:1.4.0-slim AS runner-base

LABEL org.opencontainers.image.title="omniroute" \
org.opencontainers.image.description="Unified AI proxy — route any LLM through one endpoint (Bun Native)" \
Expand Down
Loading
Loading