Commit Graph

4527 Commits

Author SHA1 Message Date
Diego Rodrigues de Sa e Souza
17fee53dbd fix(providers): correct Nous Research key validation probe model + accept non-auth 4xx (#3881) (#3934) 2026-06-15 19:43:22 -03:00
Randi
e9671d026f fix(openrouter): show preset field when editing connections (#3921)
Integrated into release/v3.8.26
2026-06-15 19:43:18 -03:00
diego-anselmo
a5e704f7d6 fix(sse): anuncia role assistant no 1º delta do stream Responses→Chat (#3911)
Integrated into release/v3.8.26
2026-06-15 19:41:41 -03:00
NOXX - Commiter
bb45ddf901 fix(vertex): add generative-language scope so SA-JSON model discovery works (#3922)
Integrated into release/v3.8.26
2026-06-15 19:40:47 -03:00
Diego Rodrigues de Sa e Souza
a03426d5ca test: reconcile runtime-timeouts keepAlive baseline to 4000 after #3907 source revert (#3933)
PR #3907 lowered the test assertions for fetchKeepAliveTimeoutMs from 4000 to
1000 expecting DEFAULT_FETCH_KEEPALIVE_TIMEOUT_MS to drop to 1000, but the source
change was reverted on review (kept at 4000, with keepAliveMaxTimeout pinning
instead). The test was left asserting 1000, turning the unit suite red
release-wide. Align the assertions back to the shipped source value (4000).
2026-06-15 19:37:57 -03:00
Diego Rodrigues de Sa e Souza
e697538beb docs: sync all documentation to v3.8.24 + count-guard & wiki/prose CI (#3804)
Integrated into release/v3.8.26 — reconciled: kept #3900's superset wiki-sync, dropped the superseded sync-wiki-home; counts taken from the newer canonical release docs; net-new value = vale/markdownlint docs-lint infra + 7 new docs (Notion/Obsidian/Plugin-Marketplace/Cost-Tracking/Free-Provider-Rankings/Feature-Flags/Egress-Policy) + check-docs-counts-sync guard.
2026-06-15 15:18:16 -03:00
Diego Rodrigues de Sa e Souza
bed3984ac1 docs(mcp): correct MCP tool-inventory diagram source + text to 87 tools (#3909)
* docs(mcp): correct the MCP tool-inventory diagram source + text to 87 tools

The mcp-tools diagram source was frozen at v3.8.8 (43 tools = 30 core + 3 memory +
4 skills + 6 notion) — missing the agent-skills, gamification, plugins and obsidian
modules, and Core had grown 30 → 33. Corrected to the real breakdown verified against
open-sse/mcp-server (TOTAL_MCP_TOOL_COUNT):

  33 core + 3 memory + 4 skills + 3 agent-skills + 8 gamification + 8 plugins
  + 6 notion + 22 obsidian = 87

- renamed mcp-tools-43.{mmd,svg} → mcp-tools-87.{mmd,svg}
- rewrote the .mmd source with the 8 real categories
- fixed MCP-SERVER.md: source-of-truth line, image alt, and the inventory caption
- fixed docs/diagrams/README.md index entry

check:doc-links PASS (links resolve).

⚠️ The committed mcp-tools-87.svg is the OLD render (still draws 43 tools): the SVG
must be regenerated with `npm run docs:render-diagrams` in an environment with a
working headless Chromium. It could NOT be rendered in this sandbox — Chromium is
missing system libraries (libnss3 / libatk / libcups / libxcb, no apt access). The
.mmd source and all surrounding text are correct, so a single render call finalizes
the image.

* docs(mcp): render mcp-tools-87.svg (87-tool inventory diagram)
2026-06-15 14:14:43 -03:00
Diego Rodrigues de Sa e Souza
d0e4ce4e91 docs(quality): correct stale gate count + add opt-in agent-lsp scaffold (#3902)
Integrated into release/v3.8.26
2026-06-15 14:12:18 -03:00
Diego Rodrigues de Sa e Souza
9f5e651b42 ci(quality): wire Stryker mutation testing as advisory nightly (Fase 7 Task 11) (#3898)
Integrated into release/v3.8.26
2026-06-15 14:11:06 -03:00
Diego Rodrigues de Sa e Souza
e9d789822f ci(quality): freeze per-module coverage floors + wire require-tighten (advisory) (#3901)
Integrated into release/v3.8.26
2026-06-15 14:11:02 -03:00
Diego Rodrigues de Sa e Souza
be82146d37 ci(quality): enforce stale-allowlist on check-known-symbols (Fase 6A.3 follow-up) (#3899)
Integrated into release/v3.8.26
2026-06-15 14:10:58 -03:00
Diego Rodrigues de Sa e Souza
f8131c8a19 fix(test): de-flake pipeline-payloads via per-test re-seed + honest reset (#3893)
Integrated into release/v3.8.26
2026-06-15 14:10:55 -03:00
Diego Rodrigues de Sa e Souza
0c0d223f47 fix(ci): drop secrets-in-job-if from nightly-llm-security (startup_failure on push) (#3892)
Integrated into release/v3.8.26
2026-06-15 14:10:50 -03:00
Innokentiy Solntsev
fd7a5d68ae fix(providers): prevent zombie-socket hangs for zai/glm and tighten default keepAlive (#3907)
Integrated into release/v3.8.26 (zai validator; global keepAlive change reverted on review)
2026-06-15 14:06:48 -03:00
Felipe Almeman
9d846f3680 fix(proxy): direct-connection fallback for control-plane ops when a pinned proxy is unreachable (#3906)
Integrated into release/v3.8.26
2026-06-15 14:05:07 -03:00
Hernan Javier Ardila Sanchez
c45f992541 fix(setup): remove stale CJS bundle check from setup-open-code (#3908)
Integrated into release/v3.8.26
2026-06-15 14:03:46 -03:00
Diego Rodrigues de Sa e Souza
3ce7f39b2e docs: regenerate stale counts to canonical (226 providers / 87 MCP tools / 15 strategies / 42 locales) (#3904)
Several docs bodies carried stale counts from the v3.8.0–v3.8.2 era while the code
moved on. Brought them to the canonical values verified against source:
  - providers 177/160+/223 → 226  (docs/reference/PROVIDER_REFERENCE.md "Total providers")
  - MCP tools  37/42/43    → 87    (open-sse/mcp-server TOTAL_MCP_TOOL_COUNT)
  - routing strategies  14 → 15    (routingStrategies.ts ROUTING_STRATEGY_VALUES)
  - i18n locales     40/40+ → 42   (config/i18n.json)
  - MCP scopes   ~13/13 → 30

Files: ARCHITECTURE, CODEBASE_DOCUMENTATION, REPOSITORY_MAP, QUALITY_GATES,
ACP, AGENT-SKILLS, AGENTBRIDGE, PROVIDERS-GUIDE, SETUP_GUIDE, MCP-SERVER (headline),
OMNIROUTE_VS_ALTERNATIVES, README, RELEASE_CHECKLIST.

Executors (60), OAuth providers (16), A2A skills (6) and cloud agents (3) were already
correct (check-docs-counts-sync --strict still passes). Left untouched on purpose: the
point-in-time reports (DOCUMENTATION_AUDIT_REPORT, E2E shakedown) and the MCP tool
inventory diagram (mcp-tools-43.svg) — diagram regeneration is a separate task.

This unblocks full GitHub-wiki content parity: the wiki was synced from these corrected
sources via scripts/docs/sync-wiki.mjs --update-existing.
2026-06-15 13:16:19 -03:00
diegosouzapw
bf022df6b9 fix(docs): add MDX frontmatter to DOCUMENTATION_AUDIT_REPORT so fumadocs build passes
docs/ops/DOCUMENTATION_AUDIT_REPORT.md (added in #3804) was the only file
under docs/ops/ without a `title:` frontmatter block. Fumadocs scans docs/**
into the `docs` collection and fails the production build with
"Invalid input: expected string, received undefined" (title) — the same MDX
frontmatter class of break as the v3.8.25 SUPPLY_CHAIN.md incident (#3864).
Fast Quality Gates does not run `npm run build`, so it stayed green on the
release branch and would only explode at release->main sync. Added the
frontmatter matching the sibling docs/ops/*.md convention; full build now
passes (Next.js compiled 549/549 pages).
2026-06-15 13:09:58 -03:00
Hernan Javier Ardila Sanchez
a475389b98 fix(opencode-plugin): drop CJS bundle to fix OpenCode plugin loader (#3883)
Integrated into release/v3.8.26 (scoped to the ESM-only loader fix)
2026-06-15 12:39:36 -03:00
Abhishek Divekar
6c1c055a20 feat(combo): add sticky round-robin target limit (#3846)
Integrated into release/v3.8.26
2026-06-15 12:33:15 -03:00
Demiurge The Single
05862fa236 fix(mcp): fall back to node:sqlite when better-sqlite3 binding is missing (#3887)
Integrated into release/v3.8.26
2026-06-15 12:30:48 -03:00
Raxxoor
624c846712 feat(glm): add GLM-5.2 with effort-tier routing (high/max) (#3885)
Integrated into release/v3.8.26
2026-06-15 12:25:58 -03:00
Jack Smith
4caa8451f4 Fix/generate models alias lookup (#3870)
Integrated into release/v3.8.26
2026-06-15 12:24:41 -03:00
Jack Smith
97d589864e Fix/candidate pool empty array (#3871)
Integrated into release/v3.8.26
2026-06-15 12:23:46 -03:00
Randi
fbdce3a941 feat: add OpenRouter connection presets (#3878)
Integrated into release/v3.8.26
2026-06-15 12:21:41 -03:00
Diego Rodrigues de Sa e Souza
3424155143 ci(docs): automate GitHub wiki sync (add missing pages + cover counts) (#3900)
The wiki has no native generator and drifts each release — it lacked SUPPLY_CHAIN
plus 24 other docs pages, and the cover counts went stale (212+/14/37 vs 226/15/87).

Adds:
  - scripts/docs/sync-wiki.mjs — adds docs/ pages missing from the wiki (curated;
    internal reports/plans/index excluded) and syncs the four Home.md cover counts.
    Matches the hand-curated, non-deterministic wiki page names by a normalized fuzzy
    key and writes the EXISTING name, so it never creates duplicate pages. Overwriting
    existing-page content is opt-in (--update-existing) and intentionally OFF by
    default: several docs sources still carry stale counts (e.g. ARCHITECTURE.md says
    "177 providers / 37 MCP tools" while the wiki cover is 226/87), so a blind overwrite
    would REGRESS the wiki. Full parity is gated on regenerating those sources — see
    docs/ops/DOCUMENTATION_AUDIT_REPORT.md.
  - .github/workflows/wiki-sync.yml — runs the sync on every push to main that touches
    docs/ (or a count source) + workflow_dispatch, pushing via GITHUB_TOKEN.
  - tests/unit/sync-wiki.test.ts — pure-function coverage (8 tests).

The first run already pushed the 25 missing pages to the wiki.
2026-06-15 12:08:44 -03:00
Diego Rodrigues de Sa e Souza
320a9d3f29 chore(repo): nest quality-gate state under config/quality, declutter root (#3896)
Move the committed quality-gate state files out of the repo root into
config/quality/ and the v3.8.24 documentation audit into docs/ops/, then
re-point every gate script, test and .gitignore entry at the new paths.
Refresh docs/architecture/REPOSITORY_MAP.md (stale since v3.8.2) to match
the current layout.

Moved -> config/quality/:
  quality-baseline.json, complexity-baseline.json, duplication-baseline.json,
  file-size-baseline.json, test-discovery-baseline.json,
  dependency-allowlist.json, .license-allowlist.json
  (generated quality-metrics.json now written here too; still gitignored)

Moved -> docs/ops/:
  DOCUMENTATION_AUDIT_REPORT.md (+ meta.json entry + fabricated-docs skip)

Path updates: check-{complexity,duplication,file-size,test-discovery,deps,
licenses,dead-code,cognitive-complexity,type-coverage}.mjs, check-quality-
ratchet.mjs, collect-metrics.mjs, check-tracked-artifacts.mjs (+ its test and
check-deps test). Also gitignore /logs/ (was untracked-not-ignored).

Tracked root files: 56 -> 48. Tool configs left in root on purpose: most are
auto-discovered there, and the tsconfig variants have location-relative
files:[] arrays that would need 46 path rewrites for a 2-file gain.
2026-06-15 11:32:45 -03:00
Diego Rodrigues de Sa e Souza
7eff73651a docs: update compression section to the 9-engine multi-layer stack (#3894)
Document the real pipeline (Session-Dedup, CCR, RTK, Headroom, Caveman,
LLMLingua-2, Lite, Aggressive, Ultra) that replaced the old RTK+Caveman
framing; presets table kept. '7 options' -> '9 engines'.
2026-06-15 09:43:10 -03:00
diegosouzapw
aa9f3ef1ab docs: sync provider count to 226 + regenerate provider reference + add docs audit report
- README advertised a stale '177 providers'; the canonical generator
  (gen-provider-reference.ts) reports 226 unique provider IDs. Updated the README
  badges/anchors/heading and regenerated docs/reference/PROVIDER_REFERENCE.md (223→226)
  to match the source of truth.
- Adds DOCUMENTATION_AUDIT_REPORT.md (docs/i18n sync audit + plan).

Docs-only; carried over from in-progress working-tree changes and verified against the
generator.
2026-06-15 09:11:38 -03:00
diegosouzapw
7c1a255589 chore(release): open v3.8.26 development cycle 2026-06-15 04:22:43 -03:00
Diego Rodrigues de Sa e Souza
4066a2ca31 fix(ci): grant contents:write to npm publish job for SBOM attach (#3874)
Post-release v3.8.25 CI hotfix — SBOM attach needs contents:write.
2026-06-15 04:17:19 -03:00
Diego Rodrigues de Sa e Souza
35dbf0eea1 Release v3.8.25 (#3866)
* chore(release): continue v3.8.25 development cycle after main code-sync (r5)

main fast-forwarded to release/v3.8.25 (#3863): unblocked Build+Docker via
#3864, plus #3837 (mimocode proxy) and #3862 (trivy bump). This marker
re-opens the umbrella PR for further v3.8.25 work. No version bump.

* fix(db): persist the Keep-latest-backups retention setting (#3834) (#3867)

* fix(oauth): clear GitLab Duo setup message instead of 500 (#3861) (#3868)

* test(oauth): prove refresh_token preserved on real gemini-cli/antigravity dispatch (#3850) (#3869)

* feat(compression-ui): unified compression config UI — per-engine pages + combos editor + menu + WS default-on (#3860)

Integrated into release/v3.8.25 — feat(compression-ui): unified compression configuration UI (Compression Hub + per-engine Lite/Aggressive/Ultra pages + combos editor + sidebar entry + live-WS default-on). File-size re-baselined for sidebarVisibility.ts/chatCore.ts growth; orphan ws test relocated to a collected path.

* docs(changelog): complete the v3.8.25 release notes + credit all contributors

Audited every commit since v3.8.24 and filled the gaps the [3.8.25] section
was missing: a New Features section (compression engines + Compression Studios
#3848, compression UI #3860, injection-guard #3857, kiro discovery #3836, Veo
#3839, mimocode proxy #3837, Arena ELO flag #3821), 9 more Fixed entries
(#3811/#3807/#3759/#3849/#3838/#3835/#3814/#3820/#3819), a Security section
(CCR IDOR #3859, supply-chain #3824), and an Internal/Quality section. Every
contributor and issue reporter is now credited.

* docs(changelog): restore + complete the v3.8.25 release notes

Re-adds CHANGELOG.md (a prior server-side commit accidentally dropped it) with
the complete, audited [3.8.25] section: New Features, the full Fixed list,
Security & Hardening, and Internal/Quality — every contributor and issue
reporter credited.

* chore(release): finalize v3.8.25 — reconcile CHANGELOG + i18n mirrors, document OMNIROUTE_MAX_PENDING_MIGRATIONS, green the unit suite

Release-gate reconciliation for v3.8.25:
- CHANGELOG: dated 2026-06-14, linked #3826, rolled up file-size re-baselines (#3823/#3833),
  recorded the test-greening; re-synced all 41 i18n CHANGELOG mirrors.
- Documented OMNIROUTE_MAX_PENDING_MIGRATIONS (#3416) in .env.example + ENVIRONMENT.md.
- Greened the unit suite (was merged red on 4 CI shards): aligned 10 stale tests to this
  cycle's intended behavior (#3838/#3822/#3501/SOCKS5/Vertex-Express/Antigravity) and the
  same-provider 503 fall-through test; de-flaked the compression benchmark reproducibility
  and ServiceSupervisor crash tests. No production code changed.

* ci(security): clear OpenSSF Scorecard code-scanning noise + harden workflow token permissions

The Security tab held 155 open alerts, ALL from the advisory OpenSSF Scorecard tool
(#3824) — supply-chain/posture scores, not code vulnerabilities — which drowned out
real CodeQL findings.

- scorecard.yml: stop uploading SARIF to the code-scanning tab (drop the upload-sarif
  step + the now-unused security-events: write). The run still produces the OpenSSF
  badge (publish_results) and a downloadable SARIF artifact.
- TokenPermissions hardening (the high-severity, genuinely-valuable subset): set each
  workflow's top-level token to read-only and grant the exact writes at the job level
  that needs them — npm-publish (id-token/packages on publish jobs), docker-publish
  (packages on build), electron-release (contents on build/release, id-token/packages
  on publish-npm), build-fork (packages on build), claude (empty top-level; job grants
  its own). The 155 existing alerts were dismissed.

Not adopting repo-wide SHA-pinning (143 PinnedDependencies advisories) — declined.

* test(integration): align stale wiring/socks5 integration tests to this cycle's behavior

These were red on the CI Integration job (pre-existing). No production code changed:
- integration-wiring: the combos page no longer renders a per-page EmailPrivacyToggle
  (#3822 consolidated it into Settings → Appearance); the provider-detail test-result
  masking and upstream-proxy copy moved to decomposed components (#3501
  BatchTestResultsModal / UpstreamProxyCard) — assertions now read the owning files.
- api-routes-critical: SOCKS5 is now enabled by default (opt-out), so the disabled-
  rejection test must set ENABLE_SOCKS5_PROXY=false explicitly (an unset env now means
  enabled).

(The ~32 live-Gemini integration tests are gated on OMNIROUTE_API_KEY and skip in CI;
they only 'fail' locally when that key is present without a running server.)
v3.8.25
2026-06-15 03:32:11 -03:00
Diego Rodrigues de Sa e Souza
b4180145e6 Merge release/v3.8.25 into main (#3863)
Code-sync release/v3.8.25 → main: unblocks main Build + Docker Hub (#3864 SUPPLY_CHAIN.md frontmatter) + mimocode per-account proxy (#3837) + trivy-action bump (#3862). i18n CHANGELOG drift left for /generate-release. Dev continues on release/v3.8.25.
2026-06-14 21:31:49 -03:00
dependabot[bot]
36baf77ad5 chore(deps): bump aquasecurity/trivy-action (#3862)
Integrated into release/v3.8.25 — chore(deps): bump aquasecurity/trivy-action 0.28.0→0.36.0 (supply-chain scan action, #3824 workflow).
2026-06-14 21:30:40 -03:00
PizzaV
f42e8fa751 feat(mimocode): per-account proxy support for multi-account round-robin (#3837)
Integrated into release/v3.8.25 — feat(mimocode): per-account proxy for multi-account round-robin (runWithProxyContext per account, keyed by fingerprint). Orphan test relocated to a collected vitest path (14/14 green).
2026-06-14 21:30:02 -03:00
Diego Rodrigues de Sa e Souza
337cd18932 fix(sse): clamp Gemini thinking budget to model cap (#3842) (#3865) 2026-06-14 21:27:25 -03:00
Diego Rodrigues de Sa e Souza
e068a63530 fix(docs): add MDX frontmatter to SUPPLY_CHAIN.md (unblocks main Build) (#3864)
Integrated into release/v3.8.25 — fix(docs): SUPPLY_CHAIN.md MDX frontmatter (unblocks main Build + Docker Hub).
2026-06-14 21:17:09 -03:00
Diego Rodrigues de Sa e Souza
9847684f0d chore(release): continue v3.8.25 development cycle after main code-sync
main was fast-forwarded to release/v3.8.25 (#3805); this marker re-opens the
umbrella PR so further v3.8.25 work keeps flowing to main. No version bump —
development continues on the current v3.8.25 line.
2026-06-14 18:14:34 -03:00
Diego Rodrigues de Sa e Souza
78a1fb40a0 Merge release/v3.8.25 into main (#3805)
Code-sync release/v3.8.25 → main: 40 commits (review-prs r1-r3 + Fase 7/8 quality-gates, supply-chain, resilience, injection-guard, CCR IDOR fix). No versioned publish (no tag/npm/Electron) — dev continues on release/v3.8.25.
2026-06-14 18:11:45 -03:00
Diego Rodrigues de Sa e Souza
cbb332d355 Fase 7 finalize — 3 catracas advisory→bloqueante + re-baseline consciente v3.8.25 (#3809)
Integrated into release/v3.8.25 — Fase 7 finalize: 3 catracas advisory→bloqueante (dead-code/cognitive-complexity/type-coverage) + re-baseline consciente.
2026-06-14 18:06:56 -03:00
Diego Rodrigues de Sa e Souza
c4f2af70f0 ci(quality): install advisory security scanners so Fase 7 gates run (gitleaks/osv/actionlint/zizmor) (#3858)
Integrated into release/v3.8.25 — Fase 7: scanners advisory no CI (gitleaks/osv/actionlint/zizmor).
2026-06-14 18:03:21 -03:00
Diego Rodrigues de Sa e Souza
931afe3482 Fase 8 · Bloco B — suíte de correção (property + golden + SSE-correctness) (#3808)
Integrated into release/v3.8.25 — Fase 8 Bloco B (property + golden + SSE-correctness).
2026-06-14 18:02:51 -03:00
Diego Rodrigues de Sa e Souza
cf5898205a fix(security): CCR cross-tenant IDOR — scope store per-principal + bound memory (#3859)
Integrated into release/v3.8.25 — fix(security): CCR cross-tenant IDOR (scope store per-principal + bound memory).
2026-06-14 18:02:36 -03:00
Diego Rodrigues de Sa e Souza
aa8fc4157d Fase 8 · Bloco A — supply-chain (provenance, SBOM, Trivy, Scorecard) advisory (#3824)
Integrated into release/v3.8.25 — Fase 8 Bloco A (supply-chain: provenance, SBOM, Trivy, Scorecard) advisory.
2026-06-14 18:02:21 -03:00
Diego Rodrigues de Sa e Souza
d728bfbb1e Fase 8 · Bloco D — injection-guard em todas as rotas LLM + red-team (#3857)
Integrated into release/v3.8.25 — Fase 8 Bloco D (injection-guard em todas as rotas LLM + red-team).
2026-06-14 18:02:18 -03:00
Diego Rodrigues de Sa e Souza
d3146a1751 Fase 8 · Bloco C — resiliência runtime (chaos + heap-growth + k6 soak) (#3854)
Integrated into release/v3.8.25 — Fase 8 Bloco C (resilience: chaos + heap-growth + k6 soak).
2026-06-14 18:02:08 -03:00
Diego Rodrigues de Sa e Souza
4ffc55cfe4 feat(compression): compression engines + async pipeline + Compression Studios (#3848)
Integrated into release/v3.8.25.
2026-06-14 10:45:22 -03:00
Diego Rodrigues de Sa e Souza
c8b9544d54 test(proxy): guard per-connection direct bypass over global proxy (#2996) (#3853) 2026-06-14 10:33:22 -03:00
Diego Rodrigues de Sa e Souza
7c080941d1 feat(connections): per-connection disable-cooldown opt-out (#2997) (#3852) 2026-06-14 10:32:26 -03:00
Abhishek Divekar
2670a0a819 docs(ui): clarify routing settings copy for strategy sync + sticky limit (#3843)
Clarifies that the Default Strategy control syncs both new combo defaults and global
account fallback routing, and updates the Round Robin sticky-limit helper text to call
out account-level fallback behavior. Copy-only change to ComboDefaultsTab + en.json.

Integrated into release/v3.8.25.

Co-authored-by: Abhishek Divekar <adivekar@utexas.edu>
2026-06-14 10:32:14 -03:00