diegosouzapw
5d7772ecb0
chore(release): v2.6.2 — fix all module hashing, Anthropic tools filter, custom endpoint paths, Alibaba Cloud provider
2026-03-16 09:53:32 -03:00
diegosouzapw
74d3374d5c
chore(release): v2.6.1 — fix better-sqlite3 startup crash on npm global installs ( #394 )
2026-03-15 21:51:35 -03:00
diegosouzapw
44478c36a3
chore(release): v2.6.0 — issue resolution sprint ( #390 #340 #344 #377 #378 #337 )
2026-03-15 19:15:38 -03:00
Diego Rodrigues de Sa e Souza
fa267274b0
Merge pull request #386 from kfiramar/chore-test-script-loader-consistency
...
chore(tests): align targeted test runners
2026-03-15 19:08:47 -03:00
diegosouzapw
2979a36a7c
chore(release): v2.5.9 — codex passthrough + route validation + JWT persist
2026-03-15 15:46:06 -03:00
diegosouzapw
c905119d82
fix(build): remove --webpack from prepublish.mjs — fixes VPS app/server.js missing in npm package
2026-03-15 14:56:20 -03:00
diegosouzapw
c581ca8339
fix(build): remove deprecated --webpack flag from next build script
2026-03-15 14:05:46 -03:00
diegosouzapw
ccf9d9214a
chore(release): v2.5.7 — media playground error handling fixes
2026-03-15 13:55:28 -03:00
Kfir Amar
0f13965391
chore(tests): align targeted test runners
2026-03-15 18:25:22 +02:00
diegosouzapw
441534853b
chore(release): v2.5.6 — Antigravity OAuth fix, JWT session persistence
2026-03-15 13:05:52 -03:00
diegosouzapw
8e06dc5ace
chore(release): v2.5.5 — model list dedup, Electron build hardening, Kiro credit tracking
2026-03-15 12:34:58 -03:00
diegosouzapw
4b7a9233e7
chore(release): v2.5.4 — logger fix, login bootstrap, HMR origins, CI hardening
2026-03-15 01:12:27 -03:00
diegosouzapw
36856b18db
chore: release v2.5.3
...
bug fixes (PRs #373 , #371 , #372 , #369 by @kfiramar):
- fix(db): provider_connections.group column migration for existing DBs
- fix(i18n): replace missing deleteConnection key with delete in tooltip
- fix(auth): clear stale error metadata on genuine provider recovery
- fix(startup): unify env loading across npm/electron startup paths
code quality improvements (per kilo-code-bot review):
- docs: document result.success vs response.ok patterns in auth.ts
- refactor: normalize overridePath?.trim() in electron/main.js
- docs: explain preferredEnv merge order intent
2026-03-14 19:53:59 -03:00
diegosouzapw
245243c7e7
chore: release v2.5.2 (version bump, npm conflict with 2.5.1)
2026-03-14 16:01:14 -03:00
diegosouzapw
759ac0df3d
chore: release v2.5.1
...
- PR #368 : gpt-5.4 in Codex model registry (cx/gpt-5.4, codex/gpt-5.4)
- PR #367 : Codex fast tier toggle (default-off, full stack, 48 tests)
- PR #366 : Codex quota policy 5h/weekly with auto-rotation
- fix #356 : analytics charts show provider display names not raw IDs
2026-03-14 15:55:06 -03:00
diegosouzapw
da14390fe0
chore: release v2.5.0
...
Includes:
- PR #363 : strict-random strategy, API key controls, connection groups, Limits UX (AndersonFirmino)
- PR #365 : external pricing sync with LiteLLM 3-tier resolution (Regis-RCR)
- fix #355 : stream idle timeout 60s → 300s for thinking models
- fix #350 : combo test bypasses REQUIRE_API_KEY via X-Internal-Test header
- fix #346 : filter tools with empty function.name before forwarding upstream
2026-03-14 15:31:27 -03:00
diegosouzapw
1b354be827
feat: T07 — API Key Round-Robin per provider connection
...
- New: open-sse/services/apiKeyRotator.ts — round-robin rotation
between primary API key + providerSpecificData.extraApiKeys[]
- Modified: open-sse/executors/base.ts — buildHeaders() rotates key
using getRotatingApiKey() when extraApiKeys configured
- Modified: open-sse/handlers/chatCore.ts — injects connectionId into
credentials to enable per-connection rotation index tracking
- Modified: providers/[id]/page.tsx — 'Extra API Keys' UI section in
EditConnectionModal: add/remove keys, persisted in providerSpecificData
T08 (quota window rolling) and T13 (wildcard model routing) confirmed
already implemented in accountFallback.ts and wildcardRouter.ts.
2026-03-14 15:03:54 -03:00
diegosouzapw
75a6d850fc
chore: release v2.4.3
...
- fix: Codex/GitHub limits page HTTP 500 → graceful 401/403 messages
- fix: MaintenanceBanner false-positive on page load (stale closure)
- fix: add title tooltips to edit/delete buttons in ConnectionCard
- feat: add fill-first and p2c routing strategies to combo picker
- feat: Free Stack template pre-fills 7 free provider models
- feat: combo create/edit modal wider (max-w-4xl)
2026-03-14 12:49:36 -03:00
diegosouzapw
b0f5f92f1a
feat(release): v2.4.2 — task-aware routing, HuggingFace/Vertex providers, streaming fixes, token tracking, playground uploads
...
- feat: Task-Aware Smart Routing (T05) — auto-select model by task type
- feat: HuggingFace and Vertex AI provider support
- feat: Playground audio/image file uploads for transcription and vision
- feat: ModelSelectModal shows ✓ for already-added models (#180 )
- fix: Claude Haiku routed to OpenAI without provider prefix (#73 )
- fix: Token counts always 0 for Antigravity/Claude streaming (#74 )
- fix: OpenAI SDK stream=False drops tool_calls (#302 )
- fix: Media page generation errors — inline rendering for images/transcription
- fix: Round-robin state management for excluded accounts (#349 )
- fix: Qwen user agent and CLI fingerprint compatibility (#352 )
- deps: undici→7.24.2, dompurify→3.3.3, docker actions v4
- docs: CHANGELOG 2.4.2 with full feature/fix list
- docs: README with Task-Aware Routing table entry
2026-03-14 11:04:09 -03:00
diegosouzapw
d976abb5e0
chore: v2.4.1 — combos free-stack always visible
2026-03-13 11:29:51 -03:00
diegosouzapw
1e93ee5c34
chore: release v2.4.0
...
Bump from 2.3.17 to 2.4.0 to reflect the significance of this release:
- Free Stack combo template ecosystem
- Transcription playground overhaul (Deepgram default, $200/$50 free badges)
- 44+ providers documented, hasFree badges on NVIDIA/Cerebras/Groq
- README: Start Free section, Free Models section, Free Transcription Combo
- tierPriority as 7th scoring factor in auto-combo UI
- i18n 30 languages fully synced
2026-03-13 11:20:31 -03:00
diegosouzapw
1b6c502c7f
feat: free-stack combo, Deepgram transcription default, README free sections, provider hasFree badges
...
- Combos: add 'Free Stack ($0)' as 4th combo template (round-robin: Kiro+iFlow+Qwen+GeminiCLI)
- Media/Transcription: Deepgram (Nova 3) as default provider, show $200/$50/free badges
- providers.ts: hasFree + freeNote for NVIDIA NIM (40 RPM), Cerebras (1M tok/day), Groq (30 RPM)
- README: new early '🆓 Start Free' 5-step table before Quick Start
- README: new '🎙️ Free Transcription Combo' section (Deepgram/AssemblyAI/Groq)
- README: NVIDIA NIM model list updated (Kimi K2.5, GLM 4.7, DeepSeek V3.2)
- i18n: templateFreeStack + templateFreeStackDesc synced to 30 languages
- Bump version to 2.3.17
2026-03-13 11:13:02 -03:00
diegosouzapw
4e4532c057
docs(readme): 44+ providers, free models section, accurate free tier quotas
...
- Update provider count from 36+ to 44+ in 3 locations (line 5, unified endpoint, one-endpoint sections)
- Add new section '🆓 Free Models — What You Actually Get' with 7 provider tables:
- Kiro: 3 Claude models (unlimited via AWS Builder ID)
- iFlow: 5 models unlimited (kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2.1, kimi-k2)
- Qwen: 4 models unlimited (qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model)
- Gemini CLI: 180K/month + 1K/day
- NVIDIA NIM: ~40 RPM dev-forever (70+ models), transitioning from credits to rate limits
- Cerebras: 1M tokens/day, 60K TPM / 30 RPM
- Groq: 30 RPM / 14.4K RPD
- Include $0 Ultimate Free Stack combo recommendation
- Update NVIDIA NIM from '1000 credits' to 'dev-forever free' (×3)
- Add Cerebras row to pricing table
- Fix iFlow 8→5 models (with names), Qwen 3→4 models (with names)
- Bump version to 2.3.16
2026-03-13 11:03:24 -03:00
diegosouzapw
9055fc2129
feat(auto-combo): add tierPriority factor label + autoCombo i18n section (30 languages)
...
- Add 'tierPriority: 🏷️ Tier' to FACTOR_LABELS in auto-combo dashboard (7th scoring factor)
- Add 'autoCombo' i18n section with 20 keys to en.json
- Sync autoCombo i18n keys to 29 language files (ar, bg, da, de, es, fi, fr, hi, hu, id, it, ja, ko, nl, no, pl, pt-BR, pt, ro, ru, sk, sv, th, tr, uk, vi, zh-CN, zh-TW + all others)
- Bump version to 2.3.15
2026-03-13 10:40:59 -03:00
diegosouzapw
b8fec94b0d
feat(release): v2.3.14 — iFlow fix, MITM compile, GeminiCLI fallback, new models, tier scoring API
2026-03-13 10:19:38 -03:00
diegosouzapw
f6c0744d67
feat(release): v2.3.13 — tiered quota scoring, model fallback, auth fixes, pnpm fix
...
- Tiered quota scoring (Ultra>Pro>Free) as 7th Auto-Combo factor
- Intra-family model fallback on 404/400/403 errors
- Configurable API bridge timeout (API_BRIDGE_PROXY_TIMEOUT_MS)
- INITIAL_PASSWORD accepted on first login with timingSafeEqual
- README </details> truncation fix (affects all GitHub renders)
- pnpm @swc/helpers override conflict removed
- CLI path injection hardening (isSafePath validator)
- 429 retry, Gemini CLI headers, Claude response_format injection
- deepseek-3.1/3.2, qwen3-coder-next pricing added
- starchart.cc star widget in all 30 READMEs
2026-03-12 18:18:53 -03:00
diegosouzapw
02b19e63e8
fix(pnpm): remove @swc/helpers override conflict, add pnpm build-scripts config ( #328 )
...
The @swc/helpers override in package.json duplicated the direct dependency
at the exact same version (0.5.19), causing 'EOVERRIDE' errors when pnpm
users tried to rebuild native modules like better-sqlite3.
Fixes:
- Remove redundant 'overrides' block (direct dep already pins 0.5.19)
- Add pnpm.onlyBuiltDependencies for @parcel/watcher, @swc/core,
better-sqlite3, esbuild, omniroute, sharp (replaces pnpm approve-builds)
- Add pnpm usage note to README Quick Start
Closes #328
2026-03-12 18:06:27 -03:00
diegosouzapw
8dad2d32b6
fix(cli-tools): add opencode to cliRuntime, increase timeouts for slow-start CLIs
...
- opencode: add to CLI_TOOLS registry with 15s healthcheck timeout
- openclaw/cursor: increase from 12s → 15s (cold-start on VPS)
- continue: add healthcheckTimeoutMs 15s
- VPS: activated CLI_EXTRA_PATHS=/root/.local/bin for kiro-cli visibility
- VPS: installed droid and openclaw npm packages
2026-03-12 16:42:43 -03:00
diegosouzapw
d07a5f0df7
fix(cli-tools): increase kilocode healthcheck timeout from 4s to 15s
...
kilocode renders ASCII logo banner on startup causing false healthcheck_failed
timeouts on cold-start or low-resource environments (VPS, CI, dashboard)
2026-03-12 16:34:39 -03:00
diegosouzapw
1c10cfe4bc
fix(lint): replace as any with Record<string,unknown> in OAuthModal — passes check:any-budget:t11
...
Also bump version to 2.3.10
2026-03-12 13:48:30 -03:00
diegosouzapw
1d7bc5fed7
feat: add /v1/completions legacy endpoint + show all 3 OpenAI endpoints in dashboard
...
- New route /v1/completions: accepts prompt string (legacy) + messages array
Normalizes prompt format to chat/completions format automatically
- EndpointPageClient: Added 3rd card (Completions Legacy) in Core APIs section
Dashboard now shows: /v1/chat/completions, /v1/responses, /v1/completions
- i18n: completionsLegacy/completionsLegacyDesc synced to 30 languages
2026-03-12 12:57:31 -03:00
diegosouzapw
763fdf3135
chore: release v2.3.8 — OAuthModal [object Object] fix
2026-03-12 12:42:40 -03:00
diegosouzapw
69e9bd81e9
chore: release v2.3.7
...
- Cline OAuth base64 decodeURIComponent fix
- OAuth account name normalization (name=email fallback)
- Remove sequential Account N naming
2026-03-12 12:25:17 -03:00
diegosouzapw
87ffe41d8c
fix: i18n sync 29 langs + provider test [object Object] fix
...
- Add cliTools.toolDescriptions.opencode, .kiro, guides.opencode, guides.kiro to en.json
- Sync 1111 missing keys across 29 language files (English fallbacks)
- Fix [object Object] in provider batch test modal:
normalize data.error object to string before setTestResults()
and in ProviderTestResultsView rendering
- Bump version to 2.3.6
2026-03-12 11:11:15 -03:00
diegosouzapw
943a9374b4
fix: permanent @swc/helpers MODULE_NOT_FOUND fix (#crash)
...
prepublish.mjs: explicitly copy @swc/helpers into standalone app/node_modules
before packaging. npm tarball will always include it.
postinstall.mjs: fallback copy of @swc/helpers from root node_modules into
app/node_modules/@swc/ when missing after npm install -g.
Fixes server crash after npm install -g omniroute.
2026-03-12 10:42:59 -03:00
diegosouzapw
8956ffef73
chore: release v2.3.4
2026-03-12 10:27:45 -03:00
diegosouzapw
845787ab7f
chore(release): v2.3.3
...
fix(providers): prevent error boundary crash when Test All fails or times out (PR #330 )
2026-03-12 09:56:51 -03:00
diegosouzapw
1e9a9adbad
chore(release): v2.3.2
...
feat(claude): [1m] suffix for 1M extended context (PR #311 @DavyMassoneto)
feat(registry): new models for iFlow, Qwen, Kimi (PR #326 @nyatoru)
fix(cli): postinstall binary copy instead of rebuild (PR #327 @ardaaltinors, fixes #321 )
docs: English Remote OAuth guide in README (PR #329 , fixes #318 )
test: 3 unit tests for parseModel [1m] suffix
2026-03-12 07:00:10 -03:00
ardaaltinors
5a244aa12a
fix(cli): include native-binary-compat.mjs in published package files
...
The module is imported by bin/omniroute.mjs but was missing from the
files array in package.json, causing ERR_MODULE_NOT_FOUND on global
installs.
2026-03-12 10:26:16 +03:00
diegosouzapw
a3ad7c6c2e
chore(release): v2.3.1
...
fix(ui): translate hardcoded PT-BR text in OAuthModal to English (#314 , PR #325 )
fix(ts): wrap unknown dataObj fields with toRecord() in usage.ts (Kimi parser)
fix(instrumentation): await getSettings() — property access on Promise (#316 follow-up)
2026-03-11 20:49:37 -03:00
diegosouzapw
e27a2a0d55
chore(release): v2.3.0
...
fix(aliases): custom model aliases applied to routing + restored on startup (#315 #316 , PR #317 )
fix(cli): better-sqlite3 postinstall rebuild cross-platform macOS ARM (#312 , PR #313 @ardaaltinors)
2026-03-11 12:43:50 -03:00
diegosouzapw
c7ae9c30c2
chore(release): v2.2.9
...
feat(providers): persist custom model endpoint edits (#307 , PR #307 by @hijak)
fix(deps): add @swc/helpers as explicit dep to fix MODULE_NOT_FOUND (#306 , PR #308 )
fix(usage): correct Claude quota display — utilization = % used (#299 , PR #309 )
2026-03-11 08:46:16 -03:00
diegosouzapw
5ea6ad4a9e
fix(deps): add @swc/helpers as explicit dependency ( #306 )
...
next@16 lists @swc/helpers@0.5.15 in its own dependencies but npm's
deduplication during global install fails to place it in the omniroute
app's node_modules when hoisted. This causes MODULE_NOT_FOUND for
@swc/helpers/esm/_interop_require_default.js on startup.
Fix: add @swc/helpers@0.5.19 to omniroute's top-level dependencies and
overrides so npm guarantees its presence regardless of hoisting strategy.
Reproducible on Windows (Node 22) and Linux.
2026-03-11 08:40:31 -03:00
diegosouzapw
8df24c855b
chore(release): v2.2.8
...
fix(docker): healthcheck now uses /api/monitoring/health (#296 , PR #301 )
fix(rate-limit): maxWait=120s on Bottleneck prevents endless queue (#297 , PR #302 )
2026-03-11 00:20:57 -03:00
diegosouzapw
542eb0e719
chore(release): v2.2.7
...
fix(docker): bootstrap-env.mjs missing in runtime image (#292 , PR #293 )
fix(google-cli): prefer OAuth projectId over stale body.project (PR #294 )
fix(chat): strip empty name from messages/input before upstream (#291 , PR #300 )
deps: bump hono 4.12.4 → 4.12.7 (PR #298 )
2026-03-10 23:34:19 -03:00
diegosouzapw
902c7244d1
chore(release): v2.2.6
...
fix(translator): map Claude thinking_delta to reasoning_content (#289 )
- Close #289 : thinking tokens now visible in Claude Code, Cursor, Windsurf
2026-03-10 16:21:20 -03:00
diegosouzapw
af46f87eed
feat(bootstrap): zero-config auto-generated secrets on first run
...
Resolves root cause of #252 (Electron black screen) and #249 (OAuth fail)
for users running with zero configuration (no .env needed).
New: scripts/bootstrap-env.mjs
- Auto-generates JWT_SECRET (64 bytes), STORAGE_ENCRYPTION_KEY (32 bytes),
API_KEY_SECRET (32 bytes) if missing or empty
- Persists to {DATA_DIR}/server.env — survives restarts, Docker volume
remounts, and upgrades without changing secrets
- Reads .env from CWD (user overrides), then merges process.env (highest prio)
- Logs friendly warnings for missing optional OAuth secrets
Updated: run-standalone.mjs + run-next.mjs
- Call bootstrapEnv() before spawning server — covers npm + Docker paths
Updated: electron/main.js (synchronous inline — CJS cannot await import ESM)
- Reads userData/server.env, generates missing secrets with crypto.randomBytes()
- Persists back to server.env, sets OMNIROUTE_BOOTSTRAPPED=true
New: BootstrapBanner.tsx + page.tsx update
- Dismissable amber banner on dashboard home when running in zero-config mode
- Shows where server.env is located and how to customize secrets
2026-03-10 15:15:07 -03:00
diegosouzapw
5763609008
feat(release): v2.2.4 — CI fixes (docs-sync, electron fpm, docker)
2026-03-10 14:37:04 -03:00
diegosouzapw
ac68022233
feat(release): v2.2.3 — bug fixes from community PRs
...
fix(google-cli): remove fake projectId fallback causing permission/verification errors (#285 )
- antigravity.ts, openai-to-gemini.ts, geminiHelper.ts
- Throws clear error instead of silently sending with random project IDs
fix(claude): extend empty tool name filter to all message roles (#288 )
- Pass 1.4 now covers all roles, not just assistant
- Filters tool_result with missing tool_use_id
- Filters top-level body.tools with empty names
- Explicit @swc/helpers COPY in Dockerfile runner-base stage
2026-03-10 12:53:47 -03:00
diegosouzapw
d9d0640f6e
feat(release): v2.2.2 — system-info script, Kimi/Mistral/Llama aliases
...
- New npm run system-info command (#280 )
- Kimi K2/K2.5 Fireworks path aliases (#265 )
- Mistral/Llama short aliases (#278 )
- Custom alias instructions via Settings → Model Aliases
2026-03-10 11:00:20 -03:00