Skip to content

Commit db362b0

Browse files
authored
Release v3.8.30 (#4267)
Release v3.8.30 — see CHANGELOG.md [3.8.30] for the full release notes.
1 parent ab80960 commit db362b0

356 files changed

Lines changed: 14263 additions & 1135 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,6 +402,12 @@ NEXT_PUBLIC_ENABLE_SOCKS5_PROXY=true
402402
# ALL_PROXY=socks5://127.0.0.1:7890
403403
# NO_PROXY=localhost,127.0.0.1
404404

405+
# Max concurrent sockets per cached HTTP/SOCKS proxy dispatcher.
406+
# Long-lived SSE streams such as Codex /v1/responses need more than one
407+
# connection when multiple requests share the same account-level proxy.
408+
# Set to 1 only for legacy diagnostics. Values above 256 are capped.
409+
# OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS=32
410+
405411
# Proxy fail-open mode (default: false = fail-closed).
406412
# When false, a request whose assigned proxy fails to resolve is REFUSED rather than
407413
# falling back to a direct connection — prevents real-IP leaks in egress-controlled

.github/workflows/build-fork.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
packages: write
2626
steps:
2727
- name: Checkout
28-
uses: actions/checkout@v6
28+
uses: actions/checkout@v7
2929
with:
3030
persist-credentials: false
3131

.github/workflows/ci.yml

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
API_KEY_SECRET: ci-lint-api-key-secret-long
3232
DISABLE_SQLITE_AUTO_BACKUP: "true"
3333
steps:
34-
- uses: actions/checkout@v6
34+
- uses: actions/checkout@v7
3535
with:
3636
persist-credentials: false
3737
- uses: actions/setup-node@v6
@@ -79,7 +79,7 @@ jobs:
7979
contents: read
8080
security-events: read
8181
steps:
82-
- uses: actions/checkout@v6
82+
- uses: actions/checkout@v7
8383
with:
8484
persist-credentials: false
8585
- uses: actions/setup-node@v6
@@ -161,7 +161,7 @@ jobs:
161161
# fetch-depth: 0 — the OpenAPI breaking-change gate (oasdiff) reads the base
162162
# spec via `git show <base_ref>:docs/reference/openapi.yaml`; a shallow clone
163163
# would lack the base ref and the gate would self-skip (base-unresolved).
164-
- uses: actions/checkout@v6
164+
- uses: actions/checkout@v7
165165
with:
166166
persist-credentials: false
167167
fetch-depth: 0
@@ -265,7 +265,7 @@ jobs:
265265
name: Docs Sync (Strict)
266266
runs-on: ubuntu-latest
267267
steps:
268-
- uses: actions/checkout@v6
268+
- uses: actions/checkout@v7
269269
with:
270270
persist-credentials: false
271271
- uses: actions/setup-node@v6
@@ -297,7 +297,7 @@ jobs:
297297
# existing doc corpus is brought up to style. Promote to blocking once it converges.
298298
continue-on-error: true
299299
steps:
300-
- uses: actions/checkout@v6
300+
- uses: actions/checkout@v7
301301
with:
302302
persist-credentials: false
303303
- uses: actions/setup-node@v6
@@ -320,7 +320,7 @@ jobs:
320320
name: i18n UI Coverage
321321
runs-on: ubuntu-latest
322322
steps:
323-
- uses: actions/checkout@v6
323+
- uses: actions/checkout@v7
324324
with:
325325
persist-credentials: false
326326
- uses: actions/setup-node@v6
@@ -336,7 +336,7 @@ jobs:
336336
outputs:
337337
langs: ${{ steps.langs.outputs.langs }}
338338
steps:
339-
- uses: actions/checkout@v6
339+
- uses: actions/checkout@v7
340340
with:
341341
persist-credentials: false
342342
- id: langs
@@ -355,7 +355,7 @@ jobs:
355355
lang: ${{ fromJson(needs.i18n-matrix.outputs.langs) }}
356356
needs: i18n-matrix
357357
steps:
358-
- uses: actions/checkout@v6
358+
- uses: actions/checkout@v7
359359
with:
360360
persist-credentials: false
361361
- uses: actions/setup-python@v6
@@ -384,7 +384,7 @@ jobs:
384384
if: ${{ github.event_name == 'pull_request' }}
385385
runs-on: ubuntu-latest
386386
steps:
387-
- uses: actions/checkout@v6
387+
- uses: actions/checkout@v7
388388
with:
389389
persist-credentials: false
390390
fetch-depth: 0
@@ -414,7 +414,7 @@ jobs:
414414
name: Build
415415
runs-on: ubuntu-latest
416416
steps:
417-
- uses: actions/checkout@v6
417+
- uses: actions/checkout@v7
418418
with:
419419
persist-credentials: false
420420
- uses: actions/setup-node@v6
@@ -447,7 +447,7 @@ jobs:
447447
env:
448448
JWT_SECRET: ci-build-secret-with-sufficient-length-for-validation
449449
steps:
450-
- uses: actions/checkout@v6
450+
- uses: actions/checkout@v7
451451
with:
452452
persist-credentials: false
453453
- uses: actions/setup-node@v6
@@ -472,7 +472,7 @@ jobs:
472472
JWT_SECRET: ci-build-secret-with-sufficient-length-for-validation
473473
CSC_IDENTITY_AUTO_DISCOVERY: "false"
474474
steps:
475-
- uses: actions/checkout@v6
475+
- uses: actions/checkout@v7
476476
with:
477477
persist-credentials: false
478478
- uses: actions/setup-node@v6
@@ -507,7 +507,7 @@ jobs:
507507
API_KEY_SECRET: ci-test-api-key-secret-long
508508
DISABLE_SQLITE_AUTO_BACKUP: "true"
509509
steps:
510-
- uses: actions/checkout@v6
510+
- uses: actions/checkout@v7
511511
with:
512512
persist-credentials: false
513513
- uses: actions/setup-node@v6
@@ -516,7 +516,7 @@ jobs:
516516
cache: npm
517517
- run: npm ci
518518
- run: npm run check:node-runtime
519-
- run: node --max-old-space-size=4096 --import tsx --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 --test-shard=${{ matrix.shard }}/8 tests/unit/*.test.ts "tests/unit/{api,auth,authz,build,cli,cli-helper,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui}/**/*.test.ts"
519+
- run: node --max-old-space-size=4096 --import tsx --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 --test-shard=${{ matrix.shard }}/8 tests/unit/*.test.ts "tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui}/**/*.test.ts"
520520

521521
test-vitest:
522522
name: Vitest (MCP / autoCombo / UI components)
@@ -528,7 +528,7 @@ jobs:
528528
API_KEY_SECRET: ci-test-api-key-secret-long
529529
DISABLE_SQLITE_AUTO_BACKUP: "true"
530530
steps:
531-
- uses: actions/checkout@v6
531+
- uses: actions/checkout@v7
532532
with:
533533
persist-credentials: false
534534
- uses: actions/setup-node@v6
@@ -548,7 +548,7 @@ jobs:
548548
node-24-compat:
549549
name: Node 24 Compatibility (${{ matrix.shard }}/2)
550550
runs-on: ubuntu-latest
551-
timeout-minutes: 15
551+
timeout-minutes: 25
552552
needs: build
553553
strategy:
554554
fail-fast: false
@@ -559,7 +559,7 @@ jobs:
559559
API_KEY_SECRET: ci-test-api-key-secret-long
560560
DISABLE_SQLITE_AUTO_BACKUP: "true"
561561
steps:
562-
- uses: actions/checkout@v6
562+
- uses: actions/checkout@v7
563563
with:
564564
persist-credentials: false
565565
- uses: actions/setup-node@v6
@@ -569,12 +569,12 @@ jobs:
569569
- run: npm ci
570570
- run: npm run check:node-runtime
571571
- run: npm run build
572-
- run: node --import tsx --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 --test-shard=${{ matrix.shard }}/2 tests/unit/*.test.ts "tests/unit/{api,auth,authz,build,cli,cli-helper,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui}/**/*.test.ts"
572+
- run: node --import tsx --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 --test-shard=${{ matrix.shard }}/2 tests/unit/*.test.ts "tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui}/**/*.test.ts"
573573

574574
node-26-compat:
575575
name: Node 26 Compatibility (${{ matrix.shard }}/2)
576576
runs-on: ubuntu-latest
577-
timeout-minutes: 15
577+
timeout-minutes: 25
578578
needs: build
579579
strategy:
580580
fail-fast: false
@@ -585,7 +585,7 @@ jobs:
585585
API_KEY_SECRET: ci-test-api-key-secret-long
586586
DISABLE_SQLITE_AUTO_BACKUP: "true"
587587
steps:
588-
- uses: actions/checkout@v6
588+
- uses: actions/checkout@v7
589589
with:
590590
persist-credentials: false
591591
- uses: actions/setup-node@v6
@@ -595,7 +595,7 @@ jobs:
595595
- run: npm ci
596596
- run: npm run check:node-runtime
597597
- run: npm run build
598-
- run: node --import tsx --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 --test-shard=${{ matrix.shard }}/2 tests/unit/*.test.ts "tests/unit/{api,auth,authz,build,cli,cli-helper,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui}/**/*.test.ts"
598+
- run: node --import tsx --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 --test-shard=${{ matrix.shard }}/2 tests/unit/*.test.ts "tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui}/**/*.test.ts"
599599

600600
test-coverage-shard:
601601
name: Coverage Shard (${{ matrix.shard }}/8)
@@ -611,7 +611,7 @@ jobs:
611611
API_KEY_SECRET: ci-test-api-key-secret-long
612612
DISABLE_SQLITE_AUTO_BACKUP: "true"
613613
steps:
614-
- uses: actions/checkout@v6
614+
- uses: actions/checkout@v7
615615
with:
616616
persist-credentials: false
617617
- uses: actions/setup-node@v6
@@ -636,7 +636,7 @@ jobs:
636636
--exclude=tests/** \
637637
--exclude=**/*.test.* \
638638
node --max-old-space-size=4096 --import tsx --import ./tests/_setup/isolateDataDir.ts --test --test-force-exit --test-concurrency=4 \
639-
--test-shard=${{ matrix.shard }}/8 tests/unit/*.test.ts "tests/unit/{api,auth,authz,build,cli,cli-helper,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui}/**/*.test.ts"
639+
--test-shard=${{ matrix.shard }}/8 tests/unit/*.test.ts "tests/unit/{api,auth,authz,build,cli,cli-helper,combo,compression,correctness,cors,dashboard,db,db-adapters,docs,gamification,guardrails,lib,mcp,runtime,security,services,settings,shared,ui}/**/*.test.ts"
640640
- name: Upload raw shard coverage
641641
if: always()
642642
uses: actions/upload-artifact@v7
@@ -655,7 +655,7 @@ jobs:
655655
JWT_SECRET: ci-test-secret-with-sufficient-length-for-validation
656656
API_KEY_SECRET: ci-test-api-key-secret-long
657657
steps:
658-
- uses: actions/checkout@v6
658+
- uses: actions/checkout@v7
659659
with:
660660
persist-credentials: false
661661
- uses: actions/setup-node@v6
@@ -733,7 +733,7 @@ jobs:
733733
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
734734
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
735735
steps:
736-
- uses: actions/checkout@v6
736+
- uses: actions/checkout@v7
737737
with:
738738
persist-credentials: false
739739
fetch-depth: 0
@@ -853,7 +853,7 @@ jobs:
853853
DISABLE_SQLITE_AUTO_BACKUP: "true"
854854
OMNIROUTE_PLAYWRIGHT_SKIP_BUILD: "1"
855855
steps:
856-
- uses: actions/checkout@v6
856+
- uses: actions/checkout@v7
857857
with:
858858
persist-credentials: false
859859
- uses: actions/setup-node@v6
@@ -896,7 +896,7 @@ jobs:
896896
DATA_DIR: /tmp/omniroute-ci-${{ matrix.shard }}
897897
DISABLE_SQLITE_AUTO_BACKUP: "true"
898898
steps:
899-
- uses: actions/checkout@v6
899+
- uses: actions/checkout@v7
900900
with:
901901
persist-credentials: false
902902
- uses: actions/setup-node@v6
@@ -916,7 +916,7 @@ jobs:
916916
API_KEY_SECRET: ci-test-api-key-secret-long
917917
DISABLE_SQLITE_AUTO_BACKUP: "true"
918918
steps:
919-
- uses: actions/checkout@v6
919+
- uses: actions/checkout@v7
920920
with:
921921
persist-credentials: false
922922
- uses: actions/setup-node@v6

.github/workflows/claude.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
actions: read # Required for Claude to read CI results on PRs
3131
steps:
3232
- name: Checkout repository
33-
uses: actions/checkout@v6
33+
uses: actions/checkout@v7
3434
with:
3535
persist-credentials: false
3636
fetch-depth: 1

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
actions: read
2020
contents: read
2121
steps:
22-
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
22+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
2323
with:
2424
persist-credentials: false
2525
- uses: github/codeql-action/init@8aad20d150bbac5944a9f9d289da16a4b0d87c1e # v4.36.2

.github/workflows/dast-smoke.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
JWT_SECRET: ci-build-secret-with-sufficient-length-for-validation
1616
API_KEY_SECRET: ci-api-key-secret-with-sufficient-length-aaaa
1717
steps:
18-
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
18+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
1919
with:
2020
persist-credentials: false
2121
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0

.github/workflows/docker-publish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ jobs:
4242
IMAGE_NAME: diegosouzapw/omniroute
4343
steps:
4444
- name: Checkout
45-
uses: actions/checkout@v6
45+
uses: actions/checkout@v7
4646
with:
4747
persist-credentials: false
4848
ref: ${{ github.event_name == 'workflow_dispatch' && format('refs/tags/v{0}', inputs.version) || '' }}
@@ -143,7 +143,7 @@ jobs:
143143
GHCR_IMAGE_NAME: ghcr.io/diegosouzapw/omniroute
144144
steps:
145145
- name: Checkout
146-
uses: actions/checkout@v6
146+
uses: actions/checkout@v7
147147
with:
148148
persist-credentials: false
149149
ref: ${{ github.event_name == 'workflow_dispatch' && format('refs/tags/v{0}', inputs.version) || '' }}
@@ -243,7 +243,7 @@ jobs:
243243
PROMOTE_LATEST: ${{ needs.prepare.outputs.promote_latest }}
244244
steps:
245245
- name: Checkout
246-
uses: actions/checkout@v6
246+
uses: actions/checkout@v7
247247
with:
248248
persist-credentials: false
249249
ref: ${{ github.event_name == 'workflow_dispatch' && format('refs/tags/v{0}', inputs.version) || '' }}

.github/workflows/electron-release.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
version: ${{ steps.validate.outputs.version }}
2828
steps:
2929
- name: Checkout code
30-
uses: actions/checkout@v6
30+
uses: actions/checkout@v7
3131
with:
3232
persist-credentials: false
3333
fetch-depth: 0
@@ -84,7 +84,7 @@ jobs:
8484
deb_ext: .deb
8585

8686
steps:
87-
- uses: actions/checkout@v6
87+
- uses: actions/checkout@v7
8888
with:
8989
persist-credentials: false
9090
- name: Setup Node
@@ -216,7 +216,7 @@ jobs:
216216
contents: write # softprops/action-gh-release creates the GitHub Release
217217
steps:
218218
- name: Checkout
219-
uses: actions/checkout@v6
219+
uses: actions/checkout@v7
220220
with:
221221
persist-credentials: false
222222
fetch-depth: 0

0 commit comments

Comments
 (0)