mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-07-31 04:12:10 +03:00
* chore(release): v3.7.9 — gemini-cli cloud code separation * chore(provider): Update Jina AI model catalog (#1874) Integrated into release/v3.7.9 * docs: update CHANGELOG for PR 1874 and retroactive credits * fix: resolve stream defaults and codex prompt mapping (#1873, #1872) * chore(compression): start caveman compression update * feat(compression): expand caveman compression and analytics pipeline Add caveman intensity levels, output mode instructions, validation, and preview diffs across the compression pipeline. Extend MCP and dashboard settings to support auto-trigger mode, system prompt preservation, MCP description compression, and caveman rule metadata. Record richer compression analytics with receipt fields, validation fallbacks, output mode data, and add the related database migration. Improve preservation handling for code, URLs, markdown, math, and other protected content while adding broad unit, integration, and golden-set coverage for caveman parity and compression behavior. * feat(compression): expose rule intensities and track usd savings Add estimated USD savings to compression analytics so saved tokens can be reported in cost terms alongside existing token metrics. Expose caveman rule intensity metadata for settings consumers and add a settings API route alias for rule lookup. Also preserve system prompts when aggressive compression falls back to lite mode. * feat(compression): RTK compression roadmap (#1889) * chore(rtk): initialize compression roadmap branch * feat(compression): add RTK engine and compression combos Introduce RTK command-aware tool-output compression alongside stacked RTK -> Caveman pipelines for mixed prompt contexts. Add engine registration, declarative RTK filter packs, language-aware Caveman rule loading, compression combo persistence and assignments, analytics grouped by engine/combo, and new MCP/API endpoints for configuration, previews, filters, and combo management. Expose the new capabilities in the dashboard with dedicated Context & Cache pages for Caveman, RTK, and compression combos, and update docs, i18n strings, migrations, and tests to cover the expanded compression surface. * feat(compression): expand RTK DSL, filter catalog, and recovery APIs Add RTK parity features across the compression pipeline, dashboard, and management APIs. This expands the built-in filter catalog, adds trust-gated custom filter loading, inline filter verification, code stripping, smarter detection, and optional redacted raw-output retention for authenticated recovery. Also extend Caveman with file-based multilingual rule packs, localized output-mode instructions, stricter preview/config schemas, engine registry metadata, analytics fields, and broad unit test coverage for RTK, rule loading, and stacked compression behavior. * fix(auth): protect oauth routes and health reset operations Require authenticated dashboard access for OAuth endpoints that can create or import provider connections when login enforcement is enabled. Move `/api/monitoring/health` to the readonly public route list so safe methods remain public while DELETE now returns 401 for anonymous requests. Also update Next.js native `.node` handling to avoid webpack parse failures from external packages such as ngrok and keytar, and add coverage for the new auth behavior. * build(compression): ship RTK rule and filter assets with app bundles Include compression JSON assets in Next output tracing, prepublish copies, and pack artifact policy checks so standalone and packaged builds can load RTK filters and caveman rule packs at runtime. Also harden compression runtime behavior by resolving alternate asset directories, scoping rule cache entries by source path, carrying RTK raw output pointers through stacked runs, degrading oversized preview diffs, and applying combo language/output mode defaults during chat routing. Add coverage for packaging rules, provider-scoped model parsing, smart truncate edge cases, raw output retention, and combo-driven compression behavior. * docs(workflows): update local repo paths to OmniRoute Replace outdated `/home/diegosouzapw/dev/proxys/9router` references with the current `OmniRoute` directory across deploy, release, and version bump workflow guides so local command examples match the renamed repository layout * feat(compression): complete RTK parity coverage * test(build): align next config assertions --------- Co-authored-by: diegosouzapw <diego.souza.pw@gmail.com> * feat(compression): expand caveman parity and MCP metadata compression Compress MCP registry and list metadata descriptions for tools, prompts, resources, and resource templates while keeping tool-response bodies unchanged. Expose those savings in compression status as `mcp_metadata_estimate` metadata rather than provider usage. Add Caveman rule-pack support for custom regex flags and match-specific replacement maps, update English rules for upstream parity, and tighten article and pleasantry handling. Also process RTK multipart text blocks independently so mixed media content compresses safely without duplicating output. * feat(compression): unify config validation and persist MCP savings Centralize compression config schemas across settings, preview, RTK, and combo APIs to enforce consistent validation for stacked pipelines and engine-specific options. Expand caveman and stacked compression behavior by applying default combos at runtime, surfacing validation and fallback metadata, and exposing aggressive and ultra adapter schemas for configuration UI and tests. Persist MCP description compression snapshots into analytics without counting them as provider usage, and extend the dashboard with the new RTK controls and localized labels. * fix(auth): require dashboard management auth for compression preview Block preview requests unless they come from a valid management session token so protected settings cannot be probed through the preview API. Add unit coverage for unauthenticated requests, invalid bearer tokens, and successful authenticated preview execution. * fix(compression): preserve stacked defaults and secure metadata routes Only apply saved default compression combos when they contain a stacked pipeline so seeded Caveman-only defaults do not replace the builtin stacked behavior. Also require management auth for compression language pack and rules metadata endpoints, and defer usage receipt attachment until compression analytics writes have completed to keep analytics records consistent. * fix(compression): align seeded standard savings combo with stacked default Update the seeded default compression combo to use the RTK then Caveman pipeline in both fresh installs and upgraded databases. Add a targeted migration and runtime guard that only rewrites the legacy seeded record when its original metadata and single-step pipeline still match, preserving user-customized default combos. Refresh docs and tests to reflect the stacked default and expanded RTK filter catalog. * docs(compression): document RTK+Caveman stacked savings ranges Refresh the compression docs and README to describe the default stacked pipeline in terms of eligible-context savings instead of the older generic token-saving range. Add upstream RTK and Caveman benchmark references, explain the multiplicative savings math behind the stacked default, and update feature summaries plus package metadata to match the revised positioning. * feat(image-gen): add NanoGPT image generation provider (#1899) Integrated into release/v3.7.9 * fix(codex): sanitize raw responses input (#1895) Integrated into release/v3.7.9 * Fix combo provider breaker profile handling (#1891) Integrated into release/v3.7.9 * fix(combos): align strategy contracts (#1892) Integrated into release/v3.7.9 * feat(proxy): move proxy configuration to dedicated System → Proxy page (#1907) Integrated into release/v3.7.9 * feat: add K/M/B/T cost shortener to prevent UI overflow (#1902) Integrated into release/v3.7.9 * feat(providers): implement bulk paste for extra API keys (#1916) Integrated into release/v3.7.9 * fix(migrations): treat duplicate-column ALTER as no-op (#1886) Integrated into release/v3.7.9 * fix(analytics): robust model pricing resolution, dark mode charts and SQL aggregation fixes (#1896) Integrated into release/v3.7.9 (migration renumbered to 044) * fix(oauth): per-connection mutex for rotating refresh tokens (#1885) Integrated into release/v3.7.9 * fix: resolve 3 bugs — Codex tool normalization (#1914), image gen proxy (#1904), zero-arg MCP tools (#1898) - fix(codex): flatten Chat Completions tool format to Responses format in normalizeCodexTools. Prevents 'Missing required parameter: tools[0].name' upstream errors when clients send {type:'function', function:{name,...}} instead of {type:'function', name,...}. - fix(proxy): add proxy-aware execution context to image generation route. Image requests now correctly use proxy settings from the connection's ProxyRegistry assignment, matching the pattern used by chat pipeline. - fix(translator): inject properties:{} into zero-argument MCP tool schemas during Anthropic→OpenAI translation. OpenAI strict mode requires explicit properties even for empty object schemas. Closes #1914, Closes #1904, Closes #1898 * chore(release): v3.7.9 — all changes in ONE commit * fix: allow local ollama provider connections (#1893) * fix(copilot): emit compatible reasoning text deltas (#1919) Integrated into release/v3.7.9 * fix(api-manager): show validation errors inline in modals, not behind backdrop (#1920) Integrated into release/v3.7.9 * docs: update changelog and pr body with merged prs * fix(providers): route agentrouter through anthropic endpoint headers Update the AgentRouter provider registry to use the Claude-compatible messages API and required Anthropic-style authentication headers. This bypasses unauthorized_client_error responses and exposes the supported model list through passthrough configuration. Also update the changelog and release PR notes to document the fix for #1921 * feat(logs): show compression tokens in request log UI (#1923) * docs: add PR #1923 to changelog --------- Co-authored-by: diegosouzapw <diego.souza.pw@gmail.com> Co-authored-by: backryun <bakryun0718@proton.me> Co-authored-by: Aculeasis <42580940+Aculeasis@users.noreply.github.com> Co-authored-by: Raxxoor <manker_lol@hotmail.com> Co-authored-by: Randi <55005611+rdself@users.noreply.github.com> Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com> Co-authored-by: Tubagus <54710482+0xtbug@users.noreply.github.com> Co-authored-by: smartenok-ops <smartenok@gmail.com> Co-authored-by: Gi99lin <74502520+Gi99lin@users.noreply.github.com> Co-authored-by: ivan-mezentsev <ivan@mezentsev.me> Co-authored-by: Andrew Munsell <andrew@wizardapps.net>
2103 lines
64 KiB
JSON
2103 lines
64 KiB
JSON
[
|
|
{
|
|
"additions": 149,
|
|
"author": {
|
|
"id": "MDQ6VXNlcjM1NzM4Ng==",
|
|
"is_bot": false,
|
|
"login": "andrewmunsell",
|
|
"name": "Andrew Munsell"
|
|
},
|
|
"baseRefName": "main",
|
|
"body": "## Summary\r\n\r\n- Add tokens_compressed INTEGER column to call_logs (migration 041)\r\n- Capture compression savings from both legacy compressContext() and modular applyCompression() pipelines in chatCore.ts\r\n- Display inline ↓N purple badge in log list view tokens cell\r\n- Show \"Compressed: FROM → TO (-X%)\" badge in detail modal Input section\r\n- Bump CallLogArtifact schemaVersion from 4 to 5\r\n\r\n<img width=\"1840\" height=\"844\" alt=\"CleanShot 2026-05-03 at 20 17 14@2x\" src=\"https://github.com/user-attachments/assets/b8f9b623-0615-4bd3-b71a-1810eb6e41c4\" />\r\n<img width=\"2620\" height=\"1010\" alt=\"CleanShot 2026-05-03 at 20 17 18@2x\" src=\"https://github.com/user-attachments/assets/58ebb33b-e7cb-417a-909e-99d9d58375b2\" />\r\n\r\n## Tests Added Or Updated\r\n\r\n- Add compression tokens unit tests\r\n",
|
|
"createdAt": "2026-05-04T03:48:16Z",
|
|
"deletions": 7,
|
|
"files": [
|
|
{
|
|
"path": "open-sse/handlers/chatCore.ts",
|
|
"additions": 7,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/i18n/messages/en.json",
|
|
"additions": 1,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/lib/db/core.ts",
|
|
"additions": 4,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/lib/db/migrationRunner.ts",
|
|
"additions": 2,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/lib/db/migrations/041_compression_tokens.sql",
|
|
"additions": 4,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "src/lib/usage/callLogArtifacts.ts",
|
|
"additions": 2,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/lib/usage/callLogs.ts",
|
|
"additions": 8,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/lib/usage/migrations.ts",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/shared/components/RequestLoggerDetail.tsx",
|
|
"additions": 10,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/shared/components/RequestLoggerV2.tsx",
|
|
"additions": 11,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "tests/unit/call-log-cap.test.ts",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "tests/unit/compression-tokens.test.ts",
|
|
"additions": 98,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
}
|
|
],
|
|
"headRefName": "emdash/indicate-compression-in-logs-use9w",
|
|
"number": 1923,
|
|
"title": "feat(logs): show compression tokens in request log UI"
|
|
},
|
|
{
|
|
"additions": 1698,
|
|
"author": {
|
|
"id": "MDQ6VXNlcjE0OTIxOTgz",
|
|
"is_bot": false,
|
|
"login": "oyi77",
|
|
"name": "Paijo"
|
|
},
|
|
"baseRefName": "release/v3.7.9",
|
|
"body": "Adds automated model assessment, categorization, and self-healing system for omniroute combos.\n\n## The Problem\nWhen providers fail (rate limits, auth errors, model deprecation), combos silently degrade. Our production experience: 2+ hours manually testing models and updating 44 combos because most returned errors.\n\n## The Solution\nThree new domain modules:\n1. **Assessor** - Probes every provider/model pair (quick/standard/deep tiers)\n2. **Categorizer** - Classifies models by capability with fitness scores\n3. **SelfHealer** - Auto-fixes combos: removes dead models, reduces weights for rate-limited, emergency-adds working alternatives\n\n## New Files\n- src/domain/assessment/assessor.ts\n- src/domain/assessment/categorizer.ts\n- src/domain/assessment/selfHealer.ts\n- src/domain/assessment/types.ts\n- src/domain/assessment/migration.ts\n- src/domain/assessment/index.ts\n- src/app/api/assess/route.ts\n- docs/RFC-AUTO-ASSESSMENT.md (full RFC)\n\n## New DB Tables\n- model_assessments, assessment_runs, combo_health, heal_actions\n\n## API\nPOST /api/assess/models - Run assessment\nGET /api/assess/models?action=working - Get working models\nGET /api/assess/models?action=combo-health - Get combo health\n\n> [!NOTE]\n> **OmniRoute Maintainer Note:** This PR has been deferred and will be accepted and redirected for the `v4.0.0` (or greater) release cycle. Please skip this PR during `v3.x` stabilization reviews.",
|
|
"createdAt": "2026-05-03T20:53:04Z",
|
|
"deletions": 0,
|
|
"files": [
|
|
{
|
|
"path": "docs/RFC-AUTO-ASSESSMENT.md",
|
|
"additions": 518,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "src/app/api/assess/route.ts",
|
|
"additions": 110,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "src/domain/assessment/assessor.ts",
|
|
"additions": 206,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "src/domain/assessment/categorizer.ts",
|
|
"additions": 118,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "src/domain/assessment/index.ts",
|
|
"additions": 24,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "src/domain/assessment/migration.ts",
|
|
"additions": 109,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "src/domain/assessment/selfHealer.ts",
|
|
"additions": 261,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "src/domain/assessment/types.ts",
|
|
"additions": 352,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
}
|
|
],
|
|
"headRefName": "feat/auto-assessment-engine",
|
|
"number": 1918,
|
|
"title": "feat: Auto-Assessment and Self-Healing Combo Engine"
|
|
},
|
|
{
|
|
"additions": 22666,
|
|
"author": {
|
|
"id": "MDQ6VXNlcjgwMTY4NDE=",
|
|
"is_bot": false,
|
|
"login": "diegosouzapw",
|
|
"name": "Diego Rodrigues de Sa e Souza"
|
|
},
|
|
"baseRefName": "main",
|
|
"body": "### ✨ New Features\n\n- **feat(compression):** major upgrade to Caveman and RTK compression pipelines (#1876, #1889):\n - Add RTK tool-output compression, stacked Caveman + RTK pipelines, compression combo assignments, dashboard context pages, MCP management tools, and language-aware Caveman rule packs.\n - Expand RTK parity with a 39-filter catalog, RTK-style JSON DSL stages, inline verify/benchmark coverage, trust-gated custom filters, expanded command detection, and redacted raw-output recovery.\n - Expose rule intensities, track USD savings, unify config validation, and persist MCP savings.\n - Expand Caveman parity and MCP metadata compression.\n- **feat(provider):** update Jina AI model catalog to support Embeddings and Rerank natively (#1874 — thanks @backryun)\n- **feat(provider):** add NanoGPT image generation provider (#1899 — thanks @Aculeasis)\n- **feat(ui):** move proxy configuration to dedicated System → Proxy page (#1907 — thanks @oyi77)\n- **feat(ui):** add K/M/B/T cost shortener utility (#1902 — thanks @oyi77)\n- **feat(providers):** implement bulk paste for extra API keys (#1916 — thanks @0xtbug)\n- **feat(analytics):** usage history API key backfill + dark mode pricing (#1896 — thanks @Gi99lin)\n\n### 🐛 Bug Fixes\n\n- **fix(providers):** allow local OpenAI-compatible endpoints (like Ollama) to be added without an API key (fixes #1893)\n- **fix(copilot):** emit compatible reasoning text deltas (#1919 — thanks @ivan-mezentsev)\n- **fix(api-manager):** show validation errors inline in modals, not behind (#1920 — thanks @andrewmunsell)\n- **fix(compression):** align seeded standard savings combo with stacked default, preserve stacked defaults, and secure metadata routes.\n- **fix(gemini-cli):** separate Cloud Code transport from Antigravity (#1869 — thanks @dhaern)\n- **fix(codex):** map prompt field to input array for Cursor compatibility (fixes #1872)\n- **fix(core):** align stream parameter default to false per strict OpenAI spec (fixes #1873)\n- **fix(ui):** restore Next.js CSP `unsafe-eval` in production `script-src` to fix unresponsive Onboarding button (fixes #1883)\n- **fix(proxy):** globally strip `prompt_cache_retention` in `BaseExecutor` to prevent upstream 400 errors from strict endpoints like droid/gemini-2-pro (fixes #1884)\n- **fix(ui):** include `isOpen` dependency in `EditConnectionModal` state sync to ensure `maxConcurrent` is properly hydrated when reopening the modal (fixes #1859)\n- **fix(security):** remediate 4 polynomial-redos CodeQL alerts in compression regexes by bounding repetitions and removing overlapping quantifiers\n- **fix(codex):** flatten Chat Completions tool format to Codex Responses format in `normalizeCodexTools` — prevents `Missing required parameter: tools[0].name` upstream errors (#1914 — thanks @tranduykhanh030)\n- **fix(proxy):** add proxy-aware execution context to image generation route — proxy settings are now correctly applied for image providers behind restricted networks (#1904 — thanks @Aculeasis)\n- **fix(translator):** inject `properties: {}` into zero-argument MCP tool schemas during Anthropic→OpenAI translation — prevents 400 errors from OpenAI strict schema validation (#1898 — thanks @bryceIT)\n- **fix(codex):** sanitize raw responses input (#1895 — thanks @dhaern)\n- **fix(combos):** align strategy contracts (#1892 — thanks @dhaern)\n- **fix(combos):** fix combo provider breaker profile handling (#1891 — thanks @rdself)\n- **fix(migrations):** duplicate-column no-op fix (#1886 — thanks @smartenok-ops)\n- **fix(auth):** per-connection OAuth refresh mutex (#1885 — thanks @smartenok-ops)\n- **fix(auth):** require dashboard management auth for compression preview\n\n### 📝 Documentation\n\n- **docs(compression):** document RTK+Caveman stacked savings ranges\n\n### 🏆 Release Attribution & Retroactive Credits\n\n- **@payne0420** (PR #1828 / #1839) — Implementation of the **Rate Limit Watchdog** and environment overrides. (This feature was manually backported to v3.7.8, causing the automatic GitHub Release notes to omit the author's credit).\n",
|
|
"createdAt": "2026-05-03T20:35:53Z",
|
|
"deletions": 1470,
|
|
"files": [
|
|
{
|
|
"path": ".agents/workflows/deploy-vps-akamai.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": ".agents/workflows/deploy-vps-both.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": ".agents/workflows/deploy-vps-local.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": ".agents/workflows/generate-release.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": ".agents/workflows/version-bump.md",
|
|
"additions": 9,
|
|
"deletions": 9,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "AGENTS.md",
|
|
"additions": 25,
|
|
"deletions": 9,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "CHANGELOG.md",
|
|
"additions": 47,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "README.md",
|
|
"additions": 71,
|
|
"deletions": 29,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/API_REFERENCE.md",
|
|
"additions": 32,
|
|
"deletions": 13,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/ARCHITECTURE.md",
|
|
"additions": 16,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/COMPRESSION_ENGINES.md",
|
|
"additions": 143,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "docs/COMPRESSION_GUIDE.md",
|
|
"additions": 105,
|
|
"deletions": 12,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/COMPRESSION_LANGUAGE_PACKS.md",
|
|
"additions": 96,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "docs/COMPRESSION_RULES_FORMAT.md",
|
|
"additions": 186,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "docs/ENVIRONMENT.md",
|
|
"additions": 6,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/FEATURES.md",
|
|
"additions": 16,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/MCP-SERVER.md",
|
|
"additions": 55,
|
|
"deletions": 19,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/RTK_COMPRESSION.md",
|
|
"additions": 234,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "docs/SETUP_GUIDE.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/openapi.yaml",
|
|
"additions": 199,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "electron/package-lock.json",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "electron/package.json",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "llm.txt",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "next.config.mjs",
|
|
"additions": 8,
|
|
"deletions": 95,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/config/embeddingRegistry.ts",
|
|
"additions": 62,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/config/imageRegistry.ts",
|
|
"additions": 14,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/config/rerankRegistry.ts",
|
|
"additions": 44,
|
|
"deletions": 8,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/executors/base.ts",
|
|
"additions": 3,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/executors/codex.ts",
|
|
"additions": 75,
|
|
"deletions": 5,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/handlers/chatCore.ts",
|
|
"additions": 338,
|
|
"deletions": 68,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/handlers/imageGeneration.ts",
|
|
"additions": 1,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/handlers/responseSanitizer.ts",
|
|
"additions": 3,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/mcp-server/README.md",
|
|
"additions": 17,
|
|
"deletions": 9,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/mcp-server/descriptionCompressor.ts",
|
|
"additions": 243,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/mcp-server/schemas/tools.ts",
|
|
"additions": 121,
|
|
"deletions": 32,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/mcp-server/server.ts",
|
|
"additions": 41,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/mcp-server/tools/advancedTools.ts",
|
|
"additions": 15,
|
|
"deletions": 16,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/mcp-server/tools/compressionTools.ts",
|
|
"additions": 157,
|
|
"deletions": 11,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/package.json",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/AGENTS.md",
|
|
"additions": 5,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/accountFallback.ts",
|
|
"additions": 21,
|
|
"deletions": 5,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/autoCombo/index.ts",
|
|
"additions": 1,
|
|
"deletions": 10,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/combo.ts",
|
|
"additions": 56,
|
|
"deletions": 7,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/aggressive.ts",
|
|
"additions": 19,
|
|
"deletions": 29,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/caveman.ts",
|
|
"additions": 310,
|
|
"deletions": 31,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/cavemanRules.ts",
|
|
"additions": 189,
|
|
"deletions": 15,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/diffHelper.ts",
|
|
"additions": 117,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/cavemanAdapter.ts",
|
|
"additions": 408,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/index.ts",
|
|
"additions": 14,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/registry.ts",
|
|
"additions": 87,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/codeStripper.ts",
|
|
"additions": 128,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/commandDetector.ts",
|
|
"additions": 465,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/deduplicator.ts",
|
|
"additions": 37,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filterLoader.ts",
|
|
"additions": 220,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filterSchema.ts",
|
|
"additions": 182,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/aws.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/biome.json",
|
|
"additions": 35,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/build-eslint.json",
|
|
"additions": 37,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/build-typescript.json",
|
|
"additions": 33,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/build-vite.json",
|
|
"additions": 41,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/build-webpack.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/bundle-install.json",
|
|
"additions": 35,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/curl.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/df.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/docker-logs.json",
|
|
"additions": 42,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/docker-ps.json",
|
|
"additions": 33,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/du.json",
|
|
"additions": 33,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/error-stacktrace.json",
|
|
"additions": 41,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/gcloud.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/generic-output.json",
|
|
"additions": 32,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/git-branch.json",
|
|
"additions": 45,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/git-diff.json",
|
|
"additions": 33,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/git-log.json",
|
|
"additions": 33,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/git-status.json",
|
|
"additions": 40,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/golangci-lint.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/json-output.json",
|
|
"additions": 40,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/make.json",
|
|
"additions": 38,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/mypy.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/npm-audit.json",
|
|
"additions": 43,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/npm-install.json",
|
|
"additions": 41,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/nx.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/pip.json",
|
|
"additions": 41,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/playwright.json",
|
|
"additions": 42,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/poetry-install.json",
|
|
"additions": 35,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/prettier.json",
|
|
"additions": 40,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/ps.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/rsync.json",
|
|
"additions": 33,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/rubocop.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/ruff.json",
|
|
"additions": 40,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/shell-find.json",
|
|
"additions": 33,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/shell-grep.json",
|
|
"additions": 37,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/shell-ls.json",
|
|
"additions": 33,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/ssh.json",
|
|
"additions": 43,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/systemctl-status.json",
|
|
"additions": 43,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/terraform-plan.json",
|
|
"additions": 34,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/test-cargo.json",
|
|
"additions": 42,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/test-go.json",
|
|
"additions": 41,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/test-jest.json",
|
|
"additions": 43,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/test-pytest.json",
|
|
"additions": 41,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "open-sse/services/compression/engines/rtk/filters/test-vitest.json",
|
|
"additions": 43,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
}
|
|
],
|
|
"headRefName": "release/v3.7.9",
|
|
"number": 1917,
|
|
"title": "Release v3.7.9"
|
|
},
|
|
{
|
|
"additions": 788,
|
|
"author": {
|
|
"id": "MDQ6VXNlcjI0MTk4NDIy",
|
|
"is_bot": false,
|
|
"login": "backryun",
|
|
"name": "backryun"
|
|
},
|
|
"baseRefName": "release/v3.7.9",
|
|
"body": "## Summary\r\n\r\ncompletely removing support for Node.js 20.\r\nNode.js 20 has reached EOL.\r\n<img width=\"334\" height=\"327\" alt=\"image\" src=\"https://github.com/user-attachments/assets/f88758e4-fd6e-478e-88e4-8819d0c5e8e0\" />\r\n\r\n## Validation\r\n\r\n- [x] `npm run lint`\r\n- [x] `npm run test:unit`\r\n- [ ] `npm run test:coverage`\r\n- [ ] Coverage is still `>= 60%` for statements, lines, functions, and branches\r\n\r\n## Tests Added Or Updated\r\n\r\nUpdated automated test files:\r\n\r\n- `tests/unit/node-runtime-support.test.ts`\r\n- `tests/unit/chatcore-sanitization.test.ts`\r\n- `tests/unit/codex-stream-false.test.ts`\r\n- `tests/unit/t26-ai-sdk-accept-header-compat.test.ts`\r\n- `tests/integration/chat-pipeline.test.ts`\r\n- `tests/e2e/protocol-clients.test.ts`\r\n\r\nProduction code changed: Node runtime support logic was updated in `src/shared/utils/nodeRuntimeSupport.ts` and `bin/nodeRuntimeSupport.mjs`.\r\n\r\n## Coverage Notes\r\n\r\nThis PR changes `src/` and `bin/`.\r\n\r\nCoverage for the runtime support change is primarily provided by:\r\n\r\n- `tests/unit/node-runtime-support.test.ts`\r\n- `npm run check:node-runtime`\r\n\r\nAdditional regression coverage was run through:\r\n\r\n- `npm run test:unit`\r\n- `npm run test:integration`\r\n- `npm run test:e2e`\r\n- `npm run test:protocols:e2e`\r\n\r\n`npm run test:coverage` was not run, so coverage movement for touched files has not been measured yet. Follow-up before merge: run `npm run test:coverage` and confirm statements, lines, functions, and branches remain `>= 60%`.\r\n\r\n## Reviewer Notes\r\n\r\n- Node.js 20 support is removed from runtime policy, package engines, CI, docs, and runtime warning copy.\r\n- Supported runtime policy is now Node.js `>=22.22.2 <23 || >=24.0.0 <25`.\r\n- CI matrix and local version files now target Node 22/24 support.\r\n- Docs and i18n runtime wording were updated broadly; reviewers should expect many documentation-only diffs.\r\n- `tests/e2e/protocol-clients.test.ts` now explicitly enables A2A before validating the A2A flow, matching the current default where A2A starts disabled.\r\n- Manual validation was performed on Node `v22.22.2`.\n\n> [!NOTE]\n> **OmniRoute Maintainer Note:** This PR has been deferred and will be accepted and redirected for the `v4.0.0` (or greater) release cycle. Please skip this PR during `v3.x` stabilization reviews.",
|
|
"createdAt": "2026-05-03T14:11:25Z",
|
|
"deletions": 776,
|
|
"files": [
|
|
{
|
|
"path": ".dockerignore",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": ".env.example",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": ".github/workflows/ci.yml",
|
|
"additions": 8,
|
|
"deletions": 5,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": ".npmignore",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "AGENTS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "CLAUDE.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "Dockerfile",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "README.md",
|
|
"additions": 10,
|
|
"deletions": 10,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "bin/nodeRuntimeSupport.mjs",
|
|
"additions": 3,
|
|
"deletions": 5,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "compose.prod.yaml",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "RENAMED"
|
|
},
|
|
{
|
|
"path": "compose.yaml",
|
|
"additions": 0,
|
|
"deletions": 0,
|
|
"changeType": "RENAMED"
|
|
},
|
|
{
|
|
"path": "docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/llm.txt",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/llm.txt",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bn/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bn/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bn/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bn/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bn/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bn/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bn/docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/llm.txt",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/llm.txt",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/llm.txt",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/llm.txt",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fa/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fa/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fa/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fa/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fa/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fa/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fa/docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/llm.txt",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/docs/TROUBLESHOOTING.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/llm.txt",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/gu/CONTRIBUTING.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/gu/README.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/gu/docs/CLI-TOOLS.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/gu/docs/ENVIRONMENT.md",
|
|
"additions": 3,
|
|
"deletions": 3,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/gu/docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
}
|
|
],
|
|
"headRefName": "release/v3.7.9",
|
|
"number": 1915,
|
|
"title": "[will be merge 4.0 update] (Security Fix): Drop node.js 20 support + Update docker files to lastest docker standards"
|
|
},
|
|
{
|
|
"additions": 1119,
|
|
"author": {
|
|
"id": "U_kgDODPQT-Q",
|
|
"is_bot": false,
|
|
"login": "vrdons",
|
|
"name": ""
|
|
},
|
|
"baseRefName": "release/v3.7.9",
|
|
"body": "## Summary\r\n\r\nTo allow using on bun interface, faster typescript checks\r\n\r\n## Related Issues\r\nNone\r\n\r\n## Validation\r\n\r\n- [x] `npm run lint`\r\n- [ ] `npm run test:unit`\r\nNo, because last tests stucks\r\n- [x] `npm run test:coverage`\r\n- [ ] Coverage is still `>= 60%` for statements, lines, functions, and branches\r\n- [ ] SonarQube PR analysis is green or any remaining issues are explicitly documented below\r\n\r\n## Tests Added Or Updated\r\n\r\n- List every changed or added automated test file.\r\n- If no production code changed, state that here.\r\n\r\n## Coverage Notes\r\n\r\n- If this PR changes `src/`, `open-sse/`, `electron/`, or `bin/`, explain which tests cover the change.\r\n- If coverage moved down in any touched file, explain why and what follow-up task will recover it.\r\n\r\n## Reviewer Notes\r\n\r\n- Call out any risky areas, migrations, feature flags, or manual validation that reviewers should know about.\r\n\n> [!NOTE]\n> **OmniRoute Maintainer Note:** This PR has been deferred and will be accepted and redirected for the `v4.0.0` (or greater) release cycle. Please skip this PR during `v3.x` stabilization reviews.",
|
|
"createdAt": "2026-05-02T17:57:46Z",
|
|
"deletions": 231022,
|
|
"files": [
|
|
{
|
|
"path": ".agents/workflows/deploy-vps-akamai.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": ".agents/workflows/deploy-vps-both.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": ".agents/workflows/deploy-vps-local.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": ".agents/workflows/generate-release.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "AGENTS.md",
|
|
"additions": 4,
|
|
"deletions": 4,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "CLAUDE.md",
|
|
"additions": 1,
|
|
"deletions": 218,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "GEMINI.md",
|
|
"additions": 1,
|
|
"deletions": 21,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "README.md",
|
|
"additions": 63,
|
|
"deletions": 36,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/API_REFERENCE.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/ARCHITECTURE.md",
|
|
"additions": 2,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/CODEBASE_DOCUMENTATION.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/ENVIRONMENT.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/FEATURES.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/I18N.md",
|
|
"additions": 82,
|
|
"deletions": 52,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/SETUP_GUIDE.md",
|
|
"additions": 9,
|
|
"deletions": 8,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/TERMUX_GUIDE.md",
|
|
"additions": 2,
|
|
"deletions": 10,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/TROUBLESHOOTING.md",
|
|
"additions": 17,
|
|
"deletions": 41,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/UNINSTALL.md",
|
|
"additions": 12,
|
|
"deletions": 12,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/USER_GUIDE.md",
|
|
"additions": 2,
|
|
"deletions": 10,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/VM_DEPLOYMENT_GUIDE.md",
|
|
"additions": 1,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/README.md",
|
|
"additions": 2,
|
|
"deletions": 13,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/ar/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bg/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bn/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bn/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/bn/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/README.md",
|
|
"additions": 0,
|
|
"deletions": 2379,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/A2A-SERVER.md",
|
|
"additions": 0,
|
|
"deletions": 200,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/API_REFERENCE.md",
|
|
"additions": 0,
|
|
"deletions": 469,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/ARCHITECTURE.md",
|
|
"additions": 0,
|
|
"deletions": 891,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/AUTO-COMBO.md",
|
|
"additions": 0,
|
|
"deletions": 67,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/CLI-TOOLS.md",
|
|
"additions": 0,
|
|
"deletions": 398,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/CODEBASE_DOCUMENTATION.md",
|
|
"additions": 0,
|
|
"deletions": 591,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/COVERAGE_PLAN.md",
|
|
"additions": 0,
|
|
"deletions": 170,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/ENVIRONMENT.md",
|
|
"additions": 0,
|
|
"deletions": 669,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/FEATURES.md",
|
|
"additions": 0,
|
|
"deletions": 270,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/FLY_IO_DEPLOYMENT_GUIDE.md",
|
|
"additions": 0,
|
|
"deletions": 455,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/I18N.md",
|
|
"additions": 0,
|
|
"deletions": 441,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/MCP-SERVER.md",
|
|
"additions": 0,
|
|
"deletions": 87,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/RELEASE_CHECKLIST.md",
|
|
"additions": 0,
|
|
"deletions": 44,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/TROUBLESHOOTING.md",
|
|
"additions": 0,
|
|
"deletions": 341,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/UNINSTALL.md",
|
|
"additions": 0,
|
|
"deletions": 157,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/USER_GUIDE.md",
|
|
"additions": 0,
|
|
"deletions": 966,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/VM_DEPLOYMENT_GUIDE.md",
|
|
"additions": 0,
|
|
"deletions": 407,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/cloudflare-zero-trust-guide.md",
|
|
"additions": 0,
|
|
"deletions": 106,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/docs/features/context-relay.md",
|
|
"additions": 0,
|
|
"deletions": 130,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/cs/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/da/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/de/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/es/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fa/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fa/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fa/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fi/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/fr/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/gu/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/gu/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/gu/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/he/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/he/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/he/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/he/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/hi/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/hi/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/hi/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/hi/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/hu/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/hu/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/hu/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/hu/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/id/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 4921,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/id/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 233,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/id/GEMINI.md",
|
|
"additions": 0,
|
|
"deletions": 25,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/id/llm.txt",
|
|
"additions": 0,
|
|
"deletions": 476,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/in/CHANGELOG.md",
|
|
"additions": 0,
|
|
"deletions": 3232,
|
|
"changeType": "DELETED"
|
|
},
|
|
{
|
|
"path": "docs/i18n/in/CLAUDE.md",
|
|
"additions": 0,
|
|
"deletions": 229,
|
|
"changeType": "DELETED"
|
|
}
|
|
],
|
|
"headRefName": "main",
|
|
"number": 1894,
|
|
"title": "refactor(db): migrate from better-sqlite3 to node:sqlite, use tsgo"
|
|
},
|
|
{
|
|
"additions": 276,
|
|
"author": {
|
|
"id": "U_kgDOD9eSjQ",
|
|
"is_bot": false,
|
|
"login": "smartenok-ops",
|
|
"name": ""
|
|
},
|
|
"baseRefName": "release/v3.7.9",
|
|
"body": "When a codex SSE stream hits 429 mid-task, OmniRoute previously gave up (maxAttempts=1, no rotation). Add retry with account rotation when session affinity allows.\r\n\r\nDepends on: per-session sticky routing PR (extractSessionAffinityKey, deleteSessionAccountAffinity).\r\n\r\n## Summary\r\n\r\n- Describe the user-facing or operational change.\r\n\r\n## Related Issues\r\n\r\n- Closes #\r\n- Related to #\r\n\r\n## Validation\r\n\r\n- [ ] `npm run lint`\r\n- [ ] `npm run test:unit`\r\n- [ ] `npm run test:coverage`\r\n- [ ] Coverage is still `>= 60%` for statements, lines, functions, and branches\r\n- [ ] SonarQube PR analysis is green or any remaining issues are explicitly documented below\r\n\r\n## Tests Added Or Updated\r\n\r\n- List every changed or added automated test file.\r\n- If no production code changed, state that here.\r\n\r\n## Coverage Notes\r\n\r\n- If this PR changes `src/`, `open-sse/`, `electron/`, or `bin/`, explain which tests cover the change.\r\n- If coverage moved down in any touched file, explain why and what follow-up task will recover it.\r\n\r\n## Reviewer Notes\r\n\r\n- Call out any risky areas, migrations, feature flags, or manual validation that reviewers should know about.\r\n\n> [!NOTE]\n> **OmniRoute Maintainer Note:** This PR has been deferred and will be accepted and redirected for the `v4.0.0` (or greater) release cycle. Please skip this PR during `v3.x` stabilization reviews.",
|
|
"createdAt": "2026-05-02T16:06:11Z",
|
|
"deletions": 2,
|
|
"files": [
|
|
{
|
|
"path": "open-sse/handlers/chatCore.ts",
|
|
"additions": 84,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "tests/unit/codex-failover.test.ts",
|
|
"additions": 192,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
}
|
|
],
|
|
"headRefName": "feat/codex-429-mid-task-failover",
|
|
"number": 1888,
|
|
"title": "feat(sse): codex 429 mid-task failover with account rotation"
|
|
},
|
|
{
|
|
"additions": 461,
|
|
"author": {
|
|
"id": "U_kgDOD9eSjQ",
|
|
"is_bot": false,
|
|
"login": "smartenok-ops",
|
|
"name": ""
|
|
},
|
|
"baseRefName": "release/v3.7.9",
|
|
"body": "When concurrent SSE clients use a shared OmniRoute key, randomized account selection causes per-session inconsistencies (one stream hits account A, next request from same logical session hits B). Adds session_account_affinity table + extractSessionAffinityKey helper so a session_key (e.g. SHA of input headers) deterministically pins to one account for its lifetime.\r\n\r\nMigration: 041_session_account_affinity.sql (renumbered from local 026 — please confirm next available slot).\r\n\r\n## Summary\r\n\r\n- Describe the user-facing or operational change.\r\n\r\n## Related Issues\r\n\r\n- Closes #\r\n- Related to #\r\n\r\n## Validation\r\n\r\n- [ ] `npm run lint`\r\n- [ ] `npm run test:unit`\r\n- [ ] `npm run test:coverage`\r\n- [ ] Coverage is still `>= 60%` for statements, lines, functions, and branches\r\n- [ ] SonarQube PR analysis is green or any remaining issues are explicitly documented below\r\n\r\n## Tests Added Or Updated\r\n\r\n- List every changed or added automated test file.\r\n- If no production code changed, state that here.\r\n\r\n## Coverage Notes\r\n\r\n- If this PR changes `src/`, `open-sse/`, `electron/`, or `bin/`, explain which tests cover the change.\r\n- If coverage moved down in any touched file, explain why and what follow-up task will recover it.\r\n\r\n## Reviewer Notes\r\n\r\n- Call out any risky areas, migrations, feature flags, or manual validation that reviewers should know about.\r\n\n> [!NOTE]\n> **OmniRoute Maintainer Note:** This PR has been deferred and will be accepted and redirected for the `v4.0.0` (or greater) release cycle. Please skip this PR during `v3.x` stabilization reviews.",
|
|
"createdAt": "2026-05-02T16:05:53Z",
|
|
"deletions": 122,
|
|
"files": [
|
|
{
|
|
"path": "src/instrumentation-node.ts",
|
|
"additions": 10,
|
|
"deletions": 5,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/lib/db/migrations/041_session_account_affinity.sql",
|
|
"additions": 11,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "src/lib/db/sessionAccountAffinity.ts",
|
|
"additions": 122,
|
|
"deletions": 0,
|
|
"changeType": "ADDED"
|
|
},
|
|
{
|
|
"path": "src/lib/localDb.ts",
|
|
"additions": 10,
|
|
"deletions": 0,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/sse/handlers/chat.ts",
|
|
"additions": 14,
|
|
"deletions": 1,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "src/sse/services/auth.ts",
|
|
"additions": 177,
|
|
"deletions": 2,
|
|
"changeType": "MODIFIED"
|
|
},
|
|
{
|
|
"path": "tests/unit/sse-auth.test.ts",
|
|
"additions": 117,
|
|
"deletions": 114,
|
|
"changeType": "MODIFIED"
|
|
}
|
|
],
|
|
"headRefName": "feat/per-session-sticky-routing",
|
|
"number": 1887,
|
|
"title": "feat(auth): per-session sticky routing for codex"
|
|
}
|
|
]
|