[3.8.1] — 2026-05-21
✨ New Features
- feat(settings): Feature Flags Settings Page (Card Grid + DB overrides) — fully implements the feature flags UI dashboard using Variant A (Card Grid) with Glassmorphism, complete with global
GET/PUT/DELETEAPI routes, Zod validation, debounced search, category filters, and full 30+ locale i18n support. Resolves priority hierarchy to DB > ENV > Defaults. (#2457) - feat(db): multi-driver SQLite abstraction layer — new
SqliteAdapterinterface with 3 concrete adapters (betterSqliteAdapter,nodeSqliteAdapter,sqljsAdapter) and adriverFactorythat cascadesbetter-sqlite3→node:sqlite→sql.js (WASM). Enables OmniRoute to run on any JavaScript runtime (Node.js, Bun, Deno, Cloudflare Workers) without native binary dependencies.better-sqlite3moved tooptionalDependencies. (#2447) - feat(settings): Claude Fast Mode toggle in Settings › AI — opt-in toggle that forwards
X-CPA-Force-Fast-Modeheader so a paired CLIProxyAPI build can reach Anthropic Fast Mode (speed:"fast"). Model-gated to Opus models matching Anthropic's binary KT() check. (#2449 — thanks @NomenAK) - feat(settings): Codex Fast Tier — tier dropdown (
default/priority/flex) + per-model gate preventing 400 errors from OpenAI when the tier toggle was on for non-Fast-eligible models. (#2451 — thanks @NomenAK) - feat: align Antigravity 2.0.1 support — updated client profile, upstream headers, and model aliases. (#2443 — thanks @dhaern)
- feat: enhance
extractBearerto supportx-api-keyfor Anthropic API style auth. (#2436 — thanks @thedtvn) - feat(memory): wire
createMemorytoupsertSemanticMemoryPoint(Qdrant). (#2439 — thanks @NomenAK)
🔧 Bug Fixes & Refactors
- fix(deepseek-web): rewrite auth to userToken Bearer + WASM PoW solver. (#2452 — thanks @ovehbe)
- chore: update node dependencies and runtime support. (#2453 — thanks @backryun)
- fix(translator): fix 3 Kiro
tool_resultdefects causing 400 on follow-up turns — missingtool_use_idmapping, orphan result blocks, and conversation ID collision on assistant-first turns. (#2447) - fix(translator): treat
developerrole as system in OpenAI → Claude translation —openAIToClaudenow extractsdeveloper-role messages intosystemParts(same assystem) and filters them from the non-system message list, preventing identity context injected via the Responses APIdeveloperrole from silently becoming an assistant turn when routing to a Claude-format provider. (#2407) - fix(antigravity): deduplicate
removeHeaderCaseInsensitive— export canonical implementation fromantigravityClientProfile.tsand remove the local copy inantigravity.ts; exportAntigravityCredentialsLiketype for cross-module use. (#2433 — thanks @Gi99lin) - refactor(docs): enhance frontmatter handling in DocPage — gray-matter Date object parsing bug fix. (#2448 — thanks @ovehbe)
- fix(jules): Jules API parity and cloud-agent provider registration. (#2438)
- fix(i18n): harden diff key extraction tag sanitization in
extract-keys-from-diff.mjs. - chore(i18n): refresh fr/es/de locales + add missing
settings.updatekey. (#2437) - fix(dashboard): allow bracketed combo names — align dashboard combo-name validator regex with the shared/server schema updated in PR #2354; names like
Claude [1m]are now accepted in the create/edit form. (#2458 — thanks @congvc-dev)
🔒 Security Fixes
- fix(security): replace
execSyncstring-template withspawnSyncarg-array inplugin.mjs— eliminates shell command injection via malicious plugin names. - fix(security): gate Electron CSP
unsafe-evalon!app.isPackagedinstead of URL substring match — was leakingunsafe-evalinto production builds; merged duplicateconnect-srcdirectives. - fix(api): add
requireManagementAuthto/api/usage/budget/bulkand/api/resilience/reset— both endpoints exposed spend data and circuit-breaker controls without auth. - fix(security): route catch-block error messages through
sanitizeErrorMessage()ingemini-web,claude-web,copilot-webexecutors,oauthroute, and cloud-agent task routes — prevents stack traces and internal paths leaking into HTTP responses. - fix(codex):
refreshCredentialsreturnsnull(not error-object) on token refresh failure — prevents base executor from spreading{error}onto active credentials. - fix(tokenRefresh): safe
unknown-error access incatchblock (error instanceof Error ? error.message : String(error)). - fix(combo): reset
exhaustedProvidersset at start of each set-retry iteration — providers excluded in a failing pass now get a second chance on retry. - fix(circuitBreaker): persist and restore
lastFailureKindvia theoptionsJSON column — kind-based cooldown overrides (cooldownByKind) now survive server restarts.
What's Changed
- Release/v3.7.9 by @diegosouzapw in #1988
- chore(providers): prune redundant provider icon assets by @backryun in #1992
- feat(gemini-cli): add custom projectId support (UI, DB, executor) by @nickwizard in #1991
- chore: Remove Deprecated Models by @backryun in #2033
- docs(env): add GITLAB_DUO_OAUTH_CLIENT_ID to .env.example by @wucm667 in #2031
- fix(catalog): auto-calculate combo context_length from target model limits by @herjarsa in #2030
- Update claude md and update glm-cn max context to 200k by @bypanghu in #2027
- fix(chatgpt-web): plumb proxy through to native tls-client (#2022) by @xssdem in #2023
- fix(codex): expose native model ids in catalog by @Tr0sT in #2012
- feat(sse): refresh Claude OAuth wire image to claude-cli/2.1.131 by @Tentoxa in #2011
- fix: add fuzzy auto-combo routing for 'auto/*' model prefix by @oyi77 in #2010
- Fix API key identity in usage analytics by @AveryanAlex in #2008
- fix(docker): include OpenAPI spec in runtime image by @tatsster in #2007
- fix: allow Unicode letters in API key name validation by @rodrigogbbr-stack in #1996
- Add KIE.AI media provider support by @wauputr4 in #2009
- fix(dashboard): resolve Unknown plan display in Provider Limits by @congvc-dev in #2004
- fix(mitm): add Linux cert install and skip sudo password when root by @NekoMonci12 in #1999
- deps: bump hono from 4.12.14 to 4.12.18 by @dependabot[bot] in #2065
- fix(sse): send Antigravity Claude requests as Gemini schema by @ivan-mezentsev in #2063
- feat(chat): dynamic tool limit detection with proactive truncation by @oyi77 in #2061
- Fix bare GPT-5.5 routing for Codex-only installations by @guanbear in #2054
- fix(antigravity): align identity protocol and fix streaming duplex by @Gi99lin in #2055
- fix: clean up proxy page redundancy and fix 1proxy sync empty body error by @oyi77 in #2052
- fix(auth): restore onboarding bootstrap when no password is configured by @tces1 in #2048
- feat(combo): add context_length input field to combo edit form by @ddarkr in #2047
- [cli omniroute] Add modular CLI setup and provider commands by @wauputr4 in #2046
- fix: Follow OpenAI specification, handle throttling in batch and fix UI by @hartmark in #2045
- fix(db): resolve migration renumbering CRITICAL warnings for compression migrations by @oyi77 in #2041
- fix(db): reduce hot-path persistence overhead by @dhaern in #2039
- fix(compression): support Responses input and expand Spanish rules by @dhaern in #2028
- feat(multi): manifest-aware tier routing — W1-W4 complete by @oyi77 in #2014
- feat(api): allow configuration via API calls - open management routes to Bearer keys with manage scope - by @gleber in #2103
- fix(antigravity): sanitize Claude Cloud Code payloads by @dhaern in #2090
- fix(kiro): normalize tool-use payloads by @rilham97 in #2104
- feat(providers): batch delete provider connections via checkbox multi-select by @oyi77 in #2094
- feat(providers): add 9 new free AI providers (LLM7, Lepton, Kluster, UncloseAI, BazaarLink, Completions, Enally, FreeTheAi) by @oyi77 in #2096
- fix(api): usage and keys by @yoviarpauzi in #2092
- fix(kiro): merge adjacent user history turns after role normalization by @Gioxaa in #2105
- Refresh providers, model catalogs, and docs for v3.8.0 by @backryun in #2088
- feat(cursor): full OpenAI parity (tool calls, streaming, sessions) by @payne0420 in #2082
- deps: bump hono from 4.12.14 to 4.12.18 by @dependabot[bot] in #2079
- deps: bump fast-uri from 3.1.0 to 3.1.2 by @dependabot[bot] in #2078
- fix(glm): add dedicated coding transport by @dhaern in #2087
- Feat/qdrant embedding model discovery by @rafacpti23 in #2086
- Release v3.8.0 by @diegosouzapw in #2073
- feat(auth): per-session sticky routing for codex by @smartenok-ops in #1887
- fix(sse): prevent Claude OAuth multi-account correlation via metadata.user_id by @Tentoxa in #2053
- feat(cli): Comprehensive CLI Enhancement Suite - 20+ new commands by @oyi77 in #2074
- Enhance reset-aware routing and support for Z.AI provider by @JxnLexn in #2019
- README SEO/AEO/GEO + Competitive Marketing by @oyi77 in #2091
- feat(circuit-breaker): classify 429 errors and apply per-kind cooldowns (#2100) by @hernaninverso in #2116
- feat(github): add targetFormat openai-responses to all GitHub models by @abhinavjnu in #2122
- fix(sse): classify hour quota errors as QUOTA_EXHAUSTED by @clousky2020 in #2119
- Fix CC-compatible streaming bridge by @rdself in #2118
- fix(i18n): complete Simplified Chinese translations by @boa-z in #2115
- feat(mcp): add DeepSeek quota and limit feature by @HoaPham98 in #2089
- chore: enhance Inworld TTS support by @backryun in #2123
- feat(resilience): useUpstream429BreakerHints toggle (#2100 follow-up to #2116) by @hernaninverso in #2133
- feat(auto): complete zero-config auto-routing with dashboard, settings, analytics, docs by @oyi77 in #2131
- feat(1proxy): add dedicated settings tab with proxy rotation support by @oyi77 in #2135
- Feat/dynamic linux cert paths by @flyingmongoose in #2134
- (Urgent) fix: restore cloud agent provider exports and logger import by @backryun in #2138
- fix: remove docs from .dockerignore #2120 by @hartmark in #2137
- fix(catalog): ensure individual models get context_length via getTokenLimit fallback by @herjarsa in #2136
- fix(sanitizer): preserve reasoning_content on assistant messages with tool_calls by @DavyMassoneto in #2140
- Add claude GitHub actions 1778466254012 by @diegosouzapw in #2142
- fix: remove duplicate cloud agent provider constants by @backryun in #2141
- fix(kiro): avoid treating high-traffic 429s as quota exhaustion by @Gioxaa in #2153
- fix(kiro): synthesize tools schema when history references tool_calls without body.tools by @Gioxaa in #2149
- fix(openai-responses): propagate include so chat clients stream reasoning summaries by @Gioxaa in #2154
- chore(models): tidy up alibaba-coding-plan and cursor provider by @backryun in #2150
- fix: Added in debug mode, support for storing raw data in json by @bypanghu in #2156
- fix(openai-responses): emit reasoning summary as delta.reasoning_content by @Gioxaa in #2159
- refactor(catalog): remove .ts imports, as any casts, normalize alias resolution by @herjarsa in #2152
- fix(providers): allow optional-key providers to pass connection test by @andrewmunsell in #2169
- fix(translator): inject thinking placeholder for all Claude-shape upstreams by @NomenAK in #2161
- fix(executors): sanitize reasoning_effort for non-supporting providers by @NomenAK in #2162
- feat(responses): degrade background mode to synchronous execution by @NomenAK in #2164
- chore(registry): refresh per-model contextLength/maxOutputTokens for active providers by @NomenAK in #2163
- Add metadata aggregation for combo models in /v1/models by @ddarkr in #2166
- fix(cliproxyapi): Anthropic-shape body routing and gate compatibility by @NomenAK in #2165
- deps: bump mermaid from 11.14.0 to 11.15.0 by @dependabot[bot] in #2178
- feat(resilience): expose model cooldown list with manual re-enable by @rafacpti23 in #2146
- feat(oauth): complete Windsurf / Devin CLI OAuth + API-token flows by @Zhaba1337228 in #2168
- feat(search): add Ollama Search as a web search provider by @andrewmunsell in #2176
- fix(cliproxyapi): detect Anthropic shape on minimal Capy bodies by @NomenAK in #2192
- fix(reasoning-cache): include xiaomi-mimo in replay provider/model detection by @NomenAK in #2198
- fix(modelSpecs): cap thinking budget for Claude Opus 4.6 / 4.7 / Sonnet 4.6 by @NomenAK in #2197
- fix(claudeHelper): emit data field on redacted_thinking, drop bogus signature by @NomenAK in #2191
- fix(stream): skip [DONE] terminator for Claude SSE clients by @NomenAK in #2190
- fix(cliproxyapi): probe /v1/models for health (CPA 6.x has no /health) by @NomenAK in #2189
- chore(providers): improve BazaarLink and Completions.me support by @backryun in #2177
- Feat/provider models by @nickwizard in #2196
- feat: add ModelScope provider-specific 429 handling and retry logic by @InkshadeWoods in #2202
- feat(providers): add Command Code provider by @ddarkr in #2199
- Add Brazilian WhatsApp group link to README by @rafacpti23 in #2201
- deps: bump electron-builder from 26.9.1 to 26.10.0 in /electron by @dependabot[bot] in #2183
- deps: bump the development group with 6 updates by @dependabot[bot] in #2184
- deps: bump the production group with 2 updates by @dependabot[bot] in #2180
- deps: bump node from 24.15.0-trixie-slim to 26.1.0-trixie-slim by @dependabot[bot] in #2181
- deps: bump electron from 41.5.1 to 42.0.1 in /electron by @dependabot[bot] in #2182
- security: sanitize error messages in API routes (CodeQL js/stack-trace-exposure) by @diegosouzapw in #2209
- fix(requestLogger): exempt tools field from array truncation for full debug visibility by @NomenAK in #2234
- fix(proxyFetch): retry once on undici dispatcher failure before native fallback by @NomenAK in #2222
- fix(antigravity): bootstrap project via loadCodeAssist + fetchAvailableModels fallback by @NomenAK in #2219
- fix(model): local aliases override cross-proxy provider inference by @NomenAK in #2223
- fix(antigravity): strip generationConfig.thinkingConfig for Claude models by @NomenAK in #2217
- fix(ModelSync): shared loopback readiness gate + IPv4 force by @NomenAK in #2221
- fix(rateLimit): never .stop() during runtime reset, evict cache instead by @NomenAK in #2218
- fix(sse-heartbeat): shape-aware keepalives keep streams alive through stricter proxies by @NomenAK in #2233
- Feat/antigravity project by @nickwizard in #2227
- feat(search): add Z.AI Coding Plan Search via MCP protocol by @andrewmunsell in #2238
- Fix Azure AI Foundry provider connection handling by @one-vs in #2236
- fix(providers/command-code): fix validation request format for Command Code API by @ddarkr in #2243
- fix(translator): coerce submit_pr_review functionalChanges/findings to arrays by @NomenAK in #2242
- build(deps): regenerate package-lock.json to match http-proxy-middleware bump by @NomenAK in #2228
- fix(claudeHelper): preserve latest assistant thinking blocks verbatim by @NomenAK in #2224
- feat: CLI Integration Suite for issue #2016 by @oyi77 in #2240
- Release v3.8.0 by @diegosouzapw in #2111
- fix: sync managed model aliases with visibility by @InkshadeWoods in #2250
- fix(kiro): harden OpenAI-to-Kiro translator for API compliance by @8mbe in #2251
- fix: strip streaming compression headers by @Rikonorus in #2253
- fix: keep Claude tool remap metadata off wire by @Rikonorus in #2254
- fix(deepseek): preserve reasoning_content through full pipeline for DeepSeek V4 models by @kang-heewon in #2231
- fix: align managed model cleanup for imported models by @InkshadeWoods in #2261
- fix(sse): strip stale Content-Encoding/Content-Length on non-stream forward by @gleber in #2264
- feat(authz): managementPolicy accepts API keys with
managescope by @gleber in #2265 - feat(api-keys): configurable default rate limits via DEFAULT_RATE_LIMIT_PER_DAY by @gleber in #2266
- feat(limits): per-window quota cutoffs across all providers with usage data by @payne0420 in #2267
- node dependency updates by @backryun in #2259
- Feat/v3.8.0 features by @diegosouzapw in #2272
- feat(skills): add 3 operational SKILL.md manifests + AI Skills dashbo… by @diegosouzapw in #2276
- chore: tidy up deprecated models from windsurf provider by @backryun in #2279
- feat(cli): CLI v4 — Commander.js, 50+ comandos, TUI, i18n, plugins (Fases 0–9) by @diegosouzapw in #2280
- feat(skills): add 5 CLI skills + AgentSkills / OmniSkills dashboard pages by @diegosouzapw in #2284
- feat(claude-web): implement session-based executor with auto-refresh by @oyi77 in #2283
- feat(cli): suporte i18n completo — 42 locales, --lang flag, config lang get/set/list by @diegosouzapw in #2285
- fix(sse): strip stale content-encoding/length/transfer-encoding from upstream responses by @thepigdestroyer in #2291
- fix(sse): remove dead-code flag leak in claudeCodeToolRemapper by @thepigdestroyer in #2290
- feat(cc-bridge): config-driven per-provider system-block transform DSL (closes #2260) by @mrmm in #2286
- fix(migrations): resolve version collisions and add schema repair for quota thresholds by @hartmark in #2294
- feat(deepseek-web): full DeepSeek web API executor with PoW solver by @oyi77 in #2295
- fix(ui): v3.8.0 polish — connections border, sticky tabs, EN translations, save toasts, auto-combo catalog by @mrmm in #2305
- fix: remove implicit API key request caps by @josephvoxone in #2289
- fix(auth+build): Bearer manage scope on management routes + lazy-load deepseek PoW solver by @mrmm in #2308
- chore: Improve cohere provider support by @backryun in #2313
- fix(claude): guard orphan tool_use/tool_result pairs before upstream send by @mrmm in #2312
- fix: remove count from batch removal by @hartmark in #2309
- fix: harden stream readiness and build output by @dhaern in #2317
- chore(providers): refresh provider metadata and ordering by @backryun in #2318
- alibaba provider consolidation by @backryun in #2319
- refactor(dashboard): pages overhaul, providers UX, OAuth token refresh fixes [deferred in develop] by @diegosouzapw in #2315
- feat(ui): simple/advanced mode for Caveman & RTK pages by @oyi77 in #2316
- feat(provider): add Gitlawb Opengateway provider by @oyi77 in #2314
- Release v3.8.0 by @diegosouzapw in #2248
- fix(providers): fix missing i18n keys and add 'Add Provider' button to empty state by @diegosouzapw in #2333
- feat(codex-auth): rename export + gate Apply Local behind confirmation modal by @diegosouzapw in #2332
- feat(codex): import single Codex auth.json as OAuth connection by @diegosouzapw in #2336
- feat(codex): bulk import Codex auth.json — multi-file, paste, ZIP by @diegosouzapw in #2343
- fix(providers): fix missing i18n keys and add 'Add Provider' button to empty state by @diegosouzapw in #2337
- fix(v1/messages): default to non-stream for Claude format when ambiguous by @thepigdestroyer in #2326
- fix(claude): cap-aware thinking budget fit for max_tokens (alt to #2324) by @thepigdestroyer in #2327
- fix: honor Codex reasoning suffix aliases by @terence71-glitch in #2335
- fix(translator): use reasoning cache before empty string fallback for DeepSeek tool_calls by @herjarsa in #2349
- feat(providers): add GitHub Models as free provider by @oyi77 in #2344
- feat(providers): add Hackclub AI as free provider by @oyi77 in #2339
- chore: improve huggingface provider support by @backryun in #2322
- feat(routing): LGKP remembers last good account per provider by @oyi77 in #2338
- feat(providers): add Microsoft Copilot Web wrapper by @oyi77 in #2340
- [Feature] Preserve Claude Code /v1/messages payload semantics by @terence71-glitch in #2351
- fix: extract flat cached_tokens/reasoning_tokens from OpenAI-compatible usage objects by @TF0rd in #2350
- fix: allow bracketed combo names by @congvc-dev in #2354
- fix: emit stream errors in the client protocol by @dhaern in #2355
- fix: avoid redundant Claude Code message clone by @terence71-glitch in #2362
- feat(providers): add Replicate as free provider by @oyi77 in #2364
- feat(providers): add Veo AI Free as web wrapper provider by @oyi77 in #2366
- feat(content): extend providers with video, audio, TTS, music capabilities by @oyi77 in #2369
- feat(@omniroute/opencode-provider): expand config helpers, MCP entry, live model fetch, combo builder by @mrmm in #2375
- feat(content): add Haiper, Leonardo, Ideogram, Suno, Udio providers by @oyi77 in #2377
- fix(claude-oauth): enable system-transforms pipeline for native claude executor (closes 400 billing-gate) by @thepigdestroyer in #2370
- refactor(dashboard): nav, providers, endpoint, runtime, quota, pricing, budget redesign + quota sharing preview by @diegosouzapw in #2384
- fix(dashboard): PR #2384 follow-up review fixes by @diegosouzapw in #2389
- fix: tool_use without adjacent tool_result causes Claude 400 by @oyi77 in #2383
- model: Add Composer 2.5 to Cursor Provider by @backryun in #2381
- feat(providers): add Gemini Web cookie-based provider by @oyi77 in #2380
- Release v3.8.0 — next development cycle by @diegosouzapw in #2323
- fix(security): resolve CodeQL alerts #243/#244/#245 by @diegosouzapw in #2391
- docs(readme): restore 9router acknowledgment by @diegosouzapw in #2393
- fix(kiro): enable Google OAuth login option by @congvc-dev in #2392
- fix(security): switch sessionPoolKey to HMAC to clear CodeQL #246 by @diegosouzapw in #2394
- fix(security): drop hashing in sessionPoolKey to clear CodeQL #247 by @diegosouzapw in #2396
- deps: bump electron from 42.0.1 to 42.1.0 in /electron by @dependabot[bot] in #2397
- deps: bump the production group with 4 updates by @dependabot[bot] in #2398
- deps: bump the development group with 4 updates by @dependabot[bot] in #2399
- feat: gamification & leaderboard system by @oyi77 in #2405
- feat: Support Gemini API keys for Gemini CLI executor (#3381) by @benzntech in #2408
- feat(T07): API Key health tracking with A3 guard, dashboard notification, and toast navigation fixes by @clousky2020 in #2412
- Release v3.8.0 — post-release hotfixes by @diegosouzapw in #2402
- docs: add AgentRouter setup guide by @leninejunior in #2422
- feat: add new feature on combos - falloverBeforeRetry by @hartmark in #2417
- feat(batch): implement 10 feature requests harvested by @diegosouzapw in #2414
- fix(gamification): resolve SQL bug, auth gap, pagination, and anomaly scoring by @oyi77 in #2421
- Release/v3.8.0 — full changelog with 660+ commits by @diegosouzapw in #2419
- fix(mitm): drop .js extension on manager.runtime re-export for webpack build by @NomenAK in #2425
- fix: persist STORAGE_ENCRYPTION_KEY across upgrades (closes #1622) by @Chewji9875 in #2428
- fix: auto-reset apiKeyHealth on successful connection test by @clousky2020 in #2427
- fix: support Antigravity image generation, Add Gemini 3.5 Flash by @backryun in #2423
- docs(agentrouter): recommend native provider as the simple path by @leninejunior in #2429
- Release/v3.8.0 by @diegosouzapw in #2430
- Feat/features batch v3.8.0 by @diegosouzapw in #2431
- Release/v3.8.0 by @diegosouzapw in #2432
- fix(antigravity): IDE vs SDK client profile fingerprint parity by @Gi99lin in #2433
- feat(memory): wire createMemory to upsertSemanticMemoryPoint (Qdrant) by @NomenAK in #2439
- feat: Enhance extractBearer to support x-api-key for anthropic api style auth by @thedtvn in #2436
- chore(i18n): refresh fr/es/de locales to 100% coverage + add settings.update key by @NomenAK in #2437
- fix(jules): Jules API parity and cloud-agent provider registration by @Gi99lin in #2438
- feat(settings): surface Codex Fast Tier toggle in Settings > AI by @NomenAK in #2440
- feat: align Antigravity 2.0.1 support by @dhaern in #2443
- fix(translator): fix Kiro 400 on follow-up turns carrying tool_result by @diegosouzapw in #2447
- feat(settings): Codex Fast Tier — tier dropdown + per-model gate by @NomenAK in #2451
- feat(settings): surface Claude Fast Mode toggle in Settings > AI by @NomenAK in #2449
- chore: update node dependencies and runtime support by @backryun in #2453
- fix(deepseek-web): rewrite auth to userToken Bearer + WASM PoW solver by @ovehbe in #2452
- feat: Feature Flags Settings Page (Card Grid + DB overrides) by @diegosouzapw in #2457
- fix(dashboard): allow bracketed combo names by @congvc-dev in #2458
New Contributors
- @nickwizard made their first contribution in #1991
- @xssdem made their first contribution in #2023
- @Tentoxa made their first contribution in #2011
- @tatsster made their first contribution in #2007
- @rodrigogbbr-stack made their first contribution in #1996
- @wauputr4 made their first contribution in #2009
- @guanbear made their first contribution in #2054
- @tces1 made their first contribution in #2048
- @ddarkr made their first contribution in #2047
- @gleber made their first contribution in #2103
- @yoviarpauzi made their first contribution in #2092
- @Gioxaa made their first contribution in #2105
- @rafacpti23 made their first contribution in #2086
- @hernaninverso made their first contribution in #2116
- @abhinavjnu made their first contribution in #2122
- @boa-z made their first contribution in #2115
- @HoaPham98 made their first contribution in #2089
- @flyingmongoose made their first contribution in #2134
- @NomenAK made their first contribution in #2161
- @InkshadeWoods made their first contribution in #2202
- @one-vs made their first contribution in #2236
- @8mbe made their first contribution in #2251
- @Rikonorus made their first contribution in #2253
- @thepigdestroyer made their first contribution in #2291
- @mrmm made their first contribution in #2286
- @josephvoxone made their first contribution in #2289
- @terence71-glitch made their first contribution in #2335
- @TF0rd made their first contribution in #2350
- @leninejunior made their first contribution in #2422
- @Chewji9875 made their first contribution in #2428
- @thedtvn made their first contribution in #2436
- @ovehbe made their first contribution in #2452
Full Changelog: v3.7.9...v3.8.1