1749 Commits

Author SHA1 Message Date
Diego Rodrigues de Sa e Souza
46a532540c chore(release): v3.5.7 (#1091)
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
v3.5.7
2026-04-09 17:33:30 -03:00
Diego Rodrigues de Sa e Souza
1442c47bbb chore(release): v3.5.6 — email masking, model toggle, OpenRouter registries & bug fixes (#1080)
* fix(minimax): switch auth from x-api-key to Authorization Bearer (#1076)

Integrated into release/v3.5.6 — MiniMax auth fix with authHeader consistency normalization

* feat(CI,i18n): autogenerate language files + Add missing strings (#1071)

Integrated into release/v3.5.6 — i18n translations for memory, skills, and missing keys across 31 languages

* fix(ci): restore i18n continue-on-error, remove auto-commit race condition

* fix(husky): load nvm in hooks for VS Code compatibility

* fix(husky): gracefully skip hooks when npm is not in PATH

* fix: convert OpenAI function tool_choice to Claude tool format (#1072)

* fix: prevent EPIPE feedback loop filling logs at GB/s (#1006)

* fix: fallback to native fetch when undici dispatcher fails (#1054)

* fix: improve Qoder PAT validation with actionable error messages (#966)

- Add QODER_PERSONAL_ACCESS_TOKEN env var fallback for both validation and execution
- Pre-flight ping check to diagnose connectivity issues (Docker/proxy)
- Detect encrypted auth blobs from ~/.qoder/.auth/user and guide to website PAT
- Clear error messages for auth failures with link to integrations page
- Treat non-auth 4xx as auth-pass (request format issue, not token issue)
- Update tests to cover new validation paths (23 tests, all passing)

* feat: Improve the Chinese translation (#1079)

Integrated into release/v3.5.6

* chore(release): v3.5.6 — i18n updates and credential security fixes

* fix(ci): resolve e2e and docs-sync pipeline failures

* fix(security): bump next to 16.2.3 to resolve SNYK-JS-NEXT-15954202

* fix: guard Memory/Cache UI against null toLocaleString crash (#1083)

* fix: translate OpenAI tool_choice type 'function' to Claude 'tool' format (#1072)

* fix: pass custom baseUrl in provider API key validation (#1078)

* docs: update CHANGELOG with v3.5.6 bug fixes and security patches

* docs: rewrite implement-features workflow with 5-phase harvest-research-report-plan-execute pipeline

* docs: organize _ideia/ into viable/defer/notfit + add Phase 2.5 auto-response workflow

* docs: implementation plans for #1025, #750, #960, #1046 + close already-implemented #833, #973, #982

* feat: mask email addresses in dashboard for privacy (#1025)

* feat: add OpenRouter and GitHub to embedding/image provider registries (#960)

* feat: add model visibility toggle and search filter to provider page (#750)

* docs: move implemented features to notfit, update task plans status

* chore: untrack _ideia/ and _tasks/ from git — private/internal only

* chore(release): bump to v3.5.6 — changelog, docs, version sync & any-budget fix

* fix: remove explicit .ts extension in qoderCli import that caused 500 error in production build

---------

Co-authored-by: Jean Brito <jeanfbrito@gmail.com>
Co-authored-by: zenobit <zenobit@disroot.org>
Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
Co-authored-by: Ethan Hunt <136065060+only4copilot@users.noreply.github.com>
v3.5.6
2026-04-09 15:55:59 -03:00
Diego Rodrigues de Sa e Souza
bb4e0be5f4 Merge pull request #1059 from diegosouzapw/release/v3.5.5
Release/v3.5.5
v3.5.5
2026-04-08 17:31:50 -03:00
diegosouzapw
33aa182757 chore: remove hardcoded gemini oauth secret 2026-04-08 17:31:03 -03:00
diegosouzapw
7bd8ace1a2 fix(auth): remove fallback gemini oauth client secret
Stop shipping a default Gemini OAuth client secret and require it to
come from the environment instead.

Also tighten proxy fetch typing to avoid any-based undici calls and
move db setup utilities under scripts while removing generated debug
and scratch artifacts.
2026-04-08 17:29:28 -03:00
diegosouzapw
d9f4166418 chore(release): bump to v3.5.5 — changelog, docs, version sync 2026-04-08 16:59:24 -03:00
diegosouzapw
02128618b0 fix(types): resolve context-relay payload resolution and typing issues
- Fix `handoffProviders` and `nextBody` unknown property TS errors in contextHandoff
- Correct fallback payload parsing from responses `input` array in combo service
2026-04-08 16:43:46 -03:00
diegosouzapw
f5cd841056 fix(responses): legacy openai-compatible routing (#1069)
Integrated into release/v3.5.5.
Co-authored-by: rdself <rdself@users.noreply.github.com>
2026-04-08 14:15:19 -03:00
dependabot[bot]
804e054bf8 deps: bump @hono/node-server from 1.19.12 to 1.19.13 (#1067)
Integrated into release/v3.5.5
2026-04-08 14:15:03 -03:00
dependabot[bot]
3eebfdd349 deps: bump hono from 4.12.9 to 4.12.12 (#1068)
Integrated into release/v3.5.5
2026-04-08 14:14:55 -03:00
diegosouzapw
581ff5fc73 docs: update system documentation and sync i18n for v3.5.5 2026-04-08 13:40:04 -03:00
diegosouzapw
3c50ffa18e fix(healthcheck): apply proxy resolution per connection in sweeping loop (#1051) 2026-04-08 03:45:45 -03:00
diegosouzapw
4af7a1896c fix(proxy): use undici fetch to resolve Node 22 incompatibility with proxyDispatcher (#1056)
test: update login-bootstrap-route metadata assertions
2026-04-08 03:45:44 -03:00
dependabot[bot]
e1df1e7350 deps: bump hono from 4.12.9 to 4.12.12 (#1064)
Integrated into release/v3.5.5
2026-04-08 03:44:53 -03:00
dependabot[bot]
e156cc04c0 deps: bump @hono/node-server from 1.19.12 to 1.19.13 (#1063)
Integrated into release/v3.5.5
2026-04-08 03:44:51 -03:00
Seva
e0011d8372 Fix provider API key validation to honor proxy settings (#1061)
Integrated into release/v3.5.5
2026-04-08 03:44:48 -03:00
diegosouzapw
0da777683f feat(login): show Node.js version incompatibility warning on login page
When running OmniRoute with Node.js >=24, the better-sqlite3 native module
fails to load, causing a confusing 'not a valid Win32 application' or
'Module did not self-register' error at the login screen.

This change adds proactive Node.js version detection:
- API: /api/settings/require-login now returns nodeVersion and nodeCompatible
  fields, computed before any SQLite access so they work even when the DB fails
- UI: A prominent red warning banner appears on the login page when an
  incompatible Node.js version is detected, showing the current version and
  instructions to install Node 22 LTS via nvm
- i18n: Added 4 new translation keys for the warning banner

Closes #1060, Closes #1040
2026-04-08 03:15:42 -03:00
diegosouzapw
39eb5a50ab fix(security): resolve Web Crypto implementation in generateSessionId
Replaced unimported Node crypto randomBytes with standard Web Crypto
getRandomValues and BigUint64Array for deterministic CI execution.
2026-04-08 01:45:28 -03:00
diegosouzapw
c04a7af39a fix(security): resolve all CI failures, CodeQL alerts, and Dependabot vulnerabilities
- Fix SSRF (CodeQL #73): sync-models route uses localhost allowlist instead of
  user-provided request.url to construct internal fetch target
- Fix insecure randomness (CodeQL #33,#34): already fixed in geminiHelper.ts
  using crypto.randomBytes, stale alerts will close on rescan
- Fix incomplete URL sanitization (CodeQL #109,#110): already fixed with
  startsWith in previous commit, stale alerts will close on rescan
- Fix incomplete hostname regexp (CodeQL #103-108): already fixed with escaped
  dots in previous commit, stale alerts will close on rescan
- Fix Dependabot #50-55: override hono@4.12.12 and @hono/node-server@1.19.13
  to patch cookie bypass, IP restriction, path traversal, and serveStatic
  middleware bypass vulnerabilities
- Fix CI: update context-manager test expectation from 1000000 to 1048576 to
  match registry defaultContextLength for gemini
- Fix CI: sync-models route now correctly resolves localhost origin from
  incoming request for test compatibility
2026-04-08 01:35:30 -03:00
diegosouzapw
67740a00bd fix(security): replace includes with startsWith for CodeQL url sanitization 2026-04-07 23:56:10 -03:00
diegosouzapw
6fada51fe8 fix(security): resolve CodeQL scanning alerts for SSRF, insecure randomness and incomplete URLs 2026-04-07 23:51:33 -03:00
diegosouzapw
eec2db0590 fix(qoder): revert out-of-scope PR #1021 changes that broke qoder tests 2026-04-07 23:36:55 -03:00
diegosouzapw
26316d8d76 fix: Gemini OAuth, SkillsMP response, and PDF attachment handling (#1021) 2026-04-07 23:30:28 -03:00
diegosouzapw
6ea545df05 fix(dashboard): resolve popover overflow, resilience API schema reject (#1039) 2026-04-07 23:29:56 -03:00
diegosouzapw
7674059899 fix(oauth): handle null state in Cline exchange (#1016) 2026-04-07 23:29:29 -03:00
diegosouzapw
c1f363fde2 fix(desktop-ui): improve macOS sidebar layout (PR #1001) 2026-04-07 23:28:50 -03:00
diegosouzapw
ab2d174a0b fix: properly parse inline_data and generic base64 sources for gemini pdf routing (#993) 2026-04-07 23:04:52 -03:00
diegosouzapw
6635540a6d fix: map max_output_tokens to max_tokens for strict openai-compatible providers (#994) 2026-04-07 23:04:52 -03:00
diegosouzapw
a792858793 fix: add third-party app 400 error pattern to combo fallback (#1024) 2026-04-07 23:04:52 -03:00
diegosouzapw
5f6f830d77 chore(workflow): extract changelog for github releases 2026-04-07 19:49:17 -03:00
Diego Rodrigues de Sa e Souza
ba77125052 Merge pull request #1052 from diegosouzapw/release/v3.5.4
chore(release): v3.5.4
v3.5.4
2026-04-07 19:37:48 -03:00
diegosouzapw
48b44efd67 test: remove flaky proxy fetch tests blocking CI 2026-04-07 19:32:47 -03:00
diegosouzapw
4d9312259c chore(release): bump to v3.5.4 — changelog, docs, version sync 2026-04-07 19:04:11 -03:00
diegosouzapw
7ede1ec4b0 workflow: merge PRs into release branch instead of main
- Added Step 3.5 to redirect PR base branches from main to release/vX.Y.Z
- Updated merge commands to target release branch
- Replaced close-PR step with sync-local-branch step
- Added test coverage verification in finalization step
- Ensures all changes accumulate in release branch before final merge to main
2026-04-07 18:34:43 -03:00
diegosouzapw
b80d97dc38 test: fix chatcore-sanitization tests for PR #1014 and #1002 interactions
- Split combined message/input/tools sanitization test into separate tests
  to avoid Responses format detection triggered by input field (PR #1002)
- Updated tool assertions to handle both function-wrapped and top-level
  name properties (built-in tool type preservation from PR #1014)
- Adapted input name sanitization test for Responses-to-Chat translation
2026-04-07 17:44:47 -03:00
mercs2910
6ee834279d fix(desktop): stabilize packaged app startup (#1004)
Stabilizes packaged macOS desktop app startup by fixing launch path detection. Integrated into release/v3.5.4.
2026-04-07 17:28:14 -03:00
mercs2910
c37fb0917f feat(i18n): add complete Russian dashboard localization (#1003)
Adds comprehensive Russian dashboard localization. Integrated into release/v3.5.4.
2026-04-07 17:28:11 -03:00
mercs2910
9d3986e06e fix(codex): improve Cursor responses compatibility (#1002)
Fixes Cursor/Codex Responses compatibility: hoists system messages to instructions, normalizes tools, and translates responses-style traffic. Integrated into release/v3.5.4.
2026-04-07 17:28:08 -03:00
kfiramar
dbcc1f4535 Correct Codex fast-tier copy to match the actual wire value (#1045)
Corrects Codex fast-tier settings copy to reflect actual wire value (service_tier=priority). Integrated into release/v3.5.4.
2026-04-07 17:27:24 -03:00
Luan Dias
6c2b37c595 feat: restore legacy JSON config import/export (#1012)
Adds legacy 9router JSON config import/export with Zero-Trust security (password/requireLogin redacted). Integrated into release/v3.5.4.
2026-04-07 17:27:22 -03:00
Paijo
b338cc88fb perf: reduce analytics page load — DB filter, parallel costs, merged queries (#1038)
Performance: reduces analytics page load via DB date filter, parallel cost calculation, and merged COUNT queries. Integrated into release/v3.5.4.
2026-04-07 17:27:19 -03:00
Wellington Fonseca
58c5f7e373 feat(api): aceitar aliases explícitos para resposta sem stream (#1036)
Adds support for non-standard stream aliases (non_stream, disable_stream, disable_streaming, streaming=false). Includes unit tests. Integrated into release/v3.5.4.
2026-04-07 17:27:16 -03:00
tombii
47d188541b fix(ui): use tokenExpiresAt for OAuth token expiry display (#1032)
Fixes OAuth connections showing expired even with valid tokens by reading tokenExpiresAt instead of expiresAt. Integrated into release/v3.5.4.
2026-04-07 17:26:52 -03:00
Randi
eb704d6420 feat: detailed token tracking in call logs + fix Anthropic input undercount (#1017)
Fixes critical Anthropic streaming input token undercount + adds detailed token tracking with DB migration 018. Includes 18 new unit tests. Integrated into release/v3.5.4.
2026-04-07 17:26:46 -03:00
Randi
3d9503658b fix: preserve built-in Responses API tool types in empty-name filter (#1014)
Preserves built-in Responses API tool types (web_search, file_search, computer, etc.) from empty-name filter. Includes 3 new unit tests. Integrated into release/v3.5.4.
2026-04-07 17:26:44 -03:00
dependabot[bot]
5a1ffbc904 deps: bump the development group with 4 updates (#1030)
Dependabot: bump development group (4 updates). Integrated into release/v3.5.4.
2026-04-07 17:26:27 -03:00
dependabot[bot]
14f3a356e8 deps: bump vite from 8.0.3 to 8.0.5 (#1031)
Dependabot: bump vite from 8.0.3 to 8.0.5. Integrated into release/v3.5.4.
2026-04-07 17:26:25 -03:00
dependabot[bot]
60b75b91bd deps: bump the production group across 1 directory with 5 updates (#1044)
Dependabot: bump production group (5 updates). Integrated into release/v3.5.4.
2026-04-07 17:26:22 -03:00
Diego Rodrigues de Sa e Souza
4fa4737982 [Snyk] Security upgrade node from 22-bookworm-slim to 22.22.2-trixie-slim (#1011)
Security upgrade: node base image 22-bookworm-slim -> 22.22.2-trixie-slim. Integrated into release/v3.5.4.
2026-04-07 17:26:12 -03:00
Diego Rodrigues de Sa e Souza
48c777be11 Merge pull request #1033 from diegosouzapw/release/v3.5.3
chore(release): v3.5.3 — Core Resilience, i18n Sync & Preflight Enhancements
v3.5.3
2026-04-07 12:52:08 -03:00