Commit Graph

2189 Commits

Author SHA1 Message Date
diegosouzapw
8a8e6ca349 fix(authz): Restore REQUIRE_API_KEY support in clientApi policy 2026-04-27 13:25:32 -03:00
diegosouzapw
ed9a7e5495 test: fix failing tests due to recent refactors 2026-04-27 12:12:06 -03:00
diegosouzapw
ccda2fbe44 ci: remove expired advanced security scans job 2026-04-27 11:59:09 -03:00
clousky2020
cc07e5f7f6 fix: add body-read timeout to prevent stuck pending requests (#1680)
fix: add body-read timeout to prevent stuck pending requests — integrated into release/v3.7.2
2026-04-27 11:51:04 -03:00
Jack
31a0628cf1 fix(search): support optional bearer auth for SearXNG (#1683)
fix(search): support optional bearer auth for SearXNG — integrated into release/v3.7.2
2026-04-27 11:50:43 -03:00
diegosouzapw
18a25e4e4c fix: combo retry loop stops immediately on client disconnect (499) (#1681)
- Treat status 499 as terminal non-retryable error in both priority and
  round-robin combo loops — no fallback to other models when client is gone
- Propagate AbortSignal from request into handleComboChat so the combo
  loop can detect client disconnects before starting new model attempts
- Make retry/fallback delays abort-aware via signal.addEventListener
- Add 5 unit tests covering 499 early-exit, signal.aborted pre-check,
  multi-model abort, 502 contrast behavior, and abort-during-wait
2026-04-27 11:39:26 -03:00
diegosouzapw
778a7170a5 fix(qwen): use security.auth format instead of modelProviders (#1677)
Co-authored-by: Benson K B <benzntech@users.noreply.github.com>
2026-04-27 10:36:40 -03:00
Payne
1c6d54ef57 feat(muse-spark-web): continue the same meta.ai conversation across turns (#1673)
Integrated into release/v3.7.2 — implements conversation continuity for muse-spark-web executor with SHA-256 prefix hashing, TTL cache, and eviction-on-error
2026-04-27 10:36:03 -03:00
Artёm
da4c3660f4 fix(vision): respected native GPT vision support (#1678)
Integrated into release/v3.7.2 — removes blanket gpt-* Vision Bridge override, respects native vision support
2026-04-27 10:30:17 -03:00
Artёm
665b3e2d5d fix(codex): remove stale websocket transport lookup (#1676)
Integrated into release/v3.7.2 — removes stale getCodexWebSocketTransport() lookup that blocked gpt-5.5 WebSocket routing
2026-04-27 10:29:37 -03:00
diegosouzapw
5666950929 chore: update CHANGELOG.md for PR #1669 2026-04-27 08:04:57 -03:00
backryun
021cfd791f fix(dev): enable Turbopack and repair Codex CORS headers (#1669)
Integrated into release/v3.7.2
2026-04-27 08:04:27 -03:00
diegosouzapw
cdb271ea23 chore: update CHANGELOG.md for PR #1668 2026-04-27 08:02:42 -03:00
Payne
ba6a8602fb fix(muse-spark-web): update to Meta's Ecto-era persisted query (fixes 502 "Unknown type RewriteOptionsInput") (#1668)
Integrated into release/v3.7.2
2026-04-27 08:02:12 -03:00
diegosouzapw
d4a92830be chore(release): bump to v3.7.2 — changelog, docs, version sync 2026-04-27 07:57:15 -03:00
diegosouzapw
03ec5808ff chore: update CHANGELOG.md for PR #1665 and #1666 2026-04-27 07:52:54 -03:00
Muhammad Tamir
6eb5d663b0 Fix Docker Not Copy SQLite (#1665)
Integrated into release/v3.7.2
2026-04-27 07:52:23 -03:00
Jack
6e0b801b6a fix(perplexity-web): update API version and user-agent (#1666)
Integrated into release/v3.7.2
2026-04-27 07:51:06 -03:00
diegosouzapw
6747e22757 fix(codex,db): resolve 6 issues — Codex 502, store default, migration guards
Fixes:
- fix(codex): rename getWreqWebsocket() → getCodexWebSocketTransport()
  Fixes the ReferenceError causing 502 on all Codex requests (#1652, #1653)

- fix(codex): default store to false instead of true
  Codex OAuth backend rejects store=true with 'Store must be set to false' (#1635)

- fix(db): add post-migration startup guards for combos.sort_order (#1657)
  and batches/files tables (#1648) — handles heuristic seeding edge case

- fix(db): renumber duplicate migration 032_create_reasoning_cache → 033

Closes #1635, #1648, #1652, #1653, #1657
Also closed as user-config: #1649 (Claude 429), #1659 (thought_signature)
2026-04-27 07:39:12 -03:00
abix5
6dd883e5f4 feat(authz): introduce centralized proxy-based authz pipeline and lifecycle policy (#1632)
Integrated into release/v3.7.2
2026-04-27 07:16:24 -03:00
Payne
4671a1eb98 fix(chatgpt-web): bound tls-client native deadlocks so requests never hang forever (#1664)
Integrated into release/v3.7.2
2026-04-27 07:16:24 -03:00
Randi
845e2b3d01 feat: configure call log pipeline artifacts (#1650)
Integrated into release/v3.7.2
2026-04-27 07:12:34 -03:00
Randi
bc91fb9e54 fix: avoid OpenAI stream options for Anthropic-compatible providers (#1654)
Integrated into release/v3.7.2
2026-04-27 07:12:25 -03:00
backryun
9d334c82b9 fix(grokweb):Update Request and Response Specifications (#1655)
Integrated into release/v3.7.2
2026-04-27 07:12:17 -03:00
Randi
98e70a706e [urgent] fix gpt-5.5 websocket transport and model labels (#1656)
Integrated into release/v3.7.2
2026-04-27 07:12:08 -03:00
kfiramar
eec5fa3feb Enable native Codex websocket responses on beta-gated models (#1658)
Integrated into release/v3.7.2
2026-04-27 07:11:59 -03:00
Gi99lin
712f1ea3e9 fix(codex): default gpt-5.5 to HTTP transport instead of WebSocket (#1660)
Integrated into release/v3.7.2
2026-04-27 07:11:51 -03:00
Jack
388b84de3c fix(blackbox-web): set isPremium flag to true (#1661)
Integrated into release/v3.7.2
2026-04-27 07:11:43 -03:00
t-way666
9881e190bf fix: resolve MCP server start failure on Windows (#1662)
Integrated into release/v3.7.2
2026-04-27 07:11:35 -03:00
diegosouzapw
4ac4ac3fd4 build(prepublish): make next build bundler configurable
Allow the prepublish script to choose between webpack and turbopack
using the OMNIROUTE_USE_TURBOPACK environment variable.

This keeps the default build path explicit while making it possible to
switch bundlers for packaging and release workflows without editing the
script.
2026-04-27 07:01:23 -03:00
diegosouzapw
cf0f947adb fix(electron): make Windows smoke test non-blocking (continue-on-error)
Windows CI requestSingleInstanceLock() reliably fails because the
USERPROFILE sanitization (needed for Next.js build) persists across
steps. The lock mechanism uses a named pipe tied to userData path,
which doesn't work with the synthetic USERPROFILE.

Linux and macOS smoke tests remain required gates.
2026-04-27 03:00:08 -03:00
diegosouzapw
ae77d1370e fix(electron): pre-create userData dir for Windows + stream logs in CI
Windows smoke test exits code=0 because requestSingleInstanceLock()
fails silently when the APPDATA/<productName> directory doesn't exist.
Pre-create the directory so the lock file can be written.

Also enables ELECTRON_SMOKE_STREAM_LOGS=1 in CI for better debugging.
2026-04-27 02:48:25 -03:00
diegosouzapw
4d48454c11 fix(electron): add --no-sandbox and sandbox env for CI smoke tests
Linux: SUID sandbox error (chrome-sandbox needs root:4755)
Windows: silent exit 0 without sandbox bypass

Adds --no-sandbox, --disable-gpu, --disable-dev-shm-usage CLI args
and ELECTRON_DISABLE_SANDBOX=1 env var when CI=true is detected.
2026-04-27 02:33:35 -03:00
diegosouzapw
c9fc36ca14 feat(network): add guarded remote image fetch utility
Centralize remote image downloads behind a shared helper that
validates outbound URLs, enforces redirect and size limits, and
applies request timeouts before bytes are read.

Wire the helper into image generation and vision bridge flows so
remote image inputs and result URLs follow the same fetch policy and
block redirects to private hosts. Update key management routes to use
structured logging and document the WebSocket bridge secret in the
example environment file.
2026-04-27 02:25:46 -03:00
Diego Rodrigues de Sa e Souza
3ff6137767 Merge pull request #1629 from diegosouzapw/release/v3.7.1
Release v3.7.1
v3.7.1
2026-04-27 01:48:18 -03:00
diegosouzapw
cbe7358dc8 chore(release): v3.7.1 — all changes in ONE commit 2026-04-27 01:47:54 -03:00
diegosouzapw
3008ba9a13 fix(transport): cap streaming logs and parse fragmented responses (#1647) 2026-04-27 01:45:36 -03:00
diegosouzapw
f14679f7a5 docs(changelog): add entries for merged PRs #1645 and #1646 2026-04-27 01:19:53 -03:00
Raxxoor
97912c7d9c fix(transport): harden GitHub and Kiro streaming (#1645)
Integrated into release/v3.7.1 — fixes GitHub executor concurrency bug, hardens Kiro streaming, adds defensive tool input parsing
2026-04-27 01:09:23 -03:00
backryun
725ec7f2a9 fix:Update Build env dependencys (#1646)
Integrated into release/v3.7.1 — CI dependency updates and Node 24.15.0 bump
2026-04-27 01:08:49 -03:00
diegosouzapw
c26c3a46a9 docs(changelog): add entries for #1643 and #1638 fixes 2026-04-27 00:37:31 -03:00
diegosouzapw
19edb8efa4 fix(claude): stabilize billing header fingerprint for prompt-cache affinity (#1638)
The billing header fingerprint was computed from the first user message text
via computeFingerprint(), which changes every conversation turn. This mutated
the system[] prefix on each request, invalidating Anthropic's prompt-cache
prefix and forcing ~100% cache_create (vs 96% cache_read with stable prefix).

Now uses a per-day SHA-256 hash of the date + ccVersion, keeping the billing
header format while preserving prompt-cache prefix stability across turns.

Includes 6 unit tests.
2026-04-27 00:37:25 -03:00
diegosouzapw
52d5b86e88 fix(codex): use per-conversation session_id as prompt_cache_key (#1643)
The prompt_cache_key was derived from the account-wide workspaceId, meaning
all conversations from the same OAuth account shared one cache partition.
The official Codex CLI uses conversation_id (a unique UUID per session).

Priority: body.session_id > body.conversation_id > workspaceId.
Session IDs are captured BEFORE deletion from the body.

Includes 10 unit tests.
2026-04-27 00:37:15 -03:00
diegosouzapw
738e108d06 docs(changelog): add entries for merged PRs #1641, #1642, #1640, #1639, #1644 2026-04-27 00:04:07 -03:00
diegosouzapw
78b845b68c feat(account-fallback): add daily quota lockout for quota_exhausted errors (#1644)
When a provider returns 429 with quota_exhausted reason, set cooldown until
tomorrow 00:00 instead of exponential backoff. Includes isDailyQuotaExhausted()
detection in chat handler and unit tests.

Co-authored-by: clousky2020 <clousky2020@users.noreply.github.com>
2026-04-27 00:02:44 -03:00
Prateek Rungta
56ae1b8246 fix: package Electron runtime deps (#1639)
Integrated into release/v3.7.1 — fixes Electron installer shipping empty node_modules. Adds separate extraResources FileSet, CI smoke test job, and cross-platform packaged app validation script. Closes #1636.
2026-04-26 23:59:51 -03:00
Dendy Adi Nirwana
314cad79ba fix(codex): avoid startup crash when wreq-js is unavailable (#1640)
Integrated into release/v3.7.1 — lazy-loads wreq-js WebSocket transport so server boots even when native module is unavailable. Fixes #1612.
2026-04-26 23:59:30 -03:00
Slavic Kozyuk
4eef082cf3 fix(usage): correct MiniMax token plan quota display (#1642)
Integrated into release/v3.7.1 — fixes inverted MiniMax quota display for token_plan/remains endpoint and rounds floating-point percentages.
2026-04-26 23:57:55 -03:00
Raxxoor
acf6ad4ba0 fix: route newer GitHub GPT models through Responses (#1641)
Integrated into release/v3.7.1 — routes gpt-5.4-nano, gpt-5.4-mini, gpt-5.4, and gpt-5.5 through the Responses API on GitHub Copilot.
2026-04-26 23:57:37 -03:00
diegosouzapw
2601e0e49d fix(migration): prevent compat-renamed version slot from shadowing new migrations (#1637)
After reconcileRenumberedMigrations() rewrites a legacy row (e.g. 028→029),
verify the old version slot is clear. A residual row at the old version
would cause getAppliedVersions() to skip the new migration file at that
version number (028_create_files_and_batches.sql).

Also adds 'batches' table to PHYSICAL_SCHEMA_SENTINELS for physical
schema recovery on upgrade paths.
2026-04-26 23:29:25 -03:00