Skip to content

Release v3.8.0#2111

Open
diegosouzapw wants to merge 224 commits into
mainfrom
release/v3.8.0
Open

Release v3.8.0#2111
diegosouzapw wants to merge 224 commits into
mainfrom
release/v3.8.0

Conversation

@diegosouzapw
Copy link
Copy Markdown
Owner

@diegosouzapw diegosouzapw commented May 10, 2026

[3.8.0] — 2026-05-06

✨ New Features

🐛 Bug Fixes

🔒 Security

📝 Documentation

🔧 Improvements

🧹 Chores & Maintenance

🏆 v3.8.0 Community Contributors

Thank you to all 50+ community contributors who made v3.8.0 possible! 🎉

Contributor PRs Contributions
@oyi77 8 #2010, #2014, #2041, #2052, #2061, #2074, #2091, #2094, #2096, #2131
@backryun 8 #1992, #2033, #2088, #2123, #2138, #2141, #2150, #2177
@Brkic-Nikola 6 #2165, #2189, #2190, #2191, #2192
@Gioxaa 5 #2105, #2149, #2153, #2154, #2159
@dhaern 4 #2028, #2039, #2087, #2090
@Tentoxa 2 #2011, #2053
@wauputr4 2 #2009, #2046
@herjarsa 3 #2030, #2136, #2152
@hartmark 2 #2045, #2137
@payne0420 2 #2082, #2128
@nickwizard 2 #1991, #2196
@bypanghu 2 #2027, #2156
@ddarkr 2 #2047, #2199

wauputr4 and others added 30 commits April 23, 2026 12:25
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Add Linux certificate management via update-ca-certificates for Docker support. Skip sudo password validation when running as root, matching the existing cli-tools route behavior.
- Replace || "Unknown" fallbacks with || null in usage.ts (GLM + Claude legacy)
- Add plan extraction to Claude OAuth mapTokens (account_tier > plan > subscription_type > billing.plan)
- Add unit tests for plan extraction and Provider Limits badge resolution
The original fix replaced || "Unknown" with || null for GLM and Claude
legacy (non-OAuth) paths. Per user clarification, "Unknown" is a valid
display fallback when no plan data exists — null-based fallbacks caused
the Provider Limits dashboard to show no badge rather than a clear
"Unknown" indicator.

Revert only the usage.ts changes. Claude OAuth mapTokens plan extraction
(claude.ts) and the associated tests remain unchanged.
feat(combos): add reset-aware routing strategy
Turbopack resolveAlias (@/mitm/manager → manager.stub.ts) was designed
for build-time safety but Next.js applies aliases to ALL imports —
including dynamic ones. This caused await import("@/mitm/manager") at
runtime to load the stub, which silently returned fake {running: true}
without spawning the MITM proxy. The UI showed "MITM proxy started"
but nothing was actually running.

Fix introduces a two-path design:
- @/mitm/manager        → stub (build-time, safe for Turbopack)
- @/mitm/manager.runtime → real manager (runtime, bypasses alias)

Route handlers now dynamic-import from manager.runtime, which
re-exports from ./manager and does NOT match the alias pattern.

Additional fixes:
- Make stub throw explicit errors at runtime so misconfiguration is
  immediately visible instead of silently faking success
- Add server.cjs to outputFileTracingIncludes (NFT trace) and Dockerfile
  COPY so the MITM server binary exists in standalone/Docker output
NomenAK and others added 22 commits May 12, 2026 19:43
…tection (#2198)

Integrated into release/v3.8.0 after syncing the contributor branch and validating tests/unit/reasoning-cache.test.ts locally.
…et 4.6 (#2197)

Integrated into release/v3.8.0 after syncing the contributor branch and validating tests/unit/thinking-budget.test.ts locally.
…ignature (#2191)

Integrated into release/v3.8.0 after syncing the contributor branch and validating tests/unit/translator-claude-helper-thinking.test.ts locally.
Integrated into release/v3.8.0 after syncing the contributor branch and validating tests/unit/stream-utils.test.ts locally.
#2189)

Integrated into release/v3.8.0 after syncing the contributor branch and validating tests/unit/cliproxyapi-executor.test.ts locally.
Integrated into release/v3.8.0 after syncing the contributor branch, removing unrelated dependency churn, and validating executor/default URL coverage locally.
Integrated into release/v3.8.0 after syncing the contributor branch, removing unrelated workflow/docker/package-lock changes, and validating provider-scoped models coverage locally.
…2202)

Integrated into release/v3.8.0 after syncing the contributor branch, removing unrelated workflow/docker/package-lock changes, tightening ModelScope 429 classification, and validating policy coverage locally.
Integrated into release/v3.8.0 after syncing the contributor branch, removing unrelated workflow/package-lock changes, and validating Command Code provider, auth, validation, and Responses coverage locally.
Merged into release/v3.8.0 — aligned workflow files and lockfile with release branch, fixed trailing space in WhatsApp URL. Thanks @rafacpti23!
Merged into release/v3.8.0. Minor electron-builder bump (26.9→26.10) with pnpm 11 support and AppImage fixes.
Merged into release/v3.8.0. Dev dependency updates: Playwright 1.60, lint-staged 17 (major — Node 22+ compatible), typescript-eslint, vitest, wait-on.
@kundul02
Copy link
Copy Markdown

When is these release planned?

diegosouzapw and others added 5 commits May 13, 2026 03:47
Protect cloud agent task routes and model cooldown management endpoints
with management-session auth and consistent CORS handling.

Also align cloud agent API serialization with the dashboard, reuse the
provider connection schema for CLI key storage, and accept active OAuth
tokens when building virtual auto-combo candidates.
Centralize optional API key capability checks so dashboard forms and
provider schemas share the same rules, including keyless Pollinations
support and cloud-agent batch testing mode.

Also align auto-combo config on `routerStrategy`, keep legacy combo
reads compatible, preserve MCP routes as management APIs, narrow
`require-login` public access to readonly/bootstrap flows, and make
cloud-agent CORS reflect the request origin for credentialed requests.
Refresh the v3.8.0 documentation set across API, setup, Docker,
environment, Fly.io, VM deployment, and troubleshooting guides.

Document the updated budget payload, management-auth requirements,
WebSocket bridge secret, Compose profiles, production deployment
details, and expanded Node support. Also update the OpenAPI catalog,
raise coverage thresholds to match the current baseline, and align
cloud-agent task route typing and schemas with the stricter runtime
behavior.
Refresh the documentation set for v3.8.0 with new guides covering
authz, agent protocols, cloud agents, compliance, electron, evals,
guardrails, memory, skills, stealth, tunnels, webhooks, and more.

Add an auto-generated provider reference plus a
`gen:provider-reference` script to keep provider catalog docs aligned
with `src/shared/constants/providers.ts`.
Adds three automated drift-detection scripts under scripts/, plus npm
helpers to run them, and applies small follow-ups to TERMUX, I18N, and
CODEBASE docs flagged by the docs audit.

New scripts (scripts/):
- check-env-doc-sync.mjs — cross-checks process.env.X in code vs
  .env.example vs docs/ENVIRONMENT.md. Soft-fails by default; --strict
  exits 1 on drift.
- check-docs-counts-sync.mjs — validates counts (executors, routing
  strategies, OAuth providers, A2A skills, cloud agents) match between
  code and docs.
- check-deprecated-versions.mjs — flags hardcoded stale versions and
  "Last updated" dates older than 60 days. Uses hardcoded regexes to
  satisfy semgrep ReDoS guidance.

package.json:
- New scripts: check:env-doc-sync, check:docs-counts,
  check:deprecated-versions, check:docs-all (umbrella).

Doc refinements:
- TERMUX_GUIDE: spell out the Node version range required by package.json.
- I18N: note that docs/i18n/in/ tree is an orphan duplicate of hi/ that
  the generator no longer writes to; replace hard-coded
  UNTRANSLATABLE_KEYS count with "varies per release".
- CODEBASE_DOCUMENTATION: minor wording.

Pre-commit hook is unchanged — the new checks are heuristic and ship as
on-demand npm scripts to avoid false-positive blocks.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

function escapeCell(value: string | undefined): string {
if (!value) return "—";
return value.replace(/\|/g, "\\|").replace(/\n/g, " ");
REPOSITORY_MAP.md (new, ~26 KB) documents every directory and root file
with one-line descriptions so newcomers can navigate the tree without
opening files. Covers src/, open-sse/, electron/, bin/, scripts/, docs/,
tests/, .github/, .husky/, .claude/, .agents/, and the underscore-prefixed
out-of-tree directories.

README.md (was ~100 KB / 1876 lines) is rewritten as a sales-focused
landing of ~22 KB / 482 lines:
- Updated SEO/JSON-LD/FAQ to v3.8.0 (was 3.7.8) with correct counts
  (177 providers, 14 strategies, 37 MCP tools, 14 OAuth, 9-factor Auto-Combo).
- Trimmed long FAQ/Troubleshooting/Compression Math/Docker prose
  in favor of links to the dedicated docs.
- Added "What's new in v3.8.0" section + competitive comparison table.
- Added a categorized Documentation index covering all 44 docs in docs/.
- Kept screenshots, quick start, providers summary, compatibility tables,
  multi-platform install table, use-cases at a glance, i18n strip,
  community + security blocks.

The CHANGELOG, deep technical guides, and per-area references stay where
they belong — under docs/. The README is now a marketing page that
points to them.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.