* fix(build): exec native tool binaries directly in runBuildTool #8858 routed every resolved local bin through process.execPath to avoid Windows .cmd shims — but esbuild >=0.25 ships bin/esbuild as the NATIVE platform executable (ELF on Linux), so Node parsed machine code as JS and build:cli died with 'SyntaxError: Invalid or unexpected token', turning dast-smoke red for every PR. runBuildTool now sniffs the entry's magic bytes (ELF / Mach-O / PE) and execs native binaries directly; JS entries keep going through this Node binary (the .cmd-shim avoidance #8858 wanted). Validation (RED->GREEN on this box): - RED: node node_modules/esbuild/bin/esbuild --version -> SyntaxError (ELF) - GREEN: the exact failing CI step reproduced via the new logic bundles open-sse/mcp-server/server.ts successfully (4.2MB output, 1.3s). * fix(docs): add MDX frontmatter to the 20 remaining docs without it Same failure class as AGENTROUTER_WAF (#9503) and DOCKER_RELEASE_CHANNELS (this run's dast-smoke red): any doc without frontmatter breaks the fumadocs MDX loader during next build, killing build:cli/dast-smoke for every PR. Swept ALL of docs/ (i18n mirrors excluded) in one pass so this class cannot recur one file at a time. * docs(env): document OMNIROUTE_INTERNAL_SERVICE_TOKEN(+_FILE), OPENROUTER_PROVIDER_STATS_* and embedded-Redis binding vars Pre-existing env/docs contract drift from recently merged features made check:env-doc-sync red for any docs-touching PR. Values and defaults read from the defining modules (internalServiceAuth.ts, openrouterProviderStats.ts). * fix(build): resolve bundled npm-cli.js in the standard Unix layout + safe npm fallback off-Windows The opencode-plugin step hard-failed on GitHub runners because resolveBundledNpmEntry only looked next to the node binary (Windows zip layout); hostedtoolcache Node keeps npm at <prefix>/lib/node_modules/npm. Added that candidate, and when neither exists on non-Windows the step now falls back to plain 'npm' — the .cmd-shim hazard #8858 avoids is Windows-only. * test(mutation): register xai-agent-tools-passthrough.test.ts in stryker tap.testFiles The test landed on release/v3.8.50 covering open-sse/handlers/chatCore/passthroughHelpers.ts without the stryker registration, so Fast Quality Gates' drift detection reds any PR that carries it. Mechanical registration so its mutant kills count. --------- Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
2.4 KiB
title, version, lastUpdated
| title | version | lastUpdated |
|---|---|---|
| Docker Release Channels | 3.8.50 | 2026-08-06 |
Docker Release Channels
OmniRoute publishes separate Docker channels for stable releases, active release-branch testing, and development builds.
Channel summary
| Channel | Source | Mutability | Recommended use |
|---|---|---|---|
:<version> / :<version>-web |
Signed/versioned release | Immutable | Production deployments that pin an exact release |
:latest / :latest-web |
Highest stable release | Mutable stable pointer | Production deployments that intentionally follow stable releases |
:next / :next-web |
Current default release/v* branch |
Mutable pre-release pointer | Testing fixes that have landed on the active release branch but are not yet in a stable release |
:main / :main-web |
main branch |
Mutable development pointer | Development and integration testing only |
Using the pre-release channel
The next channel is rebuilt on every push to the current default release/v* branch and is published for both AMD64 and ARM64. Older maintenance branches cannot overwrite it. The channel provides a pullable image for fixes that have merged into the active release branch before the next stable tag is cut.
docker pull diegosouzapw/omniroute:next
docker pull diegosouzapw/omniroute:next-web
For Docker Compose, override the image tag used by the selected profile, then pull and recreate the service:
services:
omniroute:
image: diegosouzapw/omniroute:next
docker compose pull
docker compose up -d
Safety and rollback
next is a floating pre-release channel. It may change on any push to the active release branch and is not supported for production use. Pin the image digest while evaluating a specific build:
docker pull diegosouzapw/omniroute:next
docker image inspect diegosouzapw/omniroute:next --format '{{index .RepoDigests 0}}'
Before testing, back up the OmniRoute data volume or bind-mounted data directory. To roll back, restore the previously used stable version or digest and recreate the container:
docker pull diegosouzapw/omniroute:<stable-version>
docker compose up -d
A release-branch build can never move latest; only an eligible stable semantic version may promote the stable pointer. The next images retain the release image inspection and blocking CRITICAL-vulnerability gate.