6 hours ago
node

2026-05-21, Version 24.16.0 'Krypton' (LTS), @aduh95

Notable Changes

  • [b267f6bca3] - (SEMVER-MINOR) crypto: implement randomUUIDv7() (nabeel378) #62553
  • [ec2451b9cd] - (SEMVER-MINOR) debugger: add edit-free runtime expression probes to node inspect (Joyee Cheung) #62713
  • [9705f628d9] - (SEMVER-MINOR) fs: add signal option to fs.stat() (Mert Can Altin) #57775
  • [40ccfdecf9] - (SEMVER-MINOR) fs: expose frsize field in statfs (Jinho Jang) #62277
  • [d7188af5c9] - (SEMVER-MINOR) http: harden ClientRequest options merge (Matteo Collina) #63082
  • [aa1d8a9afc] - (SEMVER-MINOR) http: add req.signal to IncomingMessage (Akshat) #62541
  • [6f37f7e240] - (SEMVER-MINOR) stream: propagate destruction in duplexPair (Ahmed Elhor) #61098
  • [d14029be7f] - (SEMVER-MINOR) test_runner: support test order randomization (Pietro Marchini) #61747
  • [d142c584cd] - (SEMVER-MINOR) test_runner: align mock timeout api (sangwook) #62820
  • [01a9552585] - (SEMVER-MINOR) test_runner: add mock-timers support for AbortSignal.timeout (DeveloperViraj) #60751
  • [00705a459a] - (SEMVER-MINOR) util: colorize text with hex colors (Guilherme Araújo) #61556

Commits

  • [dd72df060d] - assert,util: fix stale nested cycle memo entries (Ruben Bridgewater) #62509
  • [add94f4bc3] - build: track PDL files as inputs in inspector GN build (Robo) #62888
  • [1b1eb9e334] - build: remove redundant -fuse-linker-plugin from GCC LTO flags (Daniel Lando) #62667
  • [8752b604ec] - crypto: deduplicate and canonicalize CryptoKey usages (Filip Skokan) #62902
  • [341947e7fd] - crypto: reject unintended raw key format string input (Filip Skokan) #62974
  • [28a78747fc] - crypto: remove Argon2 KDF derivation from its job setup (Filip Skokan) #62863
  • [16e8c2b54d] - crypto: fix unsigned conversion of 4-byte RSA publicExponent (DeepView Autofix) #62839
  • [eeae754a87] - crypto: reject inherited key type names (Jonathan Lopes) #62875
  • [9dd5540325] - crypto: add memory tracking for secureContext openssl objects (Mert Can Altin) #59051
  • [b267f6bca3] - (SEMVER-MINOR) crypto: implement randomUUIDv7() (nabeel378) #62553
  • [7597d204c1] - crypto: add support for Ed25519 context parameter (Filip Skokan) #62474
  • [4bf85845da] - debugger: move ProbeInspectorSession and helpers to separate files (Joyee Cheung) #63013
  • [ec2451b9cd] - (SEMVER-MINOR) debugger: add edit-free runtime expression probes to node inspect (Joyee Cheung) #62713
  • [83e98f77b7] - deps: update corepack to 0.35.0 (Node.js GitHub Bot) #63375
  • [ec8c6b939a] - deps: V8: cherry-pick 657d8de27427 (Guy Bedford) #62784
  • [722c0c3274] - deps: update nghttp3 to 1.14.0 (Node.js GitHub Bot) #61187
  • [5304db93d3] - deps: update nghttp3 to 1.13.1 (Node.js GitHub Bot) #60046
  • [e073b3811d] - deps: update nghttp3 to 1.11.0 (James M Snell) #59249
  • [1d00313fb2] - deps: update ngtcp2 to 1.14.0 (James M Snell) #59249
  • [8b3a4fc18f] - deps: update amaro to 1.1.9 (Node.js GitHub Bot) #63090
  • [62fe0cfcd1] - deps: update llhttp to 9.4.1 (Node.js GitHub Bot) #63045
  • [137e09c8e9] - deps: update corepack to 0.34.7 (Node.js GitHub Bot) #62810
  • [14a4cb8fbc] - deps: update timezone to 2026b (Node.js GitHub Bot) #62962
  • [3e1036583a] - deps: upgrade npm to 11.13.0 (npm team) #62898
  • [01dfe5961c] - deps: cherry-pick libuv/libuv@439a54b (skooch) #62881
  • [6cd368b10c] - deps: update sqlite to 3.53.0 (Node.js GitHub Bot) #62699
  • [f218a4f553] - deps: update nbytes to 0.1.4 (Node.js GitHub Bot) #62698
  • [b47688524a] - deps: update archs files for openssl-3.5.6 (Node.js GitHub Bot) #62629
  • [d202e2d343] - deps: upgrade openssl sources to openssl-3.5.6 (Node.js GitHub Bot) #62629
  • [2faba66341] - deps: update minimatch to 10.2.5 (Node.js GitHub Bot) #62594
  • [fa46c90c5d] - deps: update googletest to d72f9c8aea6817cdf1ca0ac10887f328de7f3da2 (Node.js GitHub Bot) #62593
  • [099ded5713] - deps: update simdjson to 4.6.1 (Node.js GitHub Bot) #62592
  • [7ce95afe96] - deps: libuv: cherry-pick aabb7651de (Santiago Gimeno) #62561
  • [57ef845623] - deps: update icu to 78.3 (Node.js GitHub Bot) #62324
  • [493ac40e12] - deps: update libuv to 1.52.1 (Node.js GitHub Bot) #61829
  • [b39508b368] - deps: update undici to 7.25.0 (Node.js GitHub Bot) #63011
  • [cb67a925e9] - deps: use npm undici@seven tag in update-undici.sh (Matteo Collina) #62739
  • [aa1e0bc28b] - doc: fix typos and inconsistencies in crypto.md and webcrypto.md (Filip Skokan) #62828
  • [f2a1735ed9] - doc: fix duplicate word "to to" in util.styleText (Daijiro Wachi) #62917
  • [b6378e215c] - doc: fix node-config-schema (Сковорода Никита Андреевич) #61596
  • [233894a9ce] - doc: fix the TypeScript Execute (tsx) project link (David Thornton) #63093
  • [5d97919f8f] - doc: correct diagnostics_channel built-in channel names (Bryan English) #62995
  • [2a9ccc927e] - doc: use mjs/cjs blocks for callbackify null reason example (Daijiro Wachi) #62884
  • [ef413b5358] - doc: fix typo in test.md (Rich Trott) #62960
  • [76f21c5070] - doc: correct typo in PR contribution instructions (Mike McCready) #62738
  • [ca02af1f7d] - doc: fix duplicate word "of of" in postMessageToThread (Daijiro Wachi) #62917
  • [46c99ed526] - doc: fix duplicate word "for for" in compile cache (Daijiro Wachi) #62917
  • [1a60851734] - doc: fix typo in dns.lookup options description (Daijiro Wachi) #62882
  • [169b5ea2ed] - doc: fix Argon2 parameter bounds (Tobias Nießen) #62868
  • [9a3a190f4e] - doc: clarify diffieHellman.generateKeys recomputes same key (Kit Dallege) #62205
  • [0fba9e87d6] - doc: remove Ayase-252 and meixg from triagger team (Antoine du Hamel) #62841
  • [9c700f3446] - doc: clarify dns.lookup() callback signature when all is true (eungi) #62800
  • [6b7280bc17] - doc: add experimental modules lifetime policy (Paolo Insogna) #62753
  • [ce47ea31c9] - doc: clarify process._debugProcess() in Permission Model (Fahad Khan) #62537
  • [ba01633757] - doc: fix typo in devcontainer guide (Rohan Santhosh Kumar) #62687
  • [70b4d5839b] - doc: clarify Backport-PR-URL metadata added automatically (Mike McCready) #62668
  • [8126d1c3eb] - doc: update WPT test runner README.md (Filip Skokan) #62680
  • [978afea4b5] - doc: fix spelling in release announcement guidance (Rohan Santhosh Kumar) #62663
  • [1684ab8ff8] - doc: note non-monotonic clock in crypto.randomUUIDv7 (nabeel378) #62600
  • [86d4f07930] - doc: update bug bounty program (Rafael Gonzaga) #62590
  • [736ed8a08f] - doc: document TransformStream transformer.cancel option (Tom Pereira) #62566
  • [938af9be01] - doc: mention test runner retry attemp is zero based (Moshe Atlow) #62504
  • [94433e450f] - doc,src,test: fix dead inspector help URL (semimikoh) #62745
  • [ddf1f01659] - esm: add ERR_REQUIRE_ESM_RACE_CONDITION (Antoine du Hamel) #62462
  • [4a506acd16] - fs: add followSymlinks option to glob (Matteo Collina) #62695
  • [f4ea495f9b] - fs: restore fs patchability in ESM loader (Joyee Cheung) #62835
  • [63c111cd60] - fs: validate position argument before length === 0 early return (Edy Silva) #62674
  • [9705f628d9] - (SEMVER-MINOR) fs: add signal option to fs.stat() (Mert Can Altin) #57775
  • [40ccfdecf9] - (SEMVER-MINOR) fs: expose frsize field in statfs (Jinho Jang) #62277
  • [717476a24e] - http: emit 'drain' on OutgoingMessage only after buffers drain (Robert Nagy) #62936
  • [d7188af5c9] - (SEMVER-MINOR) http: harden ClientRequest options merge (Matteo Collina) #63082
  • [64f15c274a] - http: fix leaked error listener on sync HTTP req create + destroy (Tim Perry) #62872
  • [5c4798d799] - http: fix no_proxy leading-dot suffix matching (Daijiro Wachi) #62333
  • [9f3bc70ae5] - http: cleanup pipeline queue (Robert Nagy) #62534
  • [aa1d8a9afc] - (SEMVER-MINOR) http: add req.signal to IncomingMessage (Akshat) #62541
  • [900dc758ff] - http2: expose writable stream state on compat response (T) #63003
  • [b3bfe35912] - inspector: coerce key and value to string in webstorage events (Ali Hassan) #62616
  • [3dc3fb6ad8] - inspector: return errors when CDP protocol event emission fails (Ryuhei Shima) #62162
  • [4f3f21bd7c] - inspector: auto collect webstorage data (Ryuhei Shima) #62145
  • [36cc04189d] - inspector: initial support storage inspection (Ryuhei Shima) #61139
  • [1718bc3b9b] - inspector: fix absolute URLs in network http (bugyaluwang) #62955
  • [97e32c7a74] - lib: avoid quadratic shift() in startup snapshot callback (Daijiro Wachi) #62914
  • [25d2e999de] - lib: harden kKeyOps lookup with null prototype (Filip Skokan) #62877
  • [37d3913c8f] - lib: short-circuit WebIDL BufferSource SAB check (Filip Skokan) #62833
  • [430c69d25f] - lib: use js-only implementation of isDataView() (René) #62780
  • [3ba0add6a0] - lib: fix lint in internal/webstreams/util.js (Filip Skokan) #62806
  • [9b95c41398] - lib: fix sequence argument handling in Blob constructor (Ms2ger) #62179
  • [314dacdbee] - lib: improve Web Cryptography key validation ordering (Filip Skokan) #62749
  • [3d18162430] - lib: reject SharedArrayBuffer in web APIs per spec (Ali Hassan) #62632
  • [ada3ce879d] - lib: defer AbortSignal.any() following (sangwook) #62367
  • [b2981ec7eb] - meta: bump actions/download-artifact from 8.0.0 to 8.0.1 (dependabot[bot]) #62549
  • [7cd20667b5] - meta: bump github/codeql-action from 4.35.1 to 4.35.3 (dependabot[bot]) #63074
  • [91a07cfe9f] - meta: bump Mozilla-Actions/sccache-action from 0.0.9 to 0.0.10 (dependabot[bot]) #63073
  • [09e17fe47c] - meta: add automation policy (Chengzhong Wu) #62871
  • [59e7fb7986] - meta: move VoltrexKeyva to emeritus (Matteo Collina) #62895
  • [1e2915cfa6] - meta: bump peter-evans/create-pull-request from 8.1.0 to 8.1.1 (dependabot[bot]) #62845
  • [0253c6e2be] - meta: bump step-security/harden-runner from 2.16.1 to 2.19.0 (dependabot[bot]) #62844
  • [f503675b86] - meta: bump actions/setup-node from 6.3.0 to 6.4.0 (dependabot[bot]) #62842
  • [5e14e4d26e] - meta: broaden stale bot (Aviv Keller) #62658
  • [795db76f87] - meta: pass release version to release worker (flakey5) #62777
  • [ef384fe39f] - meta: add QUIC to CODEOWNERS (Tim Perry) #62652
  • [67e0ac568d] - meta: move Michael to emeritus (Michael Dawson) #62536
  • [5dad616393] - meta: populate apt list for slim runner in update-openssl workflow (René) #62628
  • [a869d25d8a] - meta: bump step-security/harden-runner from 2.15.0 to 2.16.1 (dependabot[bot]) #62550
  • [769efc0403] - meta: bump actions/setup-node from 6.2.0 to 6.3.0 (dependabot[bot]) #62548
  • [73fcc2b055] - meta: bump github/codeql-action from 4.32.4 to 4.35.1 (dependabot[bot]) #62547
  • [6c001246fe] - meta: bump codecov/codecov-action from 5.5.2 to 6.0.0 (dependabot[bot]) #62545
  • [5ee40d6a03] - meta: bump actions/cache from 5.0.3 to 5.0.4 (dependabot[bot]) #62543
  • [ca16ad8a05] - meta: require DCO signoff in commit message guidelines (James M Snell) #62510
  • [db9497fc41] - meta: expand memory leak DoS criteria to all DoS (Joyee Cheung) #62505
  • [13b7d08b8d] - module: remove duplicated checks from _resolveFilename (Antoine du Hamel) #62729
  • [6b53efb53a] - module,win: fix long subpath import (Stefan Stojanovic) #62101
  • [841dfbf6fc] - node-api: update libuv ABI stability note (Chengzhong Wu) #62789
  • [01090f2aa1] - node-api: add napi_create_external_sharedarraybuffer (Ben Noordhuis) #62623
  • [87443b4355] - node-api: execute tsfn finalizer after queue drains when aborted (Kevin Eady) #61956
  • [e95570c054] - process: handle rejections only when needed (Gürgün Dayıoğlu) #62919
  • [37d49f3219] - process: optimize asyncHandledRejections by using FixedQueue (Gürgün Dayıoğlu) #60854
  • [f697c55e38] - quic: add QuicEndpoint.listening & QuicStream.destroy() and tests (Tim Perry) #62648
  • [c128942b69] - quic: fixup token verification to handle zero expiration (James M Snell) #62620
  • [abb881ec92] - quic: support multiple ALPN negotiation (James M Snell) #62620
  • [476926c2ad] - quic: apply multiple TLS context improvements and SNI support (James M Snell) #62620
  • [76d9c24b95] - quic: implement rapidhash for hashing improvements (James M Snell) #62620
  • [08726cd43d] - quic: move quic behind compile time flag (Matteo Collina) #61444
  • [ea4f19aaa7] - quic: use arena allocation for packets (James M Snell) #62589
  • [21e9239e2a] - quic: fixup linting/formatting issues (James M Snell) #62387
  • [edeed4303b] - quic: update http3 impl details (James M Snell) #62387
  • [7f3a85e6aa] - quic: fix a handful of bugs and missing functionality (James M Snell) #62387
  • [45c1ebddf8] - quic: copy options.certs buffer instead of detaching (Chengzhong Wu) #61403
  • [a31a8ee680] - quic: reduce boilerplate and other minor cleanups (James M Snell) #59342
  • [3be70ff43a] - quic: multiple fixups and updates (James M Snell) #59342
  • [b91a93444c] - quic: update more of the quic to the new compile guard (James M Snell) #59342
  • [ca0080c164] - quic: few additional small comment edits in cid.h (James M Snell) #59342
  • [6553202d83] - quic: fixup NO_ERROR macro conflict on windows (James M Snell) #59381
  • [6df1508ac2] - quic: fixup windows coverage compile error (James M Snell) #59381
  • [b2b0bf8b04] - quic: update the guard to check openssl version (James M Snell) #59249
  • [5556b154bd] - quic: start re-enabling quic with openssl 3.5 (James M Snell) #59249
  • [2ca42c8263] - repl: keep reference count for process.on('newListener') (Anna Henningsen) #61895
  • [2f37f9177f] - sqlite: use OneByte for ASCII text and internalize col names (Ali Hassan) #61954
  • [3c96ae1b2f] - sqlite: add serialize() and deserialize() (Ali Hassan) #62579
  • [be4d2f3a4c] - sqlite: enable Percentile extension (Jurj Andrei George) #61295
  • [dafed453b2] - src: clean up experimental flag variables (Antoine du Hamel) #62759
  • [dca1e6aeea] - src: expose help texts into node-config-schema.json (Pietro Marchini) #58680
  • [28c4f44eb1] - src: add permission support to config file (Marco Ippolito) #60746
  • [f49175b220] - src: fix small compile warning in quic/streams.cc (James M Snell) #60118
  • [c9d4a446d8] - src: cleanup quic TransportParams class (James M Snell) #59884
  • [99bb02fd9e] - src: swap dotenv and config file parsing order (Marco Ippolito) #63035
  • [ecb4d49b7b] - src: add missing <cstdlib> for abort() declaration (Charles Kerr) #63001
  • [b6219b6362] - src: fix crash in GetErrorSource() for invalid using syntax (semimikoh) #62770
  • [b5ca5ad4c5] - src: simplify TCPWrap::Connect signature (Anna Henningsen) #62929
  • [ef7ffce7cf] - src: use DCHECK in AsyncWrap::MakeCallback instead emiting a warning (Gerhard Stöbich) #62795
  • [cd9890a5ab] - src: fix MaybeStackBuffer char_traits deprecation warning (om-ghante) #62507
  • [c70ff44aee] - src: use context-free V8 message column getters (René) #62778
  • [06c405f1d7] - src: coerce spawnSync args to string once (Antoine du Hamel) #62633
  • [6151999ad6] - src: use stack allocation for small string encoding (Ali Hassan) #62431
  • [a71a4ac7a3] - src: add contextify interceptor debug logs (Chengzhong Wu) #62460
  • [ad9a2909c2] - src: workaround AIX libc++ std::filesystem bug (Richard Lau) #62788
  • [7792f1ae47] - stream: copyedit webstreams/adapter.js (Antoine du Hamel) #63034
  • [1397d8ce5c] - stream: remove duplicated utility (Antoine du Hamel) #63031
  • [ff86b1d64f] - stream: simplify setPromiseHandled utility (Antoine du Hamel) #63032
  • [24a078149a] - stream: validate ReadableStream.from iterator objects (Daeyeon Jeong) #62911
  • [cfb1fa9680] - stream: reject duplicate nested transferables (Daeyeon Jeong) #62831
  • [d0c913758a] - stream: ensuring cross-destruction in _duplexify to prevent leaks (Daijiro Wachi) #62824
  • [978f5c15d7] - stream: simplify readableStreamFromIterable (Antoine du Hamel) #62651
  • [3527646ba5] - stream: fix nested compose error propagation (Matteo Collina) #62556
  • [dfb9edef4f] - stream: allow shared array buffer sources in writable webstream adapter (René) #62163
  • [f00cdab627] - stream: simplify createPromiseCallback (Antoine du Hamel) #62650
  • [3ed783535f] - stream: fix writev unhandled rejection in fromWeb (sangwook) #62297
  • [29b196694c] - stream: noop pause/resume on destroyed streams (Robert Nagy) #62557
  • [d73dbb9fc8] - stream: refactor duplexify to be less suceptible to prototype pollution (Antoine du Hamel) #62559
  • [6f37f7e240] - (SEMVER-MINOR) stream: propagate destruction in duplexPair (Ahmed Elhor) #61098
  • [b8816580e9] - test: generate localstorage.db in a temp dir (Chengzhong Wu) #62660
  • [31a863fd29] - test: update WPT for url to 258f285de0 (Node.js GitHub Bot) #63087
  • [d0d19bd8e3] - test: update WPT for streams to f8f26a372f (Node.js GitHub Bot) #62864
  • [f50ac5bc78] - test: improve config-file permission test coverage (Rafael Gonzaga) #60929
  • [a0f90000f4] - test: export isRiscv64 from common module (Jamie Magee) #62609
  • [da4dd8646f] - test: normalize known inspector crash as completion (Joyee Cheung) #62851
  • [b7fdd94a4c] - test: account for RFC 7919 FFDHE negotiation in OpenSSL 4.0 (Filip Skokan) #62805
  • [375a993aaf] - test: skip tls-deprecated secp256k1 on OpenSSL 4.0 (Filip Skokan) #62805
  • [698d8287d1] - test: use an always invalid cipher and cover OpenSSL 4.0 behaviours (Filip Skokan) #62805
  • [036bc6f300] - test: use valid DER OCSP responses (Filip Skokan) #62805
  • [3aa9938da8] - test: skip test-tls-error-stack when engines are unsupported (Filip Skokan) #62805
  • [947f1ae246] - test: accept renamed OpenSSL 4.0 error code and reason (Filip Skokan) #62805
  • [afdd355622] - test: update test/addons/openssl-binding for OpenSSL 4.0 (Filip Skokan) #62805
  • [8637524a99] - test: mark test-snapshot-reproducible flaky (Filip Skokan) #62808
  • [c22d34134b] - test: check contextify contextual store behavior in strict mode (René) #62571
  • [0b4e0d3c94] - test: update tls junk data error expectations (Filip Skokan) #62629
  • [85d83c2cdb] - test: ensure WPT report is in out/wpt (Filip Skokan) #62637
  • [9e21711c60] - test: improve WPT runner summary (Filip Skokan) #62636
  • [e04e2c9ac1] - test: skip url WPT subtests instead of modifying test script (Filip Skokan) #62635
  • [7b1211f88c] - test: capture negative utimes mtime at call time (Yuya Inoue) #62490
  • [f1a6e9fcc7] - test: allow skipping individual WPT subtests (Filip Skokan) #62517
  • [23f927542e] - test: use on-disk fixture for test-npm-install (Joyee Cheung) #62584
  • [4739c45879] - test: update WPT for url to 7a3645b79a (Node.js GitHub Bot) #62591
  • [f68189b839] - test_runner: add testId to test events (Moshe Atlow) #62772
  • [5c2770446e] - test_runner: publish to TracingChannel for OTel instrumentation (Moshe Atlow) #62502
  • [d14029be7f] - (SEMVER-MINOR) test_runner: support test order randomization (Pietro Marchini) #61747
  • [3f74a58979] - test_runner: update node-config-schema (Pietro Marchini) #58680
  • [60c83f6199] - test_runner: fix failing suite hooks when marked with todo (Moshe Atlow) #63097
  • [d142c584cd] - (SEMVER-MINOR) test_runner: align mock timeout api (sangwook) #62820
  • [3e72065ed6] - test_runner: fix suite rerun edge case (Moshe Atlow) #62860
  • [01a9552585] - (SEMVER-MINOR) test_runner: add mock-timers support for AbortSignal.timeout (DeveloperViraj) #60751
  • [dd43efffa6] - test_runner: add passed, attempt, and diagnostic to SuiteContext (Moshe Atlow) #62504
  • [a12dc445cc] - tools: add a check for clean git tree after tests (Antoine du Hamel) #62661
  • [5b49178375] - tools: use LTS Node.js in notify-on-push workflow (Nenad Spasenic) #63084
  • [5a93bde5bb] - tools: update gr2m/create-or-update-pull-request-action to v1.10.1 (Mike McCready) #63065
  • [b133019d19] - tools: simplify update-undici.sh (Antoine du Hamel) #63044
  • [04d3538074] - tools: do not run test-linux on unrelated tools changes (Antoine du Hamel) #63037
  • [4d396ac4a5] - tools: bump the eslint group in /tools/eslint with 4 updates (dependabot[bot]) #62848
  • [9354bf40e7] - tools: update gyp-next to 0.22.1 (Node.js GitHub Bot) #62961
  • [c23db1ca85] - tools: fix commit linter for semver-major release proposals (Antoine du Hamel) #62993
  • [6e097ee3f1] - tools: consolidate and simplify .editorconfig deps section (Daijiro Wachi) #62887
  • [a47ea6d6ea] - tools: set bot as author of tools-deps-update PRs (Antoine du Hamel) #62856
  • [00e86f0471] - tools: bump brace-expansion from 5.0.4 to 5.0.5 in /tools/eslint (dependabot[bot]) #62458
  • [cd7e262e75] - tools: bump brace-expansion in /tools/clang-format (dependabot[bot]) #62467
  • [bfc1319bc8] - tools: exclude @node-core/doc-kit from dependabot cooldown (Levi Zim) #62775
  • [a932fbd10b] - tools: re-enable undici WPTs in daily wpt.fyi job (Filip Skokan) #62677
  • [f7bd9e3055] - tools: update gyp-next to 0.22.0 (Node.js GitHub Bot) #62697
  • [c400d46d87] - tools: improve backport review script (Antoine du Hamel) #62573
  • [be23b75814] - tools: improve output for unexpected passes in WTP tests (Antoine du Hamel) #62587
  • [609c013ece] - tools: revert OpenSSL update workflow to ubuntu-latest (Richard Lau) #62627
  • [81bac1ebfd] - tools: bump the eslint group in /tools/eslint with 2 updates (dependabot[bot]) #62552
  • [1fee26522d] - tools: allow triagers to queue a PR for CI until it's reviewed (Antoine du Hamel) #62524
  • [332088f929] - tools: do not run commit-lint on release proposals (Antoine du Hamel) #62523
  • [9a25fc8a4d] - url: process crash via malformed UNC hostname in pathToFileURL() (Nicola Del Gobbo) #62574
  • [7bd08ff60a] - url: optimize URLSearchParams set/delete duplicate handling (Gürgün Dayıoğlu) #62266
  • [2d636388fa] - url: align default argument handling for URLPattern with webidl (Filip Skokan) #62719
  • [00705a459a] - (SEMVER-MINOR) util: colorize text with hex colors (Guilherme Araújo) #61556
  • [0e2adb3e45] - watch: track worker entry files in watch mode (SudhansuBandha) #62368
  • [c58fe38211] - watch: fix --env-file-if-exists crashing on linux if the file is missing (Efe) #61870
13 hours ago
higress

v2.2.2

Higress

📋 Overview of This Release

This release includes 37 updates, covering feature enhancements, bug fixes, performance optimizations, and more.

Distribution of Updates

  • New Features: 13 items
  • Bug Fixes: 18 items
  • Documentation Updates: 5 items
  • Testing Improvements: 1 item

📝 Full Change Log

🚀 New Features (Features)

  • Related PR: #3827
    Contributor: @rinfx
    Change Log: Added the modelToHeader configuration option, with default value x-higress-llm-model-final; synchronously updates this header after parsing the newModel from the request body to ensure downstream logic such as rate limiting and metering aligns with the model mapping result; calls DisableReroute when reading the body to prevent routing conflicts.
    Feature Value: Enhances model routing consistency and reliability, enabling fallback, model-based rate limiting, and metering features to accurately reflect the actual matched model; users gain more stable and precise model dispatching capabilities without modifying business logic, reducing the risk of policy deviation caused by header synchronization issues.

  • Related PR: #3823
    Contributor: @johnlanni
    Change Log: Introduced an nginx-rewrite-compatible WASM plugin that implements compatible parsing of Nginx rewrite + set semantics, securely executes rewriting logic within a WASM sandbox to avoid the CVE-2026-42945 heap overflow vulnerability, and supports path matching, variable capture, and substitution.
    Feature Value: Enables Higress users to smoothly migrate existing Nginx rewrite rules while ensuring compatibility and eliminating critical security risks, lowering the refactoring cost and operational risk for legacy services transitioning from Nginx to Higress.

  • Related PR: #3820
    Contributor: @wydream
    Change Log: Refactored the /v1/messages request handling for the Bedrock Provider: replaced the original two-layer protocol conversion chain (OpenAI → Converse) with direct connectivity to the native Bedrock Mantle Anthropic Messages API; added support for the Mantle endpoint, restructured request routing logic, and extended capability declarations.
    Feature Value: Delivers lower latency, higher compatibility, and native Anthropic feature support (e.g., tool use, beta headers) for /v1/messages calls; avoids semantic loss and performance overhead associated with protocol translation, significantly improving the Bedrock integration experience and stability.

  • Related PR: #3766
    Contributor: @rinfx
    Change Log: Added support for cached token usage (CacheReadInputTokens) in the streaming response transformation logic from OpenAI to Claude; modified core transformer code and added corresponding unit test cases to ensure the Claude compatibility layer accurately conveys cached token count information.
    Feature Value: Enables AI agents to correctly report input token savings resulting from cache hits when invoking Claude models, helping users precisely monitor and optimize API costs; simultaneously improves transparency and billing consistency across multi-model metering, enhancing enterprise-grade usage analytics capabilities.

  • Related PR: #3748
    Contributor: @zat366
    Change Log: Added the enable_path_suffixes configuration option to the QuotaConfig struct to support custom path suffix matching; updated configuration parsing logic to handle default values; modified the getOperationMode function to accommodate the new path suffix logic; enhanced test coverage for the new configuration and its impact on operation modes.
    Feature Value: Allows users to flexibly define API path suffix matching rules per business requirements, increasing quota control precision and adaptability; administrators can manage quota policies for different AI service paths with finer granularity, enhancing plugin applicability and maintainability across diverse scenarios.

  • Related PR: #3742
    Contributor: @wydream
    Change Log: Added KlingAI provider support, featuring official AK/SK JWT authentication and third-party gateway static Bearer token authentication modes, covering both OpenAI-compatible and native Kling protocols, and enabling full interface capabilities including text-to-video and image-to-video generation.
    Feature Value: Users can directly invoke KlingAI video generation capabilities via the AI proxy service without implementing JWT signing or adapting to various gateways—significantly lowering the integration barrier and expanding platform support for AIGC video-generation models.

  • Related PR: #3739
    Contributor: @johnlanni
    Change Log: Added the replace configuration option to the ai-prompt-decorator plugin, supporting ordered, role-conditioned text replacement in the content field of the final assembled messages, using either literal strings or RE2 regular expressions, enhancing dynamic request content rewriting capabilities.
    Feature Value: Enables users to flexibly implement text processing needs—including sensitive word filtering, brand term normalization, and placeholder desensitization—without modifying business logic, improving the AI gateway’s adaptability in compliance, security, and multi-tenant scenarios.

  • Related PR: #3738
    Contributor: @JianweiWang
    Change Log: Added configurable fallback JSON paths for response content extraction (responseContentFallbackJsonPaths and responseStreamContentFallbackJsonPaths) to the ai-security-guard plugin, supporting non-OpenAI formats such as Anthropic Claude; when the primary path yields an empty result, fallback paths are attempted sequentially, automatically skipping any fallback path identical to the primary one.
    Feature Value: Enhances plugin compatibility and robustness, allowing users to perform content safety checks against diverse LLMs (e.g., Claude) without code changes—reducing multi-model adaptation effort and ensuring stable, accurate response content extraction.

  • Related PR: #3734
    Contributor: @CH3CHO
    Change Log: Added existence check for the patch command in the build-envoy.sh script; triggers early failure if missing; also optimized error handling during build-envoy.patch application to prevent silent Bazel dependency errors caused by unexecuted patches.
    Feature Value: Significantly improves observability and robustness of the Envoy build process; users receive immediate, clear error messages if the patch command is absent, drastically lowering debugging effort and environment configuration troubleshooting costs.

  • Related PR: #3724
    Contributor: @wydream
    Change Log: Added Qwen rerank and conversations API path support to the AI Proxy plugin, extending path mapping rules, API name constants, and Qwen-specific routing logic; supplemented comprehensive regression test cases covering path recognition and provider routing functionality.
    Feature Value: Users can invoke Qwen’s reranking and conversational capabilities via standard-compatibility interfaces, improving unified multi-model service access experiences; broadens AI Proxy support for domestic large language models (Qwen), lowering business integration barriers and boosting routing accuracy.

  • Related PR: #3700
    Contributor: @wydream
    Change Log: Added the cooldownDuration configuration option to the ai-proxy failover mechanism, enabling automatically restored API keys after a specified millisecond cooldown period—eliminating dependency on real requests for health checking and reducing token consumption and configuration complexity.
    Feature Value: Empowers users to manage API key availability more flexibly, mitigating long-term unavailability risks due to rate limiting, saving invocation costs, and simplifying failover configuration to enhance system stability and operational efficiency.

  • Related PR: #3694
    Contributor: @CH3CHO
    Change Log: Added configurable forwarding capability for attributes in external authorization requests, supporting transparent transmission of key contextual fields such as route_name and cluster_name; implemented via extension of the AuthorizationRequest struct with an AllowedProperties field, alongside updates to configuration parsing logic and SDK dependencies.
    Feature Value: Enables users to access richer Envoy gateway context information in external authorization services, improving the precision and flexibility of authorization policies and facilitating fine-grained access control based on dimensions like route and cluster—lowering customization development costs.

  • Related PR: #3690
    Contributor: @JianweiWang
    Change Log: Added support for sensitive data masking, enabling desensitization and replacement of sensitive fields in API responses via the riskAction configuration (block/mask); introduced new dimension types—customLabel, maliciousFile, and waterMark—and added dimension-level action configuration to improve risk mitigation flexibility.
    Feature Value: Allows dynamic desensitization of sensitive information without service interruption, strengthening AI application compliance capabilities; multi-dimensional, fine-grained risk control strategies enable more precise content security governance—reducing false positives and satisfying regulatory requirements across diverse business scenarios.

🐛 Bug Fixes (Bug Fixes)

  • Related PR: #3829
    Contributor: @CH3CHO
    Change Log: Fixed a typo in the JSON/YAML tag for the apiTokens field in the ProviderConfig struct within the ai-proxy plugin, correcting it to the proper format to ensure correct configuration parsing and serialization.
    Feature Value: Prevents configuration parsing failures or incorrect loading of API tokens caused by erroneous field tags, enhancing the stability and reliability of the AI proxy service and enabling users to seamlessly configure and utilize authentication credentials for various AI providers.

  • Related PR: #3801
    Contributor: @CH3CHO
    Change Log: Fixed logging issues during EnvoyFilter construction regarding unsupported upstream protocols, by adding missing formatting parameters to ensure warning logs correctly display the protocol type and context.
    Feature Value: Improves debugging and operational observability, enabling users to accurately identify unsupported protocols and their locations upon misconfiguration—reducing troubleshooting time and enhancing Ingress gateway configuration robustness and maintainability.

  • Related PR: #3799
    Contributor: @Betula-L
    Change Log: Fixed an issue where empty input objects (input:{}) in Claude tool calls were unexpectedly omitted during internal bridge conversion to Bedrock Converse format; addressed via adjustments to struct field JSON tags and expanded test coverage to ensure empty maps are preserved correctly.
    Feature Value: Ensures Claude messages using parameterless tools are accurately relayed to the underlying Bedrock service, preventing tool call failures or abnormal behavior caused by missing inputs—improving AI proxy compatibility and reliability in multi-model adaptation scenarios.

  • Related PR: #3788
    Contributor: @Betula-L
    Change Log: Fixed structural data loss in Bedrock Claude inference blocks during ai-proxy protocol bridging by refactoring the convertEventFromBedrockToOpenAI logic and introducing redactedBlockIndexes state management—ensuring reasoningContent remains within native Anthropic message blocks rather than being merged into plain text.
    Feature Value: Users invoking Bedrock Claude models will correctly receive structured reasoning blocks (e.g., <think>...</think>), avoiding accidental exposure of reasoning processes to end users—enhancing response semantic integrity and compatibility, and guaranteeing Anthropic Messages API specification–compliant interactions.

  • Related PR: #3786
    Contributor: @Betula-L
    Change Log: Fixed incorrect mapping between contentBlockIndex in Bedrock Claude streaming responses and tool_calls[].index in OpenAI format, properly handling index misalignment for parallel tool calls and refining tool_choice parameter conversion logic to preserve semantic consistency and ordering fidelity in streaming tool calls within ai-proxy.
    Feature Value: Users performing parallel multi-tool calls with Bedrock Claude models will receive accurate, predictable streaming tool_calls indices and correctly triggered tool_choice behaviors—preventing tool execution disorder or loss and significantly enhancing production-environment compatibility and reliability.

  • Related PR: #3779
    Contributor: @CH3CHO
    Change Log: Fixed an issue where certain controller logs continued outputting as plaintext despite enabling the --log_as_json flag; resolved by uniformly replacing log package imports with istio.io/istio/pkg/log, ensuring all components use the same JSON logging implementation.
    Feature Value: Improves log format consistency and observability, facilitating centralized collection, parsing, and analysis of Higress controller logs in environments like Kubernetes—reducing operational troubleshooting cost and strengthening production log standardization.

  • Related PR: #3777
    Contributor: @wydream
    Change Log: Fixed API key injection issues for Vertex AI Express Mode’s raw REST endpoints in the ai-proxy plugin, expanding regex patterns to match Express Mode URLs lacking /projects/{project}/locations/{location} path segments and adding test cases validating request header processing logic.
    Feature Value: Enables users to correctly invoke simplified Vertex AI Express Mode REST interfaces (e.g., streamGenerateContent) without manually constructing complex paths, enhancing proxy compatibility and usability—and avoiding 401 authentication failures caused by missing key injection.

  • Related PR: #3770
    Contributor: @CH3CHO
    Change Log: Fixed inability to skip TLS certificate verification for HTTPS upstream connections by adding configuration support for certificate verification bypass in upstreamtls.go, and supplementing protobuf and google.golang.org dependencies in test files to support unit testing of the new capability.
    Feature Value: Enables Higress to support HTTPS upstream services using self-signed certificates, resolving connection failures arising from untrusted certificates in enterprise internal or testing environments—improving deployment flexibility and compatibility.

  • Related PR: #3765
    Contributor: @wydream
    Change Log: Fixed ai-proxy support for Azure OpenAI v1 service URLs by adding recognition and routing logic for /openai/v1 and subpaths, accommodating the new URL format without api-version parameters, while retaining api-version validation logic for legacy deployment URLs.
    Feature Value: Enables users to seamlessly integrate with Azure OpenAI’s latest v1 REST API standard without manually appending api-version, enhancing configuration flexibility and service compatibility—reducing request failure rates due to URL format changes and strengthening proxy stability and usability.

  • Related PR: #3757
    Contributor: @srpatcha
    Change Log: Added nil checks, safe type assertions, and panic protection mechanisms to fix multiple potential nil pointer dereferences and type assertion failures; additionally optimized regex compilation logic in WASM plugins to prevent runtime panics.
    Feature Value: Significantly improves gateway stability and robustness, preventing service crashes due to anomalous inputs or misconfigurations; users benefit from a more reliable API gateway experience, lowering online failure rates and operational overhead.

  • Related PR: #3756
    Contributor: @wydream
    Change Log: Fixed loss of thinking/redacted_thinking content blocks during /v1/messages to OpenAI chat/completions request transformation for Claude, enhanced transmission of tool-call reasoning context, and introduced preserve_thinking and promote_thinking_on_empty configuration options for provider-level compatibility control.
    Feature Value: Ensures AI proxies backed by Claude correctly convey complete chain-of-thought information to models supporting reasoning_content (e.g., Qwen), while avoiding compatibility breakage for strict-standard providers like OpenAI/Azure—improving functional consistency and reliability in multi-model routing scenarios.

  • Related PR: #3733
    Contributor: @wydream
    Change Log: Fixed compatibility issues with non-standard upstream responses in Claude streaming transformations: correctly handles empty-string finish_reason, prevents duplicate triggering of message_stop due to usage, and avoids processing redundant chunks after message_stop to prevent event reordering.
    Feature Value: Enhances AI proxy stability and reliability in multi-vendor compatibility scenarios, preventing streaming response interruptions or disorder—ensuring users receive complete, chronologically ordered Claude-style SSE streams and improving the overall LLM invocation experience.

  • Related PR: #3731
    Contributor: @JianweiWang
    Change Log: Removed the mandatory fallback interception logic for Suggestion=block in the AI Security Guard, replacing it with unified risk-dimension–based threshold evaluation; modified core assessment logic in config.go and updated multiple test cases to accurately cover threshold-driven RiskBlock decision paths.
    Feature Value: Improves risk interception accuracy and configurability, preventing unintended blocking caused by misconfigured Suggestion=block; users now exert precise control over interception behavior via thresholds—enhancing policy transparency, debuggability, and reducing false positive rates.

  • Related PR: #3722
    Contributor: @wydream
    Change Log: Migrated Qwen-compatible response endpoint path from the deprecated legacy URL /api/v2/apps/protocols/compatible-mode/v1/responses to the new official path /compatible-mode/v1/responses, updating path constants and assertions in provider/qwen.go and test files to ensure continued valid interface invocation by the AI proxy.
    Feature Value: Prevents service disruption caused by Qwen (DashScope) deprecation of the legacy API path, safeguarding stability and continuity of Qwen model invocation via ai-proxy—enabling seamless transition to the new interface without client-side code changes.

  • Related PR: #3695
    Contributor: @wydream
    Change Log: Fixed missing API Key authentication in Vertex Raw Express Mode by appending the API Key to the URL query string in OnRequestBody and cleaning the Authorization header; also resolved global authentication header leakage and URL construction logic defects in Express Mode.
    Feature Value: Enables Vertex Raw Express Mode to authenticate correctly against Google Vertex AI services via API Key—preventing 401 errors; improves proxy stability and compatibility, ensuring users can reliably invoke large language model APIs in this mode.

  • Related PR: #3682
    Contributor: @CH3CHO
    Change Log: Fixed absence of TARGET_ARCH validity checking in the golang-filter during build-gateway-local, by introducing a VALID_ARCHS whitelist and error-checking logic in Makefile.core.mk—supporting only amd64 and arm64, preventing build failures or erroneous binaries from invalid architecture parameters.
    Feature Value: Enhances robustness and maintainability of multi-architecture builds, preventing silent build errors or runtime anomalies due to invalid TARGET_ARCH values (e.g., x86, ppc64le); guarantees correct compilation and deployment of the Higress gateway across diverse CPU architectures.

  • Related PR: #3576
    Contributor: @Jing-ze
    Change Log: Fixed stale ROUTE_NAME attribute returning outdated route names post-reroute in WASM contexts, by correcting the StreamInfoImpl::getRouteName() invocation logic in Envoy 1.36 to ensure fresh route names are retrieved after clearRouteCache.
    Feature Value: Ensures WASM plugins correctly match rules following rerouting, preventing matchRule failures due to stale route names—improving routing policy execution accuracy and stability, which is critical for user features relying on dynamic route matching.

  • Related PR: #3425
    Contributor: @CH3CHO
    Change Log: Added a default value (higress-registry.cn-hangzhou.cr.aliyuncs.com/higress) to the HUB argument in Dockerfile.higress, eliminating build-time warnings when HUB is not explicitly provided, while preserving backward compatibility: explicitly passed values retain precedence.
    Feature Value: Removes redundant warnings during Docker builds, improving CI/CD pipeline readability and stability; users can complete local builds without specifying the HUB parameter—lowering entry barriers and maintenance costs.

📚 Documentation Updates (Documentation)

  • Related PR: #3830
    Contributor: @EndlessSeeker
    Change Log: Added OpenSSF Best Practices badges to README files in English, Chinese, and Japanese versions, embedded via Markdown image links pointing to the project’s assessment page on the OpenSSF Best Practices platform—enhancing project compliance and credibility visibility.
    Feature Value: Strengthens project transparency and trustworthiness, enabling users to quickly assess Higress’ adherence to open-source best practices in security and maintainability—boosting community and enterprise user confidence and adoption willingness.

  • Related PR: #3764
    Contributor: @EndlessSeeker
    Change Log: Updated SECURITY.md, CONTRIBUTING series documentation, and added GOVERNANCE.md, formalizing vulnerability reporting procedures, defining security response SLAs and teams, and clarifying CNCF governance models—meeting CNCF Sandbox and OpenSSF Best Practices certification requirements.
    Feature Value: Elevates project security compliance and transparency, providing users with standardized channels and response commitments for security issues—strengthening enterprise user trust; simultaneously enhances multilingual contribution guidelines, lowering global developer participation barriers and promoting healthy, sustainable community growth.

  • Related PR: #3754
    Contributor: @johnlanni
    Change Log: Added a top-level MAINTAINERS.md file listing current Higress project maintainers, including maintainer responsibility descriptions and CNCF Sandbox compliance statements—providing essential governance documentation required for CNCF sandbox onboarding.
    Feature Value: Enhances project transparency and community governance standardization, assisting external contributors in identifying core maintenance teams, accelerating CNCF sandbox certification, and laying foundations for future maintainer transitions and permission management—bolstering user confidence in the project’s long-term stability.

  • Related PR: #3730
    Contributor: @CH3CHO
    Change Log: Updated English and Chinese README files to align with the latest configuration parsing logic, correcting contradictory defaults, inaccurate path descriptions, and unclear string concatenation formats, and removing outdated build instructions (e.g., tinygo requirements).
    Feature Value: Improves documentation accuracy and consistency, preventing plugin activation failures stemming from obsolete or erroneous configuration examples; synchronized bilingual documentation lowers comprehension barriers for multilingual users—enhancing AI caching plugin usability and reliability.

  • Related PR: #3696
    Contributor: @github-actions[bot]
    Change Log: Added bilingual release notes files for version 2.2.1 (README.md and README_ZH.md), automatically summarizing 65 updates spanning new features, bug fixes, refactorings, optimizations, and documentation improvements—with categorical statistics.
    Feature Value: Provides users with a well-structured, multilingual overview of version changes, accelerating understanding of upgrade benefits and impact scope—enhancing transparency and maintainability and lowering upgrade decision-making costs.

🧪 Testing Improvements (Testing)

  • Related PR: #3790
    Contributor: @Jing-ze
    Change Log: Expanded integration test coverage for the AI Proxy WASM plugin, including boundary cases for configuration parsing, streaming response body handling, failover verification, and utility function testing; added export_test.go to expose internal functions for testing purposes—significantly improving WASM environment test completeness.
    Feature Value: Strengthens stability and compatibility assurance for the AI Proxy plugin across diverse WASM runtimes and AI service providers, lowering risks of service interruption arising from configuration anomalies or network failures—enhancing reliability and maintainability for production deployments.

📊 Release Statistics

  • 🚀 New Features: 13 items
  • 🐛 Bug Fixes: 18 items
  • 📚 Documentation Updates: 5 items
  • 🧪 Testing Improvements: 1 item

Total: 37 changes

Thank you to all contributors for your hard work! 🎉

Higress Console

📋 Overview of This Release

This release includes 18 updates, covering feature enhancements, bug fixes, performance optimizations, and more.

Distribution of Updates

  • New Features: 7 items
  • Bug Fixes: 9 items
  • Documentation Updates: 2 items

📝 Full Change Log

🚀 New Features (Features)

  • Related PR: #621
    Contributor: @Thomas-Eliot
    Change Log: Enhanced MCP Server interaction capabilities: added support for automatic Host header rewriting for DNS backends; improved transport protocol selection and full-path configuration in direct routing scenarios; enhanced parsing of special characters (e.g., @) in DSNs for DB-to-MCP Server scenarios.
    Feature Value: Improves flexibility and compatibility of MCP Server integration, enabling users to connect more easily to backend services deployed in diverse environments, reducing configuration complexity, and preventing connectivity issues caused by path prefix misinterpretation or DSN parsing failures.

  • Related PR: #608
    Contributor: @Libres-coder
    Change Log: Added plugin visibility functionality to the AI Route Management page: supports expanding rows to view enabled plugins and displays an 'Enabled' badge on the configuration page; extended PluginList component logic to support AI_ROUTE-type queries, and enhanced cleanup of i18n language-change listeners in route.tsx.
    Feature Value: Users can now intuitively view plugins enabled for AI routes, aligning the experience with that of conventional route management—improving maintainability and observability of AI route configurations; unified UI interactions reduce learning overhead and enhance completeness of platform support for AI use cases.

  • Related PR: #604
    Contributor: @CH3CHO
    Change Log: Introduced support for regex-based path rewriting via the higress.io/rewrite-target annotation, extended Kubernetes annotation constants, route transformation logic, and front-end/back-end internationalized copy, thereby increasing routing match flexibility.
    Feature Value: Enables precise control over path rewriting behavior using regular expressions, meeting complex routing requirements such as dynamic path parameter extraction and mapping—significantly enhancing the expressiveness of gateway configuration and its adaptability to business needs.

  • Related PR: #603
    Contributor: @CH3CHO
    Change Log: Added the constant STATIC_SERVICE_PORT = 80 to the static service source form component and explicitly displays this fixed port in the UI, making users clearly aware that static services default to port 80—improving configuration transparency and predictability.
    Feature Value: Users configuring static service sources can immediately see that the default port is 80, avoiding configuration errors or debugging difficulties caused by port misconceptions—lowering entry barriers and improving deployment efficiency and consistency of user experience.

  • Related PR: #602
    Contributor: @CH3CHO
    Change Log: Added a search function to the upstream service selection component in AI route configuration; extended the Select component logic in index.tsx to enable real-time searching and filtering across large numbers of upstream services—improving configuration efficiency and accuracy.
    Feature Value: Users can quickly locate target upstream services when configuring AI routes instead of manually scrolling through long lists—significantly reducing configuration error rates, especially in complex AI gateway scenarios with dozens or more services—enhancing both operational and development efficiency.

  • Related PR: #566
    Contributor: @OuterCyrex
    Change Log: Added support for Tongyi Qwen large language model (LLM) services, including custom service endpoint configuration, Internet search toggle, and file ID upload; implemented QwenLlmProviderHandler on the backend and added multilingual support and provider form adaptation on the frontend.
    Feature Value: Enables flexible integration with self-hosted or cloud-based Qwen services, supporting search augmentation and file context injection—improving compatibility and extensibility of the AI gateway for domestic LLMs and lowering enterprise private-deployment barriers.

  • Related PR: #552
    Contributor: @lcfang
    Change Log: Introduced the VPort virtual port attribute, extending MCP Bridge registry configuration capabilities; added the vport field and corresponding CRD model to ServiceSource, enabling uniform specification of default backend ports for service instances—resolving routing failures caused by inconsistent actual port numbers across instances registered in Eureka/Nacos registries.
    Feature Value: Allows users to explicitly declare a virtual port during service discovery configuration, ensuring routing rules remain resilient to backend port changes—preventing traffic disruptions due to dynamic instance port changes, thus improving microservice governance stability and operational predictability.

🐛 Bug Fixes (Bug Fixes)

  • Related PR: #620
    Contributor: @CH3CHO
    Change Log: Fixed a spelling error in the sortWasmPluginMatchRules logic—corrected variable names or logical typos causing potential behavioral anomalies during matching rule sorting—ensuring WASM plugin matching rules are sorted by priority as intended.
    Feature Value: Prevents incorrect rule ordering caused by typographical errors, guaranteeing that WASM plugins take effect in Kubernetes strictly according to user-specified priorities—enhancing reliability and consistency of plugin routing and policy enforcement.

  • Related PR: #619
    Contributor: @CH3CHO
    Change Log: Fixed duplicate version information storage when converting AiRoute to ConfigMap: removed the version field from the data JSON payload, retaining it exclusively in the ConfigMap metadata—to eliminate data redundancy and potential inconsistency.
    Feature Value: Improves accuracy and consistency of configuration management, preventing parsing errors or deployment anomalies caused by duplicated version fields—enhancing system stability and maintainability, delivering direct benefits to users managing route configurations via Kubernetes ConfigMap.

  • Related PR: #618
    Contributor: @CH3CHO
    Change Log: Refactored API authentication logic in SystemController, introducing an AllowAnonymous annotation mechanism to uniformly handle unauthenticated endpoints—replacing hard-coded whitelisting checks—thereby improving maintainability and security of authentication logic.
    Feature Value: Resolves potential security vulnerabilities in the system controller that could allow unauthorized access to sensitive API endpoints—enhancing overall platform security, safeguarding user data and system resources from illicit calls, and strengthening compliance and trustworthiness in enterprise production environments.

  • Related PR: #617
    Contributor: @CH3CHO
    Change Log: Fixed missing unique key props in front-end list rendering (triggering React warnings), resolved Content Security Policy (CSP) blocking of external image loading, and corrected a type definition error for the Consumer.name field (erroneously typed as boolean instead of string)—improving component robustness and type safety.
    Feature Value: Eliminates console warnings and image-loading failures, improving developer experience and debugging efficiency; corrects interface type definitions to prevent runtime type errors—enhancing application stability and developer collaboration reliability, delivering smoother, warning-free UI interactions for end users.

  • Related PR: #614
    Contributor: @lc0138
    Change Log: Fixed a type definition error for the type field (indicating service source) in the ServiceSource class and added validation logic for dictionary values—ensuring incoming registry types belong exclusively to a predefined valid set—to prevent illegal values from triggering runtime exceptions.
    Feature Value: Enhances robustness and security of service source configuration, preventing service registration failure or system exceptions due to invalid type field values—ensuring stable, predictable behavior when configuring various service registries.

  • Related PR: #613
    Contributor: @lc0138
    Change Log: Fixed missing Content Security Policy (CSP) configuration on the front end—added a meta tag in document.tsx to declare the security policy—mitigating risks such as XSS attacks and strengthening security controls over page resource loading and script execution.
    Feature Value: Enhances front-end application security posture, effectively mitigating common web threats like cross-site scripting (XSS)—safeguarding user data and interactions, fulfilling enterprise-level security compliance requirements, and reinforcing end-user trust.

  • Related PR: #612
    Contributor: @zhwaaaaaa
    Change Log: Added logic in DashboardServiceImpl to ignore hop-to-hop HTTP headers (e.g., Transfer-Encoding: chunked) per RFC 2616 Section 13.5.1—preventing reverse proxy forwarding anomalies caused by illegal pass-through of hop-to-hop headers, which previously broke Grafana dashboard rendering.
    Feature Value: Resolves Grafana console page loading failures caused by reverse proxies forwarding hop-to-hop headers like Transfer-Encoding: chunked—improving console stability and user experience and ensuring reliable availability of monitoring integration features.

  • Related PR: #609
    Contributor: @CH3CHO
    Change Log: Fixed a type error in the Consumer interface where the name field was incorrectly declared as boolean; corrected it to string to ensure alignment between front-end data structures and actual back-end response payloads—avoiding runtime errors or TypeScript compilation warnings caused by type mismatches.
    Feature Value: Enhances type safety and front-end/back-end data consistency—preventing UI rendering anomalies or flawed logic decisions due to field-type mismatches—boosting application stability, reducing developer debugging effort, and improving overall development experience.

  • Related PR: #605
    Contributor: @SaladDay
    Change Log: Corrected the front-end form validation regex for AI route names to support periods (.) while restricting characters to lowercase letters only; synchronized English and Chinese error message texts to ensure UI prompts precisely reflect actual validation logic.
    Feature Value: Resolves issues where users’ AI routes were erroneously rejected or inaccurately warned about names containing periods—improving form usability and user experience; strict alignment between validation rules and UI guidance reduces user cognitive load and operation failure rates.

📚 Documentation Updates (Documentation)

  • Related PR: #611
    Contributor: @qshuai
    Change Log: Corrected API endpoint annotations in LlmProvidersController for newly added LLM provider methods—replaced inaccurate summary 'Add a new route' with a title accurately reflecting functionality—ensuring generated API documentation (e.g., Swagger) correctly describes actual behavior.
    Feature Value: Improves API documentation accuracy and developer experience—preventing misunderstandings by front-end or client developers caused by misleading summaries; enhances professionalism and maintainability of console API docs for users, reducing integration and debugging costs.

  • Related PR: #610
    Contributor: @heimanba
    Change Log: Updated frontend-gray plugin documentation to mark rewrite, backendVersion, and enabled fields as optional; updated the rules.name association path to grayDeployments[].name; and synchronized field descriptions and terminology in both English and Chinese READMEs and spec.yaml—ensuring configuration guidance accurately reflects the latest design for enhanced flexibility.
    Feature Value: Improves compatibility and usability of gray-scale configurations—lowering user configuration barriers; precise field descriptions and consistent terminology reduce misunderstandings and configuration errors—helping developers adopt front-end gray-scale features more efficiently and accurately.


📊 Release Statistics

  • 🚀 New Features: 7 items
  • 🐛 Bug Fixes: 9 items
  • 📚 Documentation Updates: 2 items

Total: 18 changes

Thanks to all contributors for their hard work! 🎉

New Contributors

Full Changelog: https://github.com/alibaba/higress/compare/v2.2.1...v2.2.2

13 hours ago
higress

v2.2.2

Higress

📋 Overview of This Release

This release includes 37 updates, covering feature enhancements, bug fixes, performance optimizations, and more.

Distribution of Updates

  • New Features: 13 items
  • Bug Fixes: 18 items
  • Documentation Updates: 5 items
  • Testing Improvements: 1 item

📝 Full Change Log

🚀 New Features (Features)

  • Related PR: #3827
    Contributor: @rinfx
    Change Log: Added the modelToHeader configuration option, with default value x-higress-llm-model-final; synchronously updates this header after parsing the newModel from the request body to ensure downstream logic such as rate limiting and metering aligns with the model mapping result; calls DisableReroute when reading the body to prevent routing conflicts.
    Feature Value: Enhances model routing consistency and reliability, enabling fallback, model-based rate limiting, and metering features to accurately reflect the actual matched model; users gain more stable and precise model dispatching capabilities without modifying business logic, reducing the risk of policy deviation caused by header synchronization issues.

  • Related PR: #3823
    Contributor: @johnlanni
    Change Log: Introduced an nginx-rewrite-compatible WASM plugin that implements compatible parsing of Nginx rewrite + set semantics, securely executes rewriting logic within a WASM sandbox to avoid the CVE-2026-42945 heap overflow vulnerability, and supports path matching, variable capture, and substitution.
    Feature Value: Enables Higress users to smoothly migrate existing Nginx rewrite rules while ensuring compatibility and eliminating critical security risks, lowering the refactoring cost and operational risk for legacy services transitioning from Nginx to Higress.

  • Related PR: #3820
    Contributor: @wydream
    Change Log: Refactored the /v1/messages request handling for the Bedrock Provider: replaced the original two-layer protocol conversion chain (OpenAI → Converse) with direct connectivity to the native Bedrock Mantle Anthropic Messages API; added support for the Mantle endpoint, restructured request routing logic, and extended capability declarations.
    Feature Value: Delivers lower latency, higher compatibility, and native Anthropic feature support (e.g., tool use, beta headers) for /v1/messages calls; avoids semantic loss and performance overhead associated with protocol translation, significantly improving the Bedrock integration experience and stability.

  • Related PR: #3766
    Contributor: @rinfx
    Change Log: Added support for cached token usage (CacheReadInputTokens) in the streaming response transformation logic from OpenAI to Claude; modified core transformer code and added corresponding unit test cases to ensure the Claude compatibility layer accurately conveys cached token count information.
    Feature Value: Enables AI agents to correctly report input token savings resulting from cache hits when invoking Claude models, helping users precisely monitor and optimize API costs; simultaneously improves transparency and billing consistency across multi-model metering, enhancing enterprise-grade usage analytics capabilities.

  • Related PR: #3748
    Contributor: @zat366
    Change Log: Added the enable_path_suffixes configuration option to the QuotaConfig struct to support custom path suffix matching; updated configuration parsing logic to handle default values; modified the getOperationMode function to accommodate the new path suffix logic; enhanced test coverage for the new configuration and its impact on operation modes.
    Feature Value: Allows users to flexibly define API path suffix matching rules per business requirements, increasing quota control precision and adaptability; administrators can manage quota policies for different AI service paths with finer granularity, enhancing plugin applicability and maintainability across diverse scenarios.

  • Related PR: #3742
    Contributor: @wydream
    Change Log: Added KlingAI provider support, featuring official AK/SK JWT authentication and third-party gateway static Bearer token authentication modes, covering both OpenAI-compatible and native Kling protocols, and enabling full interface capabilities including text-to-video and image-to-video generation.
    Feature Value: Users can directly invoke KlingAI video generation capabilities via the AI proxy service without implementing JWT signing or adapting to various gateways—significantly lowering the integration barrier and expanding platform support for AIGC video-generation models.

  • Related PR: #3739
    Contributor: @johnlanni
    Change Log: Added the replace configuration option to the ai-prompt-decorator plugin, supporting ordered, role-conditioned text replacement in the content field of the final assembled messages, using either literal strings or RE2 regular expressions, enhancing dynamic request content rewriting capabilities.
    Feature Value: Enables users to flexibly implement text processing needs—including sensitive word filtering, brand term normalization, and placeholder desensitization—without modifying business logic, improving the AI gateway’s adaptability in compliance, security, and multi-tenant scenarios.

  • Related PR: #3738
    Contributor: @JianweiWang
    Change Log: Added configurable fallback JSON paths for response content extraction (responseContentFallbackJsonPaths and responseStreamContentFallbackJsonPaths) to the ai-security-guard plugin, supporting non-OpenAI formats such as Anthropic Claude; when the primary path yields an empty result, fallback paths are attempted sequentially, automatically skipping any fallback path identical to the primary one.
    Feature Value: Enhances plugin compatibility and robustness, allowing users to perform content safety checks against diverse LLMs (e.g., Claude) without code changes—reducing multi-model adaptation effort and ensuring stable, accurate response content extraction.

  • Related PR: #3734
    Contributor: @CH3CHO
    Change Log: Added existence check for the patch command in the build-envoy.sh script; triggers early failure if missing; also optimized error handling during build-envoy.patch application to prevent silent Bazel dependency errors caused by unexecuted patches.
    Feature Value: Significantly improves observability and robustness of the Envoy build process; users receive immediate, clear error messages if the patch command is absent, drastically lowering debugging effort and environment configuration troubleshooting costs.

  • Related PR: #3724
    Contributor: @wydream
    Change Log: Added Qwen rerank and conversations API path support to the AI Proxy plugin, extending path mapping rules, API name constants, and Qwen-specific routing logic; supplemented comprehensive regression test cases covering path recognition and provider routing functionality.
    Feature Value: Users can invoke Qwen’s reranking and conversational capabilities via standard-compatibility interfaces, improving unified multi-model service access experiences; broadens AI Proxy support for domestic large language models (Qwen), lowering business integration barriers and boosting routing accuracy.

  • Related PR: #3700
    Contributor: @wydream
    Change Log: Added the cooldownDuration configuration option to the ai-proxy failover mechanism, enabling automatically restored API keys after a specified millisecond cooldown period—eliminating dependency on real requests for health checking and reducing token consumption and configuration complexity.
    Feature Value: Empowers users to manage API key availability more flexibly, mitigating long-term unavailability risks due to rate limiting, saving invocation costs, and simplifying failover configuration to enhance system stability and operational efficiency.

  • Related PR: #3694
    Contributor: @CH3CHO
    Change Log: Added configurable forwarding capability for attributes in external authorization requests, supporting transparent transmission of key contextual fields such as route_name and cluster_name; implemented via extension of the AuthorizationRequest struct with an AllowedProperties field, alongside updates to configuration parsing logic and SDK dependencies.
    Feature Value: Enables users to access richer Envoy gateway context information in external authorization services, improving the precision and flexibility of authorization policies and facilitating fine-grained access control based on dimensions like route and cluster—lowering customization development costs.

  • Related PR: #3690
    Contributor: @JianweiWang
    Change Log: Added support for sensitive data masking, enabling desensitization and replacement of sensitive fields in API responses via the riskAction configuration (block/mask); introduced new dimension types—customLabel, maliciousFile, and waterMark—and added dimension-level action configuration to improve risk mitigation flexibility.
    Feature Value: Allows dynamic desensitization of sensitive information without service interruption, strengthening AI application compliance capabilities; multi-dimensional, fine-grained risk control strategies enable more precise content security governance—reducing false positives and satisfying regulatory requirements across diverse business scenarios.

🐛 Bug Fixes (Bug Fixes)

  • Related PR: #3829
    Contributor: @CH3CHO
    Change Log: Fixed a typo in the JSON/YAML tag for the apiTokens field in the ProviderConfig struct within the ai-proxy plugin, correcting it to the proper format to ensure correct configuration parsing and serialization.
    Feature Value: Prevents configuration parsing failures or incorrect loading of API tokens caused by erroneous field tags, enhancing the stability and reliability of the AI proxy service and enabling users to seamlessly configure and utilize authentication credentials for various AI providers.

  • Related PR: #3801
    Contributor: @CH3CHO
    Change Log: Fixed logging issues during EnvoyFilter construction regarding unsupported upstream protocols, by adding missing formatting parameters to ensure warning logs correctly display the protocol type and context.
    Feature Value: Improves debugging and operational observability, enabling users to accurately identify unsupported protocols and their locations upon misconfiguration—reducing troubleshooting time and enhancing Ingress gateway configuration robustness and maintainability.

  • Related PR: #3799
    Contributor: @Betula-L
    Change Log: Fixed an issue where empty input objects (input:{}) in Claude tool calls were unexpectedly omitted during internal bridge conversion to Bedrock Converse format; addressed via adjustments to struct field JSON tags and expanded test coverage to ensure empty maps are preserved correctly.
    Feature Value: Ensures Claude messages using parameterless tools are accurately relayed to the underlying Bedrock service, preventing tool call failures or abnormal behavior caused by missing inputs—improving AI proxy compatibility and reliability in multi-model adaptation scenarios.

  • Related PR: #3788
    Contributor: @Betula-L
    Change Log: Fixed structural data loss in Bedrock Claude inference blocks during ai-proxy protocol bridging by refactoring the convertEventFromBedrockToOpenAI logic and introducing redactedBlockIndexes state management—ensuring reasoningContent remains within native Anthropic message blocks rather than being merged into plain text.
    Feature Value: Users invoking Bedrock Claude models will correctly receive structured reasoning blocks (e.g., <think>...</think>), avoiding accidental exposure of reasoning processes to end users—enhancing response semantic integrity and compatibility, and guaranteeing Anthropic Messages API specification–compliant interactions.

  • Related PR: #3786
    Contributor: @Betula-L
    Change Log: Fixed incorrect mapping between contentBlockIndex in Bedrock Claude streaming responses and tool_calls[].index in OpenAI format, properly handling index misalignment for parallel tool calls and refining tool_choice parameter conversion logic to preserve semantic consistency and ordering fidelity in streaming tool calls within ai-proxy.
    Feature Value: Users performing parallel multi-tool calls with Bedrock Claude models will receive accurate, predictable streaming tool_calls indices and correctly triggered tool_choice behaviors—preventing tool execution disorder or loss and significantly enhancing production-environment compatibility and reliability.

  • Related PR: #3779
    Contributor: @CH3CHO
    Change Log: Fixed an issue where certain controller logs continued outputting as plaintext despite enabling the --log_as_json flag; resolved by uniformly replacing log package imports with istio.io/istio/pkg/log, ensuring all components use the same JSON logging implementation.
    Feature Value: Improves log format consistency and observability, facilitating centralized collection, parsing, and analysis of Higress controller logs in environments like Kubernetes—reducing operational troubleshooting cost and strengthening production log standardization.

  • Related PR: #3777
    Contributor: @wydream
    Change Log: Fixed API key injection issues for Vertex AI Express Mode’s raw REST endpoints in the ai-proxy plugin, expanding regex patterns to match Express Mode URLs lacking /projects/{project}/locations/{location} path segments and adding test cases validating request header processing logic.
    Feature Value: Enables users to correctly invoke simplified Vertex AI Express Mode REST interfaces (e.g., streamGenerateContent) without manually constructing complex paths, enhancing proxy compatibility and usability—and avoiding 401 authentication failures caused by missing key injection.

  • Related PR: #3770
    Contributor: @CH3CHO
    Change Log: Fixed inability to skip TLS certificate verification for HTTPS upstream connections by adding configuration support for certificate verification bypass in upstreamtls.go, and supplementing protobuf and google.golang.org dependencies in test files to support unit testing of the new capability.
    Feature Value: Enables Higress to support HTTPS upstream services using self-signed certificates, resolving connection failures arising from untrusted certificates in enterprise internal or testing environments—improving deployment flexibility and compatibility.

  • Related PR: #3765
    Contributor: @wydream
    Change Log: Fixed ai-proxy support for Azure OpenAI v1 service URLs by adding recognition and routing logic for /openai/v1 and subpaths, accommodating the new URL format without api-version parameters, while retaining api-version validation logic for legacy deployment URLs.
    Feature Value: Enables users to seamlessly integrate with Azure OpenAI’s latest v1 REST API standard without manually appending api-version, enhancing configuration flexibility and service compatibility—reducing request failure rates due to URL format changes and strengthening proxy stability and usability.

  • Related PR: #3757
    Contributor: @srpatcha
    Change Log: Added nil checks, safe type assertions, and panic protection mechanisms to fix multiple potential nil pointer dereferences and type assertion failures; additionally optimized regex compilation logic in WASM plugins to prevent runtime panics.
    Feature Value: Significantly improves gateway stability and robustness, preventing service crashes due to anomalous inputs or misconfigurations; users benefit from a more reliable API gateway experience, lowering online failure rates and operational overhead.

  • Related PR: #3756
    Contributor: @wydream
    Change Log: Fixed loss of thinking/redacted_thinking content blocks during /v1/messages to OpenAI chat/completions request transformation for Claude, enhanced transmission of tool-call reasoning context, and introduced preserve_thinking and promote_thinking_on_empty configuration options for provider-level compatibility control.
    Feature Value: Ensures AI proxies backed by Claude correctly convey complete chain-of-thought information to models supporting reasoning_content (e.g., Qwen), while avoiding compatibility breakage for strict-standard providers like OpenAI/Azure—improving functional consistency and reliability in multi-model routing scenarios.

  • Related PR: #3733
    Contributor: @wydream
    Change Log: Fixed compatibility issues with non-standard upstream responses in Claude streaming transformations: correctly handles empty-string finish_reason, prevents duplicate triggering of message_stop due to usage, and avoids processing redundant chunks after message_stop to prevent event reordering.
    Feature Value: Enhances AI proxy stability and reliability in multi-vendor compatibility scenarios, preventing streaming response interruptions or disorder—ensuring users receive complete, chronologically ordered Claude-style SSE streams and improving the overall LLM invocation experience.

  • Related PR: #3731
    Contributor: @JianweiWang
    Change Log: Removed the mandatory fallback interception logic for Suggestion=block in the AI Security Guard, replacing it with unified risk-dimension–based threshold evaluation; modified core assessment logic in config.go and updated multiple test cases to accurately cover threshold-driven RiskBlock decision paths.
    Feature Value: Improves risk interception accuracy and configurability, preventing unintended blocking caused by misconfigured Suggestion=block; users now exert precise control over interception behavior via thresholds—enhancing policy transparency, debuggability, and reducing false positive rates.

  • Related PR: #3722
    Contributor: @wydream
    Change Log: Migrated Qwen-compatible response endpoint path from the deprecated legacy URL /api/v2/apps/protocols/compatible-mode/v1/responses to the new official path /compatible-mode/v1/responses, updating path constants and assertions in provider/qwen.go and test files to ensure continued valid interface invocation by the AI proxy.
    Feature Value: Prevents service disruption caused by Qwen (DashScope) deprecation of the legacy API path, safeguarding stability and continuity of Qwen model invocation via ai-proxy—enabling seamless transition to the new interface without client-side code changes.

  • Related PR: #3695
    Contributor: @wydream
    Change Log: Fixed missing API Key authentication in Vertex Raw Express Mode by appending the API Key to the URL query string in OnRequestBody and cleaning the Authorization header; also resolved global authentication header leakage and URL construction logic defects in Express Mode.
    Feature Value: Enables Vertex Raw Express Mode to authenticate correctly against Google Vertex AI services via API Key—preventing 401 errors; improves proxy stability and compatibility, ensuring users can reliably invoke large language model APIs in this mode.

  • Related PR: #3682
    Contributor: @CH3CHO
    Change Log: Fixed absence of TARGET_ARCH validity checking in the golang-filter during build-gateway-local, by introducing a VALID_ARCHS whitelist and error-checking logic in Makefile.core.mk—supporting only amd64 and arm64, preventing build failures or erroneous binaries from invalid architecture parameters.
    Feature Value: Enhances robustness and maintainability of multi-architecture builds, preventing silent build errors or runtime anomalies due to invalid TARGET_ARCH values (e.g., x86, ppc64le); guarantees correct compilation and deployment of the Higress gateway across diverse CPU architectures.

  • Related PR: #3576
    Contributor: @Jing-ze
    Change Log: Fixed stale ROUTE_NAME attribute returning outdated route names post-reroute in WASM contexts, by correcting the StreamInfoImpl::getRouteName() invocation logic in Envoy 1.36 to ensure fresh route names are retrieved after clearRouteCache.
    Feature Value: Ensures WASM plugins correctly match rules following rerouting, preventing matchRule failures due to stale route names—improving routing policy execution accuracy and stability, which is critical for user features relying on dynamic route matching.

  • Related PR: #3425
    Contributor: @CH3CHO
    Change Log: Added a default value (higress-registry.cn-hangzhou.cr.aliyuncs.com/higress) to the HUB argument in Dockerfile.higress, eliminating build-time warnings when HUB is not explicitly provided, while preserving backward compatibility: explicitly passed values retain precedence.
    Feature Value: Removes redundant warnings during Docker builds, improving CI/CD pipeline readability and stability; users can complete local builds without specifying the HUB parameter—lowering entry barriers and maintenance costs.

📚 Documentation Updates (Documentation)

  • Related PR: #3830
    Contributor: @EndlessSeeker
    Change Log: Added OpenSSF Best Practices badges to README files in English, Chinese, and Japanese versions, embedded via Markdown image links pointing to the project’s assessment page on the OpenSSF Best Practices platform—enhancing project compliance and credibility visibility.
    Feature Value: Strengthens project transparency and trustworthiness, enabling users to quickly assess Higress’ adherence to open-source best practices in security and maintainability—boosting community and enterprise user confidence and adoption willingness.

  • Related PR: #3764
    Contributor: @EndlessSeeker
    Change Log: Updated SECURITY.md, CONTRIBUTING series documentation, and added GOVERNANCE.md, formalizing vulnerability reporting procedures, defining security response SLAs and teams, and clarifying CNCF governance models—meeting CNCF Sandbox and OpenSSF Best Practices certification requirements.
    Feature Value: Elevates project security compliance and transparency, providing users with standardized channels and response commitments for security issues—strengthening enterprise user trust; simultaneously enhances multilingual contribution guidelines, lowering global developer participation barriers and promoting healthy, sustainable community growth.

  • Related PR: #3754
    Contributor: @johnlanni
    Change Log: Added a top-level MAINTAINERS.md file listing current Higress project maintainers, including maintainer responsibility descriptions and CNCF Sandbox compliance statements—providing essential governance documentation required for CNCF sandbox onboarding.
    Feature Value: Enhances project transparency and community governance standardization, assisting external contributors in identifying core maintenance teams, accelerating CNCF sandbox certification, and laying foundations for future maintainer transitions and permission management—bolstering user confidence in the project’s long-term stability.

  • Related PR: #3730
    Contributor: @CH3CHO
    Change Log: Updated English and Chinese README files to align with the latest configuration parsing logic, correcting contradictory defaults, inaccurate path descriptions, and unclear string concatenation formats, and removing outdated build instructions (e.g., tinygo requirements).
    Feature Value: Improves documentation accuracy and consistency, preventing plugin activation failures stemming from obsolete or erroneous configuration examples; synchronized bilingual documentation lowers comprehension barriers for multilingual users—enhancing AI caching plugin usability and reliability.

  • Related PR: #3696
    Contributor: @github-actions[bot]
    Change Log: Added bilingual release notes files for version 2.2.1 (README.md and README_ZH.md), automatically summarizing 65 updates spanning new features, bug fixes, refactorings, optimizations, and documentation improvements—with categorical statistics.
    Feature Value: Provides users with a well-structured, multilingual overview of version changes, accelerating understanding of upgrade benefits and impact scope—enhancing transparency and maintainability and lowering upgrade decision-making costs.

🧪 Testing Improvements (Testing)

  • Related PR: #3790
    Contributor: @Jing-ze
    Change Log: Expanded integration test coverage for the AI Proxy WASM plugin, including boundary cases for configuration parsing, streaming response body handling, failover verification, and utility function testing; added export_test.go to expose internal functions for testing purposes—significantly improving WASM environment test completeness.
    Feature Value: Strengthens stability and compatibility assurance for the AI Proxy plugin across diverse WASM runtimes and AI service providers, lowering risks of service interruption arising from configuration anomalies or network failures—enhancing reliability and maintainability for production deployments.

📊 Release Statistics

  • 🚀 New Features: 13 items
  • 🐛 Bug Fixes: 18 items
  • 📚 Documentation Updates: 5 items
  • 🧪 Testing Improvements: 1 item

Total: 37 changes

Thank you to all contributors for your hard work! 🎉

Higress Console

📋 Overview of This Release

This release includes 18 updates, covering feature enhancements, bug fixes, performance optimizations, and more.

Distribution of Updates

  • New Features: 7 items
  • Bug Fixes: 9 items
  • Documentation Updates: 2 items

📝 Full Change Log

🚀 New Features (Features)

  • Related PR: #621
    Contributor: @Thomas-Eliot
    Change Log: Enhanced MCP Server interaction capabilities: added support for automatic Host header rewriting for DNS backends; improved transport protocol selection and full-path configuration in direct routing scenarios; enhanced parsing of special characters (e.g., @) in DSNs for DB-to-MCP Server scenarios.
    Feature Value: Improves flexibility and compatibility of MCP Server integration, enabling users to connect more easily to backend services deployed in diverse environments, reducing configuration complexity, and preventing connectivity issues caused by path prefix misinterpretation or DSN parsing failures.

  • Related PR: #608
    Contributor: @Libres-coder
    Change Log: Added plugin visibility functionality to the AI Route Management page: supports expanding rows to view enabled plugins and displays an 'Enabled' badge on the configuration page; extended PluginList component logic to support AI_ROUTE-type queries, and enhanced cleanup of i18n language-change listeners in route.tsx.
    Feature Value: Users can now intuitively view plugins enabled for AI routes, aligning the experience with that of conventional route management—improving maintainability and observability of AI route configurations; unified UI interactions reduce learning overhead and enhance completeness of platform support for AI use cases.

  • Related PR: #604
    Contributor: @CH3CHO
    Change Log: Introduced support for regex-based path rewriting via the higress.io/rewrite-target annotation, extended Kubernetes annotation constants, route transformation logic, and front-end/back-end internationalized copy, thereby increasing routing match flexibility.
    Feature Value: Enables precise control over path rewriting behavior using regular expressions, meeting complex routing requirements such as dynamic path parameter extraction and mapping—significantly enhancing the expressiveness of gateway configuration and its adaptability to business needs.

  • Related PR: #603
    Contributor: @CH3CHO
    Change Log: Added the constant STATIC_SERVICE_PORT = 80 to the static service source form component and explicitly displays this fixed port in the UI, making users clearly aware that static services default to port 80—improving configuration transparency and predictability.
    Feature Value: Users configuring static service sources can immediately see that the default port is 80, avoiding configuration errors or debugging difficulties caused by port misconceptions—lowering entry barriers and improving deployment efficiency and consistency of user experience.

  • Related PR: #602
    Contributor: @CH3CHO
    Change Log: Added a search function to the upstream service selection component in AI route configuration; extended the Select component logic in index.tsx to enable real-time searching and filtering across large numbers of upstream services—improving configuration efficiency and accuracy.
    Feature Value: Users can quickly locate target upstream services when configuring AI routes instead of manually scrolling through long lists—significantly reducing configuration error rates, especially in complex AI gateway scenarios with dozens or more services—enhancing both operational and development efficiency.

  • Related PR: #566
    Contributor: @OuterCyrex
    Change Log: Added support for Tongyi Qwen large language model (LLM) services, including custom service endpoint configuration, Internet search toggle, and file ID upload; implemented QwenLlmProviderHandler on the backend and added multilingual support and provider form adaptation on the frontend.
    Feature Value: Enables flexible integration with self-hosted or cloud-based Qwen services, supporting search augmentation and file context injection—improving compatibility and extensibility of the AI gateway for domestic LLMs and lowering enterprise private-deployment barriers.

  • Related PR: #552
    Contributor: @lcfang
    Change Log: Introduced the VPort virtual port attribute, extending MCP Bridge registry configuration capabilities; added the vport field and corresponding CRD model to ServiceSource, enabling uniform specification of default backend ports for service instances—resolving routing failures caused by inconsistent actual port numbers across instances registered in Eureka/Nacos registries.
    Feature Value: Allows users to explicitly declare a virtual port during service discovery configuration, ensuring routing rules remain resilient to backend port changes—preventing traffic disruptions due to dynamic instance port changes, thus improving microservice governance stability and operational predictability.

🐛 Bug Fixes (Bug Fixes)

  • Related PR: #620
    Contributor: @CH3CHO
    Change Log: Fixed a spelling error in the sortWasmPluginMatchRules logic—corrected variable names or logical typos causing potential behavioral anomalies during matching rule sorting—ensuring WASM plugin matching rules are sorted by priority as intended.
    Feature Value: Prevents incorrect rule ordering caused by typographical errors, guaranteeing that WASM plugins take effect in Kubernetes strictly according to user-specified priorities—enhancing reliability and consistency of plugin routing and policy enforcement.

  • Related PR: #619
    Contributor: @CH3CHO
    Change Log: Fixed duplicate version information storage when converting AiRoute to ConfigMap: removed the version field from the data JSON payload, retaining it exclusively in the ConfigMap metadata—to eliminate data redundancy and potential inconsistency.
    Feature Value: Improves accuracy and consistency of configuration management, preventing parsing errors or deployment anomalies caused by duplicated version fields—enhancing system stability and maintainability, delivering direct benefits to users managing route configurations via Kubernetes ConfigMap.

  • Related PR: #618
    Contributor: @CH3CHO
    Change Log: Refactored API authentication logic in SystemController, introducing an AllowAnonymous annotation mechanism to uniformly handle unauthenticated endpoints—replacing hard-coded whitelisting checks—thereby improving maintainability and security of authentication logic.
    Feature Value: Resolves potential security vulnerabilities in the system controller that could allow unauthorized access to sensitive API endpoints—enhancing overall platform security, safeguarding user data and system resources from illicit calls, and strengthening compliance and trustworthiness in enterprise production environments.

  • Related PR: #617
    Contributor: @CH3CHO
    Change Log: Fixed missing unique key props in front-end list rendering (triggering React warnings), resolved Content Security Policy (CSP) blocking of external image loading, and corrected a type definition error for the Consumer.name field (erroneously typed as boolean instead of string)—improving component robustness and type safety.
    Feature Value: Eliminates console warnings and image-loading failures, improving developer experience and debugging efficiency; corrects interface type definitions to prevent runtime type errors—enhancing application stability and developer collaboration reliability, delivering smoother, warning-free UI interactions for end users.

  • Related PR: #614
    Contributor: @lc0138
    Change Log: Fixed a type definition error for the type field (indicating service source) in the ServiceSource class and added validation logic for dictionary values—ensuring incoming registry types belong exclusively to a predefined valid set—to prevent illegal values from triggering runtime exceptions.
    Feature Value: Enhances robustness and security of service source configuration, preventing service registration failure or system exceptions due to invalid type field values—ensuring stable, predictable behavior when configuring various service registries.

  • Related PR: #613
    Contributor: @lc0138
    Change Log: Fixed missing Content Security Policy (CSP) configuration on the front end—added a meta tag in document.tsx to declare the security policy—mitigating risks such as XSS attacks and strengthening security controls over page resource loading and script execution.
    Feature Value: Enhances front-end application security posture, effectively mitigating common web threats like cross-site scripting (XSS)—safeguarding user data and interactions, fulfilling enterprise-level security compliance requirements, and reinforcing end-user trust.

  • Related PR: #612
    Contributor: @zhwaaaaaa
    Change Log: Added logic in DashboardServiceImpl to ignore hop-to-hop HTTP headers (e.g., Transfer-Encoding: chunked) per RFC 2616 Section 13.5.1—preventing reverse proxy forwarding anomalies caused by illegal pass-through of hop-to-hop headers, which previously broke Grafana dashboard rendering.
    Feature Value: Resolves Grafana console page loading failures caused by reverse proxies forwarding hop-to-hop headers like Transfer-Encoding: chunked—improving console stability and user experience and ensuring reliable availability of monitoring integration features.

  • Related PR: #609
    Contributor: @CH3CHO
    Change Log: Fixed a type error in the Consumer interface where the name field was incorrectly declared as boolean; corrected it to string to ensure alignment between front-end data structures and actual back-end response payloads—avoiding runtime errors or TypeScript compilation warnings caused by type mismatches.
    Feature Value: Enhances type safety and front-end/back-end data consistency—preventing UI rendering anomalies or flawed logic decisions due to field-type mismatches—boosting application stability, reducing developer debugging effort, and improving overall development experience.

  • Related PR: #605
    Contributor: @SaladDay
    Change Log: Corrected the front-end form validation regex for AI route names to support periods (.) while restricting characters to lowercase letters only; synchronized English and Chinese error message texts to ensure UI prompts precisely reflect actual validation logic.
    Feature Value: Resolves issues where users’ AI routes were erroneously rejected or inaccurately warned about names containing periods—improving form usability and user experience; strict alignment between validation rules and UI guidance reduces user cognitive load and operation failure rates.

📚 Documentation Updates (Documentation)

  • Related PR: #611
    Contributor: @qshuai
    Change Log: Corrected API endpoint annotations in LlmProvidersController for newly added LLM provider methods—replaced inaccurate summary 'Add a new route' with a title accurately reflecting functionality—ensuring generated API documentation (e.g., Swagger) correctly describes actual behavior.
    Feature Value: Improves API documentation accuracy and developer experience—preventing misunderstandings by front-end or client developers caused by misleading summaries; enhances professionalism and maintainability of console API docs for users, reducing integration and debugging costs.

  • Related PR: #610
    Contributor: @heimanba
    Change Log: Updated frontend-gray plugin documentation to mark rewrite, backendVersion, and enabled fields as optional; updated the rules.name association path to grayDeployments[].name; and synchronized field descriptions and terminology in both English and Chinese READMEs and spec.yaml—ensuring configuration guidance accurately reflects the latest design for enhanced flexibility.
    Feature Value: Improves compatibility and usability of gray-scale configurations—lowering user configuration barriers; precise field descriptions and consistent terminology reduce misunderstandings and configuration errors—helping developers adopt front-end gray-scale features more efficiently and accurately.


📊 Release Statistics

  • 🚀 New Features: 7 items
  • 🐛 Bug Fixes: 9 items
  • 📚 Documentation Updates: 2 items

Total: 18 changes

Thanks to all contributors for their hard work! 🎉

New Contributors

Full Changelog: https://github.com/alibaba/higress/compare/v2.2.1...v2.2.2

23 hours ago
zuul

v3.6.8

What's Changed

Full Changelog: https://github.com/Netflix/zuul/compare/v3.6.7...v3.6.8

1 days ago
rustfs

1.0.0-beta.4

What's Changed

New Contributors

Full Changelog: https://github.com/rustfs/rustfs/compare/1.0.0-beta.3...1.0.0-beta.4

1 days ago
node

2026-05-20, Version 26.2.0 (Current), @aduh95

Notable Changes

  • [189d43a193] - doc: mark stream.compose stable (Matteo Collina) #62562
  • [f858c6140e] - (SEMVER-MINOR) fs: add Temporal.Instant support to Stats and BigIntStats (Livia Medeiros) #60789
  • [0cbb3895df] - (SEMVER-MINOR) http: add writeInformation to send arbitrary 1xx status codes (Tim Perry) #63155

Commits

  • [9a394bab84] - benchmark: respect stream/iter broadcast backpressure (Trivikram Kamat) #63314
  • [ad98b4620b] - crypto: align verifyOneShot accepted types (Anshika Jain) #63280
  • [ba0736a847] - crypto: wire ML-DSA and ML-KEM for use when using BoringSSL (Filip Skokan) #63255
  • [5573a6a4a8] - crypto: wire ChaCha20-Poly1305 in Web Cryptography when using BoringSSL (Filip Skokan) #63255
  • [7dc563b8d6] - crypto: wire AES-KW in Web Cryptography when using BoringSSL (Filip Skokan) #63255
  • [b55e2b1f4d] - crypto: improve system certificate enumeration logic on macOS (Robo) #62576
  • [fd509a755a] - crypto: harden CryptoKey algorithm slots (Filip Skokan) #63111
  • [8657df39e7] - crypto: harden KeyObject internal slots (Filip Skokan) #63111
  • [729274e046] - crypto: reject invalid raw key imports (Filip Skokan) #63134
  • [8fc9cb9c01] - crypto: improve accuracy of SubtleCrypto.supports (Filip Skokan) #63104
  • [288065cb3f] - crypto: optimize normalizeAlgorithm dispatch hot path (Filip Skokan) #62756
  • [ecf3797d09] - debugger: disambiguate probe location binding (Joyee Cheung) #63286
  • [bdc57135fd] - debugger: add --help to node inspect and improve docs (Joyee Cheung) #63201
  • [2a6e6058e9] - deps: update undici to 8.3.0 (Node.js GitHub Bot) #63377
  • [327b927271] - deps: update corepack to 0.35.0 (Node.js GitHub Bot) #63375
  • [5828fadf52] - deps: update sqlite to 3.53.1 (Node.js GitHub Bot) #63217
  • [fe127a999b] - deps: update simdjson to 4.6.4 (Node.js GitHub Bot) #62811
  • [a34c4ea159] - deps: V8: cherry-pick 435a2cdf664c (Matthias Liedtke) #63136
  • [ad91efcc43] - deps: cherry-pick libuv/libuv@a43e543 (Ali Hassan) #63222
  • [5ea6c3ee7e] - deps: add missing static linking targets for libffi (Paolo Insogna) #63168
  • [c1f6ba22b4] - deps: update ngtcp2 to 1.22.1 (Node.js GitHub Bot) #62812
  • [7b8767ef76] - doc: remove unsupported template type from v8.md (René) #63410
  • [b2ec1880b1] - doc: fix promise nomenclature in stream_iter.md (Antoine du Hamel) #63406
  • [cf6cbbd39d] - doc: fix article usage before vowel-sound acronyms (joao-oliveira-softtor) #62696
  • [da05065d98] - doc: remove the bi-monthly contributor spotlight section (Claudio Wunder) #62734
  • [c31f320fba] - doc: update http2's push and trailers events with rawHeaders param (YuSheng Chen) #63259
  • [f0d008439b] - doc: add Rust toolchain manual installation instructions Windows (Mike McCready) #63367
  • [68b1220fbd] - doc: remove inactive members from Triagers list (Antoine du Hamel) #63329
  • [189d43a193] - doc: mark stream.compose stable (Matteo Collina) #62562
  • [c4fb894039] - doc: fix CHANGELOG (Richard Lau) #63292
  • [9f319a77e4] - doc: reference correct function in Module docs (Robin Malfait) #63247
  • [2c13acc88e] - doc: replace Visual Studio 2022 Evergreen version reference with 17.14 (Mike McCready) #63211
  • [7e42c336c9] - doc: recommend explicitly Tier 1 or 2 for production applications (Mike McCready) #63187
  • [d99e0bb6d5] - doc: document Temporal configure flags in BUILDING.md (ChrisJr404) #63248
  • [c0ea77b305] - doc: run license-builder (github-actions[bot]) #63232
  • [8265aba0f4] - doc: add large pull requests contributing guide (Matteo Collina) #62829
  • [be241bacc8] - doc: remove unnecessary <!-- eslint- magic comments (Antoine du Hamel) #63200
  • [e0b1f092c3] - doc: fix inconsistencies in CJS code snippets (Antoine du Hamel) #63199
  • [a3feb15871] - doc: clarify SEA platform support excludes darwin-x64 (MJSHANG) #63181
  • [cafd7667fc] - doc: improve quic documentation (James M Snell) #63157
  • [3c784edb6f] - doc: update release steps when post-release fails (Rafael Gonzaga) #63131
  • [9de954e9be] - doc: fix deprecation list in 26.0.0 changelog (Antoine du Hamel) #63147
  • [20c553e456] - doc: add Hmac.digest() documentation-only deprecation (DEP0206) (Anshika Jain) #63121
  • [3494eae2c8] - doc: document the latest-vX.x schema (Marco Ippolito) #63033
  • [c02413d29d] - doc: remove list of versions in BUILDING.md (Antoine du Hamel) #63113
  • [53f9a902a1] - doc,sqlite: document entryPoint argument for loadExtension (Edy Silva) #63152
  • [f858c6140e] - (SEMVER-MINOR) fs: add Temporal.Instant support to Stats and BigIntStats (Livia Medeiros) #60789
  • [b2ba62ca0e] - fs: make Date properties on Stats enumerable (LiviaMedeiros) #63328
  • [0cbb3895df] - (SEMVER-MINOR) http: add writeInformation to send arbitrary 1xx status codes (Tim Perry) #63155
  • [f712e6856e] - http2: validate non-link headers in writeEarlyHints (Matteo Collina) #62017
  • [3acadae676] - lib: fix typo idenity => identity (Daijiro Wachi) #63112
  • [460329e886] - lib: fixes validator message (Daijiro Wachi) #62823
  • [9438c832b2] - lib: narrow ReadableStreamBYOBRequest.view return type to Uint8Array (RoomWithOutRoof) #63017
  • [c7d27c82c4] - lib: handle --permission-audit when propagating flags (Rafael Gonzaga) #63047
  • [9f19915276] - lib: optimize webidl conversion options (Filip Skokan) #62756
  • [771afd626a] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #63402
  • [67d094a554] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #63235
  • [9091398f3d] - meta: ignore AI assistants files (Matteo Collina) #62612
  • [96f19a16d0] - module: fix sync hook short-circuit in require() in imported CJS (Joyee Cheung) #62920
  • [45f3e3ef11] - node-api: support SharedArrayBuffer in napi_create_typedarray (Yilong Li) #62710
  • [d7afa617bb] - quic: send correct OpenSSL alert for ALPN mismatches (Tim Perry) #63193
  • [526313beb8] - quic: fixup quic stream variable chunk len (James M Snell) #63230
  • [1613c7fe70] - quic: support --allow-net permissions (James M Snell) #63184
  • [72ab7444a8] - quic: remove unused env_ variable in session_manager.h/cc (James M Snell) #63177
  • [2b55656778] - quic: remove unused binding variable in session.cc (James M Snell) #63177
  • [83f0d37400] - quic: ignore coverage for quic files (James M Snell) #63149
  • [7e6b77b14d] - quic: complete the internal implementation of QUIC (James M Snell) #62876
  • [71372418f1] - repl: fix dedup comparing normalized line against raw history (Daijiro Wachi) #62886
  • [20f40c2c25] - sqlite: keep source database alive during backup (Matteo Collina) #62673
  • [592f741bd0] - src: simplify OpenSSL feature gates (Filip Skokan) #63255
  • [520ab7ad40] - src: add BoringSSL EVP enumeration fallback (Filip Skokan) #63206
  • [12be49acbc] - src: support multiple versions in node.config.json (Marco Ippolito) #63033
  • [296f907585] - src: remove unused using declarations in node_task_queue (Mert Can Altin) #63144
  • [7703f11b3c] - src: skip JS callback for settled Promise.race losers (Felipe Coelho) #62336
  • [74ab710c3a] - src,sqlite: remove dead code (Edy Silva) #63204
  • [e49154f4c8] - stream: add sync iterable fast path to pipeTo (Trivikram Kamat) #63318
  • [537455e98d] - stream: fix merge handling for object-like sources (Trivikram Kamat) #63356
  • [e21b8a47f0] - stream: limit iter from sync iterable batches (Trivikram Kamat) #63324
  • [3bdb64dc67] - stream: cache minimum cursor count in broadcast (Trivikram Kamat) #63322
  • [81819add6b] - stream: remove unnecessary check (Antoine du Hamel) #63030
  • [22e3579d74] - stream: avoid retrying accepted pipeTo writes (Trivikram Kamat) #63297
  • [691915ea94] - stream: validate broadcast writer writev chunks (Trivikram Kamat) #63300
  • [253f5f4ca2] - stream: uncork fromWritable writev on chunk error (Trivikram Kamat) #63295
  • [aa6913cc4a] - stream: validate fromWritable() options before cache (Trivikram Kamat) #63278
  • [6c53ddb988] - stream: optimize single-slot push queue drain (Trivikram Kamat) #63274
  • [b568649f6f] - stream: preserve toReadableSync batch after backpressure (Trivikram Kamat) #63276
  • [cdcefd7e2f] - stream: cache minimum cursor count in share (Trivikram Kamat) #63262
  • [ba7000e4f7] - stream: minor stream/iter implementation edits (René) #63132
  • [c694999ab8] - test: disable Maglev in near-heap-limit worker test (Trivikram Kamat) #63398
  • [a6d6d51c1b] - test: deflake connection refused proxy tests (Trivikram Kamat) #63395
  • [31d89c4f59] - test: avoid repeated writes in watch helper (Trivikram Kamat) #63386
  • [6f3587c773] - test: deflake watch mode worker test (Trivikram Kamat) #63384
  • [a57aebaa73] - test: update tls/crypto behaviour expectations when using BoringSSL (Filip Skokan) #63161
  • [b871cff2db] - test: relax test-memory-usage arrayBuffers check (inoway46) #63244
  • [25189bcb95] - test: reduce flakiness of different-registry-per-thread (Antoine du Hamel) #63244
  • [5bdb1f8426] - test: fix flaky test-watch-mode-inspect timeout (Matteo Collina) #63361
  • [d57bd2bf59] - test: relax min assertion in test-performance-eventloopdelay (Marco) #63100
  • [014e1f00c1] - test: avoid flaky restart sync in debugger exceptions test (Yuya Inoue) #62055
  • [dd28ff8a80] - test: avoid initial-break wait in restart-message (inoway46) #62060
  • [e89a49a13a] - test: move FFI tests to NATIVE_SUITES (Antoine du Hamel) #63165
  • [51ef0258ba] - test: update WPT for wasm/jsapi to 288c467d35 (Node.js GitHub Bot) #63136
  • [c0175a9ba1] - test: use ERM to destroy sqlite database handles after tests (René) #63076
  • [83054e8aba] - test_runner: avoid hanging on incomplete v8 frames (Ali Hassan) #62704
  • [4f1426d361] - test_runner: fix hooks test context (Moshe Atlow) #63285
  • [6a4c4b7193] - test_runner: fix diagnostics channel context tracking (Moshe Atlow) #63283
  • [eba9c3481b] - test_runner: add tags option and tag-name filter (Chemi Atlow) #63221
  • [2ba124f23b] - tls: add unsupported renegotiation error (Filip Skokan) #63161
  • [7c5048495a] - tools: bump the eslint group in /tools/eslint with 4 updates (dependabot[bot]) #63075
  • [6c574110a7] - tools: update gyp-next to 0.22.2 (Node.js GitHub Bot) #63374
  • [f14ed762b3] - tools: add boringssl to tools/nix/openssl-matrix.nix (Filip Skokan) #63206
  • [14d3924c48] - tools: fix test426 updater (Antoine du Hamel) #63271
  • [0d017ece8d] - tools: filter V8 scripts for build toolchain (Richard Lau) #63069
  • [3859a8700e] - tools: use different branch for tool updates on staging branches (Antoine du Hamel) #63110
  • [4a32ed82bd] - tools: prevent lib code from reading KeyObject and CryptoKey accessors (Filip Skokan) #63111
1 days ago
seaweedfs

4.27

What's Changed

New Contributors

Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.26...4.27

1 days ago
seaweedfs

4.27

What's Changed

New Contributors

Full Changelog: https://github.com/seaweedfs/seaweedfs/compare/4.26...4.27