v3.7.4
diegosouzapw/OmniRoutev3.7.4Apr 29, 2026by diegosouzapw
AI Summary
Adds a fullscreen installable PWA, bulk proxy import functionality, and endpoint tunnel visibility settings.
Key Highlights
- Fullscreen installable PWA
- Bulk proxy import via pipe-delimited parser
- Endpoint tunnel visibility settings
- Security fix replacing `Math.random` with `crypto.getRandomValues`
New Features
- PWA support
- Bulk proxy import
- Tunnel visibility
- Security fix
Full Release Notes
### ✨ New Features - **feat(docs):** integrate multi-page documentation into OmniRoute dashboard (#1969) - **feat(settings):** add request body limit setting (#1968) - **feat(auth):** add Gemini CLI OAuth client secret default (#1974) - **feat(models):** expose models.dev context windows in /v1/models (#1972) - **fix(db):** resolve legacy encryption fallback causing re-encryption loops (#1941) - **fix(auth):** fix Codex assistant final_answer response sanitization (#1965) - **feat(ui):** add endpoint tunnel visibility settings (#1743) - **feat(cli):** refresh CLI fingerprint provider profiles (#1746) - **feat(proxy):** implement bulk proxy import via pipe-delimited parser with update-or-create (upsert) logic and real-time preview table - **feat(pwa):** add fullscreen installable PWA with manifest, service worker, and cross-platform app icons (#1728) ### 🔒 Security - **security:** replace insecure `Math.random` with `crypto.getRandomValues` for fallback UUID generation to resolve CodeQL CWE-338 finding (#182) ### 🐛 Bug Fixes - **fix(cc-compatible):** fix CC-compatible relay format and UI copy (#1742) - **fix(codex):** normalize max reasoning effort for Codex routing (#1744) - **fix(claude-code):** fix Claude Code gateway config helper (#1745) - **fix(db):** reconcile legacy `create_reasoning_cache` migration tracking to prevent version shadowing on `032` and resolve startup warnings (#1734) - **fix(db):** intercept `007` migration to use idempotent `IF NOT EXISTS` logic via `PRAGMA table_info`, preventing syntax crashes on fresh installs (#1733) - **fix(cc-compatible):** preserve Claude Code system skeleton to prevent request rejection by strict compatible upstream providers (#1740) - **fix(providers):** add API key validation for image-only providers and fix Stability AI requests to use `multipart/form-data` instead of JSON (#1726) - **fix(codex):** preserve `previous_response_id` and `conversation_id` fields when input array is empty to prevent schema validation errors (#1729) - **fix(searxng):** bypass UI validation block when `apiKeyOptional` is true and fix typing errors in provider dashboard to allow saving search providers without credentials (#1721) - **fix(proxy):** disable HTTP keep-alive and pipelining in Undici proxy dispatcher to prevent "Socket hang up" rotation failures - **stream:** correctly identify `thought` and `error` blocks in Antigravity/Gemini SSE streams to prevent premature 502 timeouts (#1725, #1705) ### 🛠️ Maintenance - **workflow:** add phase 4 release monitoring instructions to `/generate-release` workflow - **test:** fix typescript compilation errors in unit tests to keep CI typecheck pipeline fully green - **test:** update responses store expectations for empty input arrays