1. fcefe6d fix(healthcheck): probe domain nodes by the node domain, not the resolved ip (#13743) by AlinsRan · 2 days ago master
  2. 64cd2df feat(openid-connect): add set_raw_id_token_header option (#13616) by Luarx · 2 days ago
  3. 15c894f fix(admin): encrypt only after successful validation (#13729) by Shreemaan Abhishek · 3 days ago
  4. 6125bf3 feat: support http_method and http_req_body in active health checks (#13726) by AlinsRan · 3 days ago
  5. 924ee23 docs: add SEO metadata for HTTP/3 guide (#13730) by Yilia Lin · 3 days ago
  6. af8466e chore(deps): bump lua-resty-openapi-validator to 1.0.6 (#13728) by AlinsRan · 3 days ago
  7. f92576f refactor(ai-providers): make the LLM request client ctx-free (#13699) by AlinsRan · 3 days ago
  8. 070853d feat: bound request and response body buffering in plugins (#13705) by Shreemaan Abhishek · 3 days ago
  9. 82fcf54 feat(proxy-rewrite): support multiple same-name headers in headers.add/set (#13597) by AlinsRan · 4 days ago
  10. a4c4832 fix(cli): quote nginx_config.envs entries so values with spaces work (#13713) by AlinsRan · 4 days ago
  11. 132f5a2 fix(openid-connect): redirect instead of 500 on a stale authorization callback (#13712) by AlinsRan · 4 days ago
  12. c9eaca6 fix(admin): reconcile plugins reload instead of trusting the broadcast (#13714) by AlinsRan · 4 days ago
  13. f9f4a70 fix(ai-proxy): report error-path latency vars in milliseconds (#13711) by AlinsRan · 4 days ago
  14. 0f35b15 fix(wolf-rbac): clear upstream identity headers when auth response omits userInfo (#13696) by Shreemaan Abhishek · 6 days ago
  15. de5cbb4 fix(opentelemetry): use oneOf for metadata additionalProperties value type (#13690) by Shreemaan Abhishek · 6 days ago
  16. ec14387 change(debug): report executed plugins with phase in execution order (#13710) by Nic · 6 days ago
  17. 34d42ef feat(stream): support set_real_ip_from to trust an inbound PROXY protocol header (#13700) by Nic · 6 days ago
  18. 90617c4 fix(prometheus): bump nginx-lua-prometheus-api7 to 0.20260716 (#13708) by Nic · 6 days ago
  19. c14d8e4 test(error-log-logger): don't assert a fixed JSON key order for the broker list (#13703) by Nic · 6 days ago
  20. 85bbd30 test(kubernetes): stop TEST 3 failing on the expected apiserver connect error (#13701) by Nic · 6 days ago
  21. 3978aa3 fix(limit-count): commit() must report the window-weighted remaining (#13704) by Nic · 6 days ago
  22. 9ba9769 chore: bump apisix-runtime to 1.3.11 (#13697) by Nic · 6 days ago
  23. 6c68775 fix(balancer): keep least_conn load state across upstream scaling (#13666) by AlinsRan · 9 days ago
  24. 72b2475 fix(admin): duplicate consumer authentication keys are silently accepted (#13529) by Nic · 9 days ago
  25. b86a6c8 feat(kafka-logger): add TLS support for Kafka brokers (#13607) by JinHwanKim · 10 days ago
  26. cd61deb fix(request-validation): guard non-string Content-Type before lower() (#13691) by Shreemaan Abhishek · 11 days ago
  27. 6a0ab86 fix(key-auth): propagate real auth error to multi-auth orchestrator (#13693) by Shreemaan Abhishek · 11 days ago
  28. a3e5f66 fix(ai-content-moderation): validate deny_code is a valid HTTP status (#13692) by Shreemaan Abhishek · 11 days ago
  29. 6c7b56a fix(json): make cjson instances inherit APISIX's cjson options (#13680) by AlinsRan · 11 days ago
  30. 36e5ef1 fix(healthcheck): reuse the checker on node-only upstream changes instead of destroy-and-rebuild (#13629) by AlinsRan · 11 days ago
  31. 53e5bb5 fix(cli): remove stale key after resolving env var in config keys (#12885) by Artem Pronchakov · 11 days ago
  32. f194355 ci: bump apisix-runtime to 1.3.9 (#13695) by Nic · 12 days ago
  33. c3d7d5e test: add missing regression coverage for data-mask and saml-auth (#13684) by Shreemaan Abhishek · 13 days ago
  34. 51bf1fb fix(basic-auth): validate anonymous_consumer against schema (#13682) by Shreemaan Abhishek · 13 days ago
  35. 58a4aa6 feat(ai-rate-limiting): support redis policy for shared counters (#13670) by Shreemaan Abhishek · 13 days ago
  36. 2790b2f feat: raise default sizes for non-evictable shared dicts (#13688) by Nic · 2 weeks ago
  37. 1f16a6c fix: fetch secrets from upstream ssl config (#13062) by J.A. · 2 weeks ago
  38. cbd264a fix(opentelemetry): validate x-request-id before using it as trace_id (#12990) by prasun srivastav · 2 weeks ago
  39. 100be4c fix(datadog): cap coalesced DogStatsD datagram size, fall back to per-metric sends (#13665) by Shreemaan Abhishek · 2 weeks ago
  40. 2f0898c fix: invalidate secret LRU cache on /secrets changes (#13668) by Shreemaan Abhishek · 2 weeks ago
  41. c7a76b2 fix(grpc-transcode): encode empty repeated fields as JSON arrays (#13678) by AlinsRan · 2 weeks ago
  42. 8f32786 fix: remove dead chaos tests and bump vulnerable test dependencies (#13679) by Ming Wen · 2 weeks ago
  43. 08aafa5 docs: improve README with quickstart, AI Gateway section, and TOC (#13677) by Ming Wen · 2 weeks ago
  44. a28d9bb fix(ai-proxy): correct Anthropic Messages to OpenAI Chat request conversion (#13674) by Nic · 2 weeks ago
  45. 99106e5 fix(admin): harden stream_route superior_id dependency checks (#13672) by Shreemaan Abhishek · 3 weeks ago
  46. 809455e test(file-logger): cover per-node upstream_unresolved_host mapping (#13669) by Shreemaan Abhishek · 3 weeks ago
  47. 9962bee fix: reject consumer auth when secret reference fails to resolve (#13667) by Shreemaan Abhishek · 3 weeks ago
  48. a3a8138 fix(proxy-rewrite): query string discarded when use_real_request_uri_… (#12843) by YapWC · 3 weeks ago
  49. 7f67c20 fix(log-rotate): reopen logs after partial rotation (#13375) by Zhi Yuan Ju · 3 weeks ago
  50. 0e139c7 feat(router): add match_uri_encoded_slash to keep %2F in path parameters (#13626) by AlinsRan · 3 weeks ago
  51. dadce3a docs: update Debian APT repo instructions (#13660) by Traky Deng · 3 weeks ago
  52. 03a7276 feat(ai-aliyun-content-moderation): moderate system and tool role content (#13646) by AlinsRan · 3 weeks ago
  53. 2b6df4f refactor(ai-aws-content-moderation): moderate decoded LLM content in access phase (#13647) by Shreemaan Abhishek · 3 weeks ago
  54. 333f46a fix(dns): correct error() call in dns client initialization (#13358) by Surya Parua · 3 weeks ago
  55. ca0c318 fix(resource): support all plugin-bearing resource types in fetch_latest_conf (#13663) by AlinsRan · 3 weeks ago
  56. d0c3cee feat(prometheus): add metrics for AI cache hits, misses, bypasses, and embedding latency (#13659) by Mohammad Izzraff Janius · 3 weeks ago
  57. 070a783 test: assert admin metadata GET decrypts on first request (#13645) by Shreemaan Abhishek · 3 weeks ago
  58. 4756428 perf(loggly): hoist per-request closure out of log phase (#13648) by Shreemaan Abhishek · 3 weeks ago
  59. 7b90388 perf(datadog): reuse one UDP socket per batch and coalesce metrics (#13653) by Shreemaan Abhishek · 3 weeks ago
  60. bb70ec0 perf(zipkin): skip span tag construction for unsampled requests (#13656) by Shreemaan Abhishek · 3 weeks ago
  61. a2d34cd feat(ai-cache): add streaming support with format tagging (#13644) by Mohammad Izzraff Janius · 3 weeks ago
  62. b83f323 fix(ai-cache): preserve non-text content in exact key and L2 bypass (#13654) by Shreemaan Abhishek · 3 weeks ago
  63. 5e5554f fix(forward-auth): re-frame buffered POST body for the auth request (#13642) by Shreemaan Abhishek · 3 weeks ago
  64. f6d0ee8 fix(prometheus): truncate llm model-name labels to bound cardinality (#13637) by Shreemaan Abhishek · 3 weeks ago
  65. d2f94b0 fix(opentelemetry): give inject_core_spans its own tracer cache key (#13633) by Shreemaan Abhishek · 3 weeks ago
  66. 11dfb18 fix(ai-protocols): flatten structured message content in the protocol layer (#13634) by Nic · 3 weeks ago
  67. 01cf1e9 refactor(cas-auth): drop unnecessary raw Cookie header fallback (#13635) by Shreemaan Abhishek · 3 weeks ago
  68. 7fd4515 feat(ai-cache): add semantic (L2) cache layer (#13632) by Mohammad Izzraff Janius · 3 weeks ago
  69. b3182a5 docs(mcp-bridge): add plugin doc and note upcoming deprecation (#13640) by Shreemaan Abhishek · 3 weeks ago
  70. 0e70e69 fix: reset X-Forwarded-For only for untrusted sources under trusted_addresses (#13611) by Shreemaan Abhishek · 4 weeks ago
  71. 4215731 fix(ai-aliyun-content-moderation): return nil instead of ngx.OK in lua_body_filter (#13623) by Mohammad Izzraff Janius · 4 weeks ago
  72. 2f81780 fix(healthcheck): purge stale targets and release periodic lock (bump lua-resty-healthcheck-api7 to 3.2.2) (#13627) by AlinsRan · 4 weeks ago
  73. 056bea5 test: make stream traffic-split distribution assertions order-independent (#13630) by Nic · 4 weeks ago
  74. 6333d93 fix(ai-lakera-guard): update alert mode behavior with fail_open option and add tests for streaming responses (#13622) by Mohammad Izzraff Janius · 4 weeks ago
  75. be3dde6 feat(elasticsearch-logger): encrypt headers field at rest (#13612) by Shreemaan Abhishek · 4 weeks ago
  76. 9f694b2 fix(workflow): skip the action plugin in the chain to avoid double execution (#13617) by Shreemaan Abhishek · 4 weeks ago
  77. 26a3472 fix(opentelemetry): recreate tracer object after plugin metadata changed (#13618) by Shreemaan Abhishek · 4 weeks ago
  78. 2c9e53c test: run graphql-proxy-cache and config-center-json suites in CI (#13621) by Nic · 4 weeks ago
  79. e7d9abf feat: encrypt redis_password and sentinel_password in limit-count/limit-req/limit-conn (#13624) by Nic · 4 weeks ago
  80. 196d585 fix(log-sanitize): return raw tables to avoid double delay_encode (#13605) by Shreemaan Abhishek · 4 weeks ago
  81. 43be2b9 fix(env): resolve os.getenv prefix collision for env directives (#13595) by AlinsRan · 4 weeks ago
  82. 7f5638b fix(limit-count): upgrade redis-cluster lib so NOSCRIPT is not treated as node failure (#13579) by Shreemaan Abhishek · 4 weeks ago
  83. cdcaea1 ci: run proxy-cache and dubbo-proxy plugin subdirectory tests (#13613) by Nic · 4 weeks ago
  84. e9ff2d2 feat: add max_post_args_readable_size to bound post_arg.* body reads (#13601) by Shreemaan Abhishek · 4 weeks ago
  85. 89f8549 fix(cas-auth): stop SLO callback POST from being proxied upstream (#13610) by Shreemaan Abhishek · 4 weeks ago
  86. 3ca5ddf feat(ai-lakera-guard): scan LLM responses (direction output/both, non-streaming + streaming) (#13606) by Mohammad Izzraff Janius · 4 weeks ago
  87. 30ed8d7 feat: add ai-cache plugin (#13578) by Mohammad Izzraff Janius · 4 weeks ago
  88. 57708db fix(stream): support upstream client certificate (mTLS) in L4 proxy (#13596) by AlinsRan · 4 weeks ago
  89. 496cb68 fix(ai-proxy-multi): guard construct_upstream in healthcheck timers (#13592) by Shreemaan Abhishek · 4 weeks ago
  90. df0a284 feat(ai-proxy): include AI observability vars in llm_summary by Nic · 4 weeks ago
  91. c24803a test(openid-connect): stop logout tests from calling live IdPs (#13608) by AlinsRan · 4 weeks ago
  92. 841dbea fix(ai-proxy): don't abort Anthropic response on bad tool_call arguments (#13599) by AlinsRan · 4 weeks ago
  93. bb23888 feat(ai-aliyun-content-moderation): role-aware request_check_mode and O(n) content chunking (#13598) by Nic · 5 weeks ago
  94. 0c41c86 fix(prometheus): bump nginx-lua-prometheus-api7 to 0.20260623 to drop duplicate metrics (#13602) by AlinsRan · 5 weeks ago
  95. eb20eb2 fix(limit-conn): isolate counter per workflow action via _vid key (#13591) by Shreemaan Abhishek · 5 weeks ago
  96. d3f1984 fix(attach-consumer-label): always drop client-supplied configured headers (#13590) by Shreemaan Abhishek · 5 weeks ago
  97. d0451ff feat: add ai-lakera-guard plugin (#13570) by Mohammad Izzraff Janius · 5 weeks ago
  98. c956152 fix(limit-count): validate variable-resolved count/time_window bounds (#13573) by Shreemaan Abhishek · 5 weeks ago
  99. fe625ff fix(ai-proxy): drop tool_choice without tools and stop hanging Anthropic stream (#13583) by AlinsRan · 5 weeks ago
  100. a40d08d fix(limit-count): make sliding-window limiter check-and-increment atomic (#13574) by Shreemaan Abhishek · 5 weeks ago