{
  "schemaVersion": 3,
  "generatedAt": "2026-08-13T18:03:28.303373Z",
  "description": "Latest stable releases and publicly indicated upcoming work. Prereleases and milestones are evidence, not delivery commitments.",
  "count": 30,
  "projects": [
    {
      "date": "2026-08-13",
      "project": {
        "id": "claude-code",
        "repository": "anthropics/claude-code",
        "name": "Claude Code",
        "keywords": [
          "Claude Code"
        ]
      },
      "group": {
        "id": "coding-agent-infrastructure",
        "name": "Coding-Agent Infrastructure"
      },
      "news": {
        "repository": "anthropics/claude-code",
        "collectedAt": "2026-08-13T18:02:14.001087+00:00",
        "latestRelease": {
          "repository": "anthropics/claude-code",
          "tag": "v2.1.231",
          "title": "v2.1.231",
          "url": "https://github.com/anthropics/claude-code/releases/tag/v2.1.231",
          "publishedAt": "2026-08-13T08:38:50Z",
          "notes": "## What's changed\n\n- Fixed MCP OAuth sign-in failing with a redirect URI mismatch for servers that use a pre-registered OAuth client, such as Slack\n",
          "highlights": [
            "What's changed",
            "Fixed MCP OAuth sign-in failing with a redirect URI mismatch for servers that use a pre-registered OAuth client, such as Slack"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "anthropics/claude-code",
            "kind": "milestone",
            "title": "P1",
            "url": "https://github.com/anthropics/claude-code/milestone/1",
            "description": "",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 14
          },
          {
            "repository": "anthropics/claude-code",
            "kind": "milestone",
            "title": "P2",
            "url": "https://github.com/anthropics/claude-code/milestone/2",
            "description": "",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 15
          },
          {
            "repository": "anthropics/claude-code",
            "kind": "milestone",
            "title": "P3",
            "url": "https://github.com/anthropics/claude-code/milestone/3",
            "description": "",
            "progress": 90,
            "openIssues": 1,
            "closedIssues": 9
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/coding-agent-infrastructure/claude-code.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "containerd",
        "repository": "containerd/containerd",
        "name": "containerd",
        "keywords": [
          "containerd"
        ]
      },
      "group": {
        "id": "platform-infrastructure",
        "name": "Platform / Networking / Runtime Infrastructure"
      },
      "news": {
        "repository": "containerd/containerd",
        "collectedAt": "2026-08-13T18:02:01.459351+00:00",
        "latestRelease": {
          "repository": "containerd/containerd",
          "tag": "v2.3.4",
          "title": "containerd 2.3.4",
          "url": "https://github.com/containerd/containerd/releases/tag/v2.3.4",
          "publishedAt": "2026-08-12T17:59:47Z",
          "notes": "Welcome to the v2.3.4 release of containerd!\n\nThe fourth patch release for containerd 2.3 contains various fixes and updates.\n\n### Highlights\n\n#### Container Runtime Interface (CRI)\n\n* Disable checkpoint restore in CreateContainer by default, requiring the enable_experimental_restore_via_create configuration option to enable ([#13913](https://github.com/containerd/containerd/pull/13913))\n* Set default runtimeFeatures.UserNamespacesHostNetwork to true in CRI ([#13914](https://github.com/containerd/containerd/pull/13914))\n* Deprecate checkpoint restore in CreateContainer ([#13868](https://github.com/containerd/containerd/pull/13868))\n* Support non-UTF-8 binary environment variable values in CRI ([#13454](https://github.com/containerd/containerd/pull/13454))\n* Enable OCI runtime feature introspection for non-runc runtimes in CRI ([#13778](https://github.com/containerd/containerd/pull/13778))\n* Disable checkpoint restore codepaths when CRIU is not installed and add enable_criu configuration option ([#13734](https://github.com/containerd/containerd/pull/13734))\n* Normalize sandbox image references in CRI to resolve images without domain prefixes ([#13759](https://github.com/containerd/containerd/pull/13759))\n\n#### Node Resource Interface (NRI)\n\n* Emit deprecation warnings for plugins using deprecated NRI interfaces ([#13935](https://github.com/containerd/containerd/pull/13935))\n\n#### Runtime\n\n* Enable log scrubbing by default on Windows ([#13904](https://github.com/containerd/containerd/pull/13904))\n* Fix memory leak in OOM watcher map when stopping container monitoring ([#13870](https://github.com/containerd/containerd/pull/13870))\n* Avoid orphaning shims on transient errors when loading process IDs ([#13857](https://github.com/containerd/containerd/pull/13857))\n* Fix corruption of binary protobuf shim start responses caused by premature whitespace trimming ([#13803](https://github.com/containerd/containerd/pull/13803))\n\n#### Snapshotters\n\n* Fix EROFS snapshotter dropping lower layers stacked above merged filesystem metadata ([#13876](https://github.com/containerd/containerd/pull/13876))\n\n#### Breaking\n\n* Disable checkpoint restore in CreateContainer by default, requiring the enable_experimental_restore_via_create configuration option to enable ([#13913](https://github.com/containerd/containerd/pull/13913))\n\n#### Deprecations\n\n* Deprecate checkpoint restore in CreateContainer ([#13868](https://github.com/containerd/containerd/pull/13868))\n\nPlease try out the release binaries and report any issues at\nhttps://github.com/containerd/containerd/issues.\n\n### Contributors\n\n* Samuel Karp\n* Maksym Pavlenko\n* Mike Brown\n* Akihiro Suda\n* Derek McGowan\n* Jordan Liggitt\n* Paweł Gronowski\n* Amir Alavi\n* Andrew Halaney\n* Bing Hongtao\n* Chris Henzie\n* Harshal Patel\n* Krisztian Litkey\n* Phil Estes\n* Wei Fu\n* ningmingxiao\n\n### Changes\n<details><summary>35 commits</summary>\n<p>\n\n  * [`c1f5360ef`](https://github.com/containerd/containerd/commit/c1f5360ef7b9afb748d4119ad7be665ba5144480) Prepare release notes for v2.3.4\n* cri: disable restore in CreateContainer by default ([#13913](https://github.com/containerd/containerd/pull/13913))\n  * [`928c03c68`](https://github.com/containerd/containerd/commit/928c03c6898cad95f795300281fdff0dbc55a32f) cri: disable restore in CreateContainer by default\n* nri,deprecation: record and emit warnings for NRI deprecations. ([#13935](https://github.com/containerd/containerd/pull/13935))\n  * [`5966e2edb`](https://github.com/containerd/containerd/commit/5966e2edb15bb939aa2bb73649fbad73a2b04094) nri,deprecation: emit warnings for old NRI plugins.\n* Set the default of runtimeFeatures.UserNamespacesHostNetwork to true ([#13914](https://github.com/containerd/containerd/pull/13914))\n  * [`ab52c58f1`](https://github.com/containerd/containerd/commit/ab52c58f16ac50bb6724354bf36cbb4da480c2a2) Set the default of runtimeFeatures.UserNamespacesHostNetwork to true\n* Use ScrubLogs by default on Windows ([#13904](https://github.com/containerd/containerd/pull/13904))\n  * [`0c255158a`](https://github.com/containerd/containerd/commit/0c255158aa1ecab40aafc42269cfc018a46eb627) ctr: add --scrub-logs flag for Windows\n  * [`1c2b13dc9`](https://github.com/containerd/containerd/commit/1c2b13dc975468197e57321e25fd09163f78a75a) cri/config: use ScrubLogs by default on Windows\n* snapshots/erofs: keep lowers stacked above a merged fsmeta ([#13876](https://github.com/containerd/containerd/pull/13876))\n  * [`0c511e068`](https://github.com/containerd/containerd/commit/0c511e068b7d6dd815418185a235b3ba3347c65a) snapshots/erofs: keep lowers stacked above a merged fsmeta\n* cri: deprecate restore in CreateContainer ([#13868](https://github.com/containerd/containerd/pull/13868))\n  * [`dc98141df`](https://github.com/containerd/containerd/commit/dc98141df70d3d72d46125c6f30de0d2de648086) cri: deprecate restore in CreateContainer\n* internal/oom: Fix memory leak by removing watcher from map on Stop ([#13870](https://github.com/containerd/containerd/pull/13870))\n  * [`537d82d54`](https://github.com/containerd/containerd/commit/537d82d545759d4a072d564d4937707af2650163) internal/oom: Fix memory leak by removing watcher from map on Stop\n* shim_load: Consider shim leaked only if we can't find pids ([#13857](https://github.com/containerd/containerd/pull/13857))\n  * [`decf97a9c`](https://github.com/containerd/containerd/commit/decf97a9c7c26f92391d2c862d35832e0a291e80) shim_load: Consider shim leaked only if we can't find pids\n* core/runtime/v2: Drop checkpointctl module dependency ([#13840](https://github.com/containerd/containerd/pull/13840))\n  * [`796f07dc8`](https://github.com/containerd/containerd/commit/796f07dc853d9ae8a3a1278fe47436755a4bc3b7) core/runtime/v2: Drop checkpointctl module dependency\n* Handle []byte envvar value for CRI ([#13454](https://github.com/containerd/containerd/pull/13454))\n  * [`751fddddb`](https://github.com/containerd/containerd/commit/751fddddbb630631e12fd63e5dac4a9530188822) Handle []byte envvar value\n  * [`0bce9060e`](https://github.com/containerd/containerd/commit/0bce9060ef3401e690b541dd6d2008c2abc50b0d) update to v0.36.x kubernetes dependencies\n* fix(cri): introspect OCI runtime features for non-runc runtimes ([#13778](https://github.com/containerd/containerd/pull/13778))\n  * [`61a8f6f45`](https://github.com/containerd/containerd/commit/61a8f6f45e34660d787988e8a7e7a218f556369c) fix(cri): introspect OCI runtime features for non-runc runtimes\n* core/runtime/v2: Preserve protobuf shim response bytes ([#13803](https://github.com/containerd/containerd/pull/13803))\n  * [`1d28017be`](https://github.com/containerd/containerd/commit/1d28017be295005bfa3aee1d47afe86341d391b6) core/runtime/v2: Preserve protobuf shim response bytes\n* Disable checkpoint restore codepath when CRIU is not installed ([#13734](https://github.com/containerd/containerd/pull/13734))\n  * [`374091d67`](https://github.com/containerd/containerd/commit/374091d67c1966969b772594ba96a74f4357bc7a) github/workflows: install criu in node-e2e\n  * [`db03e3968`](https://github.com/containerd/containerd/commit/db03e39685448a1d87025a2ca3a1e4e42713102d) cri: add enable_criu configuration option\n  * [`dacd4c7d0`](https://github.com/containerd/containerd/commit/dacd4c7d00f4a5fd71197e67afdb6355e8536e4f) cri: validate CRIU availability and version early\n* ci: bound Go fuzzing by execution count ([#13785](https://github.com/containerd/containerd/pull/13785))\n  * [`890a9c86c`](https://github.com/containerd/containerd/commit/890a9c86cd9918e53c1ef1b57c6539a943196cd5) ci: bound Go fuzzing by execution count\n* cri: auto-add prefix for pause image ([#13759](https://github.com/containerd/containerd/pull/13759))\n  * [`0b2f1d078`](https://github.com/containerd/containerd/commit/0b2f1d078124b52f4c8030dc686f2d65c1dfc17c) cri: auto-add prefix for pause image\n</p>\n</details>\n\n### Dependency Changes\n\n* **k8s.io/api**                            v0.36.0 -> v0.36.3\n* **k8s.io/apimachinery**                   v0.36.0 -> v0.36.3\n* **k8s.io/client-go**                      v0.36.0 -> v0.36.3\n* **k8s.io/component-base**                 v0.36.0 -> v0.36.3\n* **k8s.io/cri-api**                        v0.36.0 -> v0.36.3\n* **k8s.io/cri-client**                     v0.36.0 -> v0.36.3\n* **k8s.io/cri-streaming**                  v0.36.0 -> v0.36.3\n* **sigs.k8s.io/structured-merge-diff/v6**  v6.3.2 -> v6.3.3\n\nPrevious release can be found at [v2.3.3](https://github.com/containerd/containerd/releases/tag/v2.3.3)\n### Which file should I download?\n* `containerd-<VERSION>-<OS>-<ARCH>.tar.gz`:         ✅Recommended. Dynamically linked with glibc 2.35 (Ubuntu 22.04).\n* `containerd-static-<VERSION>-<OS>-<ARCH>.tar.gz`:  Statically linked. Expected to be used on Linux distributions that do not use glibc >= 2.35. Not position-independent.\n\nIn addition to containerd, typically you will have to install [runc](https://github.com/opencontainers/runc/releases)\nand [CNI plugins](https://github.com/containernetworking/plugins/releases) from their official sites too.\n\nSee also the [Getting Started](https://github.com/containerd/containerd/blob/main/docs/getting-started.md) documentation.\n",
          "highlights": [
            "Highlights",
            "Container Runtime Interface (CRI)",
            "Disable checkpoint restore in CreateContainer by default, requiring the enableexperimentalrestoreviacreate configuration option to enable (#13913)",
            "Set default runtimeFeatures.UserNamespacesHostNetwork to true in CRI (#13914)",
            "Deprecate checkpoint restore in CreateContainer (#13868)",
            "Support non-UTF-8 binary environment variable values in CRI (#13454)"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "containerd/containerd",
            "kind": "milestone",
            "title": "2.5",
            "url": "https://github.com/containerd/containerd/milestone/52",
            "description": "",
            "openIssues": 0,
            "closedIssues": 0
          },
          {
            "repository": "containerd/containerd",
            "kind": "milestone",
            "title": "2.4",
            "url": "https://github.com/containerd/containerd/milestone/51",
            "description": "",
            "dueAt": "2026-08-26T00:00:00Z",
            "progress": 34,
            "openIssues": 37,
            "closedIssues": 19
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/platform-infrastructure/containerd.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "litellm",
        "repository": "BerriAI/litellm",
        "name": "LiteLLM",
        "keywords": [
          "LiteLLM"
        ]
      },
      "group": {
        "id": "ai-infrastructure",
        "name": "AI Infrastructure"
      },
      "news": {
        "repository": "BerriAI/litellm",
        "collectedAt": "2026-08-13T18:02:06.542286+00:00",
        "latestRelease": {
          "repository": "BerriAI/litellm",
          "tag": "v1.96.2",
          "title": "v1.96.2",
          "url": "https://github.com/BerriAI/litellm/releases/tag/v1.96.2",
          "publishedAt": "2026-08-11T22:09:16Z",
          "notes": "## Verify Docker Image Signature\n\nAll LiteLLM Docker images are signed with [cosign](https://docs.sigstore.dev/cosign/overview/). Every release is signed with the same key introduced in [commit `0112e53`](https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0).\n\n**Verify using the pinned commit hash (recommended):**\n\nA commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:\n\n```bash\ncosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.96.2\n```\n\n**Verify using the release tag (convenience):**\n\nTags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules:\n\n```bash\ncosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/v1.96.2/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.96.2\n```\n\nExpected output:\n\n```\nThe following checks were performed on each of these signatures:\n  - The cosign claims were validated\n  - The signatures were verified against the specified public key\n```\n\n---\n## What's Changed\n* chore(release): backport proxy request-handling maintenance and refresh runtime deps for 1.96.1 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/36494\n* bump: version 1.96.1 → 1.96.2 (1.96.1 burned by the PyPI storage failure) by @yuneng-berri in https://github.com/BerriAI/litellm/pull/36570\n\n\n**Full Changelog**: https://github.com/BerriAI/litellm/compare/v1.96.0...v1.96.2\n",
          "highlights": [
            "Verify Docker Image Signature",
            "The cosign claims were validated",
            "The signatures were verified against the specified public key",
            "What's Changed",
            "chore(release): backport proxy request-handling maintenance and refresh runtime deps for 1.96.1 by @yuneng-berri in https://github.com/BerriAI/litellm/pull/36494",
            "bump: version 1.96.1 → 1.96.2 (1.96.1 burned by the PyPI storage failure) by @yuneng-berri in https://github.com/BerriAI/litellm/pull/36570"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "BerriAI/litellm",
            "kind": "prerelease",
            "title": "v1.98.0-dev.2",
            "url": "https://github.com/BerriAI/litellm/releases/tag/v1.98.0-dev.2",
            "description": "## Verify Docker Image Signature\n\nAll LiteLLM Docker images are signed with [cosign](https://docs.sigstore.dev/cosign/overview/). Every release is signed with the same key introduced in [commit `0112e53`](https://github.com/BerriAI/litellm/commit/0112e53046018d726492c814b3644b7d376029d0).\n\n**Verify using the pinned commit hash (recommended):**\n\nA commit hash is cryptographically immutable, so this is the strongest way to ensure you are using the original signing key:\n\n```bash\ncosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/0112e53046018d726492c814b3644b7d376029d0/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.98.0-dev.2\n```\n\n**Verify using the release tag (convenience):**\n\nTags are protected in this repository and resolve to the same key. This option is easier to read but relies on tag protection rules:\n\n```bash\ncosign verify \\\n  --key https://raw.githubusercontent.com/BerriAI/litellm/v1.98.0-dev.2/cosign.pub \\\n  ghcr.io/berriai/litellm:v1.98.0-dev.2\n```\n\nExpected ",
            "tag": "v1.98.0-dev.2",
            "publishedAt": "2026-08-13T18:00:55Z"
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/ai-infrastructure/litellm.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "ray",
        "repository": "ray-project/ray",
        "name": "Ray",
        "keywords": [
          "Ray distributed computing",
          "Ray framework"
        ]
      },
      "group": {
        "id": "ai-infrastructure",
        "name": "AI Infrastructure"
      },
      "news": {
        "repository": "ray-project/ray",
        "collectedAt": "2026-08-13T18:02:08.020333+00:00",
        "latestRelease": {
          "repository": "ray-project/ray",
          "tag": "ray-2.57.0",
          "title": "Ray-2.57.0",
          "url": "https://github.com/ray-project/ray/releases/tag/ray-2.57.0",
          "publishedAt": "2026-08-11T01:15:44Z",
          "notes": "# Highlights\r\n\r\n* **Ray Data:** In this Ray release, we've enabled `DataSourceV2` by default (#64821), so `read_parquet` and friends use the new scan/listing infrastructure with row-group-aware chunking and predicate splitting. Hash Shuffle V2 eliminates the aggregator actor pool. V1 had to provision that pool up front from an estimate of the input size, and its actors accumulated partition shards in actor heap memory, invisible to Ray and unspillable, until finalization. V2 replaces it with two stateless task-based operators, ShuffleMapOp --> ShuffleReduceOp, that pass shards through the object store, so intermediate state spills under pressure and no capacity has to be reserved in advance. The map/reduce barrier itself remains in both designs.\r\n* HashShuffleV2 supports `join` ([#63598](https://github.com/ray-project/ray/pull/63598), [#64538](https://github.com/ray-project/ray/pull/64538), [#64687](https://github.com/ray-project/ray/pull/64687)). This lets shuffles reuse standard map/reduce scheduling, backpressure, and resource accounting.\r\n* **Ray Serve:** The HAProxy ingress is now distributed as the `ray-haproxy` PyPI package instead of being compiled into images, and it is the default HAProxy binary (#64141, #64163, #64164). We've also added gRPC support to the HAProxy direct-ingress path, including streaming, metrics, and custom request IDs (#63735, #64310, #64166, #64112). For Ray Serve LLM, we've added experimental KV-cache-aware request routing that tracks replica KV state through an event plane, tokenizes before routing, and routes on prefill/decode token load (#64084, #64085, #64097, #64224, #64327, #64400). KV cache-aware routing’s complete support will land in 2.58.\r\n* **Ray Core:** We've added an embedded RocksDB storage backend for GCS fault tolerance (REP-64), selectable with `RAY_gcs_storage=rocksdb` and `RAY_gcs_storage_path` (#63657). GCS fault tolerance no longer requires an external Redis instance. We've also added a public API for topology-aware scheduling (#63479, #63740).\r\n\r\n# Ray Data\r\n\r\n### 🎉 New Features\r\n* Enable `DataSourceV2` by default via `DataContext.use_datasource_v2` (#64821)\r\n* New task-based hash shuffle v2 (`ShuffleMapOp` → `ShuffleReduceOp`) with `join`, multi-input reduce, downstream map fusion, and reducer remote args, behind an env flag (#63598, #64538, #64687, #64438, #64302, #64532, #64481)\r\n* Add a `Catalog` abstraction with a `UnityCatalog` implementation that can be passed to `read_*`, and Unity Catalog write support for Parquet and Iceberg (#64193, #64519)\r\n* Add `read_zarr` for Zarr datasets (#63003) and `read_lerobot` for LeRobot v3 datasets (#63821)\r\n* Add `PushdownCountFiles` optimization to answer `count()` from Parquet footers (#64763)\r\n* Add common subexpression elimination to the expression optimizer (#63974)\r\n* Add GPU support for `Aggregate` (#63708)\r\n* Make dataset iteration metrics queryable per split (#64608)\r\n* Add custom operator stats to capture worker-side metrics during task execution (#64221)\r\n* Refactor usage collection into an extensible `UsageCallback` (#64500)\r\n* Export `from_blocks` from `ray.data` (#64127)\r\n* Add support for `rapidsmpf-26.4.0` (#64324)\r\n\r\n### 💫 Enhancements\r\n* Hide Ray Data internal frames from user-code error tracebacks (#64587)\r\n* Run projection/predicate pushdown before limit pushdown, block optimization of non-deterministic expressions, and make fuse checks consistent between the logical and physical optimizers (#64651, #64165, #63936)\r\n* Add a two-mode block metadata fetch behind a single `MetadataFetcher` interface (#64378)\r\n* Use work stealing for file listing and a dynamic work queue for traversals (#64675, #64388)\r\n* Speed up `ExecutionResources` and the reservation/budget loops on the scheduling hot path (#63964)\r\n* Fix `O(n^2)` schema reconciliation in `unify_schemas` and avoid per-column `Series` materialization in tensor-column casting (#64555, #64038)\r\n* Decouple collate and memory pinning in `iter_torch_batches`, add per-stage training-thread blocking attribution, bound in-flight `iter_threaded` items, and finalize after reordering under `preserve_order` (#64653, #64183, #64219, #64282)\r\n* Add default logical memory for map operators, wire the materializing-op filter into `OpResourceAllocator` budgeting, and move `estimate_object_store_usage` into the physical op (#63814, #63665, #63961)\r\n* Decrease the downstream backpressure ratio to 2.0 (#64352)\r\n* Route native `S3FileSystem` downloads to the PyArrow threaded path (#64089)\r\n* Size hash-shuffle aggregators via bounded online sampling and add a timeout to the batched `ray.get` when fetching partitions (#63929, #64256)\r\n* Replace manual block reference accounting with Ray Core out-of-scope object callbacks (#64011, #64157, #64191)\r\n* Default `read_numpy` to `allow_pickle=False` and make it manually configurable (#64684)\r\n* Make `write_lance(mode=CREATE)` error instead of silently overwriting (#64364)\r\n* Expand `DistributionTracker` with `merge()` and p25/p75, and add dead node counts and detected issues to usage collection (#64074, #64459, #64198)\r\n* Remove cluster autoscaler v1, rename the subcluster label key to `ray-subcluster`, avoid scaling nodegroups dedicated to the head node, and quiet autoscaling coordinator logs (#64380, #64003, #63918, #63534)\r\n* Delay the \"cluster resources not enough\" warning until an operator is persistently starved, and lower the high-memory warning threshold (#63969, #64124)\r\n* Remove `ExecutionPlan`, `_num_outputs`, `batch_format` on `AllToAllOperators`, and `InheritBatchFormatRule`; use `input_dependencies` in logical operators (#63662, #64167, #64152, #64149, #64148)\r\n* Deprecate low-level scheduling APIs (`DataContext.scheduling_strategy`, `actor_locality_enabled`, `exclude_resources`, `local://`) ahead of the actor-only rearchitecture (#64632)\r\n* Migrate the Daft dependency from `getdaft` to `daft` (#64240)\r\n* Migrate `apply_chat_template`/`tokenize`/`detokenize` callers to `*_stage` form, and remove `PrepareImageStage` while deprecating the `image` row column (#63590, #63570)\r\n\r\n### 🔨 Fixes\r\n* Fix `TensorDtype.__from_arrow__` crash on empty tensor columns (#64767)\r\n* Fix Arrow-backed `to_pandas` regressions with an opt-out flag and int/float block overflow handling (#64768)\r\n* Fix read-only hash array crash in hash partition (#64552, #64559)\r\n* Fix streaming-generator hang on a plasma-resident return object (#64386)\r\n* Fix Parquet write overflow for string/binary columns larger than 2 GiB (#64212)\r\n* Fix Parquet sampling hang on a permanent `OSError` (#64342)\r\n* Fix the BigQuery datasink to handle empty blocks (#60797)\r\n* Make `PandasBlock.size_bytes` deterministic (#64393)\r\n* Propagate branch in `_append_and_commit()` for the Iceberg overwrite save mode (#63922)\r\n* Propagate `isolate_read_workers` to `DatasourceV2` (#65191, #65207)\r\n* Fix cross-region S3 bucket access in the obstore download path (#63890)\r\n* Restore `safe_round` in the `ExecutionResources` hot path (#64296)\r\n* Log both the wrapped and wrapper exception in `iterate_with_retry` (#64639)\r\n* Add `tf-keras` to the `text_embedding` pip packages (#64889, #64968)\r\n* Fix `build_processor` failing with vLLM >= 0.19, correct its `config` type hint, and add `request_timeout_s` to `ServeDeploymentProcessor` to prevent indefinite hangs (#64337, #64098, #64496)\r\n* Fix type hints in `throughput_solver.py` (#64289)\r\n\r\n### 📖 Documentation\r\n* Add a guide on avoiding out-of-memory errors and improve the existing OOM docs (#64046, #64297)\r\n* Document the best practice for isolating Ray Data workers from training nodes (#64588)\r\n* Document running two datasets in one cluster (#64200)\r\n* Move the `read_zarr` guide back into its docstring (#64409)\r\n* Remove Ray Data and DAG docstring ignores from pydoclint (#63634)\r\n\r\n# Ray Serve\r\n\r\n### 🎉 New Features\r\n* Distribute HAProxy through the `ray-haproxy` PyPI package, make it the default binary, and remove the from-source build (#64141, #64163, #64164)\r\n* Add gRPC support to the HAProxy direct ingress, including streaming, unary-unary metrics, and custom request IDs (#63735, #64310, #64166, #64112)\r\n* Emit request and system metrics from HAProxy (#64329, #64255)\r\n* Support `root_path` in the HAProxy ingress (#64295)\r\n* Add a per-replica metadata hook exposed on `ReplicaSelection` (#63948)\r\n\r\n### 💫 Enhancements\r\n* HAProxy stability: graceful drain waits for in-flight and queued requests, replicas quiesce before reporting shutdown complete, dispatches cancelled by replica gRPC stop are retried, reload takeover is verified by pid, and `close-spread-time` is set in the template (#63886, #63920, #63995, #64022, #64063, #63996)\r\n* Make direct-ingress port reconcile incremental and skip it entirely when ingress membership is unchanged (#64508, #64676)\r\n* Controller performance: `O(1)` version-filtered replica counts, in-place health-check reconcile in the deployment-state loop, and a fast-path orphaned-actor check (#64699, #64507, #64511)\r\n* Freeze GC after replica initialization by default (#64742)\r\n* Eager-load proxy imports (#64113)\r\n* Pin the replica actor to bundle 0 of its placement group and track actor `fallback_strategy` on `DeploymentSchedulingInfo` (#62693, #64346)\r\n* Deprecate `HTTPOptions.location` in favor of `proxy_location`, raise on non-zero `HTTPOptions.num_cpus`, and warn on other deprecated HTTP options (#64479, #64418, #63604)\r\n* Raise a clear error when a custom request router or `serve.multiplexed` is used on an ingress deployment under direct ingress (#64211, #64045)\r\n* Recover ingress request router pin-misses via the fallback proxy instead of returning 503 (#64218)\r\n* Add `RAY_SERVE_CONTROLLER_METRICS_INCLUDE_HIGH_CARDINALITY_TAGS` to control controller metric tags (#63642)\r\n* Default `RAY_SERVE_PORT_QUARANTINE_S` to hard-stop-after plus a margin (#64021)\r\n* Defer the \"application ready\" log until proxies are ready (#64010)\r\n* Dedup ingress replica and proxy metrics code, and migrate `parse_uri` from `_private` to `_common` (#64041, #64371)\r\n* Enforce `mypy` and `pyrefly` type checking on clean Serve files (#64662)\r\n* Fail loudly when subclassing `@serve.ingress` with a sync `__init__` (#63413)\r\n* Supply a safe default request id header value in direct ingress (#64118)\r\n\r\n### 🔨 Fixes\r\n* Fix `serve.ingress(FastAPI())` pickling and `include_router` under FastAPI >= 0.137 (#64814, #64531)\r\n* Fix an idle worker leak that caused OOM on the Ray head node (#63597)\r\n* Fix `serve.shutdown()` skipping live shutdown when the cached controller client is stale after a driver reconnect (#64660)\r\n* Preserve the deployment actor class across a config re-apply (#64411)\r\n* Fix rank corruption on controller recovery after a lightweight reconfigure (#64636)\r\n* Fix `route=None` crash in direct-ingress metrics reporting (#64645)\r\n* Fix the direct-ingress backpressure counter leak on cancel-while-queued and clean up the leaked receive task on request timeout (#64348, #64123)\r\n* Fix HAProxy `healthz` falling through to 404 when there are no backends (#64582)\r\n* Guard request router backoff against `OverflowError` (#64539)\r\n* Fix a slot leak race in `SingletonThreadRouter.choose_replica` (#63649)\r\n* Fix a type regression in `RAY_SERVE_HAPROXY_CLOSE_SPREAD_TIME_S` (#64752)\r\n* Fix Serve tests broken by protobuf 7 (#64362)\r\n\r\n### 📖 Documentation\r\n* Fix the `RequestRouterConfig` stats docstring to reference `record_routing_stats` (#64086)\r\n\r\n# Ray Train\r\n\r\n### 🎉 New Features\r\n* Add preemption handling: a preemption watcher for node-drain observability, with the signal fanned out to workers (#63807, #64099)\r\n\r\n### 💫 Enhancements\r\n* Make Train v1 and v2 use the autoscaling coordinator (#64824, #64936)\r\n* Restrict `ray.train.report(checkpoint)` to in-band checkpoints only (#63645)\r\n* Make `Result.from_path` read-only (#64340)\r\n* Add compute-time metrics to `tune_torch_benchmark.py` (#64274)\r\n* Update TensorFlow/Keras examples and tests for Keras 3 compatibility (#64276)\r\n\r\n### 🔨 Fixes\r\n* Fix `CometLoggerCallback` mutating the caller's result dict via `result.pop()` (#64570)\r\n* Fix the `WorkerMetricsCallback` method name to match the `WorkerCallback` interface (#64568)\r\n\r\n### 📖 Documentation\r\n* Document the unsafe deserialization risk in `TorchCheckpoint.get_model()` and `FrameworkCheckpoint.get_preprocessor()` (#64586)\r\n* Fix docstring style and enable `--check-style-mismatch=True` in pydoclint (#63988)\r\n* Enumerate the accepted resource keys for `ScalingConfig` (#63449)\r\n\r\n# Ray Tune\r\n\r\n### 💫 Enhancements\r\n* Make `BayesOptSearch` float-hash precision configurable (#63914)\r\n* Require `optuna>=3.0.0` in `OptunaSearch` (#64242)\r\n\r\n### 🔨 Fixes\r\n* Respect `max_concurrent_trials` for custom searchers (#63770)\r\n\r\n### 📖 Documentation\r\n* Warn when `BayesOptSearch` stops early on convergence, and document `patience`/`skip_duplicate` (#64288)\r\n* Restructure the Tune example pages and add PyTorch Lightning examples to the examples README (#63460, #63438)\r\n* Document nested-metric keys in `ResultGrid.get_best_result` and add a conditional search-space example to `tune.sample_from` (#63445, #63443)\r\n\r\n# Ray LLM\r\n\r\n### 🎉 New Features\r\n* Add KV-cache-aware request routing: `KVAwareRouter`/`KVRouterActor` interfaces, replica tracking, an event plane, pre-routing tokenization, token-level request lifecycle tracking, and prefill/decode token-load-aware routing (#64084, #64085, #64097, #64224, #64327, #64400)\r\n* Switch the Ray Serve SGLang engine to the sglang `RayEngine`, reach control-plane parity, and support Ray Serve direct streaming by serving SGLang's native OpenAI app (#62888, #63021, #64611)\r\n* Add the MoRIIO KV-connector backend for prefill/decode disaggregation, with cross-node worker IP advertisement via a vLLM plugin (#63951, #64067)\r\n* Enable the `/classify` and `/pooling` endpoints in direct-streaming mode (#64494)\r\n* Add a Ray Serve LLM SGLang metrics dashboard (#64797, #65083)\r\n\r\n### 💫 Enhancements\r\n* Upgrade vLLM to 0.25.1 (#64082, #64483, #64697)\r\n* Delegate prefill/decode orchestration to the KV-connector backend and avoid double prompt tokenization in disaggregation (#63950, #64049)\r\n* Make `request.request_id` authoritative for the engine and stop clobbering an explicitly set request id with the Serve id (#63949, #64044)\r\n* Parse the direct-streaming routing payload for body-aware routers, and add direct streaming session-affinity tests (#64328, #63927, #64266)\r\n* Use `asyncio.create_task` instead of `ensure_future` in `KVRouterActor` (#64546)\r\n* Add a cluster filter to the Serve LLM Grafana dashboard (#64596)\r\n* Validate `accelerator_type` for CPU vLLM engine configs (#64235)\r\n* Use `model_id` rather than the remote URI as the cache identifier in `VLLMEngineConfig` (#64110)\r\n* Remove the Serve LLM config generator (#64075)\r\n\r\n### 🔨 Fixes\r\n* Fix malformed PromQL in the Serve LLM Grafana dashboard (#63893)\r\n\r\n### 📖 Documentation\r\n* Add a custom vLLM model guide and update the vLLM embedding model example (#64594, #64504)\r\n* Improve the Serve LLM docs landing pages, add a config reference, and document direct streaming and the ingress request router (#64076, #63860)\r\n* Fix 404s in the Serve LLM examples sidebar links (#64209)\r\n\r\n# Ray RLlib\r\n\r\n### 🎉 New Features\r\n* Add a pull-based `EnvRunnerStateServer` for async weight sync (#63849)\r\n* Expose the count of `EnvRunner`s dropped on `timeout_seconds` calls (#63493)\r\n\r\n### 💫 Enhancements\r\n* Upgrade the example vision stack to MobileNet v3 and remove MobileNet v2 torchhub usage (#64031, #64028)\r\n\r\n### 🔨 Fixes\r\n* Narrow `from_checkpoint` expectations to avoid silent failures (#63614)\r\n* Require `MultiRLModuleSpec.rl_module_specs` to be a dict (#64785)\r\n* Fix the perpetual pending state in offline evaluation during Tune (#64453)\r\n* Fix RLlib with Tune by reverting the `AlgorithmConfig.to_dict()` change for the new API stack (#63695, #64501)\r\n* Fix ONNX export under torch 2.9 by bumping `onnxscript` and migrating to the dynamo exporter (#64410, #64033)\r\n* Apply observation filters in `compute_single_action()` on the old API stack (#64088)\r\n\r\n### 📖 Documentation\r\n* Revamp the RL modules docs and speed up the docs tests (#64505)\r\n* Fix the outdated parametric-action-spaces link in `rllib-algorithms` (#63435)\r\n\r\n# Ray Core\r\n\r\n### 🎉 New Features\r\n* Add an embedded RocksDB storage backend for GCS fault tolerance (REP-64), selected via `RAY_gcs_storage=rocksdb` and `RAY_gcs_storage_path` (#63657)\r\n* Add a public API for topology-aware scheduling via `topology_strategy` (#63479, #63740)\r\n* Implement backpressure for async streaming generators, add actor-level backpressure config, and add `_num_objects_per_yield` (#64383, #63310, #63943)\r\n* Implement `RayTaskEventRecorder` as the first step of moving task events out of GCS (#64168)\r\n* Drain the node on `SIGTERM` before shutting down `ray start --block` (#64454)\r\n* Add `tpu.dispatch` syntax sugar and a JAX profiler for TPU (#64493, #62371)\r\n* Publicize `__ray_call__` as a `DeveloperAPI` for running closures on actors (#64367)\r\n* Add the NVIDIA RTX PRO 6000 accelerator type and update the AMD accelerator manager (#64428, #62477)\r\n* RDT: enable the `LIBFABRIC` backend for NIXL and upgrade NIXL to v1.2.0 (#62339, #63980)\r\n* Add an owner-driven `FreeLocalObjects` RPC and remove the original `FreeObjects` RPC and `ObjectEviction` pubsub (#63218, #63181)\r\n\r\n### 💫 Enhancements\r\n* Actor scalability: prefill the placement-group bundle cache at creation to remove an actor submission bottleneck, and construct gRPC metric objects once per process instead of per request (#64649, #64732)\r\n* Bound the GCS worker table by evicting old dead-worker entries, prioritized by exit type (#64612, #64729)\r\n* Batch object-manager `Pull` RPCs by destination node and read spilled object chunks in bulk instead of byte-by-byte (#64225, #63830)\r\n* Post all object pubsub publishes to the IO thread to relieve lock contention (#63983)\r\n* Autoscaler: improve v2 scheduler performance for large clusters, handle deleted node types in the metrics reporter, and support env-var configuration for log rotation (#64175, #64184, #63955)\r\n* Integrate `IOContextMonitor` into GCS, update its metrics, and exclude `ray_syncer_io_context` and `task_io_context` from health checks while raising the probe deadline to 30s (#63930, #63975, #64522, #64421)\r\n* Continue the `ClockInterface` migration in the core worker and dependency-inject `PeriodicalRunnerInterface` (#63956, #63994, #64061, #64029)\r\n* Enable `process_group_cleanup_enabled` by default and fix graceful-shutdown cleanup (#64407)\r\n* Make owned object metrics lazy, compute per-component memory usage in MiB, scope `prom_metrics_service_discovery.json` to the session dir, and set the OpenTelemetry resource identity (#64093, #63932, #63850, #63921)\r\n* Re-emit per-state task, actor, and placement group gauges every metrics tick and retain gauge observations for a TTL, so live series survive a missed scrape (#64524, #64633)\r\n* Add the GPU UUID to the labels of GPU metrics (#65113, #65134)\r\n* Log a hint to the driver when system overhead exceeds reserved system memory (#64270)\r\n* Validate explicit zero resource isolation overrides and move memory monitors into `common/monitor` (#63864, #64491)\r\n* Prioritize tasks over actors when killing under memory pressure (#64170)\r\n* Bail on `AdjustWorkerOomScore` read failure and clamp the score to `[-1000, 1000]` (#62713)\r\n* Cap the `runtime_env` `parse_uri` package name length to avoid `ENAMETOOLONG` (#64339)\r\n* Scope the raylet's forced GC to backstop actor handle cycle deadlocks (#63939)\r\n* Support joining fibers before exiting the fiber runner thread (#64405)\r\n* Internal cleanups: remove callbacks from `TaskToExecute`, split task/resource preparation utils out of `_raylet.pyx`, consolidate the GCS dedicated `io_context` policy, and rename `OnDemandBroadcasting` (#64182, #63088, #63931, #63855)\r\n\r\n### 🔨 Fixes\r\n* Fix a Python 3.14 async-actor memory leak by re-anchoring the stack (#65177)\r\n* Fix a deadlock between metric registration and `collect()` in `OpenTelemetryMetricRecorder` (#64946, #65094)\r\n* Fix multi-threaded actor graceful shutdown (#64019)\r\n* Streaming generator fixes: remove ref stream callbacks that caused a reconstruction hang, fail fast on a replay object-count mismatch, remove the implicit `__dealloc__()`, and honor `timeout_s` in the end-of-stream `ray.get` (#64581, #64394, #64333, #64014)\r\n* Fix pipelining of actor argument fetches while an actor task is running (#63079)\r\n* Fix a dangling reference in `GetSchedulingClassDescriptor` (#64707)\r\n* Fix a pgid cleanup leak in the job supervisor (#64746)\r\n* Fix the raylet drain path reading stale object store memory usage (#64415)\r\n* Avoid a GCS crash on Redis connection loss in `RedisResponseFn` (#64204)\r\n* Fix the actor `working_dir` being overridden by the job-level `py_driver_sys_path` (#63756)\r\n* Fix `RAY_CHECK` failures caused by double `ray.cancel()` and keyboard interrupts (#63663)\r\n* Fix `event_logger` and `export_event_logger` to flush all handlers safely (#63947)\r\n* Default `TaskProfileEvent.extra_data_` to `{}` to avoid a JSON decoding error in the State API, and normalize the `cmdline` field in the `StatsPayload` schema (#64589, #64286)\r\n* Autoscaler v2: fix `ALLOCATION_TIMEOUT` worker replacement ordering and the `RAY_STOP_REQUESTED` → `RAY_RUNNING` fallback when drain has succeeded (#63815, #63424)\r\n* Jobs: replace an `assert` with `RuntimeError` in `put_status` and avoid mutating `runtime_env` during submission (#64569, #63990)\r\n* Improve the error message when `RAY_ADDRESS` is set to an HTTP address (#64180)\r\n* Define `WIN32_LEAN_AND_MEAN` globally for Windows builds (#64361)\r\n* Wait for subprocesses to terminate in `ray.shutdown()` (#63655)\r\n* Fix the per-process GPU memory utilization dashboard stat (#61412)\r\n\r\n### 📖 Documentation\r\n* Update the OOM documentation to use resource isolation mode (#63652)\r\n* Clarify the KubeRay autoscaler `restartPolicy` requirement (#64855)\r\n* Document the `name` parameter for `task.options()` (#63450)\r\n* Enforce Doxygen documentation style for coding agents and remove Ray Core docstring ignores from pydoclint (#64188, #63639)\r\n\r\n# Dashboard\r\n\r\n### 🎉 New Features\r\n* Implement the frontend UI for Platform Events (#63332)\r\n\r\n### 💫 Enhancements\r\n* Link workers to actor detail pages and handle nil IDs (#63795)\r\n* Support a Grafana Cloud metrics fallback (#64138)\r\n* Format `RuntimeEnvState.creation_time_ms` as a duration (#64207)\r\n* Diagnose dashboard-agent event-loop stalls (#64436)\r\n* Log errors when job submission fails in `JobHead` and stop configuring the root logger on module import (#64443, #64463)\r\n\r\n### 🔨 Fixes\r\n* Fix local file inclusion in the `/logs` API endpoint by rejecting absolute paths and `..` components in `LogAgentV1Grpc.ListLogs()` (#64701)\r\n* Fix TPU metrics (#63998)\r\n* Fix task grouping by custom task name in the Dashboard API (#63820)\r\n* Fix an \"automaticaly\" typo in the Grafana dashboard descriptions (#64614)\r\n\r\n# Ray Wheels and Images\r\n\r\n* Build and publish Python 3.14 wheels and images, add py3.14 TPU base deps, refresh the py3.14 locks, and add a py3.14 smoke release test (#64754, #64750, #64857, #64938).\r\n* Build and publish `cu130` variants for the `ray` and `ray-extra` images (#63972, #63801).\r\n* Add a py3.13 `ray-ml` image with `torchft-nightly` (#63587).\r\n* Add `ray-haproxy` to the `ray[serve]` extra and base requirements, and bump it to 2.8.25 for CVE-2026-55203/55204 (#64141, #64430).\r\n* Unify `requirements_compiled` across Python versions and upgrade the HuggingFace stack to `datasets` 4.x (#64257, #64054).\r\n* Fix the vendored RocksDB build: use Make instead of Ninja to repair aarch64 core builds, drop `-Wl,-pie` from the TSAN link flags, and silence TSAN false-positive races (#64748, #64917, #64937, #64759).\r\n\r\n# Documentation\r\n\r\n* Added `AGENTS.md` with the AI-assisted contribution policy, routed `.claude/CLAUDE.md` to it, and added a documentation style and grammar guide (#64419, #64518).\r\n* Converted the ray-contribute developer guides from RST to MyST, soft-wrapped prose across `doc/source`, and added an rst-to-myst conversion skill (#64100, #64111, #64115, #64136, #64259, #64279, #64135).\r\n* Added a unified APIs navigation section, generated API stubs without a full doc build, and greened the API-doc consistency check with reverse/dedup policies and a split whitelist (#64387, #64423, #64420, #64783, #64786, #64808, #64818).\r\n* Added curated page descriptions for nav pages (SEO and `llms.txt`) and a custom 404 page with absolute URLs (#64330, #64603).\r\n* Built Read the Docs incrementally from the doc build cache, repaired cache production, and skipped RtD PR builds for code-only PRs (#64277, #64414, #64482, #64599, #64547, #64480).\r\n* Hardened doc template fetches: pinned to specific build ids, guarded zip extraction against path traversal, failed the build loudly on fetch failure, and removed outdated templates now synced at build time (#64637, #64669, #64629, #64635, #63971).\r\n* Upgraded Sphinx to 8.2.3 on Python 3.11, decoupled Sphinx from the test/CI dependency stack, and fixed moved intersphinx inventory URLs (#64070, #63962, #64516).\r\n* KubeRay: added an IPPR user guide, documented RayCronJob timezone support and autoscaler command overwrite, updated the RayJob agent sandbox docs, and refreshed the Serve High Throughput guide for Ray 2.56 (#63212, #64444, #63627, #64460, #64144).\r\n* Added notebook tests for the lightweight Ray Core examples and recorded the Train example notebooks that are intentionally untested (#64313, #64318).\r\n* Refreshed the ecosystem page, added a Ray + Agent Sandbox example, and renamed the AI chat widget to \"Ray Docs\" (#64156, #64047, #64351).\r\n\r\n# Thanks\r\n\r\nMany thanks to all those who contributed to this release!\r\n\r\n@justinvyu, @neuyilan, @bveeramani, @abhishekverma-ray, @dstrodtman, @yinli-systems, @Truc54, @tanmayrauth, @ArchishmanSengupta, @yuhuan130, @skpark-rh, @shaun0927, @ps2181, @edoakes, @htvien, @xinyuangui2, @owenowenisme, @ronny-anyscale, @nadongjun, @LeMinhNhat2901, @kevin85421, @akyang-anyscale, @jeffreywang88, @sai-miduthuri, @robertnishihara, @andrewsykim, @iamjustinhsu, @leewyang, @marwan116, @MortalHappiness, @fscnick, @ayushk7102, @ArturNiederfahrenhorst, @rayhhome, @nh-atuan, @kimngoc280105, @TimothySeah, @zyxue, @antoine-galataud, @omkar-334, @alimaazamat, @jhasm, @ShockYoungCHN, @Kunchd, @richardliaw, @xyuzh, @linh285, @shorbaji, @ans9868, @LuciferYang, @joaquinhuigomez, @liujp, @ShuChenLin, @johntaylor-cell, @vickytsang, @abrarsheikh, @saivedant169, @rmhowe425, @kyuds, @kunling-anyscale, @fuxi611, @karticam, @enginarslan1, @spencer-p, @MengjinYan, @AyushKashyapII, @dragongu, @Sparks0219, @rueian, @praneethkaturi, @dinhxuanvu, @lonexreb, @AarryaSaraf, @Junyi-Wang-6, @saschwartz, @odncode, @vicentefb, @JasonLi1909, @coqian, @kouroshHakha, @daiping8, @pseudo-rnd-thoughts, @wanadzhar913, @HungHiHung10, @goutamvenkat-anyscale, @LeThienTrong, @alexandrplashchinsky, @raulchen, @ryankert01, @jiangxt2, @HirokiNariyoshi, @Yicheng-Lu-llll, @martinlhw, @richabanker, @aaronscalene, @SohamRajpure, @tvaucher, @Jade07-1, @eicherseiji, @dayshah, @Kropiunig, @machichima, @harshit-anyscale, @elliot-barn, @liulehui, @OneSizeFitsQuorum, @alexeykudinkin, @sampan-s-nayak, @prince8273, @jpatra72",
          "highlights": [
            "Ray Data: In this Ray release, we've enabled DataSourceV2 by default (#64821), so readparquet and friends use the new scan/listing infrastructure with row-group-aware chunking and predicate splitting. Hash Shuffle V2 eliminates the aggregat",
            "HashShuffleV2 supports join (#63598, #64538, #64687). This lets shuffles reuse standard map/reduce scheduling, backpressure, and resource accounting.",
            "Ray Serve: The HAProxy ingress is now distributed as the ray-haproxy PyPI package instead of being compiled into images, and it is the default HAProxy binary (#64141, #64163, #64164). We've also added gRPC support to the HAProxy direct-ingr",
            "Ray Core: We've added an embedded RocksDB storage backend for GCS fault tolerance (REP-64), selectable with RAYgcsstorage=rocksdb and RAYgcsstoragepath (#63657). GCS fault tolerance no longer requires an external Redis instance. We've also ",
            "🎉 New Features",
            "Enable DataSourceV2 by default via DataContext.usedatasourcev2 (#64821)"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "ray-project/ray",
            "kind": "milestone",
            "title": "Infra Backlog",
            "url": "https://github.com/ray-project/ray/milestone/11",
            "description": "P1 issues: https://github.com/ray-project/ray/issues?q=is%3Aopen+is%3Aissue+milestone%3A\"Infra+Backlog\"+label%3AP1",
            "progress": 95,
            "openIssues": 20,
            "closedIssues": 378
          },
          {
            "repository": "ray-project/ray",
            "kind": "milestone",
            "title": "Packaging and Dependency Management",
            "url": "https://github.com/ray-project/ray/milestone/36",
            "description": "P1 Issues: https://github.com/ray-project/ray/issues?q=is%3Aopen+is%3Aissue+milestone%3A\"Packaging+and+Dependency+Management\"+label%3AP1\r\n",
            "progress": 79,
            "openIssues": 8,
            "closedIssues": 31
          },
          {
            "repository": "ray-project/ray",
            "kind": "milestone",
            "title": "[serve] Support Java as language",
            "url": "https://github.com/ray-project/ray/milestone/45",
            "description": "",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 18
          },
          {
            "repository": "ray-project/ray",
            "kind": "milestone",
            "title": "runtime_env backlog",
            "url": "https://github.com/ray-project/ray/milestone/48",
            "description": "",
            "progress": 94,
            "openIssues": 9,
            "closedIssues": 137
          },
          {
            "repository": "ray-project/ray",
            "kind": "milestone",
            "title": "Workflows after-alpha",
            "url": "https://github.com/ray-project/ray/milestone/52",
            "description": "",
            "progress": 99,
            "openIssues": 1,
            "closedIssues": 78
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/ai-infrastructure/ray.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "datadog-agent",
        "repository": "DataDog/datadog-agent",
        "name": "Datadog Agent",
        "keywords": [
          "Datadog Agent"
        ]
      },
      "group": {
        "id": "observability",
        "name": "Observability & Reliability"
      },
      "news": {
        "repository": "DataDog/datadog-agent",
        "collectedAt": "2026-08-13T18:02:00.791289+00:00",
        "latestRelease": {
          "repository": "DataDog/datadog-agent",
          "tag": "7.82.1",
          "title": "7.82.1",
          "url": "https://github.com/DataDog/datadog-agent/releases/tag/7.82.1",
          "publishedAt": "2026-08-10T15:37:55Z",
          "notes": "# Agent\r\n\r\n### Prelude\r\n\r\nReleased on: 2026-08-11\r\n\r\n- Please refer to the [7.82.1 tag on integrations-core](https://github.com/DataDog/integrations-core/blob/master/AGENT_CHANGELOG.md#datadog-agent-version-7821) for the list of changes on the Core Checks\r\n\r\n### Bug Fixes\r\n\r\n- Windows: Fixed an issue where an explicit `DDAGENTUSER_KEEP_RIGHTS` or `DDAGENTUSER_NAME` value passed as an install argument to a Fleet Automation-triggered Windows Agent install/upgrade could be silently overridden by a stale fallback value (respectively from the registry and from the running service account).\r\n- Fix an issue where GPU monitoring could trigger a kernel panic on multi-GPU nodes with Hopper/Blackwell GPUs.\r\n\r\n# Datadog Cluster Agent\r\n\r\n### Prelude\r\n\r\nReleased on: 2026-08-11 Pinned to datadog-agent v7.82.1: [CHANGELOG](https://github.com/DataDog/datadog-agent/blob/main/CHANGELOG.rst#7821).\r\n",
          "highlights": [
            "Prelude",
            "Please refer to the 7.82.1 tag on integrations-core for the list of changes on the Core Checks",
            "Bug Fixes",
            "Windows: Fixed an issue where an explicit DDAGENTUSERKEEPRIGHTS or DDAGENTUSERNAME value passed as an install argument to a Fleet Automation-triggered Windows Agent install/upgrade could be silently overridden by a stale fallback value (res",
            "Fix an issue where GPU monitoring could trigger a kernel panic on multi-GPU nodes with Hopper/Blackwell GPUs."
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "DataDog/datadog-agent",
            "kind": "milestone",
            "title": "Triage",
            "url": "https://github.com/DataDog/datadog-agent/milestone/22",
            "description": "",
            "progress": 100,
            "openIssues": 8,
            "closedIssues": 2826
          },
          {
            "repository": "DataDog/datadog-agent",
            "kind": "milestone",
            "title": "Release Maintenance",
            "url": "https://github.com/DataDog/datadog-agent/milestone/127",
            "description": "For PRs which aim at fixing release branch pipelines, not tied to a specific Agent release.",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 46
          },
          {
            "repository": "DataDog/datadog-agent",
            "kind": "milestone",
            "title": "no-mile",
            "url": "https://github.com/DataDog/datadog-agent/milestone/180",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 17
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/observability/datadog-agent.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "sglang",
        "repository": "sgl-project/sglang",
        "name": "SGLang",
        "keywords": [
          "SGLang"
        ]
      },
      "group": {
        "id": "ai-infrastructure",
        "name": "AI Infrastructure"
      },
      "news": {
        "repository": "sgl-project/sglang",
        "collectedAt": "2026-08-13T18:02:08.970665+00:00",
        "latestRelease": {
          "repository": "sgl-project/sglang",
          "tag": "v0.5.17",
          "title": "v0.5.17",
          "url": "https://github.com/sgl-project/sglang/releases/tag/v0.5.17",
          "publishedAt": "2026-08-08T00:19:16Z",
          "notes": "# Highlights\r\n\r\n*582 PRs from 194 contributors.*\r\n\r\n**Kimi K3 day-0 support**: A 2.8T-parameter multimodal LatentMoE (896 experts, top-16, routed in a 3584-dim latent space) with a 1M-token context, 69 KDA linear-attention layers interleaved with 24 MLA layers, and a MoonViT3d vision tower, shipping as a native MXFP4 checkpoint. SGLang serves it from day 0 with DCP, DSpark speculative decoding, chunked-prefill PP with TP decode, KDA-aware prefix caching, HiCache L2 over DCP, LoRA on the quantized weights, and reasoning, tool-call and OpenAI-compatible serving, verified on NVIDIA GB300 and AMD MI35x ([#32541](https://github.com/sgl-project/sglang/pull/32541), [#32828](https://github.com/sgl-project/sglang/pull/32828), [#32890](https://github.com/sgl-project/sglang/pull/32890), [#33025](https://github.com/sgl-project/sglang/pull/33025), [#33112](https://github.com/sgl-project/sglang/pull/33112), [blog](https://www.lmsys.org/blog/2026-07-27-kimi-k3-day0-support), [cookbook](https://docs.sglang.io/cookbook/autoregressive/Moonshotai/Kimi-K3), [roadmap](https://github.com/sgl-project/sglang/issues/32607)).\r\n\r\n**MiniMax-H3 day-0 support**: MiniMax's video generation model that produces a video and a synchronized stereo audio track in one request, served natively on SGLang-Diffusion across all three public task profiles: text-to-video-and-audio (`t2va`), first/last-frame conditioning (`fl2va`), and image/video/audio reference conditioning (`ref2va`, which also covers video-to-video). Verified on B200 (TP2 + Ulysses4), H100 (TP2 + Ulysses2), AMD MI300X and MI355X (Ulysses1/2/4/8), and 2x RTX 5090 with layerwise offload ([#33275](https://github.com/sgl-project/sglang/pull/33275), [cookbook](https://docs.sglang.io/cookbook/diffusion/MiniMax/MiniMax-H3)).\r\n\r\n**Other new models added**: [EmbeddingGemma](https://docs.sglang.io/cookbook/autoregressive/Google/EmbeddingGemma) and [LFM2.5](https://docs.sglang.io/cookbook/autoregressive/LiquidAI/LFM2.5) embedding models, nvidia/MiniMax-M3-NVFP4, plus cookbook recipes for Poolside's [Laguna-S-2.1](https://docs.sglang.io/cookbook/autoregressive/Poolside/Laguna-S-2.1) family and [Inkling-Small](https://docs.sglang.io/cookbook/autoregressive/ThinkingMachines/Inkling-Small).\r\n\r\n**Initial support for the Rust frontend**: Migrates the front half of the server, everything from network ingress up to the point a tokenized request is handed to the GPU scheduler, from Python to a multi-threaded Rust implementation ([#29799](https://github.com/sgl-project/sglang/pull/29799)).\r\n\r\n**DCP communication backends and q-replicate (Helix)**: The DeepSeek-MLA decode context-parallel path gains pluggable comm backends. `a2a` exchanges packed attention output plus fp32 LSE in a single NCCL collective per layer, with fp8 KV carried as uint8 byte transport; `fi_a2a` delegates the cross-rank exchange to the FlashInfer MNNVL kernel on GB200. `--dcp-replicate-q-proj` projects full-head Q locally and skips the per-layer Q head-dim all-gather. Select with `--dcp-comm-backend {ag_rs, a2a, fi_a2a}` ([#21637](https://github.com/sgl-project/sglang/pull/21637)).\r\n\r\n**DWDP for MoE prefill**: A new prefill parallelism strategy that prefetches peer expert weights over NVLink P2P and computes all experts locally, removing EP all-to-all token dispatch. On 4x B200 with gpt-oss-120b, prefill-only, DWDP4 reaches **1.92x over DEP4** at MNT 32K / ISL 32K, and **506K vs 329K tok/s (1.54x)** at saturation (CONC=128, ISL=8K). Enable with `--dwdp-size`; the authors mark it early-development ([#29778](https://github.com/sgl-project/sglang/pull/29778)).\r\n\r\n**Session-reference-aware Unified Radix Cache**: For agentic and RL-rollout workloads, requests can carry a stable `session_id` so eviction knows which prefixes an active session still references, instead of evicting purely by cache policy. Release the references with `/close_session`. Opt in with `--enable-session-radix-cache` ([#29173](https://github.com/sgl-project/sglang/pull/29173)).\r\n\r\n**SM90 FP8 MegaMoE for DeepSeek-V4**: Adds the DeepGEMM MegaMoE A2A path on SM90 for DeepSeek-V4-Flash/Pro FP8, including the pre-dispatch JIT kernel and FP8 expert weight preparation. Guarded behind `SGLANG_OPT_USE_DEEPGEMM_MEGA_MOE=1` ([#29016](https://github.com/sgl-project/sglang/pull/29016)).\r\n\r\n**Faster large-MoE model loading**: Oversized or non-contiguous CPU weight views were driving pathological H2D transfers, with DeepSeek-V4-Pro TP8 spending 27 to 32 minutes in H2D on some ranks. Copying those views into contiguous storage before H2D cuts full model loading from about **35 minutes to 6m20s (5.6x)**, and GPT-OSS-20B BF16 from **545s to 70s (7.8x)**, with Qwen3.5-397B measured at 1.93x to 2.3x. Opt in with `SGLANG_MOE_COPY_WEIGHT_VIEWS_BEFORE_H2D`, off by default ([#32315](https://github.com/sgl-project/sglang/pull/32315)).\r\n\r\n**Lower DeepSeek-V4 memory on AMD**: Removing unnecessary expert padding drops MI355X FP4 MoE model weights from **159.07 GB to 112.36 GB**, and bringing the HIP compress-state pool into the memory_saver KV_CACHE region lets colocated RL reclaim it, cutting the measured training-phase footprint from about **143 GiB to 87 GiB per GPU** ([#31450](https://github.com/sgl-project/sglang/pull/31450), [#31747](https://github.com/sgl-project/sglang/pull/31747)).\r\n\r\n**Faster engine recovery**: Large-model restarts cost 3 to 6+ minutes today, about 6.5 minutes for Qwen3-235B FP8 on 4 GPUs, because weights reload from storage and CUDA graphs recapture. A weight-cache daemon holds weights per GPU so a restarting engine can recover from cache instead ([#27139](https://github.com/sgl-project/sglang/pull/27139)).\r\n\r\n**Lower host overhead in hybrid-linear MTP decode**: Under spec-v2 overlap scheduling each decode step runs draft, verify and extend CUDA graphs, and the eager seams between them become GPU idle time at low concurrency. This trims that host work so the host stays off the critical path ([#32219](https://github.com/sgl-project/sglang/pull/32219)).\r\n\r\n**Dependencies**: flashinfer 0.6.15.post1 ([#31927](https://github.com/sgl-project/sglang/pull/31927)), sgl-deep-gemm 0.1.5.post1 ([#32345](https://github.com/sgl-project/sglang/pull/32345), [#33143](https://github.com/sgl-project/sglang/pull/33143)), helion 1.4 ([#32562](https://github.com/sgl-project/sglang/pull/32562)), mooncake 0.3.12.post1 ([#32302](https://github.com/sgl-project/sglang/pull/32302)), dynamo-tokenizers 1.7.0 ([#32981](https://github.com/sgl-project/sglang/pull/32981)). PyTorch stays at 2.11.0 and the CUDA base image at 13.0.1.\r\n\r\n*Full release notes by category below; breaking changes and known issues are at the end.*\r\n\r\n## New Model Support\r\n\r\n| Model | Type | PRs | Cookbook |\r\n|---|---|---|---|\r\n| Kimi K3 | Autoregressive (Multimodal) | [#32541](https://github.com/sgl-project/sglang/pull/32541), [#32828](https://github.com/sgl-project/sglang/pull/32828), [#32890](https://github.com/sgl-project/sglang/pull/32890), [#33025](https://github.com/sgl-project/sglang/pull/33025) | [link](https://docs.sglang.io/cookbook/autoregressive/Moonshotai/Kimi-K3) |\r\n| MiniMax-H3 | Diffusion | [#33275](https://github.com/sgl-project/sglang/pull/33275) | [link](https://docs.sglang.io/cookbook/diffusion/MiniMax/MiniMax-H3) |\r\n| MiniMax-M3-NVFP4 | Autoregressive | [#31989](https://github.com/sgl-project/sglang/pull/31989) | |\r\n| EmbeddingGemma | Autoregressive (Embedding) | [#32375](https://github.com/sgl-project/sglang/pull/32375), [#32383](https://github.com/sgl-project/sglang/pull/32383) | [link](https://docs.sglang.io/cookbook/autoregressive/Google/EmbeddingGemma) |\r\n| LFM2.5 | Autoregressive (Embedding) | [#28691](https://github.com/sgl-project/sglang/pull/28691) | [link](https://docs.sglang.io/cookbook/autoregressive/LiquidAI/LFM2.5) |\r\n\r\n## Kimi K3\r\n\r\n* [Kimi] Support kimi-k3: [#32541](https://github.com/sgl-project/sglang/pull/32541) ⭐\r\n* [Kimi] Support DCP + DSpark (ported from kimi-k3 branch): [#32828](https://github.com/sgl-project/sglang/pull/32828)\r\n* [Kimi K3] Add reasoning, tool-call, and OpenAI serving support: [#33025](https://github.com/sgl-project/sglang/pull/33025)\r\n* feat(kernels): port standalone Kimi K3 kernels: [#32890](https://github.com/sgl-project/sglang/pull/32890)\r\n* [Feat] DCP + HiCache L2 Support (ported from kimi-k3): [#33112](https://github.com/sgl-project/sglang/pull/33112)\r\n* Replace Kimi K3 DeepGEMM patch with 0.1.5.post1: [#33143](https://github.com/sgl-project/sglang/pull/33143)\r\n* docker: add Kimi K3 images: [#32760](https://github.com/sgl-project/sglang/pull/32760)\r\n\r\n## Rust Server\r\n\r\nA native Rust serving layer: tokenizer manager, ingress validation and egress, an OpenAI-compatible API server, and PD disaggregation support, shipped as prebuilt release artifacts.\r\n\r\n* support rust sglang server: [#29799](https://github.com/sgl-project/sglang/pull/29799)\r\n* create rust workspace: [#32014](https://github.com/sgl-project/sglang/pull/32014)\r\n* init sglang rust server project: [#32256](https://github.com/sgl-project/sglang/pull/32256)\r\n* add the rust server tokenizer, detokenizer, and egress modules: [#32872](https://github.com/sgl-project/sglang/pull/32872)\r\n* add the rust server ingress request validation and api server common types: [#32873](https://github.com/sgl-project/sglang/pull/32873)\r\n* add the rust server ingress tests, guard, and submit modules: [#32874](https://github.com/sgl-project/sglang/pull/32874)\r\n* add the rust server api frame codec and http server entry: [#32875](https://github.com/sgl-project/sglang/pull/32875)\r\n* add the rust server native api handlers and runtime threads: [#32876](https://github.com/sgl-project/sglang/pull/32876)\r\n* wire the rust server modules into lib, runtime, and tokenizer manager: [#32877](https://github.com/sgl-project/sglang/pull/32877)\r\n* sglang rust server tokenizer manager, ring and runtime: [#32358](https://github.com/sgl-project/sglang/pull/32358)\r\n* feat: rust sglang server openai apis: [#33103](https://github.com/sgl-project/sglang/pull/33103)\r\n* [rust-server] PD disaggregation support: [#33125](https://github.com/sgl-project/sglang/pull/33125)\r\n* [rust-server] Reland: fix TCP-layer TTFT stalls (#33026): [#33269](https://github.com/sgl-project/sglang/pull/33269)\r\n* rust server build release artifacts: [#33096](https://github.com/sgl-project/sglang/pull/33096)\r\n\r\n## Speculative Decoding\r\n\r\n* [MTP] Cut spec-v2 host-seam overhead in hybrid-linear MTP decode: [#32219](https://github.com/sgl-project/sglang/pull/32219) ⭐\r\n* [KDA] Add target_verify support for speculative decoding: [#26888](https://github.com/sgl-project/sglang/pull/26888)\r\n* [DSPARK] Grammar-constrained decoding, incl. tool_choice=auto: [#31753](https://github.com/sgl-project/sglang/pull/31753)\r\n* [DFLASH] Support grammar-constrained decoding in speculative verify: [#30096](https://github.com/sgl-project/sglang/pull/30096)\r\n* [Spec] Enable grammar overlap scheduling for STANDALONE speculative decoding: [#32110](https://github.com/sgl-project/sglang/pull/32110)\r\n* Overlap grammar (constrained decoding) with speculative decode verify: [#31488](https://github.com/sgl-project/sglang/pull/31488)\r\n* [Spec] Support sampling in the DSPARK graph-folded draft proposal: [#33298](https://github.com/sgl-project/sglang/pull/33298)\r\n* [Spec] Add `trtllm_mha` support for Gemma 4 MTP draft attention backend: [#25545](https://github.com/sgl-project/sglang/pull/25545)\r\n* [Perf] Fast-path chain-style draft token organization in multi-layer EAGLE: [#32887](https://github.com/sgl-project/sglang/pull/32887)\r\n* [Perf] Skip the target-verify tree mask fill when the backend never reads it: [#32886](https://github.com/sgl-project/sglang/pull/32886)\r\n* [Spec] Compact the target-verify mask when nothing reads it: [#32920](https://github.com/sgl-project/sglang/pull/32920)\r\n* [Perf] Fold dspark dense draft embedding into the draft graph via forward_embed: [#31985](https://github.com/sgl-project/sglang/pull/31985)\r\n* [Perf] Stack dspark dense draft per-layer ctx KV projection into one GEMM: [#31986](https://github.com/sgl-project/sglang/pull/31986)\r\n* [Mamba] Support speculative decoding with extra_buffer_lazy: [#30437](https://github.com/sgl-project/sglang/pull/30437)\r\n* [gdn] fused replayssm ring write into flashinfer gdn mtp verify kernel: [#33102](https://github.com/sgl-project/sglang/pull/33102)\r\n* [gdn] support replayssm with extra buffer: [#32692](https://github.com/sgl-project/sglang/pull/32692)\r\n* [6/6][kimi-deterministic] Use deterministic seeded coins for EAGLE rejection sampling: [#30822](https://github.com/sgl-project/sglang/pull/30822)\r\n* [Speculative Decoding] Fix GPT-OSS EAGLE3 hidden states: [#32334](https://github.com/sgl-project/sglang/pull/32334)\r\n* [EAGLE] Handle NaNs in fused top-k=1: [#32396](https://github.com/sgl-project/sglang/pull/32396)\r\n* Pack aux hidden states into a preallocated buffer: [#28956](https://github.com/sgl-project/sglang/pull/28956)\r\n* Support SGLANG_SIMULATE_ACC_LEN for DFLASH: [#32595](https://github.com/sgl-project/sglang/pull/32595)\r\n* Fix stop boundaries for grammar-constrained speculative decoding: [#31738](https://github.com/sgl-project/sglang/pull/31738)\r\n* Fix DSpark loading for hybrid DSV4 NVFP4: [#33276](https://github.com/sgl-project/sglang/pull/33276)\r\n* Fix DSpark and DP/EP: [#33098](https://github.com/sgl-project/sglang/pull/33098)\r\n* [Fix] Clamp degenerate all-sentinel draft rows to token 0 in dspark `_online_combine_kernel`: [#32277](https://github.com/sgl-project/sglang/pull/32277)\r\n* [Fix] Bound FULL_MASK verify-mask reuse by the captured max_bs: [#33127](https://github.com/sgl-project/sglang/pull/33127)\r\n\r\n## Piecewise & Breakable CUDA Graph\r\n\r\n* Turn on breakable prefill cuda graph for dp attention by default: [#31682](https://github.com/sgl-project/sglang/pull/31682)\r\n* [FullCG] Support chunked cached-prefix prefill: [#30825](https://github.com/sgl-project/sglang/pull/30825)\r\n* [FullCG] Preserve attention LSE through the custom-op boundary: [#31050](https://github.com/sgl-project/sglang/pull/31050)\r\n* [BCG][3/N] Enable bcg on dsa & deepep a2a backend: [#31987](https://github.com/sgl-project/sglang/pull/31987)\r\n* [BCG][4/N] Enable bcg on megamoe & flashinfer a2a backend: [#33150](https://github.com/sgl-project/sglang/pull/33150)\r\n* [CUDA Graph] Allow custom decode graph runners: [#33553](https://github.com/sgl-project/sglang/pull/33553)\r\n* [cuda_graph] Gate breakable-CG capture_inputs retention to DP-gather paths: [#32678](https://github.com/sgl-project/sglang/pull/32678)\r\n* Enable multimodal prefill BCG for VL and audio models: [#30872](https://github.com/sgl-project/sglang/pull/30872)\r\n* Enable post-capture KV sizing with DP attention: [#33427](https://github.com/sgl-project/sglang/pull/33427)\r\n* fix(server): capture legal multi-request prefill CUDA graph batches: [#30206](https://github.com/sgl-project/sglang/pull/30206)\r\n* Fix BCG circular import during server startup: [#33371](https://github.com/sgl-project/sglang/pull/33371)\r\n\r\n## Attention Backends\r\n\r\n* [Attention Backend] Add HPC-Ops attention backend: [#30540](https://github.com/sgl-project/sglang/pull/30540) ([blog](https://www.lmsys.org/blog/2026-08-07-hpc-ops-sglang))\r\n* [Attention Backend] Extend hpc_ops dynamic-scheduled decode to bf16: [#32304](https://github.com/sgl-project/sglang/pull/32304)\r\n* [DSA] Q8KV8 FP8 Sparse Prefill on GLM-5.2 & DeepSeek-V3.2: Q8-Path & Shared-Path Optimizations: [#31888](https://github.com/sgl-project/sglang/pull/31888)\r\n* [unified-memory] Support MLA-hybrid-Mamba (Kimi-Linear) on the Triton backend: [#32971](https://github.com/sgl-project/sglang/pull/32971)\r\n* [unified-memory] Let Kimi-Linear use the paged MLA attention backends: [#32972](https://github.com/sgl-project/sglang/pull/32972)\r\n* [unified-memory] Support fa3, the default MLA backend on pre-Blackwell hosts: [#33046](https://github.com/sgl-project/sglang/pull/33046)\r\n* feat(inkling): migrate short convs onto the ShortConv attention backend: [#33023](https://github.com/sgl-project/sglang/pull/33023)\r\n* [GDN] Support FlashInfer GDN prefill with extra-buffer radix cache: [#29735](https://github.com/sgl-project/sglang/pull/29735)\r\n* fix(gdn): skip the -1 padding sentinel in the chunked extend kernel: [#33810](https://github.com/sgl-project/sglang/pull/33810)\r\n* [Kernel] Fuse KV-cache writes for asymmetric K/V (head_dim != v_head_dim): [#32813](https://github.com/sgl-project/sglang/pull/32813)\r\n* [Perf][DSA] Pass topk_length to flash_mla_sparse_fwd in the sparse attention path: [#31128](https://github.com/sgl-project/sglang/pull/31128)\r\n* [Perf] Skip page-table columns past kv length in DSA draft-extend metadata kernel: [#31981](https://github.com/sgl-project/sglang/pull/31981)\r\n* [Perf] Skip blocks past per-request live length in full-width Triton kernels: [#32109](https://github.com/sgl-project/sglang/pull/32109)\r\n* Support a same-size mixed q dtype in the fused RoPE kernels: [#31834](https://github.com/sgl-project/sglang/pull/31834)\r\n* Avoid TRTLLM prefill output copy: [#33306](https://github.com/sgl-project/sglang/pull/33306)\r\n* Fix attention backends for models with per-layer head counts (num_attention_heads_per_layer): [#32625](https://github.com/sgl-project/sglang/pull/32625)\r\n* [Fix] Route asymmetric-KV models to fa4 on SM100 and pin MiMoV2 FP8 MoE to flashinfer_trtllm: [#32818](https://github.com/sgl-project/sglang/pull/32818)\r\n* [Fix] Fix trtllm_mla backend + fp8 kv cache without rope: [#32181](https://github.com/sgl-project/sglang/pull/32181)\r\n* [Fix] Support ENCODER_ONLY target-verify in the trtllm_mha backend: [#32178](https://github.com/sgl-project/sglang/pull/32178)\r\n* [Fix] missing max_context_len on HybridAttnBackend: [#32690](https://github.com/sgl-project/sglang/pull/32690)\r\n* fix(dsa): correct packed FlashInfer top-k and backend selection semantics: [#32490](https://github.com/sgl-project/sglang/pull/32490)\r\n* fix(dsa): fail fast on fp8_e4m3 KV with tilelang DSA backend on CUDA: [#31346](https://github.com/sgl-project/sglang/pull/31346)\r\n* [KDA] Fix mixed exponent bases in Triton chunk prefill: [#31904](https://github.com/sgl-project/sglang/pull/31904)\r\n* [FIX] Prevent Lightning Attention extra-buffer mamba state corruption: [#29973](https://github.com/sgl-project/sglang/pull/29973)\r\n* Add configurable FlashInfer autotune skips: [#31389](https://github.com/sgl-project/sglang/pull/31389)\r\n* Fix FlashInfer MNNVL workspace size check: [#32318](https://github.com/sgl-project/sglang/pull/32318)\r\n\r\n## MoE & Expert Parallelism\r\n\r\n* [Feature] Add DWDP (Distributed Weight Data Parallelism) for MoE prefill: [#29778](https://github.com/sgl-project/sglang/pull/29778) ⭐\r\n* Add SM90 FP8 MegaMoE support for DeepSeek-V4: [#29016](https://github.com/sgl-project/sglang/pull/29016) ⭐\r\n* [MoE Backend] Add HPC-Ops FP8 MoE runner backend: [#30541](https://github.com/sgl-project/sglang/pull/30541) ([blog](https://www.lmsys.org/blog/2026-08-07-hpc-ops-sglang))\r\n* Integrate pplx a2a backend: [#30756](https://github.com/sgl-project/sglang/pull/30756)\r\n* Support DeepGEMM for standard MoE dispatch: [#33128](https://github.com/sgl-project/sglang/pull/33128)\r\n* [DSV4] Support megamoe for CP: [#29569](https://github.com/sgl-project/sglang/pull/29569)\r\n* [MoE] Make DeepEP auto serve flashinfer_cutedsl FP4 (coerce to low_latency) + guard: [#29523](https://github.com/sgl-project/sglang/pull/29523)\r\n* [2/N] elastic-ep: Enable EPLB after scale-up: [#30553](https://github.com/sgl-project/sglang/pull/30553)\r\n* [Elastic EP] Centralize Mooncake PG configuration: [#31708](https://github.com/sgl-project/sglang/pull/31708)\r\n* [Elastic EP] Fix recovery lifecycle and add manual coverage: [#31744](https://github.com/sgl-project/sglang/pull/31744)\r\n* perf: speed up marlin moe with occupancy-aware launch specialization: [#31552](https://github.com/sgl-project/sglang/pull/31552)\r\n* Migrate CompressedTensorsW4A4Nvfp4MoE TRT-LLM path onto MoeRunner: [#32248](https://github.com/sgl-project/sglang/pull/32248)\r\n* Load initial expert location metadata on CPU: [#32435](https://github.com/sgl-project/sglang/pull/32435)\r\n* Fix silently wrong EPLB output with --moe-a2a-backend none (rank-invariant dispatch): [#32962](https://github.com/sgl-project/sglang/pull/32962)\r\n* Fix MoE reduce-scatterv eligibility check: [#32663](https://github.com/sgl-project/sglang/pull/32663)\r\n* Fix pad-row top-k masking with custom_routing_function under DP attention: [#31838](https://github.com/sgl-project/sglang/pull/31838)\r\n* Add DeepSeek-reference 1e-20 epsilon to top-k renormalization to prevent 0/0 NaN: [#31017](https://github.com/sgl-project/sglang/pull/31017)\r\n* [Fix] Clear stale FlashInfer BF16 MoE index cache: [#33016](https://github.com/sgl-project/sglang/pull/33016)\r\n* Optimize LongCat-Flash router GEMM with the HPC-Ops bf16xfp32 kernel: [#30247](https://github.com/sgl-project/sglang/pull/30247)\r\n* [Fix] Reject online weight updates while the HPC-Ops router GEMM split cache is active: [#31943](https://github.com/sgl-project/sglang/pull/31943)\r\n\r\n## Quantization\r\n\r\n* Support CuteDSL GEMM BF16 on SM100 on by default when allowed by heuristic: [#30567](https://github.com/sgl-project/sglang/pull/30567)\r\n* [Quant] Support NVFP4_AWQ checkpoints in ModelOpt FP4 path: [#31825](https://github.com/sgl-project/sglang/pull/31825)\r\n* [Quant] Keep the flashinfer_deepgemm FP8 GEMM to 1 <= M < 32: [#32843](https://github.com/sgl-project/sglang/pull/32843)\r\n* Qwen3.5-MoE: support modelopt_fp4 checkpoints that quantize attention (+ load baked FP8 KV scales): [#31220](https://github.com/sgl-project/sglang/pull/31220)\r\n* [Qwen3.5][MTP] Support FlashInfer CuTe DSL for online NVFP4 draft MoE: [#31382](https://github.com/sgl-project/sglang/pull/31382)\r\n* Fixing MXFP8 online quantization pipeline: [#31510](https://github.com/sgl-project/sglang/pull/31510)\r\n* [Fix] Restore online MXFP8 quantization for linear layers: [#32953](https://github.com/sgl-project/sglang/pull/32953)\r\n* [Bugfix] compressed-tensors: mixed-precision checkpoints silently load unquantized: [#32736](https://github.com/sgl-project/sglang/pull/32736)\r\n* Fix compressed-tensors NVFP4 MoE W13 layout: [#32430](https://github.com/sgl-project/sglang/pull/32430)\r\n* fix(marlin_nvfp4): only apply routed_scaling_factor in moe_sum_reduce: [#31762](https://github.com/sgl-project/sglang/pull/31762)\r\n* [Perf] Halve the non-finite sanitization overhead in per_token_group_quant: [#32296](https://github.com/sgl-project/sglang/pull/32296)\r\n* [JIT] Trait-driven per_token_group_quant: unify the quant kernel family (flat + masked): [#30924](https://github.com/sgl-project/sglang/pull/30924)\r\n* [JIT] Restore the previous division behavior in per-token group quantization: [#32616](https://github.com/sgl-project/sglang/pull/32616)\r\n* Fix FP8 Triton dtype selection on A100: [#31340](https://github.com/sgl-project/sglang/pull/31340)\r\n\r\n## Parallelism & Disaggregation\r\n\r\n* [Feature] DCP: A2A + FlashInfer-MNNVL comm backends and q-replicate (Helix): [#21637](https://github.com/sgl-project/sglang/pull/21637) ⭐\r\n* [DeepSeek V4] CP decode opt: slice repeat attention weights to local TP partition: [#27657](https://github.com/sgl-project/sglang/pull/27657) ⭐\r\n* [4/N][CP] Support interleave strategy for cp v2: [#30482](https://github.com/sgl-project/sglang/pull/30482)\r\n* [CP] Fuse zigzag attention into a single call: [#33137](https://github.com/sgl-project/sglang/pull/33137)\r\n* [CP] Support breakable CUDA graphs for zigzag strategy: [#33136](https://github.com/sgl-project/sglang/pull/33136)\r\n* [CP]: FIx some issue for glm5.2 cp v2: [#33100](https://github.com/sgl-project/sglang/pull/33100)\r\n* Support DCP for Kimi Linear model: [#32612](https://github.com/sgl-project/sglang/pull/32612)\r\n* feat: support Kimi Linear PD disaggregation with DCP: [#32837](https://github.com/sgl-project/sglang/pull/32837)\r\n* [Bugfix] Fix Kimi-Linear state transfer across heterogeneous TP: [#32262](https://github.com/sgl-project/sglang/pull/32262)\r\n* [DCP] Match the replicated draft KV pool's page granularity to its allocator: [#33348](https://github.com/sgl-project/sglang/pull/33348)\r\n* [DCP] Bound a request by the aggregate KV pool, not one rank's share: [#33448](https://github.com/sgl-project/sglang/pull/33448)\r\n* [Fix] Honor FlashMLA natural-log LSE in DCP reduction: [#33065](https://github.com/sgl-project/sglang/pull/33065)\r\n* fix(mem_cache): state the MLA KV bound in the DCP index space: [#33432](https://github.com/sgl-project/sglang/pull/33432)\r\n* [comm] Enable multi-node custom-AR v2 on a single NVLink clique: [#32339](https://github.com/sgl-project/sglang/pull/32339)\r\n* [Fix] Enable graph capture and MSCCL++ for attention TP groups: [#31629](https://github.com/sgl-project/sglang/pull/31629)\r\n* Disable extra NCCL CUDA event synchronization with symm mem: [#27089](https://github.com/sgl-project/sglang/pull/27089)\r\n* [PD] NIXL connector: shard by destination: [#32025](https://github.com/sgl-project/sglang/pull/32025)\r\n* [PD] pool decode bootstrap HTTP sessions: [#31543](https://github.com/sgl-project/sglang/pull/31543)\r\n* [PD] Handle abort requests in PP mode: [#32797](https://github.com/sgl-project/sglang/pull/32797)\r\n* [PD+PP] Honor PP consensus for bootstrap and prealloc: [#31869](https://github.com/sgl-project/sglang/pull/31869)\r\n* [PD] Prevent decode scheduler from blocking on ZMQ sends to a stalled prefill peer: [#31144](https://github.com/sgl-project/sglang/pull/31144)\r\n* [PD] Fix false health-503 during decode retraction re-admission: [#33118](https://github.com/sgl-project/sglang/pull/33118)\r\n* [PD] Drain NIXL completion notifications before enforcing the WaitingForInput timeout: [#32267](https://github.com/sgl-project/sglang/pull/32267)\r\n* [Disagg][NIXL] Fix heterogeneous attn-TP KV transfer for replicated GQA heads (NIXL_ERR_NOT_FOUND): [#31968](https://github.com/sgl-project/sglang/pull/31968)\r\n* [Disagg][StagingBuffer][1/2] Robustness and failure handling: [#31217](https://github.com/sgl-project/sglang/pull/31217)\r\n* fix(disagg): support pipeline-parallel hybrid-linear transfer: [#32270](https://github.com/sgl-project/sglang/pull/32270)\r\n* [BugFix][EPD] Harden zmq_to_scheduler receiver failures; sync error info across TP: [#31592](https://github.com/sgl-project/sglang/pull/31592)\r\n* [EPD] Fix HTTP dispatch lock blocking cross-request encoder batching: [#31275](https://github.com/sgl-project/sglang/pull/31275)\r\n* [EPD] Make encoder register/unregister health-check robust: [#31576](https://github.com/sgl-project/sglang/pull/31576)\r\n* [BugFix][EPD] Fix Mooncake source-MR lifecycle for multi-TP /send: [#32071](https://github.com/sgl-project/sglang/pull/32071)\r\n* [BugFix][EPD] Early-release mooncake GPU embeddings; fix gpu_id via scheduler.ps: [#31591](https://github.com/sgl-project/sglang/pull/31591)\r\n* [HiSparse]Fix DeepSeek V4 HiSparse PD Transfers with Separate Host and Device KV Indices: [#31901](https://github.com/sgl-project/sglang/pull/31901)\r\n* support dp attn with client lb: [#33105](https://github.com/sgl-project/sglang/pull/33105)\r\n* Fix token count localization for replicated attention-TP forwards: [#32411](https://github.com/sgl-project/sglang/pull/32411)\r\n\r\n## Scheduler & Runtime\r\n\r\n* [FEAT] Support fast engine recovery through weight cache: [#27139](https://github.com/sgl-project/sglang/pull/27139) ⭐\r\n* feat(grpc): add generation request semantics: [#32588](https://github.com/sgl-project/sglang/pull/32588)\r\n* [Scheduler] Enable decode retraction ordering under speculative decoding: [#32023](https://github.com/sgl-project/sglang/pull/32023)\r\n* Allow optimistic prefill with L2 hierarchical cache and write-back policy: [#33545](https://github.com/sgl-project/sglang/pull/33545)\r\n* Bound prefill delayer all-branch delay and decay the max_prefill_bs high-watermark: [#32880](https://github.com/sgl-project/sglang/pull/32880)\r\n* Negotiate PrefillDelayer only after KV-budget admission checks: [#31835](https://github.com/sgl-project/sglang/pull/31835)\r\n* [Bugfix] Fix prefill suspension caused by delayed negotiate_should_allow_prefill invocation: [#32389](https://github.com/sgl-project/sglang/pull/32389)\r\n* Fix SWA admission livelock on cached-prefix resumes: [#32379](https://github.com/sgl-project/sglang/pull/32379)\r\n* [core/loader] Add presharded load format: [#24256](https://github.com/sgl-project/sglang/pull/24256)\r\n* Support fastsafetensors no-GDS loading and page-cache release: [#31859](https://github.com/sgl-project/sglang/pull/31859)\r\n* Fix async loading of RunAI-streamed tensors: [#32896](https://github.com/sgl-project/sglang/pull/32896)\r\n* Fix DeepSeek V4 loading with RunAI Model Streamer.: [#30240](https://github.com/sgl-project/sglang/pull/30240)\r\n* [Fix] Fail fast when a safetensors index references missing shard files: [#32279](https://github.com/sgl-project/sglang/pull/32279)\r\n* AutoWeightLoader support Sglang native models 1: demo: [#28671](https://github.com/sgl-project/sglang/pull/28671)\r\n* Fix reward/classification models broken by `load_weights` v2 dispatch (#28671): [#31988](https://github.com/sgl-project/sglang/pull/31988)\r\n* perf(startup): skip unused PyTorch headers for KV VMM allocator stub: [#33126](https://github.com/sgl-project/sglang/pull/33126)\r\n* Reduce startup log noise and fix Dynamo / CUDA-graph edge cases: [#33428](https://github.com/sgl-project/sglang/pull/33428)\r\n* [Feature] Add leveled invariant-check primitive for nan/inf/oob validity checks: [#32308](https://github.com/sgl-project/sglang/pull/32308)\r\n* [Observability] Add startup, memory, and hybrid SWA diagnostics: [#33375](https://github.com/sgl-project/sglang/pull/33375)\r\n* [metrics] Split tokenizer request metrics by stream: [#32734](https://github.com/sgl-project/sglang/pull/32734)\r\n* Add stream label to TTFT metrics: [#32363](https://github.com/sgl-project/sglang/pull/32363)\r\n* fix(metrics): clear forward occupancy on idle: [#33562](https://github.com/sgl-project/sglang/pull/33562)\r\n* Report accelerator type in /v1/loads: [#32348](https://github.com/sgl-project/sglang/pull/32348)\r\n* [Router] Report accelerator count in /v1/loads: [#33548](https://github.com/sgl-project/sglang/pull/33548)\r\n* Add prefill and decode load counters to LoadSnapshot: [#32245](https://github.com/sgl-project/sglang/pull/32245)\r\n* [PD] Add a queues.prealloc_ready counter to the load snapshot: [#33133](https://github.com/sgl-project/sglang/pull/33133)\r\n* [Fix] Include disagg prefill waiting queue in FPM: [#32122](https://github.com/sgl-project/sglang/pull/32122)\r\n* fix: prevent ReqTimeStats from being dropped during IPC serialization: [#31339](https://github.com/sgl-project/sglang/pull/31339)\r\n* config: make ServerArgs read-only with a single audited mutation entry: [#31811](https://github.com/sgl-project/sglang/pull/31811)\r\n* runtime_context: per-role namespace enforcement behind SGLANG_ROLE_NAMESPACES: [#33172](https://github.com/sgl-project/sglang/pull/33172)\r\n* [misc] Deep-merge nested config overrides and parse request bodies with orjson: [#33351](https://github.com/sgl-project/sglang/pull/33351)\r\n* [Perf] Free KV pages by segment in the paged allocator without a device sync: [#32701](https://github.com/sgl-project/sglang/pull/32701)\r\n* [mem_cache] Build empty-prefix last_loc sentinel on-device to avoid per-call H2D sync: [#32575](https://github.com/sgl-project/sglang/pull/32575)\r\n* [Kernel] Skip KV writes to reserved padding slots: [#32477](https://github.com/sgl-project/sglang/pull/32477)\r\n* Skip dist_init/nccl port prechecks when the dist init method is overridden: [#31410](https://github.com/sgl-project/sglang/pull/31410)\r\n* [BugFix] Prevent TBO crash when return_logprob is enabled: [#32180](https://github.com/sgl-project/sglang/pull/32180)\r\n* [BugFix] Fix DS/Kimi crash on non-first PP ranks when resolving input length: [#31752](https://github.com/sgl-project/sglang/pull/31752)\r\n* [Fix] Two root causes of the H100 deepep TBO CI break: scale-tensor use-after-free + missing non-finite quant sanitization: [#32188](https://github.com/sgl-project/sglang/pull/32188)\r\n\r\n## HiCache & Radix Cache\r\n\r\n* feat: Session-reference-aware Unified Radix Cache for agentic multi-turn workloads: [#29173](https://github.com/sgl-project/sglang/pull/29173) ⭐\r\n* Radix Cache Split: Spin off TreeCore: [#29901](https://github.com/sgl-project/sglang/pull/29901)\r\n* [Hicache][1/2]Support Mamba branching in Unified Radix Cache with HiCache: [#31181](https://github.com/sgl-project/sglang/pull/31181)\r\n* feat(hicache): Add shared memory allocator for host KV cache: [#29326](https://github.com/sgl-project/sglang/pull/29326)\r\n* [HiCache] Add model-aware key isolation to Mooncake Store: [#31920](https://github.com/sgl-project/sglang/pull/31920)\r\n* Add Mooncake tenant id support: [#30256](https://github.com/sgl-project/sglang/pull/30256)\r\n* Eliminate redundant DSA state transfers (Mooncake): [#32620](https://github.com/sgl-project/sglang/pull/32620)\r\n* [HiCache] Merge HiCache event checks to reduce decode overhead: [#30511](https://github.com/sgl-project/sglang/pull/30511)\r\n* [HiCache]: Optimize hybrid/DSA L3 prefetch result sync and usable-prefix clamping: [#31443](https://github.com/sgl-project/sglang/pull/31443)\r\n* fix(hicache): support staged write-back for asymmetric MHA: [#30981](https://github.com/sgl-project/sglang/pull/30981)\r\n* Write-back policy fix for unified tree: [#31845](https://github.com/sgl-project/sglang/pull/31845)\r\n* Fix --hicache-size allocating ~2x host memory on hybrid SWA: [#32373](https://github.com/sgl-project/sglang/pull/32373)\r\n* Fix --hicache-size allocating ~2x host memory on hybrid Mamba: [#32915](https://github.com/sgl-project/sglang/pull/32915)\r\n* [UnifiedTree] fix: drop prefetched host refill under an un-backed-up parent: [#31902](https://github.com/sgl-project/sglang/pull/31902)\r\n* [UnifiedRadixCache][mamba] Fix mamba state corruption and slot leak when load_back aborts: [#30986](https://github.com/sgl-project/sglang/pull/30986)\r\n* [Fix] Evict only the KV shortfall in evict_from_tree_cache: [#32016](https://github.com/sgl-project/sglang/pull/32016)\r\n* [Fix] Unify pinned host pool release on graceful shutdown: [#32029](https://github.com/sgl-project/sglang/pull/32029)\r\n* fix(hisparse): correct DSA KV memory budget: [#31992](https://github.com/sgl-project/sglang/pull/31992)\r\n* perf(hisparse): eliminate redundant swap output fill: [#32483](https://github.com/sgl-project/sglang/pull/32483)\r\n* [Mamba] Add a per-path cap for cached states: [#31230](https://github.com/sgl-project/sglang/pull/31230)\r\n* Skip mamba lock during decoding: [#32228](https://github.com/sgl-project/sglang/pull/32228)\r\n* [Fix] Reserve the mamba pool's +1 padding slot in the memory budget solve: [#32184](https://github.com/sgl-project/sglang/pull/32184)\r\n* Fix unnecessary gather/scatter on CPU for non-contiguous Mamba statepool: [#31754](https://github.com/sgl-project/sglang/pull/31754)\r\n* [XPU] Add XPU device support for LMCache radix cache integration: [#23534](https://github.com/sgl-project/sglang/pull/23534)\r\n\r\n## LoRA\r\n\r\n* [LoRA] Support LoRA under the breakable/full prefill CUDA graph: [#30988](https://github.com/sgl-project/sglang/pull/30988)\r\n* Split #32584 into 2/2: [LoRA] Shard attention LoRA by attn-TP and allow dynamic LoRA with dp attention: [#32708](https://github.com/sgl-project/sglang/pull/32708)\r\n* Split #32584 into 1/2: [LoRA] Guard DP-attention idle forwards against stale LoRA batch state: [#32707](https://github.com/sgl-project/sglang/pull/32707)\r\n* [LoRA] 1/n Per-rank tensor serialization for load_lora_adapter_from_tensors under dp_size > 1: [#32580](https://github.com/sgl-project/sglang/pull/32580)\r\n* [LoRA] Guard TMA down path for LoRA hooks: [#31608](https://github.com/sgl-project/sglang/pull/31608)\r\n* [lora] Fix WAR race: never write MoE runner output into hidden_states in place: [#31870](https://github.com/sgl-project/sglang/pull/31870)\r\n* [LoRA] Fix Marlin MoE kernel import: [#32884](https://github.com/sgl-project/sglang/pull/32884)\r\n* LoRA: Ascend: Update ascend LoRA backend to support new kernels: [#15912](https://github.com/sgl-project/sglang/pull/15912)\r\n\r\n## Multimodal\r\n\r\n* [mm] sglang-mm: server vision pipeline core (fetch/driver/pipeline) + Qwen VL: [#32364](https://github.com/sgl-project/sglang/pull/32364)\r\n* vlm: parallelize multimodal preprocessing with customized worker num: [#31438](https://github.com/sgl-project/sglang/pull/31438)\r\n* [Perf] Broadcast single-image DP vision embedding instead of pad-to-max all-gather: [#33307](https://github.com/sgl-project/sglang/pull/33307)\r\n* [Perf] Speed up the Kimi-K2.5 vision path and match PIL bicubic in the GPU resize: [#33349](https://github.com/sgl-project/sglang/pull/33349)\r\n* [EPD][VLM] Fix Kimi-VL 2D encoder grids: [#32104](https://github.com/sgl-project/sglang/pull/32104)\r\n* [mm] Accept per-item embedding lists from DataEmbeddingFunc: [#31826](https://github.com/sgl-project/sglang/pull/31826)\r\n* [mm] Handle per-item embeddings in cache misses: [#32498](https://github.com/sgl-project/sglang/pull/32498)\r\n* Decode input_audio media containers with PyAV & Update memory profiler: [#31832](https://github.com/sgl-project/sglang/pull/31832)\r\n* fix(vlm): materialize Qwen3-VL features on the vision device: [#31596](https://github.com/sgl-project/sglang/pull/31596)\r\n* vlm: reject moss vision metadata mismatches: [#31957](https://github.com/sgl-project/sglang/pull/31957)\r\n* [Bugfix] Place empty Qwen encoder-DP embeddings on the communication device: [#31663](https://github.com/sgl-project/sglang/pull/31663)\r\n* [Fix] --mm-process-config crash when video config contains: [#30260](https://github.com/sgl-project/sglang/pull/30260)\r\n* [Fix] Drop deprecated multimodal processor residency state: [#33308](https://github.com/sgl-project/sglang/pull/33308)\r\n\r\n## Model Support & Optimizations\r\n\r\n* [Feature] Support return_hidden_states=\"last\": [#30177](https://github.com/sgl-project/sglang/pull/30177)\r\n* Add return_token_ids support to completions and chat completions APIs: [#30917](https://github.com/sgl-project/sglang/pull/30917)\r\n* embedding: centralize capabilities and complete OpenAI compatibility: [#32481](https://github.com/sgl-project/sglang/pull/32481)\r\n* [Model] Support standalone text-only Qwen3.5 checkpoints: [#32401](https://github.com/sgl-project/sglang/pull/32401)\r\n* model: serve bare Qwen3Model backbone natively as an embedding model: [#32457](https://github.com/sgl-project/sglang/pull/32457)\r\n* [feat] Opt-in flat response format for prompt top logprobs: [#32078](https://github.com/sgl-project/sglang/pull/32078)\r\n* [feat] Optional base64 encoding for the flat prompt top logprob arrays: [#31960](https://github.com/sgl-project/sglang/pull/31960)\r\n* [perf] Assemble flat prompt top logprobs scheduler-side as numpy arrays: [#32223](https://github.com/sgl-project/sglang/pull/32223)\r\n* Use native batched llguidance mask generation: [#32412](https://github.com/sgl-project/sglang/pull/32412)\r\n* [Spec] Hold the grammar bitmask in one `GrammarMask` type across all decode paths: [#32409](https://github.com/sgl-project/sglang/pull/32409)\r\n* [Spec] Consolidate the grammar sync decision into ScheduleBatch.grammar_needs_sync: [#32353](https://github.com/sgl-project/sglang/pull/32353)\r\n* [Spec] Share the grammar mask build and verify-tree staging across spec workers: [#32393](https://github.com/sgl-project/sglang/pull/32393)\r\n* [Spec] Derive NGRAM grammar tree links on the host instead of reading back `retrive_next_token`: [#32380](https://github.com/sgl-project/sglang/pull/32380)\r\n* support regex that compatible with python re lib however apply more l...: [#32676](https://github.com/sgl-project/sglang/pull/32676)\r\n* fix(sampling): reject conflicting structural tag constraints: [#32525](https://github.com/sgl-project/sglang/pull/32525)\r\n* [Fix] Treat an empty grammar constraint as unset in SamplingParams: [#33328](https://github.com/sgl-project/sglang/pull/33328)\r\n* Add 'anyOf' schema support for qwen3_coder tool call parser: [#30832](https://github.com/sgl-project/sglang/pull/30832)\r\n* Fix dropped tool calls when a stream delta carries several: [#31860](https://github.com/sgl-project/sglang/pull/31860)\r\n* Fix Inkling tool-call parsing recovery, content handling, and streaming: [#32861](https://github.com/sgl-project/sglang/pull/32861)\r\n* Fix LFM 2 tool parser.: [#27614](https://github.com/sgl-project/sglang/pull/27614)\r\n* [Fix]: render tool_reference schema regardless of tool_result part order: [#32522](https://github.com/sgl-project/sglang/pull/32522)\r\n* Treat partial_json_parser AssertionError as incomplete JSON: [#31975](https://github.com/sgl-project/sglang/pull/31975)\r\n* Flush dropped reasoning at stream end when stream_reasoning=False: [#32225](https://github.com/sgl-project/sglang/pull/32225)\r\n* fix(reasoning): let --enable-strict-thinking works for DeepSeek-V4: [#32400](https://github.com/sgl-project/sglang/pull/32400)\r\n* fix(reasoning): honor Poolside template thinking defaults: [#32540](https://github.com/sgl-project/sglang/pull/32540)\r\n* Guard min_new_tokens penalizer against None eos_token_id: [#31973](https://github.com/sgl-project/sglang/pull/31973)\r\n* [Inkling] Add minimal DFLASH support: [#31840](https://github.com/sgl-project/sglang/pull/31840)\r\n* [Inkling] Hold the short-conv per-step state on one metadata struct: [#33116](https://github.com/sgl-project/sglang/pull/33116)\r\n* Fix broken Nemotron DP attention: [#33123](https://github.com/sgl-project/sglang/pull/33123)\r\n* [Nemotron] Fix decode track-save reading the stale tail of the CUDA-graph track buffer: [#32555](https://github.com/sgl-project/sglang/pull/32555)\r\n* [Nemotron] Hoist mamba track-mask host syncs out of the per-layer prefill path: [#32589](https://github.com/sgl-project/sglang/pull/32589)\r\n* [LFM2] Wire Lfm2MoeForCausalLM into the LFM2 serving override tables: [#30780](https://github.com/sgl-project/sglang/pull/30780)\r\n* Fix LongCat n-gram token-table crashes on padded batches: [#31312](https://github.com/sgl-project/sglang/pull/31312)\r\n* fix(qwen3.5): restrict MoE weights to local PP layers: [#32022](https://github.com/sgl-project/sglang/pull/32022)\r\n* [minimax-m3] fp8 attention GEMMs on SM100 (fp8_e4m3 KV + trtllm_mha): [#30971](https://github.com/sgl-project/sglang/pull/30971)\r\n* Prewarm DSV4 MHC post kernel at model load: [#30741](https://github.com/sgl-project/sglang/pull/30741)\r\n* fix mqa preshuffle layout issue for deepseek v4: [#31563](https://github.com/sgl-project/sglang/pull/31563)\r\n* [DeepSeek-V4] Fix nvcc 13 crash building the topk_v2 kernel: [#32910](https://github.com/sgl-project/sglang/pull/32910)\r\n* [RL] DSV4: dispatch indexer topk_transform_512 through DSATopKBackend: [#31087](https://github.com/sgl-project/sglang/pull/31087)\r\n* [RL] DSV4: add env to quantize SWA KV cache from bf16-rounded values: [#31086](https://github.com/sgl-project/sglang/pull/31086)\r\n* [RL] Support FlashInfer TRT-LLM NVFP4 MoE in the RL weight checker: [#31085](https://github.com/sgl-project/sglang/pull/31085)\r\n* [DLLM] vectorized joint/low-confidence decoding and skip redundant attn init: [#21094](https://github.com/sgl-project/sglang/pull/21094)\r\n* [Bugfix] Fix Cohere2MoeConfig import crash from huggingface_hub @strict: [#31769](https://github.com/sgl-project/sglang/pull/31769)\r\n\r\n## Kernel Library (`sglang.kernels`, RFC #29630)\r\n\r\n* [Kernel] RFC #29630 finale: retire sglang.jit_kernel into sglang.kernels: [#32072](https://github.com/sgl-project/sglang/pull/32072)\r\n* [Kernel] Move sgl-kernel under sglang.kernels.aot: [#32648](https://github.com/sgl-project/sglang/pull/32648)\r\n* [Kernel] Phase 3+4: move JIT infra + operator groups into sglang.kernels (RFC #29630): [#31666](https://github.com/sgl-project/sglang/pull/31666)\r\n* [Kernel] Phase 4 batch-2: migrate JIT operator groups into kernels.ops (no shims) (RFC #29630): [#32015](https://github.com/sgl-project/sglang/pull/32015)\r\n* [Kernel] Phase 4 batch-3: migrate tangled JIT subsystems + new groups into kernels.ops (RFC #29630): [#32045](https://github.com/sgl-project/sglang/pull/32045)\r\n* [Kernel] Sweep missed dedicated kernels into kernels.ops (moe/quant siblings + dspark) (RFC #29630): [#32160](https://github.com/sgl-project/sglang/pull/32160)\r\n* [Kernel] Classification cleanup: unify _jit_ naming, drop empty/model groups, add elementwise (RFC #29630): [#32148](https://github.com/sgl-project/sglang/pull/32148)\r\n* [Kernel] Reclassify kernel tests by ops group + move helpers out of the package (RFC #29630): [#32128](https://github.com/sgl-project/sglang/pull/32128)\r\n* Delete sgl-kernel AOT `bmm_fp8`, use `flashinfer.bmm_fp8`: [#31202](https://github.com/sgl-project/sglang/pull/31202)\r\n* Delete sgl-kernel AOT router GEMM and fused A GEMM: [#30280](https://github.com/sgl-project/sglang/pull/30280)\r\n\r\n## SGLang-Diffusion\r\n\r\n* [diffusion] model: support minimax-h3: [#33275](https://github.com/sgl-project/sglang/pull/33275)\r\n* [diffusion] FLUX.2 VAE decoder fast path behind quality=high (H200: 1024^2 97.6->29.2 ms, 2048^2 437.2->168.5 ms): [#33451](https://github.com/sgl-project/sglang/pull/33451)\r\n* [diffusion] Fuse DiT FFN tanh-GELU into up-proj GEMM (cublasLt epilogue) behind quality=high (Qwen-Image 1024^2 denoise 12.36 -> 12.05 s on H200): [#33536](https://github.com/sgl-project/sglang/pull/33536)\r\n* [diffusion] feat: add dynamic cuDNN SDPA attention backend: [#30090](https://github.com/sgl-project/sglang/pull/30090)\r\n* [diffusion] feat: support resident layers for DiT: [#31538](https://github.com/sgl-project/sglang/pull/31538)\r\n* [diffusion] feat: unify encoder folding and batch data-parallel encoding: [#30211](https://github.com/sgl-project/sglang/pull/30211)\r\n* feat(diffusion): add regional torch compile: [#32696](https://github.com/sgl-project/sglang/pull/32696)\r\n* perf(diffusion): decode Wan VAE in BF16: [#32697](https://github.com/sgl-project/sglang/pull/32697)\r\n* [diffusion] optimization: accelerate CUDA video output finalization: [#32784](https://github.com/sgl-project/sglang/pull/32784)\r\n* [diffusion] optimization: support cuda-ipc zero-staging all-to-all for 2-rank Ulysses: [#31854](https://github.com/sgl-project/sglang/pull/31854)\r\n* [Diffusion] offload rollout weights to pinned host memory: [#32032](https://github.com/sgl-project/sglang/pull/32032)\r\n* [diffusion] fix: preserve tensor stride when offloading rollout weights to pinned host memory: [#32420](https://github.com/sgl-project/sglang/pull/32420)\r\n* [Diffusion] Return scheduler sigmas snapshot in rollout dit_trajectory: [#32683](https://github.com/sgl-project/sglang/pull/32683)\r\n* [diffusion] fix: reject ring parallelism where it would silently miscompute: [#33353](https://github.com/sgl-project/sglang/pull/33353)\r\n* fix(diffusion): size VSA top-k from padded blocks: [#32695](https://github.com/sgl-project/sglang/pull/32695)\r\n* [diffusion] fix: keep fused qk-norm-rope out of dynamo tracing: [#31849](https://github.com/sgl-project/sglang/pull/31849)\r\n* [diffusion] fix: fix dual-DiT models crash with (1,)-placeholder weights after compile-time offload: [#32743](https://github.com/sgl-project/sglang/pull/32743)\r\n* [diffusion] fix: per-shard FP8 scale shape for single-GPU fused linears: [#32157](https://github.com/sgl-project/sglang/pull/32157)\r\n* [diffusion] fix: fix local-path detection for MiniMax-H3 and other non-diffusers models: [#33365](https://github.com/sgl-project/sglang/pull/33365)\r\n* [diffusion] fix: don't self-kill diffusion worker when PID 1 is the real parent: [#31361](https://github.com/sgl-project/sglang/pull/31361)\r\n* [Diffusion] Fix component accuracy topology reuse: [#33317](https://github.com/sgl-project/sglang/pull/33317)\r\n* [vla] fix: pi05 models does not apply scale factor for language embeddings: [#33367](https://github.com/sgl-project/sglang/pull/33367)\r\n\r\n## Local & Desktop AI\r\n\r\n* feat: SM120 (Blackwell Desktop) support for GLM-5.1 inference: [#26928](https://github.com/sgl-project/sglang/pull/26928)\r\n* Add FP4 Indexer for DeepSeek V4 on SM120: [#27059](https://github.com/sgl-project/sglang/pull/27059)\r\n* Enable GPT-OSS FlashInfer MXFP4 on SM120: [#32668](https://github.com/sgl-project/sglang/pull/32668)\r\n* Change the FP8 per-tensor GEMM backend on SM120 to cuBLAS: [#31961](https://github.com/sgl-project/sglang/pull/31961)\r\n* [SM120] Only split touched SWA pages in FlashMLA page-split kernel: [#32320](https://github.com/sgl-project/sglang/pull/32320)\r\n* [DSV4/SM120] Allow fused MHC opt-in with standalone TileLang pre disabled: [#30954](https://github.com/sgl-project/sglang/pull/30954)\r\n* Sm120 scatter fallback: [#31669](https://github.com/sgl-project/sglang/pull/31669)\r\n* [MLX] Fix overlap-loop request bookkeeping and graceful shutdown: [#32447](https://github.com/sgl-project/sglang/pull/32447)\r\n* [MLX] Size request capacity by attention DP: [#32115](https://github.com/sgl-project/sglang/pull/32115)\r\n* [MLX] Handle configs without quant_method in Humming: [#31460](https://github.com/sgl-project/sglang/pull/31460)\r\n* [diffusion] fix: fix diffusion output stability on mps: [#30017](https://github.com/sgl-project/sglang/pull/30017)\r\n\r\nNew recipes: [RTX 5090 DeepSeek-V4](https://github.com/sgl-project/sglang/pull/33157), [DGX Spark for Inkling-Small](https://github.com/sgl-project/sglang/pull/33131), [MiniMax-H3 on 2x RTX 5090](https://docs.sglang.io/cookbook/diffusion/MiniMax/MiniMax-H3) (TP2 + layerwise offload).\r\n\r\n## AMD / ROCm\r\n\r\n* [AMD] Add fused all-reduce RMSNorm per-group quant for Qwen3.5 FP8: [#24651](https://github.com/sgl-project/sglang/pull/24651)\r\n* [AMD][MXFP4] Reland \"Online MXFP4 quantization 2/N - FP8 to MXFP4 requantization on AMD GPUs\": [#28291](https://github.com/sgl-project/sglang/pull/28291)\r\n* [AMD] Cache AITER expert mask across decode: [#31889](https://github.com/sgl-project/sglang/pull/31889)\r\n* [AMD] Derive AITER verify tokens-per-req from input shape: [#31221](https://github.com/sgl-project/sglang/pull/31221)\r\n* [AMD] Speed up DSV4 MoE weight loading from mmap views: [#32315](https://github.com/sgl-project/sglang/pull/32315)\r\n* [AMD] Fix DeepSeek-V4 FP4 MoE expert memory bloat: [#31450](https://github.com/sgl-project/sglang/pull/31450)\r\n* [AMD] DSv4: bring HIP compress-state pool into the memory_saver KV_CACHE region: [#31747](https://github.com/sgl-project/sglang/pull/31747)\r\n* [AMD] Fix DeepSeek-V4 fused-RMS FP8 scale metadata on gfx950: [#31727](https://github.com/sgl-project/sglang/pull/31727)\r\n* [AMD] [Fix] Enable aiter hd256 FP8 prefill FMHA on gfx950: [#33399](https://github.com/sgl-project/sglang/pull/33399)\r\n* [AMD]Qwen3.5 integration gfx950 fmha fp8 hd256: [#32046](https://github.com/sgl-project/sglang/pull/32046)\r\n* [Fix][AMD] Qwen3.5 MoE: disable global-slot shared-expert fusion under per-rank EP backends (MoRI + dp-attention init crash): [#31793](https://github.com/sgl-project/sglang/pull/31793)\r\n* [AMD] MiniMax-M3: opt-in custom/quick all-reduce on ROCm: [#32230](https://github.com/sgl-project/sglang/pull/32230)\r\n* [AMD] Minimax-M3 : unblock mxfp8 block convert on gfx950: [#32036](https://github.com/sgl-project/sglang/pull/32036)\r\n* [AMD] Enable mamba JIT transfer kernel on ROCm (fix transfer_kv_mamba NameError): [#31741](https://github.com/sgl-project/sglang/pull/31741)\r\n* [AMD] add Gemma3RMSNorm.forward_hip to unbreak ROCm: [#32613](https://github.com/sgl-project/sglang/pull/32613)\r\n* [AMD][Fix] Restore aiter-padded MoE weight dims for serialized checkpoints: [#33090](https://github.com/sgl-project/sglang/pull/33090)\r\n* [AMD] Fix JIT compile failure in sgl_kernel/warp.cuh: [#33195](https://github.com/sgl-project/sglang/pull/33195)\r\n\r\n## NPU / Ascend\r\n\r\n* [NPU] Optimize DeepSeek-V4 performance: [#31931](https://github.com/sgl-project/sglang/pull/31931)\r\n* :sparkles: [llm][npu][quant] Add W8A8 MXFP8 quantization for Qwen3 MoE on Ascend NPU: [#30768](https://github.com/sgl-project/sglang/pull/30768)\r\n* [NPU] adapt dflash v2 on npu: [#31739](https://github.com/sgl-project/sglang/pull/31739)\r\n* [NPU] Adapt MiMo-V2.5-W8A8: [#29131](https://github.com/sgl-project/sglang/pull/29131)\r\n* [NPU] Enable automatic ascend_attn selection for vision attention and graph runners: [#31948](https://github.com/sgl-project/sglang/pull/31948)\r\n* [NPU] ascend fuseep use moe ep group: [#32040](https://github.com/sgl-project/sglang/pull/32040)\r\n* [NPU] Fix MTP IndexShare warm-up for attention DP and prefill CP: [#32210](https://github.com/sgl-project/sglang/pull/32210)\r\n* [NPU] fix dsv4 mtp condition on NPU graph: [#32711](https://github.com/sgl-project/sglang/pull/32711)\r\n* [NPU] [FIX] Fix performance degradation of Qwen3.5-397B-A17B: [#32130](https://github.com/sgl-project/sglang/pull/32130)\r\n* [Bugfix] [NPU] Fix w4a8 MoE performance degradation: [#32113](https://github.com/sgl-project/sglang/pull/32113)\r\n* [NPU] Fix LLaDA2 MoE OOM after the FRACTAL_NZ cast, re-enabling the NZ speedup: [#31772](https://github.com/sgl-project/sglang/pull/31772)\r\n* [NPU] Determine the topk norm_type through scoring_func: [#31393](https://github.com/sgl-project/sglang/pull/31393)\r\n* [NPU] Acc fix for afmoe model introduced by topk refactor.: [#31280](https://github.com/sgl-project/sglang/pull/31280)\r\n* [NPU] bugfix for extra device memory on Ascend: [#30112](https://github.com/sgl-project/sglang/pull/30112)\r\n* [NPU][Fix Issue]: Send expert weights contiguous tensor across cards during EPLB rebalance: [#32001](https://github.com/sgl-project/sglang/pull/32001)\r\n* [NPU]Add Ascend transfer version compatibility.: [#31189](https://github.com/sgl-project/sglang/pull/31189)\r\n* [NPU] Update non-vit vision part for cumulative seqlen: [#31867](https://github.com/sgl-project/sglang/pull/31867)\r\n* :bug: [llm][npu][quant] Fix ModelSlim MXFP4 packed weight loading: [#32013](https://github.com/sgl-project/sglang/pull/32013)\r\n* add fill_draft_extend_prepare_buffers_native for NPU: [#32427](https://github.com/sgl-project/sglang/pull/32427)\r\n* sgl-kernel-npu tag update to 2026.7.27: [#32596](https://github.com/sgl-project/sglang/pull/32596)\r\n\r\n## CPU / Intel / XPU\r\n\r\n* [Intel GPU] Add XPU Platform support: [#31949](https://github.com/sgl-project/sglang/pull/31949)\r\n* [XPU] Enable breakable prefill CUDA graph on XPU: [#30273](https://github.com/sgl-project/sglang/pull/30273)\r\n* [XPU][GDN] add XPU path for causal_conv1d_fn and causal_conv1d_update: [#31250](https://github.com/sgl-project/sglang/pull/31250)\r\n* [Intel GPU] calculate free memory based on allocated memory for XPU: [#32044](https://github.com/sgl-project/sglang/pull/32044)\r\n* [sgl-kernel][CPU] add kernel for shm_allgather_into_tensor and shm_reduce_scatter_tensor: [#13397](https://github.com/sgl-project/sglang/pull/13397)\r\n* [CPU] refactor rope kernels: [#31897](https://github.com/sgl-project/sglang/pull/31897)\r\n* [CPU] Fix mxfp4 padding size: [#31334](https://github.com/sgl-project/sglang/pull/31334)\r\n* [Bugfix] Fix CUDA import on non-CUDA platforms: [#31919](https://github.com/sgl-project/sglang/pull/31919)\r\n\r\n## Dependencies\r\n\r\n* Bump FlashInfer to 0.6.15.post1: [#31927](https://github.com/sgl-project/sglang/pull/31927) ⭐\r\n* Bump sgl-deep-gemm to 0.1.5: [#32345](https://github.com/sgl-project/sglang/pull/32345)\r\n* Replace Kimi K3 DeepGEMM patch with 0.1.5.post1: [#33143](https://github.com/sgl-project/sglang/pull/33143)\r\n* Bump helion version to 1.4: [#32562](https://github.com/sgl-project/sglang/pull/32562)\r\n* chore: bump mooncake version to 0.3.12.post1: [#32302](https://github.com/sgl-project/sglang/pull/32302)\r\n* bump dynamo-tokenizers to 1.7.0: [#32981](https://github.com/sgl-project/sglang/pull/32981)\r\n* [AMD] ROCm AITER pin reverted to 9127c94, then updated to d9e5ef7: [#32879](https://github.com/sgl-project/sglang/pull/32879), [#32939](https://github.com/sgl-project/sglang/pull/32939)\r\n* Fix PyPI release: drop the git-only sgl-eval dep from packaged metadata: [#32354](https://github.com/sgl-project/sglang/pull/32354)\r\n\r\n## Breaking Changes & Upgrade Notes\r\n\r\n* **`helion` jumps 0.2.6 to 1.4**, a major-version move for anyone depending on helion-backed kernels: [#32562](https://github.com/sgl-project/sglang/pull/32562)\r\n* **`sglang.jit_kernel` is retired into `sglang.kernels`**, completing RFC [#29630](https://github.com/sgl-project/sglang/issues/29630). Imports from the old module path must move: [#32072](https://github.com/sgl-project/sglang/pull/32072), [#31666](https://github.com/sgl-project/sglang/pull/31666), [#32015](https://github.com/sgl-project/sglang/pull/32015), [#32045](https://github.com/sgl-project/sglang/pull/32045)\r\n* **Breakable prefill CUDA graph is now on by default for DP attention**: [#31682](https://github.com/sgl-project/sglang/pull/31682)\r\n* **CuteDSL BF16 GEMM on SM100 is on by default** when the heuristic allows it: [#30567](https://github.com/sgl-project/sglang/pull/30567)\r\n* **sgl-kernel AOT `bmm_fp8` is deleted in favor of `flashinfer.bmm_fp8`; the AOT router GEMM and fused A GEMM are also removed**: [#31202](https://github.com/sgl-project/sglang/pull/31202), [#30280](https://github.com/sgl-project/sglang/pull/30280)\r\n* **The FP8 per-tensor GEMM backend on SM120 switches to cuBLAS**: [#31961](https://github.com/sgl-project/sglang/pull/31961)\r\n* **Unfetchable or unparseable multimodal inputs now return HTTP 400 instead of 500**, and text-only models reject media input outright: [#31417](https://github.com/sgl-project/sglang/pull/31417), [#32914](https://github.com/sgl-project/sglang/pull/32914)\r\n* **Diffusion request-level quality is restricted to two validated tiers**, lossless (default) and high: [#33453](https://github.com/sgl-project/sglang/pull/33453)\r\n* **`ServerArgs` is being made read-only** behind namespace config bags. Code that mutated `ServerArgs` at runtime must route through the new accessors: [#31809](https://github.com/sgl-project/sglang/pull/31809), [#31811](https://github.com/sgl-project/sglang/pull/31811), [#33334](https://github.com/sgl-project/sglang/pull/33334), [#33338](https://github.com/sgl-project/sglang/pull/33338)\r\n\r\n## Known Issues\r\n\r\n* **The FlashInfer rmsnorm + quant fusion for SM90/SM100/SM120 was landed and reverted** this cycle ([#32994](https://github.com/sgl-project/sglang/pull/32994), [#33455](https://github.com/sgl-project/sglang/pull/33455)). It is not in this release.\r\n* **Breakable CUDA graph is disabled for NemotronH** pending a fix: [#33130](https://github.com/sgl-project/sglang/pull/33130)\r\n* **`test_update_weights_from_disk` is skipped on ROCm** pending a reload fix ([#31924](https://github.com/sgl-project/sglang/issues/31924)): [#31925](https://github.com/sgl-project/sglang/pull/31925)\r\n* **The SM120 DeepGEMM release-pipeline test is temporarily skipped**: [#32193](https://github.com/sgl-project/sglang/pull/32193)\r\n\r\n**Full Changelog**: [`v0.5.16...v0.5.17`](https://github.com/sgl-project/sglang/compare/v0.5.16...v0.5.17)\r\n\r\n## New Contributors\r\n* @windscope made their first contribution in https://github.com/sgl-project/sglang/pull/31738\r\n* @kfhfar made their first contribution in https://github.com/sgl-project/sglang/pull/31825\r\n* @fkuner made their first contribution in https://github.com/sgl-project/sglang/pull/29973\r\n* @ilyasher-harmonic made their first contribution in https://github.com/sgl-project/sglang/pull/30832\r\n* @tedzhouhk made their first contribution in https://github.com/sgl-project/sglang/pull/32122\r\n* @calvin0327 made their first contribution in https://github.com/sgl-project/sglang/pull/31460\r\n* @libinta made their first contribution in https://github.com/sgl-project/sglang/pull/23534\r\n* @houseroad made their first contribution in https://github.com/sgl-project/sglang/pull/31826\r\n* @mosya415 made their first contribution in https://github.com/sgl-project/sglang/pull/31346\r\n* @yangspirit made their first contribution in https://github.com/sgl-project/sglang/pull/29326\r\n* @SovietPower made their first contribution in https://github.com/sgl-project/sglang/pull/31144\r\n* @hsthe29 made their first contribution in https://github.com/sgl-project/sglang/pull/30096\r\n* @yyq0210 made their first contribution in https://github.com/sgl-project/sglang/pull/26888\r\n* @shanemort1982 made their first contribution in https://github.com/sgl-project/sglang/pull/31753\r\n* @ormandj made their first contribution in https://github.com/sgl-project/sglang/pull/30954\r\n* @daii-0818 made their first contribution in https://github.com/sgl-project/sglang/pull/31992\r\n* @gongy made their first contribution in https://github.com/sgl-project/sglang/pull/31417\r\n* @yilin-void made their first contribution in https://github.com/sgl-project/sglang/pull/26928\r\n* @xiaolin2004 made their first contribution in https://github.com/sgl-project/sglang/pull/32448\r\n* @xiaojun-zhang made their first contribution in https://github.com/sgl-project/sglang/pull/32104\r\n* @waynel96 made their first contribution in https://github.com/sgl-project/sglang/pull/31968\r\n* @andrew52522 made their first contribution in https://github.com/sgl-project/sglang/pull/30614\r\n* @Lin-z-w made their first contribution in https://github.com/sgl-project/sglang/pull/30256\r\n* @13524182838 made their first contribution in https://github.com/sgl-project/sglang/pull/31563\r\n* @Hert4 made their first contribution in https://github.com/sgl-project/sglang/pull/32736\r\n* @Oxygen56 made their first contribution in https://github.com/sgl-project/sglang/pull/32540\r\n* @wirybeaver made their first contribution in https://github.com/sgl-project/sglang/pull/32115\r\n* @JinuJeong made their first contribution in https://github.com/sgl-project/sglang/pull/31339\r\n* @qiushixiaoyu made their first contribution in https://github.com/sgl-project/sglang/pull/29016\r\n* @Broduker made their first contribution in https://github.com/sgl-project/sglang/pull/30240\r\n* @vroomfondel made their first contribution in https://github.com/sgl-project/sglang/pull/31220\r\n* @zkyue made their first contribution in https://github.com/sgl-project/sglang/pull/31128\r\n* @ramm made their first contribution in https://github.com/sgl-project/sglang/pull/32896\r\n* @ajtulloch made their first contribution in https://github.com/sgl-project/sglang/pull/33126\r\n* @alumkal made their first contribution in https://github.com/sgl-project/sglang/pull/30971\r\n* @jinzhenfan made their first contribution in https://github.com/sgl-project/sglang/pull/31221\r\n* @Zhangmj0621 made their first contribution in https://github.com/sgl-project/sglang/pull/29173\r\n* @ltaodream made their first contribution in https://github.com/sgl-project/sglang/pull/30177\r\n* @guptaishaan made their first contribution in https://github.com/sgl-project/sglang/pull/32910\r\n* @gitover22 made their first contribution in https://github.com/sgl-project/sglang/pull/32525\r\n* @mrain made their first contribution in https://github.com/sgl-project/sglang/pull/33103\r\n* @amd-oshkarav made their first contribution in https://github.com/sgl-project/sglang/pull/32046\r\n* @CyberSecurityErial made their first contribution in https://github.com/sgl-project/sglang/pull/33065\r\n* @zealoct made their first contribution in https://github.com/sgl-project/sglang/pull/33367\r\n* @TobyMint made their first contribution in https://github.com/sgl-project/sglang/pull/33365\r\n\r\n**Full Changelog**: https://github.com/sgl-project/sglang/compare/v0.5.16...v0.5.17",
          "highlights": [
            "New Model Support",
            "Kimi K3",
            "[Kimi] Support kimi-k3: #32541 ⭐",
            "[Kimi] Support DCP + DSpark (ported from kimi-k3 branch): #32828",
            "[Kimi K3] Add reasoning, tool-call, and OpenAI serving support: #33025",
            "feat(kernels): port standalone Kimi K3 kernels: #32890"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "sgl-project/sglang",
            "kind": "milestone",
            "title": "#13290, #13240",
            "url": "https://github.com/sgl-project/sglang/milestone/1",
            "progress": 0,
            "openIssues": 1,
            "closedIssues": 0
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/ai-infrastructure/sglang.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "uv",
        "repository": "astral-sh/uv",
        "name": "uv",
        "keywords": [
          "Astral uv",
          "uv Python"
        ]
      },
      "group": {
        "id": "developer-infrastructure",
        "name": "Developer Infrastructure"
      },
      "news": {
        "repository": "astral-sh/uv",
        "collectedAt": "2026-08-13T18:02:14.474708+00:00",
        "latestRelease": {
          "repository": "astral-sh/uv",
          "tag": "0.12.3",
          "title": "0.12.3",
          "url": "https://github.com/astral-sh/uv/releases/tag/0.12.3",
          "publishedAt": "2026-08-07T16:34:42Z",
          "notes": "## Release Notes\n\nReleased on 2026-08-07.\n\n### Python\n\n- Add CPython 3.13.15 ([#20997](https://github.com/astral-sh/uv/pull/20997))\n\n### Preview features\n\n- Add `--output-format` to select automatic, human-readable, or raw-byte output for `uv cache size` ([#20992](https://github.com/astral-sh/uv/pull/20992))\n- Preserve JSON output from `uv workspace metadata --quiet` while suppressing diagnostics ([#20991](https://github.com/astral-sh/uv/pull/20991))\n- Reduce memory usage for large workspaces by streaming `uv workspace metadata` JSON output ([#20990](https://github.com/astral-sh/uv/pull/20990))\n\n### Performance\n\n- Reduce Linux startup latency by initializing the workspace cache before spawning another thread ([#20989](https://github.com/astral-sh/uv/pull/20989))\n- Reuse compiled workspace exclusion patterns during workspace discovery ([#20988](https://github.com/astral-sh/uv/pull/20988))\n- Speed up conflict-heavy resolutions by avoiding materialized range complements ([#20982](https://github.com/astral-sh/uv/pull/20982))\n- Avoid slow procfs reads during Python interpreter discovery on Linux ([#20987](https://github.com/astral-sh/uv/pull/20987))\n\n### Documentation\n\n- Add PEP 740 attestations to the GitHub Actions publishing example ([#20986](https://github.com/astral-sh/uv/pull/20986))\n- Restrict the GitHub Actions publishing example to Python version tags ([#20973](https://github.com/astral-sh/uv/pull/20973))\n- Correct `--python-pin` to `--pin-python` in the `uv init --bare` example ([#20876](https://github.com/astral-sh/uv/pull/20876))\n\n## Install uv 0.12.3\n\n### Install prebuilt binaries via shell script\n\n```sh\ncurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-installer.sh | sh\n```\n\n### Install prebuilt binaries via powershell script\n\n```sh\npowershell -ExecutionPolicy Bypass -c \"irm https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-installer.ps1 | iex\"\n```\n\n## Download uv 0.12.3\n\n|  File  | Platform | Checksum |\n|--------|----------|----------|\n| [uv-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-aarch64-apple-darwin.tar.gz.sha256) |\n| [uv-x86_64-apple-darwin.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-x86_64-apple-darwin.tar.gz.sha256) |\n| [uv-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-aarch64-pc-windows-msvc.zip.sha256) |\n| [uv-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-i686-pc-windows-msvc.zip.sha256) |\n| [uv-x86_64-pc-windows-msvc.zip](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-x86_64-pc-windows-msvc.zip.sha256) |\n| [uv-aarch64-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-aarch64-unknown-linux-gnu.tar.gz.sha256) |\n| [uv-i686-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-i686-unknown-linux-gnu.tar.gz.sha256) |\n| [uv-powerpc64le-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-powerpc64le-unknown-linux-gnu.tar.gz.sha256) |\n| [uv-riscv64gc-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-riscv64gc-unknown-linux-gnu.tar.gz.sha256) |\n| [uv-s390x-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-s390x-unknown-linux-gnu.tar.gz.sha256) |\n| [uv-x86_64-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-x86_64-unknown-linux-gnu.tar.gz.sha256) |\n| [uv-armv7-unknown-linux-gnueabihf.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-armv7-unknown-linux-gnueabihf.tar.gz.sha256) |\n| [uv-aarch64-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-aarch64-unknown-linux-musl.tar.gz.sha256) |\n| [uv-i686-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-i686-unknown-linux-musl.tar.gz.sha256) |\n| [uv-riscv64gc-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-riscv64gc-unknown-linux-musl.tar.gz) | RISCV MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-riscv64gc-unknown-linux-musl.tar.gz.sha256) |\n| [uv-x86_64-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-x86_64-unknown-linux-musl.tar.gz.sha256) |\n| [uv-arm-unknown-linux-musleabihf.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-arm-unknown-linux-musleabihf.tar.gz.sha256) |\n| [uv-armv7-unknown-linux-musleabihf.tar.gz](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/uv/releases/download/0.12.3/uv-armv7-unknown-linux-musleabihf.tar.gz.sha256) |\n\n## Verifying GitHub Artifact Attestations\n\nThe artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the [GitHub CLI](https://cli.github.com/manual/gh_attestation_verify):\n```sh\ngh attestation verify <file-path of downloaded artifact> --repo astral-sh/uv\n```\n\nYou can also download the attestation from [GitHub](https://github.com/astral-sh/uv/attestations) and verify against that directly:\n```sh\ngh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>\n```\n\n\n",
          "highlights": [
            "Release Notes",
            "Python",
            "Add CPython 3.13.15 (#20997)",
            "Preview features",
            "Add --output-format to select automatic, human-readable, or raw-byte output for uv cache size (#20992)",
            "Preserve JSON output from uv workspace metadata --quiet while suppressing diagnostics (#20991)"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "astral-sh/uv",
            "kind": "milestone",
            "title": "v0.13.0",
            "url": "https://github.com/astral-sh/uv/milestone/14",
            "description": "",
            "progress": 0,
            "openIssues": 2,
            "closedIssues": 0
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/developer-infrastructure/uv.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "redpanda",
        "repository": "redpanda-data/redpanda",
        "name": "Redpanda",
        "keywords": [
          "Redpanda"
        ]
      },
      "group": {
        "id": "data-infrastructure",
        "name": "Data / Messaging / Storage Infrastructure"
      },
      "news": {
        "repository": "redpanda-data/redpanda",
        "collectedAt": "2026-08-13T18:02:02.916137+00:00",
        "latestRelease": {
          "repository": "redpanda-data/redpanda",
          "tag": "v26.1.15",
          "title": "v26.1.15",
          "url": "https://github.com/redpanda-data/redpanda/releases/tag/v26.1.15",
          "publishedAt": "2026-08-07T03:37:58Z",
          "notes": "## Bug Fixes\r\n* Fix the registered config name for  `leader_balancer_node_mute_timeout`. by @WillemKauf in [#31360](https://github.com/redpanda-data/redpanda/pull/31360)\r\n* Fixes a bug in which L0 batches in a cloud topic forgot to preserve `last_offset_delta` in their header, leading to an under-declared last offset which can stall consumers, skip records, or halt exact-offset replication. by @WillemKauf in [#31363](https://github.com/redpanda-data/redpanda/pull/31363)\r\n* Fixes a bug in which topics with `min.compaction.lag.ms` left unconfigured with produced batches holding timestamps in the future would be considered ineligible for compaction by @WillemKauf in [#31459](https://github.com/redpanda-data/redpanda/pull/31459)\r\n* Fixes a bug in which transient `TOPIC_AUTHORIZATION_FAILED` errors and SASL authentication failures were possible during application of a controller snapshot. by @WillemKauf in [#31437](https://github.com/redpanda-data/redpanda/pull/31437)\r\n* Fixes a bug where corrupted storage would not yield a bad CRC in returned record batches. by @andrwng in [#31388](https://github.com/redpanda-data/redpanda/pull/31388)\r\n* Fixes a bug where having a cloud topic read replica on a given cluster would prevent L0 objects on that cluster from being garbage collected. by @andrwng in [#31391](https://github.com/redpanda-data/redpanda/pull/31391)\r\n* Updating a Shadow Link that uses PLAIN authentication no longer fails when the password is omitted; the stored password is preserved. by @r-vasquez in [#31421](https://github.com/redpanda-data/redpanda/pull/31421)\r\n* [#31448](https://github.com/redpanda-data/redpanda/issues/31448) `rpk connect install --connect-version` no longer rejects versions with a\r\nsegment of three or more digits, which had blocked pinning any Redpanda Connect\r\nrelease since 4.100.0. Malformed versions with trailing characters are now\r\nrejected during validation rather than failing at download. by @prakhargarg105 in [#31449](https://github.com/redpanda-data/redpanda/pull/31449)\r\n* `rpk security secrets list` no longer truncates its output at 100 secrets. by @simon0191 in [#31436](https://github.com/redpanda-data/redpanda/pull/31436)\r\n* `rpk shadow create` no longer fails secret-reference validation on clusters\r\nwith more than one page of `REDPANDA_CLUSTER`-scoped secrets. by @simon0191 in [#31436](https://github.com/redpanda-data/redpanda/pull/31436)\r\n* `rpk shadow update` in editor mode now replaces the entire Shadow Link configuration instead of merging changed fields, so list-valued fields (e.g. topic filters) can shrink or be cleared. by @r-vasquez in [#31421](https://github.com/redpanda-data/redpanda/pull/31421)\r\n\r\n## Improvements\r\n* [#31335](https://github.com/redpanda-data/redpanda/issues/31335) Fixes an issue where `/v1/usage` responses could cause oversized allocations for clusters with a large number of Iceberg-enabled topics. by @WillemKauf in [#31337](https://github.com/redpanda-data/redpanda/pull/31337)\r\n* `rpk cluster health` will now display any nodes that may be in maintenance mode. by @alextreichler in [#31352](https://github.com/redpanda-data/redpanda/pull/31352)\r\n\r\n**Full Changelog**: https://github.com/redpanda-data/redpanda/compare/v26.1.14...v26.1.15",
          "highlights": [
            "Bug Fixes",
            "Fix the registered config name for leaderbalancernodemutetimeout. by @WillemKauf in #31360",
            "Fixes a bug in which L0 batches in a cloud topic forgot to preserve lastoffsetdelta in their header, leading to an under-declared last offset which can stall consumers, skip records, or halt exact-offset replication. by @WillemKauf in #3136",
            "Fixes a bug in which topics with min.compaction.lag.ms left unconfigured with produced batches holding timestamps in the future would be considered ineligible for compaction by @WillemKauf in #31459",
            "Fixes a bug in which transient TOPICAUTHORIZATIONFAILED errors and SASL authentication failures were possible during application of a controller snapshot. by @WillemKauf in #31437",
            "Fixes a bug where corrupted storage would not yield a bad CRC in returned record batches. by @andrwng in #31388"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "redpanda-data/redpanda",
            "kind": "milestone",
            "title": "v26.2.x-next",
            "url": "https://github.com/redpanda-data/redpanda/milestone/329",
            "progress": 88,
            "openIssues": 8,
            "closedIssues": 58
          },
          {
            "repository": "redpanda-data/redpanda",
            "kind": "milestone",
            "title": "v26.1.16",
            "url": "https://github.com/redpanda-data/redpanda/milestone/332",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 11
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/data-infrastructure/redpanda.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "codex",
        "repository": "openai/codex",
        "name": "Codex",
        "keywords": [
          "OpenAI Codex"
        ]
      },
      "group": {
        "id": "coding-agent-infrastructure",
        "name": "Coding-Agent Infrastructure"
      },
      "news": {
        "repository": "openai/codex",
        "collectedAt": "2026-08-13T18:02:22.700129+00:00",
        "latestRelease": {
          "repository": "openai/codex",
          "tag": "rust-v0.147.0",
          "title": "0.147.0",
          "url": "https://github.com/openai/codex/releases/tag/rust-v0.147.0",
          "publishedAt": "2026-08-07T01:41:49Z",
          "notes": "## New Features\n- Install portable Agent Plugins and search across local, personal, workspace, and remote plugin catalogs. (#36544, #36409, #36919, #36796)\n- Organize conversations into persistent, manually ordered sections and browse long transcripts incrementally. (#35722, #36007, #36380, #36948, #36950)\n- Enable automatically reviewed approvals with the new `--approve-for-me` CLI flag. (#36373)\n- Import Cursor-managed skills and synchronize changes to imported Claude and Cursor conversations without creating duplicates. (#36361, #36356, #35623)\n- Support the opt-in MCP 2026-07-28 protocol, including paginated discovery, multi-round requests, and non-blocking server startup. (#35724, #35725, #35590, #35742)\n- Enable cached web search and remote conversation compaction for Amazon Bedrock. (#36938, #36981)\n\n## Bug Fixes\n- Redact secrets and complete bearer tokens from displayed commands and replayed conversation history. (#36893, #36908)\n- Prevent lost or stalled terminal input when focus returns, MCP servers initialize, or Ghostty handles keyboard shortcuts. (#35649, #35957, #36834)\n- Correct rendering and cursor positioning for Japanese characters, emoji, hyperlinks, and text near viewport boundaries. (#35960, #35962, #37166)\n- Properly interrupt Windows background processes and handle Windows filesystem paths consistently. (#35655, #35851, #37129)\n- Require explicit trust for unfamiliar local projects and enforce managed authentication restrictions before credentials are used. (#36960, #37132)\n- Harden plugin isolation and deny network access when policy updates fail. (#37027, #36967, #36037)\n\n## Documentation\n- Improve the bundled OpenAI documentation skill with targeted official-source lookup and clearer guidance for Codex, model selection, and API workflows. (#36014)\n\n## Chores\n- Upgrade the MCP SDK to 3.0.0, Ratatui to 0.30.2, and V8 to 150.4.0. (#36001, #35959, #35831)\n- Secure macOS release notarization using Azure Key Vault instead of exporting private signing keys. (#37154)\n- Remove the deprecated `codex exec --full-auto` flag; use `--sandbox workspace-write` instead. (#36054)\n- Stop publishing redundant Linux bundle archives; use the standard `codex-package-<target>` release archives. (#36342)\n\n## Changelog\n\nFull Changelog: https://github.com/openai/codex/compare/rust-v0.146.0...rust-v0.147.0\n\n- #35590 Expose cached MCP tools before server startup @copyberry\n- #35594 Recommend longer waits in the v2 wait_agent schema @copyberry\n- #35595 Allow alpha hotfix versions in R2 releases @copyberry\n- #35597 Add metrics for extension-rendered skill catalogs @copyberry\n- #35607 Record metrics for empty skill catalogs @copyberry\n- #35608 Support model-owned token budget defaults @copyberry\n- #35621 Skip restored token usage replay for exec resumes @copyberry\n- #35623 Parse Claude and Cursor session records separately @copyberry\n- #35642 Make OpenTelemetry provider shutdown idempotent @copyberry\n- #35644 Preserve thread metadata when rollout files are missing @copyberry\n- #35649 Preserve TUI input when terminal focus returns @copyberry\n- #35652 Enable network policy callbacks for remote exec @copyberry\n- #35653 Test developer instruction inheritance for multi-agent workers @copyberry\n- #35655 Terminate Windows non-TTY processes on interrupt @copyberry\n- #35656 Preserve multi-agent settings across config representations @copyberry\n- #35661 Place host skills before permission instructions @copyberry\n- #35663 Evaluate character matching over skill routing metadata @copyberry\n- #35665 Fix the async watcher test harness on Windows @copyberry\n- #35668 Expose the network proxy spec constructor @copyberry\n- #35670 Raise the Windows exec yield floor to 10 seconds @copyberry\n- #35671 Route curated plugins by authentication mode @copyberry\n- #35675 Prepare MCP and plugin recommendations concurrently @copyberry\n- #35678 Preserve paginated thread metadata across resumes @copyberry\n- #35685 Load cloud-managed profiles for `codex sandbox` @copyberry\n- #35688 Point crossterm patch to the OpenAI OSS fork @copyberry\n- #35689 Preserve item timestamps in thread history projections @copyberry\n- #35691 Include empty-preview threads in relationship listings @copyberry\n- #35693 Refresh the subagent picker in the background @copyberry\n- #35695 Honor the configured SQLite home in the logs client @copyberry\n- #35708 Add configurable developer instructions for v2 subagents @copyberry\n- #35715 Support streaming bodies in route-aware HTTP requests @copyberry\n- #35717 Reuse route-aware clients for OpenAI file uploads @copyberry\n- #35720 Upgrade rmcp to 3.0.0-beta.3 @copyberry\n- #35721 Honor disabled code mode fallback without a process host @copyberry\n- #35722 Add persisted sections for organizing threads @copyberry\n- #35724 Add MCP 2026-07-28 discovery support @copyberry\n- #35725 Complete MCP 2026 client support @copyberry\n- #35738 Add bounded metadata for executed tool calls @copyberry\n- #35742 Avoid blocking turns on optional MCP startup @copyberry\n- #35744 Keep agent registry identities consistent @copyberry\n- #35766 Emit host skill budget warnings from world state @copyberry\n- #35769 Share the skills budget across host and executor catalogs @copyberry\n- #35772 Throttle models cache TTL renewals @copyberry\n- #35773 Scale skill metadata budgets with context windows @copyberry\n- #35777 Resolve MCP tool catalogs concurrently @copyberry\n- #35779 Load thread titles concurrently during session startup @copyberry\n- #35785 Support self-serve Business ProLite accounts @copyberry\n- #35787 Gate paginated thread history on the state database @copyberry\n- #35794 Wait for MCP readiness in the curated sync test @copyberry\n- #35802 Tag reports with the selected turn's model and effort @copyberry\n- #35806 Route MCP OAuth through configured HTTP clients @copyberry\n- #35814 Use configured HTTP clients for all MCP OAuth requests @copyberry\n- #35818 Advance latest-alpha-cli after release publishing completes @copyberry\n- #35821 Use the shared HTTP client for TUI network checks @copyberry\n- #35825 Use the shared HTTP client for announcement tips @copyberry\n- #35828 Enforce centralized SQLite connection creation @copyberry\n- #35830 Route WebRTC sideband joins to the Realtime API @copyberry\n- #35831 Update rusty_v8 to 150.4.0 @copyberry\n- #35835 Track parent turns for nested Codex requests @copyberry\n- #35836 Clean up cancelled MCP elicitation requests @copyberry\n- #35837 Expose plugin eligibility metadata in app-server summaries @copyberry\n- #35839 Decouple recommended plugins from tool suggestions @copyberry\n- #35840 Handle legacy MCP discovery prevalidation errors @copyberry\n- #35843 Tie remote exec servers to their parent stdin @copyberry\n- #35845 Support plaintext collaboration tool messages @copyberry\n- #35850 Preserve foreign paths in background terminal listings @copyberry\n- #35851 Normalize Windows namespace paths in path URIs @copyberry\n- #35854 Box app-server event payloads @copyberry\n- #35856 Resolve imported connectors by MCP server name @copyberry\n- #35857 Add Bazel unit test targets for Rust binaries @copyberry\n- #35859 Expose plugin installation timestamps in app-server summaries @copyberry\n- #35870 Include session titles in external agent import history @copyberry\n- #35874 Mark the primary environment in model context @copyberry\n- #35875 Allow environment readiness updates in place @copyberry\n- #35878 Use step environments for MCP file uploads @copyberry\n- #35886 Show blocked goals as stalled in the TUI @copyberry\n- #35887 Clean up side conversations in the background @copyberry\n- #35895 Inherit ready step environments when spawning agents @copyberry\n- #35937 Let unrelated tools run while MCP servers start @copyberry\n- #35941 Bound MCP namespace descriptions @copyberry\n- #35942 Update tests for current tool call and app-server event types @copyberry\n- #35944 Report direct input capability for listed subagents @copyberry\n- #35957 Fix TUI input queue handling during MCP startup @copyberry\n- #35959 Upgrade Ratatui to 0.30.2 @copyberry\n- #35960 Preserve hyperlink cell widths during terminal diffing @copyberry\n- #35962 Fix TUI layout for halfwidth Japanese sound marks @copyberry\n- #35982 Avoid cloning rollout history when truncating forks @copyberry\n- #35989 Display title-only reasoning summaries in the TUI @copyberry\n- #35990 Test exec-server compatibility across Codex versions @copyberry\n- #35992 Group external agent config migration into a module @copyberry\n- #35997 Remove obsolete rusty_v8 146.4.0 Bazel targets @copyberry\n- #36001 Upgrade rmcp to 3.0.0 @copyberry\n- #36002 Resolve MCP file uploads with environment-native paths @copyberry\n- #36006 Reduce response serialization and rollout scan overhead @copyberry\n- #36007 Add persisted manual ordering for thread sections @copyberry\n- #36008 Route pet asset downloads through the shared HTTP client @copyberry\n- #36011 Share optional MCP startup grace across connection sets @copyberry\n- #36014 Refine OpenAI docs skill source routing @copyberry\n- #36020 Avoid cloning ignored analytics notifications @copyberry\n- #36030 Increase the app-server tracing test stack size @copyberry\n- #36031 Load cloud-managed servers in MCP CLI commands @copyberry\n- #36033 Use the shared HTTP client in codex-protocol @copyberry\n- #36035 Exit the stdio app-server when its connection closes @copyberry\n- #36036 Allow naming forked chats from the TUI @copyberry\n- #36037 Deny network access when an allow amendment fails @copyberry\n- #36039 Limit MCP catalog pagination @copyberry\n- #36043 Document the Responses API proxy reqwest exception @copyberry\n- #36045 Distinguish unknown MCP authentication status @copyberry\n- #36047 Extract MCP environment headers into a local variable @copyberry\n- #36049 Keep tool-call metrics out of Statsig exports @copyberry\n- #36051 Avoid overwriting symlinked migration targets @copyberry\n- #36054 Remove legacy `--full-auto` handling from `codex exec` @copyberry\n- #36055 Expose MCP read-only hints in tool call items @copyberry\n- #36076 Remove codex-core's direct reqwest dependency @copyberry\n- #36078 Route Ollama through the shared HTTP client @copyberry\n- #36083 Handle fractional rate limits in thread history projection @copyberry\n- #36092 Correlate image requests and explicit interrupts with turns @copyberry\n- #36119 Unify tool runtime assembly before router construction @copyberry\n- #36120 Delegate readiness waits to tool runtimes @copyberry\n- #36121 Sandbox executor skill resource reads @copyberry\n- #36124 Respect filesystem permissions during capability discovery @copyberry\n- #36127 Centralize tool registration and protect host tools @copyberry\n- #36128 Preserve delegated tasks across remote compaction @copyberry\n- #36129 Resolve normalized tool name collisions in code mode @copyberry\n- #36133 Preserve executor workspace permissions for apply_patch @copyberry\n- #36138 Isolate apply-patch permission test variants @copyberry\n- #36139 Bound the code mode output termination test @copyberry\n- #36140 Wait for memory consolidation shutdown before finishing jobs @copyberry\n- #36146 Stabilize approval scenario tests @copyberry\n- #36148 Harden the file change approval integration test @copyberry\n- #36149 Strengthen session file change approval coverage @copyberry\n- #36165 Stabilize file approval replay test @copyberry\n- #36166 Make pending realtime sideband test deterministic @copyberry\n- #36167 Harden the auto-review model override test @copyberry\n- #36168 Make tool telemetry tag collection synchronous @copyberry\n- #36171 Test workspace-root patch protection for metadata @copyberry\n- #36177 Test remote Guardian network approval scoping @copyberry\n- #36181 Record attempted tool calls in response metadata @copyberry\n- #36183 Use permission profiles throughout sandbox execution @copyberry\n- #36184 Coalesce concurrent remote metadata requests @copyberry\n- #36187 Refresh environment dates from the configured clock @copyberry\n- #36188 Make thread history projection resilient to malformed rollouts @copyberry\n- #36191 Label explicit skill injection metrics @copyberry\n- #36194 Avoid shifting bytes in streaming output buffers @copyberry\n- #36207 Record normalized sandbox violation events @copyberry\n- #36212 Precompute app-server protocol exports @copyberry\n- #36217 Run code mode exclusively through the standalone host @copyberry\n- #36218 Expose connector candidates in external agent detection @copyberry\n- #36221 Ignore passthrough metadata when reconciling rollout items @copyberry\n- #36223 Preserve executor paths in read command actions @copyberry\n- #36228 Support Enterprise automation account plans @copyberry\n- #36237 Ignore symbolic slash-tmp permissions on Windows @copyberry\n- #36239 Refresh precomputed app-server protocol exports @copyberry\n- #36264 Prefer the bundled resource for the code mode host @copyberry\n- #36271 Derive report prompt hashes from persisted rollouts @copyberry\n- #36306 Restrict hosted MCP credentials to local environments @copyberry\n- #36309 Use the host skill provider catalog in world state @copyberry\n- #36310 Isolate MCP OAuth credentials by environment @copyberry\n- #36311 Include skills in debug prompt input output @copyberry\n- #36327 Preserve discovery order for host skill path aliases @copyberry\n- #36329 Restrict `shell_command` to a single local environment @copyberry\n- #36336 Detect connectors used in external agent sessions @copyberry\n- #36339 Enable skills in the MCP server @copyberry\n- #36342 Stop publishing legacy Linux bundle archives @copyberry\n- #36350 Require explicit sandbox permissions with shell justifications @copyberry\n- #36351 Use model catalog collaboration mode messages @copyberry\n- #36354 Pass sessions directly to session tasks @copyberry\n- #36355 Keep MCP tool calls bound to their thread @copyberry\n- #36356 Sync updates to imported external agent sessions @copyberry\n- #36357 Use the step-scoped router for tool execution @copyberry\n- #36359 Consolidate MCP config editing in codex-core @copyberry\n- #36360 Use MCP bindings as the step tool catalog @copyberry\n- #36361 Migrate Cursor-managed skills into Codex @copyberry\n- #36364 Move skill catalog rendering out of core @copyberry\n- #36365 Add strict automatic review for MCP elicitations @copyberry\n- #36367 Keep effective tool exposure in the registry @copyberry\n- #36372 Run native Windows Bazel tests with MSVC @copyberry\n- #36373 Add an `--approve-for-me` CLI flag @copyberry\n- #36374 Enable sandboxed V8 for code mode @copyberry\n- #36378 Load local session pickers from the state DB first @copyberry\n- #36380 Add thread section management APIs @copyberry\n- #36384 Load turn summaries with paginated queries @copyberry\n- #36385 Add acknowledged user message submission to core @copyberry\n- #36388 Track image preparation details in turn analytics @copyberry\n- #36389 Enforce single-writer ownership for all thread histories @copyberry\n- #36393 Avoid redundant filesystem probes @copyberry\n- #36402 Declare the experimental plugin search API @copyberry\n- #36408 Allow custom Codex instructions for realtime transitions @copyberry\n- #36409 Implement remote plugin search @copyberry\n- #36410 Make user input blocking behavior explicit @copyberry\n- #36411 Use Git repositories as pre-tool hook test markers @copyberry\n- #36413 Add a realtime delegation acknowledgement control @copyberry\n- #36440 Extract exec-server request dispatching @copyberry\n- #36482 Avoid querying terminal size on every TUI redraw @copyberry\n- #36485 Increase remote plugin bundle size limits @copyberry\n- #36507 Retain attempted tool metadata across prompts @copyberry\n- #36511 Support two-stroke TUI key chords @copyberry\n- #36534 Raise the MCP catalog item limit to 2,048 @copyberry\n- #36544 Support portable Agent Plugins throughout installation @copyberry\n- #36632 Preserve SQLite thread metadata during goal mutations @copyberry\n- #36635 Expose onboarding hints in login completion notifications @copyberry\n- #36641 Capture rollout budget units from response usage @copyberry\n- #36715 Use provider-reported rollout budget units @copyberry\n- #36716 Deduplicate MCP resource operation handling @copyberry\n- #36727 Simplify turn metadata state ownership @copyberry\n- #36729 Correlate code mode tool analytics with model responses @copyberry\n- #36732 Stabilize the cloud environment HTTP test @copyberry\n- #36734 Deduplicate MCP resource list handling @copyberry\n- #36740 Store turn skill state in extension data @copyberry\n- #36742 Simplify contextual user fragment registration @copyberry\n- #36744 Store the extension registry directly in its builder @copyberry\n- #36745 Consolidate apply_patch runtime execution @copyberry\n- #36757 Wait for patch events before reading shell snapshots @copyberry\n- #36759 Harden the TUI focus palette regression test @copyberry\n- #36764 Avoid building code-mode definitions during registration @copyberry\n- #36769 Stabilize the startup Git enrichment integration test @copyberry\n- #36770 Stabilize deferred goal fork testing @copyberry\n- #36771 Harden Linux managed proxy helper lifecycles @copyberry\n- #36772 Raise the host-owned Codex Apps catalog limit @copyberry\n- #36773 Derive the active user config layer from the layer stack @copyberry\n- #36774 Clarify config layer iteration APIs @copyberry\n- #36779 Stabilize network policy event capture in concurrent tests @copyberry\n- #36781 Add per-surface MCP tool exposure controls @copyberry\n- #36782 Add Guardian session reuse and interruption tests @copyberry\n- #36787 Consolidate model instructions in `ModelMessages` @copyberry\n- #36792 Gate plugin usage instructions by model capability @copyberry\n- #36793 Terminate timed-out Git process trees @copyberry\n- #36796 Add Agent Plugins MCP config parsing @copyberry\n- #36797 Normalize rusty_v8 checksum manifest line endings @copyberry\n- #36800 Avoid reinjecting permissions after command approvals @copyberry\n- #36807 Extract audio preparation into a utility crate @copyberry\n- #36808 Prefer SQLite names for local session archive commands @copyberry\n- #36809 Prefer the state database for `exec resume --last` @copyberry\n- #36810 Add MCP client conformance regression gates @copyberry\n- #36811 Honor per-environment login shell policy @copyberry\n- #36812 Add a dual-WebSocket transport for code mode @copyberry\n- #36815 Identify agents by name in token budget context @copyberry\n- #36822 Fix typo in approval resolver name @copyberry\n- #36825 Consolidate approval telemetry context @copyberry\n- #36830 Time out stalled code-mode host requests @copyberry\n- #36834 Avoid requesting key-release events in Ghostty @copyberry\n- #36840 Keep API request metrics out of Statsig exports @copyberry\n- #36856 Support deferred loading for freeform tools @copyberry\n- #36857 Support custom tools in namespaces @copyberry\n- #36862 Consolidate thread spawning behind a request object @copyberry\n- #36871 Parallelize R2 asset publishing with DotSlash @copyberry\n- #36877 Move executor skill bundle loading into the skills extension @copyberry\n- #36880 Move direct executor skill discovery into the skills extension @copyberry\n- #36882 Preserve complete MCP namespace descriptions @copyberry\n- #36884 Add host skill root loading @copyberry\n- #36892 Support leaf models in multi-agent v2 @copyberry\n- #36893 Redact secrets from app-server command execution items @copyberry\n- #36895 Handle late MCP startup results after lag timeout @copyberry\n- #36898 Avoid redundant filesystem metadata probes @copyberry\n- #36900 Register app tools independently of the connector list @copyberry\n- #36901 Propagate updated permissions to review threads @copyberry\n- #36903 Load skill interface metadata in the host loader @copyberry\n- #36904 Limit RMCP logs persisted to SQLite @copyberry\n- #36906 Preserve model providers when reloading v2 agents @copyberry\n- #36908 Improve bearer token secret redaction @copyberry\n- #36910 Negotiate MCP extensions per app-server session @copyberry\n- #36912 Read approval policy from the current turn configuration @copyberry\n- #36913 Move skill policy resolution into `codex-skills` @copyberry\n- #36916 Centralize app enabled-state evaluation @copyberry\n- #36917 Test explicit plugin mentions with disabled apps @copyberry\n- #36919 Merge local plugins into plugin search results @copyberry\n- #36921 Move the host skills service into the skills extension @copyberry\n- #36924 Reject implicitly discovered bare Git repositories @copyberry\n- #36930 Read turn permissions from the current configuration @copyberry\n- #36935 Trust undecided local projects automatically @copyberry\n- #36938 Enable cached web search for Amazon Bedrock @copyberry\n- #36939 Include policy approval reasons in Guardian reviews @copyberry\n- #36941 Use current session settings for review threads @copyberry\n- #36943 Move host skill root resolution into the skills extension @copyberry\n- #36945 Grant the blob size policy job read access to contents @copyberry\n- #36947 Accept user input when starting idle turns @copyberry\n- #36948 Paginate transcript history in the TUI @copyberry\n- #36949 Improve paginated TUI history loading @copyberry\n- #36950 Paginate TUI transcript history @copyberry\n- #36951 Harden paginated history handling in the TUI @copyberry\n- #36952 Add durable per-thread user submission queues @copyberry\n- #36954 Add tool registry collision policy configuration @copyberry\n- #36956 Keep image resize notices attached during remote compaction @copyberry\n- #36959 Track connectors detected in external agent sessions @copyberry\n- #36960 Prompt before trusting local project directories @copyberry\n- #36963 Link Codex attribution in pull request bodies @copyberry\n- #36964 Preserve working directories when importing external sessions @copyberry\n- #36966 Allow disabling the built-in image viewer @copyberry\n- #36967 Skip symlinks when installing plugins @copyberry\n- #36970 Make token budget context identity configurable @copyberry\n- #36976 Honor explicit-only orchestrator skills @copyberry\n- #36977 Improve connector detection for migrated sessions @copyberry\n- #36979 Add Fence auditing to the blob size workflow @copyberry\n- #36981 Enable remote compaction for Amazon Bedrock @copyberry\n- #36983 Preserve ChatGPT auth for trusted staging MCP servers @copyberry\n- #36984 Support configured ChatGPT cookies in HTTP clients @copyberry\n- #36986 Add process-scoped PSP routing for ChatGPT requests @copyberry\n- #36987 Add opt-in concurrent exec-server request dispatch @copyberry\n- #36989 Preserve shared bundled skill caches @copyberry\n- #36990 Remove legacy collaboration mode variants @copyberry\n- #36992 Allow injecting model catalog caches @copyberry\n- #36993 Support `includeTurns` reads for paginated threads @copyberry\n- #36998 Support deferred custom tools in tool search @copyberry\n- #37000 Keep shared skill caches fresh across plugin loads @copyberry\n- #37020 Enforce strict tool name collision errors @copyberry\n- #37022 Canonicalize default tools under the `functions` namespace @copyberry\n- #37027 Enforce Agent Plugin runtime boundaries @copyberry\n- #37031 Apply permission profile updates to future turn environments @copyberry\n- #37035 Align registry tests with canonical tool names @copyberry\n- #37038 Use turn environment permissions for tool execution @copyberry\n- #37040 Use turn environment permissions for context and discovery @copyberry\n- #37053 Reject conflicting namespace descriptions in strict tool mode @copyberry\n- #37055 Add safer TUI defaults for cyber models @copyberry\n- #37066 Preserve longer MCP source descriptions in tool search @copyberry\n- #37068 Fall back to per-process MCP cleanup on macOS @copyberry\n- #37083 Consolidate unified exec output state @copyberry\n- #37101 Reuse stable MCP bindings across sampling steps @copyberry\n- #37103 Use Luna for API-key Guardian reviews @copyberry\n- #37109 Bound interactive telemetry shutdown @copyberry\n- #37114 Add per-session code-mode execution limits @copyberry\n- #37128 Centralize tool approval handling in `Session` @copyberry\n- #37129 Make Windows path URI comparisons ASCII-case-insensitive @copyberry\n- #37132 Enforce managed authentication requirements locally @copyberry\n- #37134 Report prompt image resizing to the model @copyberry\n- #37144 Preserve discovery paths for symlinked skills @copyberry\n- #37145 Gate Apps usage instructions by model capability @copyberry\n- #37147 Track provisioned environment state across registration @copyberry\n- #37149 Project orchestrator skills through world state @copyberry\n- #37151 Coalesce concurrent Git status scans @copyberry\n- #37154 Use Azure Key Vault for macOS notarization @copyberry\n- #37156 Test remote environments reported ready before selection @copyberry\n- #37157 Harden named session lookup in the TUI @copyberry\n- #37162 Load host skill roots through the skills extension @copyberry\n- #37166 Keep textarea cursors and rendering inside the viewport @copyberry\n- #37167 Expose session sources to MCP contributors @copyberry\n- #37168 Bound remote MCP handshake HTTP requests @copyberry\n- #37169 Move plugin skill snapshot integration tests into core @copyberry\n- #37174 Centralize skill invocation helpers in `codex-skills` @copyberry\n- #37175 Add legacy rollout migration to paginated history @copyberry\n- #37177 Move explicit skill selection into the skills crate @copyberry\n- #37178 Preserve image transparency metadata in app-server items @copyberry\n- #37188 Reserve the `tool_search` namespace for the search tool @copyberry\n- #37189 Track multi-agent usage hints in world state @copyberry\n\n\n",
          "highlights": [
            "New Features",
            "Install portable Agent Plugins and search across local, personal, workspace, and remote plugin catalogs. (#36544, #36409, #36919, #36796)",
            "Organize conversations into persistent, manually ordered sections and browse long transcripts incrementally. (#35722, #36007, #36380, #36948, #36950)",
            "Enable automatically reviewed approvals with the new --approve-for-me CLI flag. (#36373)",
            "Import Cursor-managed skills and synchronize changes to imported Claude and Cursor conversations without creating duplicates. (#36361, #36356, #35623)",
            "Support the opt-in MCP 2026-07-28 protocol, including paginated discovery, multi-round requests, and non-blocking server startup. (#35724, #35725, #35590, #35742)"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "openai/codex",
            "kind": "prerelease",
            "title": "0.148.0-alpha.12",
            "url": "https://github.com/openai/codex/releases/tag/rust-v0.148.0-alpha.12",
            "description": "Release 0.148.0-alpha.12\n\n",
            "tag": "rust-v0.148.0-alpha.12",
            "publishedAt": "2026-08-13T06:43:33Z"
          },
          {
            "repository": "openai/codex",
            "kind": "prerelease",
            "title": "0.148.0-alpha.11",
            "url": "https://github.com/openai/codex/releases/tag/rust-v0.148.0-alpha.11",
            "description": "Release 0.148.0-alpha.11\n\n",
            "tag": "rust-v0.148.0-alpha.11",
            "publishedAt": "2026-08-13T04:11:00Z"
          },
          {
            "repository": "openai/codex",
            "kind": "prerelease",
            "title": "0.148.0-alpha.9",
            "url": "https://github.com/openai/codex/releases/tag/rust-v0.148.0-alpha.9",
            "description": "Release 0.148.0-alpha.9\n\n",
            "tag": "rust-v0.148.0-alpha.9",
            "publishedAt": "2026-08-12T01:35:53Z"
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/coding-agent-infrastructure/codex.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "dragonfly",
        "repository": "dragonflydb/dragonfly",
        "name": "Dragonfly",
        "keywords": [
          "DragonflyDB"
        ]
      },
      "group": {
        "id": "data-infrastructure",
        "name": "Data / Messaging / Storage Infrastructure"
      },
      "news": {
        "repository": "dragonflydb/dragonfly",
        "collectedAt": "2026-08-13T18:02:04.758446+00:00",
        "latestRelease": {
          "repository": "dragonflydb/dragonfly",
          "tag": "v1.40.1",
          "title": "v1.40.1",
          "url": "https://github.com/dragonflydb/dragonfly/releases/tag/v1.40.1",
          "publishedAt": "2026-08-06T06:54:05Z",
          "notes": "## This is a patch release.\r\n\r\n### What's Changed\r\n\r\n- Fixed connection-state handling in squashed pipelines. Commands following `AUTH`, `SELECT`, `HELLO`, `CLIENT`, or `RESET` now observe the updated connection state instead of stale authentication, database, or RESP protocol state ([#8016](https://github.com/dragonflydb/dragonfly/pull/8016)).\r\n- Fixed compressed QList node memory accounting and defragmentation ([#8011](https://github.com/dragonflydb/dragonfly/pull/8011), [#8014](https://github.com/dragonflydb/dragonfly/pull/8014)).\r\n\r\nFull Changelog: [v1.40.0...v1.40.1](https://github.com/dragonflydb/dragonfly/compare/v1.40.0...v1.40.1)",
          "highlights": [
            "This is a patch release.",
            "What's Changed",
            "Fixed connection-state handling in squashed pipelines. Commands following AUTH, SELECT, HELLO, CLIENT, or RESET now observe the updated connection state instead of stale authentication, database, or RESP protocol state (#8016).",
            "Fixed compressed QList node memory accounting and defragmentation (#8011, #8014)."
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "dragonflydb/dragonfly",
            "kind": "milestone",
            "title": "Cluster Search",
            "url": "https://github.com/dragonflydb/dragonfly/milestone/19",
            "description": "",
            "dueAt": "2025-12-31T00:00:00Z",
            "progress": 60,
            "openIssues": 2,
            "closedIssues": 3
          },
          {
            "repository": "dragonflydb/dragonfly",
            "kind": "milestone",
            "title": "v1.41",
            "url": "https://github.com/dragonflydb/dragonfly/milestone/24",
            "description": "",
            "dueAt": "2026-09-10T00:00:00Z",
            "progress": 12,
            "openIssues": 7,
            "closedIssues": 1
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/data-infrastructure/dragonfly.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "otel-collector",
        "repository": "open-telemetry/opentelemetry-collector",
        "name": "OpenTelemetry Collector",
        "keywords": [
          "OpenTelemetry Collector",
          "OpenTelemetry"
        ]
      },
      "group": {
        "id": "observability",
        "name": "Observability & Reliability"
      },
      "news": {
        "repository": "open-telemetry/opentelemetry-collector",
        "collectedAt": "2026-08-13T18:01:59.912613+00:00",
        "latestRelease": {
          "repository": "open-telemetry/opentelemetry-collector",
          "tag": "v0.158.0",
          "title": "v1.64.0/v0.158.0",
          "url": "https://github.com/open-telemetry/opentelemetry-collector/releases/tag/v0.158.0",
          "publishedAt": "2026-08-04T13:44:21Z",
          "notes": "### Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.158.0\n\n## End User Changelog\n\n### 🚀 New components 🚀\n\n- `processor/queuebatch`: New `queuebatchprocessor` to replace the legacy `batchprocessor`. (#15047, #13582, #12022, #11308, #8272, #6046)\n  New implementation is based exporterhelper, uses same configuration as `sending_queue`.\n\n### 💡 Enhancements 💡\n\n- `cmd/mdatagen`: Add first-class extended type aliases (int64, duration, opaque_string, id, opaque_map, etc.) to config schemas in metadata.yaml (#15513)\n  Authors can now write `type: int64`, `type: duration`, `type: opaque_string`, `type: id`, or\n  `type: opaque_map` directly as a property type in the `config:` section of `metadata.yaml`.\n  Each alias expands to the correct JSON Schema representation and Go type automatically.\n  Existing uses of standard JSON Schema types, `format:`, and `x-customType:` remain supported\n  without migration.\n  \n- `extension/memory_limiter`: Promote the memory limiter extension to beta stability. (#14533)\n\n### 🧰 Bug fixes 🧰\n\n- `cmd/mdatagen`: Removes the extra line in the documentation.md around description (#15664)\n- `cmd/mdatagen`: Auto-enable v1 metrics when legacy metric is enabled and v1 feature gate is on (#15650)\n  When the v1 feature gate is enabled and a legacy metric is enabled, the corresponding\n  v1 metric is now programmatically enabled so users don't need to add the v1 metric\n  to their config.\n  \n- `cmd/mdatagen`: Fix incorrect collision warning for versioned metrics with different emitted names (#15648)\n  Same name collision detection (type/attribute checks) was being used for versioned metrics\n  with different names. This caused the legacy metric to be disabled which was incorrect and also\n  a warning msg was being incorrectly logged that stated the metrics had the same name when in\n  fact they had different names.\n  \n- `cmd/mdatagen`: Versioned metrics don't handle renamed attributes with same type (#15595)\n  Versioned metrics need to support emitting legacy and latest attributes when the metric name is the same but the\n  attributes names differ. This was not working when the attributes name changed but the type remained the same.\n  Here we add support to versioned metrics with renamed attributes where those attributes have the same type.\n  \n- `exporter/debug`: Fix profile sample attribute formatting for non-string values (#15647)\n  Previously, non-string values produced malformed output such as `%!s(int64=42)`.\n  Profile sample attributes now use the debug exporter's typed attribute format, such as `Int(42)`.\n  This will also change strings from `hello-world` to `Str(hello-world)`.\n  \n- `pkg/config/configtls`: Fix goroutine and file descriptor leak when `client_ca_file_reload` is enabled (#9221)\n  Every call to `ServerConfig.LoadTLSConfig` with `client_ca_file_reload` enabled started a\n  file watcher goroutine that could never be stopped, since the reloader was not reachable\n  from the returned `*tls.Config`. The client CA file is now checked for changes while TLS\n  handshakes are served, at most once per second, matching how `reload_interval` already\n  reloads the server certificate. No background goroutine is started, so nothing is left\n  behind when a server is torn down and recreated.\n  \n\n<!-- previous-version -->\n\n## API Changelog\n\n### 🛑 Breaking changes 🛑\n\n- `pkg/xconfmap`: Remove `Validator` and `Validate` (#15613)\n  Use the equivalent symbols in `confmap` instead.\n\n### 💡 Enhancements 💡\n\n- `cmd/mdatagen`: Add first-class extended type aliases (int64, duration, opaque_string, id, opaque_map, etc.) to config schemas in metadata.yaml (#15513)\n  Authors can now write `type: int64`, `type: duration`, `type: opaque_string`, `type: id`, or\n  `type: opaque_map` directly as a property type in the `config:` section of `metadata.yaml`.\n  Each alias expands to the correct JSON Schema representation and Go type automatically.\n  Existing uses of standard JSON Schema types, `format:`, and `x-customType:` remain supported\n  without migration.\n  \n- `pkg/config/configgrpc`: Mark configgrpc as stable (#9477)\n\n<!-- previous-version -->\n",
          "highlights": [
            "Images and binaries here: https://github.com/open-telemetry/opentelemetry-collector-releases/releases/tag/v0.158.0",
            "End User Changelog",
            "🚀 New components 🚀",
            "processor/queuebatch: New queuebatchprocessor to replace the legacy batchprocessor. (#15047, #13582, #12022, #11308, #8272, #6046)",
            "💡 Enhancements 💡",
            "cmd/mdatagen: Add first-class extended type aliases (int64, duration, opaquestring, id, opaquemap, etc.) to config schemas in metadata.yaml (#15513)"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "open-telemetry/opentelemetry-collector",
            "kind": "milestone",
            "title": "OpAMP",
            "url": "https://github.com/open-telemetry/opentelemetry-collector/milestone/29",
            "description": "",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 5
          },
          {
            "repository": "open-telemetry/opentelemetry-collector",
            "kind": "milestone",
            "title": "go.opentelemetry.io/collector/confighttp 1.0",
            "url": "https://github.com/open-telemetry/opentelemetry-collector/milestone/56",
            "description": "",
            "progress": 83,
            "openIssues": 2,
            "closedIssues": 10
          },
          {
            "repository": "open-telemetry/opentelemetry-collector",
            "kind": "milestone",
            "title": "go.opentelemetry.io/collector/config/configgrpc 1.0",
            "url": "https://github.com/open-telemetry/opentelemetry-collector/milestone/61",
            "description": "Tracking milestone for all the work to get to release version 1.0 for go.opentelemetry.io/collector/config/configgrpc go module.",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 11
          },
          {
            "repository": "open-telemetry/opentelemetry-collector",
            "kind": "milestone",
            "title": "go.opentelemetry.io/collector/configauth 1.0",
            "url": "https://github.com/open-telemetry/opentelemetry-collector/milestone/62",
            "description": "",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 5
          },
          {
            "repository": "open-telemetry/opentelemetry-collector",
            "kind": "milestone",
            "title": "go.opentelemetry.io/service 1.0",
            "url": "https://github.com/open-telemetry/opentelemetry-collector/milestone/70",
            "description": "",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 4
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/observability/otel-collector.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "prometheus",
        "repository": "prometheus/prometheus",
        "name": "Prometheus",
        "keywords": [
          "Prometheus monitoring"
        ]
      },
      "group": {
        "id": "observability",
        "name": "Observability & Reliability"
      },
      "news": {
        "repository": "prometheus/prometheus",
        "collectedAt": "2026-08-13T18:02:01.372754+00:00",
        "latestRelease": {
          "repository": "prometheus/prometheus",
          "tag": "v3.13.2",
          "title": "3.13.2 / 2026-07-29",
          "url": "https://github.com/prometheus/prometheus/releases/tag/v3.13.2",
          "publishedAt": "2026-07-30T13:25:26Z",
          "notes": "## What's Changed\r\n\r\n- [SECURITY] Bump golang.org/x/text to v0.39.0 (CVE-2026-56852) and google.golang.org/grpc to v1.82.1 (GHSA-hrxh-6v49-42gf). #19290 by @krajorama\r\n- [BUGFIX] PromQL: Preallocate the active query tracker file to avoid SIGBUS crashes when the data disk is full. #19289 by @akshajrawat\r\n\r\n**Full Changelog**: https://github.com/prometheus/prometheus/compare/v3.13.1...v3.13.2",
          "highlights": [
            "What's Changed",
            "[SECURITY] Bump golang.org/x/text to v0.39.0 (CVE-2026-56852) and google.golang.org/grpc to v1.82.1 (GHSA-hrxh-6v49-42gf). #19290 by @krajorama",
            "[BUGFIX] PromQL: Preallocate the active query tracker file to avoid SIGBUS crashes when the data disk is full. #19289 by @akshajrawat"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "prometheus/prometheus",
            "kind": "prerelease",
            "title": "3.14.0-rc.0 / 2026-08-06",
            "url": "https://github.com/prometheus/prometheus/releases/tag/v3.14.0-rc.0",
            "description": "- [CHANGE] API: Deprecate the `stats` query parameter of `/api/v1/query` and `/api/v1/query_range` for values other than `true` and `all`. Other values still enable basic statistics but now return a deprecation warning; they will be rejected in the next major release. #19124\r\n- [CHANGE] API: `/api/v1/status/config` now correctly shows `separator: \"\"` and `replacement: \"\"` in relabel configs when explicitly set to empty, instead of omitting them. #18653\r\n- [CHANGE] Discovery/Hetzner: Drop the `__meta_hetzner_datacenter` label for `hcloud` targets, following its removal from the Hetzner Cloud API. #19269\r\n- [CHANGE] PromQL: Enable duration expressions by default. The `promql-duration-expr` feature flag is now a no-op. #19033\r\n- [CHANGE] PromQL: Promote `first_over_time` to stable. It no longer requires the `promql-experimental-functions` feature flag. #19093\r\n- [FEATURE] Discovery: Add Oracle Cloud Infrastructure compute service discovery (`oci_sd_configs`). #18919\r\n- [FEATURE] PromQL: A",
            "tag": "v3.14.0-rc.0",
            "publishedAt": "2026-08-11T11:05:32Z"
          },
          {
            "repository": "prometheus/prometheus",
            "kind": "milestone",
            "title": "Native Histograms",
            "url": "https://github.com/prometheus/prometheus/milestone/10",
            "description": "This milestone is mostly about merging the new native histograms (AKA sparse histograms AKA high-res histograms) into the main branch (and hide it behind a feature flag), and only after that about declaring native histograms a stable feature (ultimately no-op'ing the feature flag). Therefore, the priorities have a slightly different meaning (because the issues do not affect the released Prometheus versions before we merge to the main branch):\r\n* **P0:** Prometheus, if built from the sparsehistogram branch, doesn't work properly until this is fixed.\r\n* **P1:** We must fix this before merging to main (e.g. Prometheus might not work properly even if the feature flag is not set)\r\n* **P2:** We can merge to main without this but we need to fix this to declare Histograms stable.\r\n* **P3:** Nice to have. Can be introduced later without a breaking change.\r\n* **P4:** The future! Do not focus on this for now. (Labeled as Pmaybe.)",
            "progress": 90,
            "openIssues": 13,
            "closedIssues": 114
          },
          {
            "repository": "prometheus/prometheus",
            "kind": "milestone",
            "title": "OTEL Support",
            "url": "https://github.com/prometheus/prometheus/milestone/12",
            "description": "",
            "progress": 71,
            "openIssues": 4,
            "closedIssues": 10
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/observability/prometheus.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "dagger",
        "repository": "dagger/dagger",
        "name": "Dagger",
        "keywords": [
          "Dagger CI"
        ]
      },
      "group": {
        "id": "developer-infrastructure",
        "name": "Developer Infrastructure"
      },
      "news": {
        "repository": "dagger/dagger",
        "collectedAt": "2026-08-13T18:02:08.867432+00:00",
        "latestRelease": {
          "repository": "dagger/dagger",
          "tag": "v0.21.8",
          "title": "v0.21.8",
          "url": "https://github.com/dagger/dagger/releases/tag/v0.21.8",
          "publishedAt": "2026-07-29T17:07:24Z",
          "notes": "## v0.21.8 - 2026-07-29\n\n### Changed\n\n- Changeset diffs are now computed from filesystem metadata instead of full-content comparison, significantly speeding up diff computation for large directories. by @marcosnils in\n  https://github.com/dagger/dagger/pull/13615\n\n### Fixed\n\n- Dockerfile build layer caching so unrelated build-context changes no longer bust the cache: `COPY`-ed directories now get a content-based cache identity, re-keying downstream steps only when copied content\n  actually changes. by @marcosnils in https://github.com/dagger/dagger/pull/13765\n- The `--x-release` CLI re-exec so `_EXPERIMENTAL_DAGGER_RUNNER_HOST` is preserved (with a warning) instead of being stripped, and clarified its startup message to avoid implying it runs from any build. by\n  @tiborvass in https://github.com/dagger/dagger/pull/13752\n- Silent SDK sessions no longer retain frontend telemetry in memory while Cloud and OTLP export remain enabled. `DAGGER_SILENT` is now honored as the equivalent of `--silent`. by @sipsma in\n  https://github.com/dagger/dagger/pull/13762\n\n### What to do next?\n\n- Read the [documentation](https://docs.dagger.io)\n- Join our [Discord server](https://discord.gg/dagger-io)\n- Follow us on [Twitter](https://twitter.com/dagger_io)\n\n",
          "highlights": [
            "v0.21.8 - 2026-07-29",
            "Changed",
            "Changeset diffs are now computed from filesystem metadata instead of full-content comparison, significantly speeding up diff computation for large directories. by @marcosnils in",
            "Fixed",
            "Dockerfile build layer caching so unrelated build-context changes no longer bust the cache: COPY-ed directories now get a content-based cache identity, re-keying downstream steps only when copied content",
            "The --x-release CLI re-exec so EXPERIMENTALDAGGERRUNNERHOST is preserved (with a warning) instead of being stripped, and clarified its startup message to avoid implying it runs from any build. by"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "dagger/dagger",
            "kind": "milestone",
            "title": "vsometime",
            "url": "https://github.com/dagger/dagger/milestone/37",
            "description": "High-priority issues that should be released soon, but are not strict blockers for the immediate next release.",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 36
          },
          {
            "repository": "dagger/dagger",
            "kind": "milestone",
            "title": "v1.0.1",
            "url": "https://github.com/dagger/dagger/milestone/130",
            "progress": 0,
            "openIssues": 1,
            "closedIssues": 0
          },
          {
            "repository": "dagger/dagger",
            "kind": "milestone",
            "title": "v1.0.0-beta.8",
            "url": "https://github.com/dagger/dagger/milestone/131",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 9
          },
          {
            "repository": "dagger/dagger",
            "kind": "milestone",
            "title": "v0.21.9",
            "url": "https://github.com/dagger/dagger/milestone/132",
            "description": "",
            "progress": 75,
            "openIssues": 1,
            "closedIssues": 3
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/developer-infrastructure/dagger.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "cilium",
        "repository": "cilium/cilium",
        "name": "Cilium",
        "keywords": [
          "Cilium"
        ]
      },
      "group": {
        "id": "platform-infrastructure",
        "name": "Platform / Networking / Runtime Infrastructure"
      },
      "news": {
        "repository": "cilium/cilium",
        "collectedAt": "2026-08-13T18:01:58.717486+00:00",
        "latestRelease": {
          "repository": "cilium/cilium",
          "tag": "v1.20.0",
          "title": "1.20.0",
          "url": "https://github.com/cilium/cilium/releases/tag/v1.20.0",
          "publishedAt": "2026-07-29T15:00:29Z",
          "notes": "🎉 **Release Announcement** 🎉: We are excited to announce the [Cilium 1.20.0](https://github.com/cilium/cilium/releases/tag/v1.20.0) release!\r\n\r\nMore than **2,660 new commits** have landed in this release, supported by a community of over **1,100 contributors** and more than **24,800 GitHub stars**! 🤩\r\n\r\n⚠️ You may need to take action during the upgrade if you use legacy Mutual Authentication, Envoy Go extensions or Kafka-aware policies, the `cilium.io/v2alpha1` `CiliumNodeConfig` API, the libnetwork integration, or a custom CNI configuration. See the [Upgrade Guide](https://docs.cilium.io/en/v1.20/operations/upgrade/#upgrade-notes) for details.\r\n\r\nThe full changelog can be found [here](https://github.com/cilium/cilium/blob/v1.20/CHANGELOG.md).\r\n\r\nHere are some of the highlights:\r\n\r\n* ⛩️ **Gateway API**\r\n    * 🚀 **Gateway API v1.6.1**: Cilium moves from Gateway API v1.4 to v1.6.1, bringing support for capabilities that graduated across both upstream releases. ([cilium/cilium#45251](https://github.com/cilium/cilium/pull/45251), @youngnick; [cilium/cilium#46827](https://github.com/cilium/cilium/pull/46827), [cilium/cilium#47274](https://github.com/cilium/cilium/pull/47274), @arybolovlev)\r\n    * 👥 **Delegate Gateway Listeners**: ListenerSets let application teams attach and manage their own listeners while the platform team retains ownership of the shared Gateway. ([cilium/cilium#46303](https://github.com/cilium/cilium/pull/46303), [cilium/cilium#46785](https://github.com/cilium/cilium/pull/46785), @asauber)\r\n    * 🔏 **Encrypt Traffic to Backends**: Gateway API `BackendTLSPolicy` support lets operators configure TLS and backend certificate validation for traffic between the gateway and application services. ([cilium/cilium#43045](https://github.com/cilium/cilium/pull/43045), @youngnick)\r\n    * 🔀 **TCPRoute and UDPRoute**: Databases, DNS servers, game servers and other non-HTTP services can now be managed through the same Gateway API model as HTTP and gRPC traffic. ([cilium/cilium#46184](https://github.com/cilium/cilium/pull/46184), [cilium/cilium#46970](https://github.com/cilium/cilium/pull/46970), @eminaktas; [cilium/cilium#47381](https://github.com/cilium/cilium/pull/47381), @arybolovlev)\r\n    * 🔐 **External Authorization**: HTTPRoute requests can now be authenticated and authorized through an external service before they reach the application, using the Gateway API `ExternalAuth` filter from GEP-1494. ([cilium/cilium#45739](https://github.com/cilium/cilium/pull/45739), @gauteoh)\r\n    * 🎛️ **More HTTP Traffic Controls**: HTTPRoutes gain native CORS support and additional 303, 307 and 308 redirect codes. `CiliumGatewayClassConfig` can also overwrite, append or preserve the HTTP Server response header. ([cilium/cilium#45924](https://github.com/cilium/cilium/pull/45924), @arybolovlev; [cilium/cilium#47232](https://github.com/cilium/cilium/pull/47232), @youngnick; [cilium/cilium#46764](https://github.com/cilium/cilium/pull/46764), @xtineskim)\r\n    * ↔️ **Configurable gRPC-Web Translation**: `CiliumGatewayClassConfig` can disable automatic gRPC-web translation for Gateways that need to pass the original traffic through unchanged. Translation remains enabled by default. ([cilium/cilium#45984](https://github.com/cilium/cilium/pull/45984), @thorn3r)\r\n\r\n\r\n* 🚠 **Networking**\r\n    * 🔌 **Extensible Datapath**: Datapath plugins let cloud providers extend or instrument Cilium's eBPF datapath with independently versioned programs, without maintaining a Cilium fork. ([cilium/cilium#45028](https://github.com/cilium/cilium/pull/45028), [cilium/cilium#45429](https://github.com/cilium/cilium/pull/45429), [cilium/cilium#45558](https://github.com/cilium/cilium/pull/45558), [cilium/cilium#46673](https://github.com/cilium/cilium/pull/46673), [cilium/cilium#46872](https://github.com/cilium/cilium/pull/46872), @jrife)\r\n    * 🚄 **Automatic Netkit Selection**: Set `bpf.datapathMode=auto` to use netkit automatically on supported kernels and fall back to veth on other nodes. The default remains veth. ([cilium/cilium#43062](https://github.com/cilium/cilium/pull/43062), @ajmmm)\r\n    * 📤 **Egress Gateway Improvements**: Dual-stack clusters can configure an explicit IPv6 egress IP. IPv4 Egress Gateway traffic also strictly honors the interface selected by the policy, matching the existing IPv6 behavior. ([cilium/cilium#44524](https://github.com/cilium/cilium/pull/44524), @yykkibbb; [cilium/cilium#45833](https://github.com/cilium/cilium/pull/45833), @julianwiedmann)\r\n    * 🔍 **Better BGP Tooling and Reconciliation**: New Hive shell commands expose route policies and clearer peer output formats. The control plane moves to GoBGP v4.6.1 and optimizes route-policy reconciliation. ([cilium/cilium#45628](https://github.com/cilium/cilium/pull/45628), [cilium/cilium#45534](https://github.com/cilium/cilium/pull/45534), @martonra; [cilium/cilium#45952](https://github.com/cilium/cilium/pull/45952), [cilium/cilium#46928](https://github.com/cilium/cilium/pull/46928), @rastislavs)\r\n\r\n\r\n* 🌐 **IPAM and IP Selection**\r\n    * ☁️ **IPv6 for AWS ENI IPAM (Beta)**: Cilium can now allocate IPv6 prefixes to pods through AWS ENI IPAM, building on the move to the multi-pool allocator. ([cilium/cilium#46756](https://github.com/cilium/cilium/pull/46756), [cilium/cilium#46619](https://github.com/cilium/cilium/pull/46619), @41ks; [cilium/cilium#45154](https://github.com/cilium/cilium/pull/45154), [cilium/cilium#45958](https://github.com/cilium/cilium/pull/45958), @HadrienPatte)\r\n    * 🔄 **Migrate to Multi-Pool IPAM**: Existing clusters can move from cluster-pool IPAM to multi-pool IPAM without being rebuilt. ([cilium/cilium#46104](https://github.com/cilium/cilium/pull/46104), @pippolo84)\r\n    * 🧭 **Dynamic NodePort Source Addresses**: NodePort can use the kernel FIB to select the preferred source address dynamically before SNATing north-south traffic, on supported kernels. ([cilium/cilium#44625](https://github.com/cilium/cilium/pull/44625), @ldelossa)\r\n    * 🔵 **Prefer IPv6 Consistently**: The new top-level `preferIpv6` option applies to both Cilium health probes and Hubble peer communication when IPv4 and IPv6 are available. ([cilium/cilium#45447](https://github.com/cilium/cilium/pull/45447), @tibrezus)\r\n\r\n\r\n* 🕸️ **Services and Cluster Mesh**\r\n    * 📍 **Topology-Aware Service Traffic**: Cilium's service load balancer now supports the Kubernetes `PreferSameZone` and `PreferSameNode` traffic distribution hints. ([cilium/cilium#44771](https://github.com/cilium/cilium/pull/44771), @raphink)\r\n    * ⚖️ **Weighted Maglev Backends**: Maglev now honors the `service.cilium.io/weight` annotation on EndpointSlices. A weight of zero drains new connections while allowing existing connections to continue. ([cilium/cilium#46061](https://github.com/cilium/cilium/pull/46061), @mhofstetter)\r\n    * 🌉 **More Load-Balancing Options with VXLAN**: Clusters using VXLAN can use per-Service load-balancing mode annotations, including compatible DSR configurations such as IPIP dispatch. ([cilium/cilium#45600](https://github.com/cilium/cilium/pull/45600), @brb)\r\n    * 🤖 **Stable MCS API Support**: Cilium's implementation of the Kubernetes Multi-Cluster Services API is now stable and recommended for portable service discovery through ClusterMesh. ([cilium/cilium#45404](https://github.com/cilium/cilium/pull/45404), [cilium/cilium#46953](https://github.com/cilium/cilium/pull/46953), @MrFreezeex)\r\n\r\n\r\n* 🔒 **Encryption and Network Policy**\r\n    * 🚇 **Improved Ztunnel Identity Management**: The ztunnel path now supports either an internal certificate authority or SPIRE-issued workload identities, alongside new Prometheus metrics for enrollment and connection health. It transparently encrypts enrolled pod-to-pod connections, including traffic between pods on the same node. ([cilium/cilium#43763](https://github.com/cilium/cilium/pull/43763), [cilium/cilium#44275](https://github.com/cilium/cilium/pull/44275), [cilium/cilium#44136](https://github.com/cilium/cilium/pull/44136), [cilium/cilium#45861](https://github.com/cilium/cilium/pull/45861), @nddq; [cilium/cilium#45096](https://github.com/cilium/cilium/pull/45096), @gokulMSFT)\r\n    * 🛡️ **Kubernetes ClusterNetworkPolicy (KCNP)**: Cilium now supports the upstream, cluster-scoped policy API, including Admin and Baseline policy tiers alongside namespaced Kubernetes NetworkPolicy. ([cilium/cilium#42338](https://github.com/cilium/cilium/pull/42338), @TheBeeZee; [cilium/cilium#46253](https://github.com/cilium/cilium/pull/46253), @aanm)\r\n    * ⛔ **Friendlier IPv6 Policy Denials**: Cilium can return ICMPv6 Destination Unreachable responses when network policy denies IPv6 egress traffic, matching the IPv4 capability introduced in Cilium 1.19. ([cilium/cilium#44234](https://github.com/cilium/cilium/pull/44234), @Andreagit97)\r\n    * 🌐 **Select the Entire Cluster Mesh**: The new `cluster-mesh` policy entity selects every endpoint across a mesh, making cross-cluster security policies easier to express. ([cilium/cilium#46813](https://github.com/cilium/cilium/pull/46813), @squeed)\r\n    * ☁️ **Standardize AWS VPC Group Policies**: Policies that reference AWS VPC groups are now transformed into `CiliumCIDRGroup` resources, bringing external IP groups into the standard Cilium policy model. ([cilium/cilium#44704](https://github.com/cilium/cilium/pull/44704), @squeed)\r\n    * 🛂 **Per-Pod Source IP Verification Control**: Trusted workloads that need to send traffic with non-local source addresses can disable source IP verification through a pod annotation, guarded by a namespace-level opt-in. ([cilium/cilium#43505](https://github.com/cilium/cilium/pull/43505), @zbb88888)\r\n\r\n\r\n* ⚙️ **Day 2 Operations and Observability**\r\n    * 🔧 **Detect Configuration Drift**: Cilium can expose how many ConfigMap settings an agent has not yet applied, making it easier to identify when a restart is required after a configuration change. ([cilium/cilium#44703](https://github.com/cilium/cilium/pull/44703), @PhilipSchmid)\r\n    * ⏱️ **Understand Agent Start-Up Time**: New Hive lifecycle and Kubernetes resource-sync metrics show how long individual resources and components take to initialize. ([cilium/cilium#44802](https://github.com/cilium/cilium/pull/44802), [cilium/cilium#44639](https://github.com/cilium/cilium/pull/44639), @ILL1A)\r\n    * 🛰️ **Correlate More Hubble Verdicts with Policies**: Hubble can now identify the policy responsible for audit verdicts. ([cilium/cilium#45373](https://github.com/cilium/cilium/pull/45373), @Rajneesh180)\r\n    * 📊 **Standalone DNS Proxy Metrics**: The Standalone DNS Proxy now exports DNS metrics back through Cilium, improving visibility when DNS policy processing runs outside the agent. ([cilium/cilium#45222](https://github.com/cilium/cilium/pull/45222), [cilium/cilium#44601](https://github.com/cilium/cilium/pull/44601), @vipul-21)\r\n\r\n\r\n* 🌅 **Performance and Scale**\r\n    * 💾 **Aggregated Load-Balancer State**: Cilium's internal backend representation has been flattened to efficiently support thousands of Services that share the same backends. ([cilium/cilium#44511](https://github.com/cilium/cilium/pull/44511), @joamaki)\r\n    * 📡 **More Efficient Envoy Updates**: New ADS and Delta xDS modes provide consistent or incremental delivery of Envoy resources, reducing CPU usage and policy update latency. ([cilium/cilium#43887](https://github.com/cilium/cilium/pull/43887), @nezdolik; [cilium/cilium#45288](https://github.com/cilium/cilium/pull/45288), @jrajahalme)\r\n    * 🗂️ **Optimized BPF Policy Map Encoding**: Semantic wildcard identities for remote-node and world reduce BPF policy-map pressure, particularly in larger clusters. ([cilium/cilium#46438](https://github.com/cilium/cilium/pull/46438), @squeed)\r\n    * 📦 **Smaller CNI Binary**: The `cilium-cni` binary has been reduced from roughly 77 MB to 16 MB, shrinking both the Cilium image and its footprint on every node. ([cilium/cilium#45845](https://github.com/cilium/cilium/pull/45845), @giorio94)\r\n    * 🛠️ **Updated Dependencies and Foundations**: Cilium 1.20 updates to Kubernetes v1.36, Envoy v1.37.x, Gateway API v1.6.1, GoBGP v4.6.1 and MCS API v0.5.2. Runtime and builder images now use Ubuntu 26.04, and the default CNI configuration version moves from 0.3.1 to 1.0.0. ([cilium/cilium#45499](https://github.com/cilium/cilium/pull/45499), [cilium/cilium#47215](https://github.com/cilium/cilium/pull/47215), @HadrienPatte; [cilium/cilium#45851](https://github.com/cilium/cilium/pull/45851), @sayboras; [cilium/cilium#47274](https://github.com/cilium/cilium/pull/47274), @arybolovlev; [cilium/cilium#45952](https://github.com/cilium/cilium/pull/45952), @rastislavs; [cilium/cilium#47166](https://github.com/cilium/cilium/pull/47166), @MrFreezeex; [cilium/cilium#46971](https://github.com/cilium/cilium/pull/46971), @gandro)\r\n\r\n\r\n* 🏠 **Community**\r\n    * ❤️ **Production Case Studies**: Many end-users have told their stories running Cilium in production. Read and watch more from: [Asana](https://www.youtube.com/watch?v=mxjiSCnrb3c), [Etraveli](https://www.youtube.com/watch?v=KWS-NaZd62M&list=PLDg_GiBbAx-mSQHa1y9Z9sjBYUmG2FBCZ&index=7), [Michelin](https://www.cncf.io/case-studies/michelin-2/), [OpenAI](https://isovalent.com/blog/post/openai-isovalent-networking-kubernetes-case-study/), [Suse](https://www.youtube.com/watch?v=bgCg1tS72ME&list=PLDg_GiBbAx-mSQHa1y9Z9sjBYUmG2FBCZ&index=8), [Telefónica's acens](https://blogs.cisco.com/sp/telefonicas-acens-and-cisco-driving-the-next-generation-of-cloud-native-services-with-isovalent), and [Zynga](https://www.cncf.io/case-studies/zynga/). If your company wants to submit their case studies let us know. We would love to hear your feedback!\r\n    * 🇳🇱 **Amsterdam Events**: The community gathered at [CiliumCon](https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/co-located-events/ciliumcon/) and [Cilium Developer Summit](https://github.com/cilium/dev-summits/tree/main/2026-EU) in Amsterdam. [Watch the talks](https://www.youtube.com/playlist?list=PLDg_GiBbAx-mSQHa1y9Z9sjBYUmG2FBCZ) from CiliumCon.\r\n    * 🇺🇸 **Salt Lake City Events**: Meet us at the upcoming [CiliumCon](https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/co-located-events/ciliumcon/) and Cilium Developer Summit at KubeCon + CloudNativeCon North America in Salt Lake City, November 9-12.\r\n    * 🤖 **Generative AI Policy**: The Cilium community adopted a [Generative AI Policy](https://github.com/cilium/community/blob/main/AI-POLICY.md) that encourages community members to connect and communicate with one another without the use of AI, while recognizing that different people work best with their own tools of choice.\r\n    * 📚 **Cilium Books**: Two new books landed for readers at every level — _[Cilium: Up and Running](https://isovalent.com/books/cilium-up-and-running/)_ (O'Reilly), a practitioner's deep dive and _[Buzzing Beyond Clouds: The Illustrated Children's Guide to Cilium](https://isovalent.com/books/children-guide-to-cilium/)_, the follow-up to the eBPF children's guide.\r\n\r\n❤️ **Thank You**: Cilium 1.20 was made possible by contributors, reviewers and maintainers from across the community, including engineers from Datadog, Google, Microsoft and many other organizations.\r\n\r\nTo keep up to date with all the latest Cilium releases, join #release 🎉\r\n\r\n## Docker Manifests\r\n\r\n### cilium\r\n\r\n`quay.io/cilium/cilium:v1.20.0@sha256:383968cd5e8873f7976fa76aa6196045643558f4cc9518a207b9335cb24a0e93`\r\n`quay.io/cilium/cilium:stable@sha256:383968cd5e8873f7976fa76aa6196045643558f4cc9518a207b9335cb24a0e93`\r\n\r\n### clustermesh-apiserver\r\n\r\n`quay.io/cilium/clustermesh-apiserver:v1.20.0@sha256:c791d0c334d4515d40041b2660d50a1b94b0179ef1d3c120bd350aebc9115e92`\r\n`quay.io/cilium/clustermesh-apiserver:stable@sha256:c791d0c334d4515d40041b2660d50a1b94b0179ef1d3c120bd350aebc9115e92`\r\n\r\n### hubble-relay\r\n\r\n`quay.io/cilium/hubble-relay:v1.20.0@sha256:2ca16981c7eb98df0ba9c9d18896bb9ca628b5cbd40dc9801339f4741f91ee94`\r\n`quay.io/cilium/hubble-relay:stable@sha256:2ca16981c7eb98df0ba9c9d18896bb9ca628b5cbd40dc9801339f4741f91ee94`\r\n\r\n### operator-alibabacloud\r\n\r\n`quay.io/cilium/operator-alibabacloud:v1.20.0@sha256:52535dba067abf5b1cce2a666ee3f9430a1682ade3bf11db5f118436e84ad2e9`\r\n`quay.io/cilium/operator-alibabacloud:stable@sha256:52535dba067abf5b1cce2a666ee3f9430a1682ade3bf11db5f118436e84ad2e9`\r\n\r\n### operator-aws\r\n\r\n`quay.io/cilium/operator-aws:v1.20.0@sha256:a0e50fa611fa3e2e8b1c9521a3e813576034a0b3d626e9c128ac01f8f7dfd0fa`\r\n`quay.io/cilium/operator-aws:stable@sha256:a0e50fa611fa3e2e8b1c9521a3e813576034a0b3d626e9c128ac01f8f7dfd0fa`\r\n\r\n### operator-azure\r\n\r\n`quay.io/cilium/operator-azure:v1.20.0@sha256:4506f8d0c9f2dd187313f71b37a789986c1c1699f59c52973941df9eb5ccae0c`\r\n`quay.io/cilium/operator-azure:stable@sha256:4506f8d0c9f2dd187313f71b37a789986c1c1699f59c52973941df9eb5ccae0c`\r\n\r\n### operator-generic\r\n\r\n`quay.io/cilium/operator-generic:v1.20.0@sha256:80744a8cc7c91c2f9e6347629406844eb35d79b30a732c6d41c15b17232a74f3`\r\n`quay.io/cilium/operator-generic:stable@sha256:80744a8cc7c91c2f9e6347629406844eb35d79b30a732c6d41c15b17232a74f3`\r\n\r\n### operator\r\n\r\n`quay.io/cilium/operator:v1.20.0@sha256:5dc67f7a0f1ad0f51813563366885cd8d4ee255cc49a65be5cf45d5e9810d58c`\r\n`quay.io/cilium/operator:stable@sha256:5dc67f7a0f1ad0f51813563366885cd8d4ee255cc49a65be5cf45d5e9810d58c`\r\n\r\n",
          "highlights": [
            "⛩️ Gateway API",
            "🚀 Gateway API v1.6.1: Cilium moves from Gateway API v1.4 to v1.6.1, bringing support for capabilities that graduated across both upstream releases. (cilium/cilium#45251, @youngnick; cilium/cilium#46827, cilium/cilium#47274, @arybolovlev)",
            "👥 Delegate Gateway Listeners: ListenerSets let application teams attach and manage their own listeners while the platform team retains ownership of the shared Gateway. (cilium/cilium#46303, cilium/cilium#46785, @asauber)",
            "🔏 Encrypt Traffic to Backends: Gateway API BackendTLSPolicy support lets operators configure TLS and backend certificate validation for traffic between the gateway and application services. (cilium/cilium#43045, @youngnick)",
            "🔀 TCPRoute and UDPRoute: Databases, DNS servers, game servers and other non-HTTP services can now be managed through the same Gateway API model as HTTP and gRPC traffic. (cilium/cilium#46184, cilium/cilium#46970, @eminaktas; cilium/cilium#4",
            "🔐 External Authorization: HTTPRoute requests can now be authenticated and authorized through an external service before they reach the application, using the Gateway API ExternalAuth filter from GEP-1494. (cilium/cilium#45739, @gauteoh)"
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "cilium/cilium",
            "kind": "prerelease",
            "title": "1.21.0-pre.0",
            "url": "https://github.com/cilium/cilium/releases/tag/v1.21.0-pre.0",
            "description": "Summary of Changes\r\n------------------\r\n\r\n**Major Changes:**\r\n* Envoy resources (e.g., Listeners, Network Policies, etc.) can now be synchronized with Envoy incrementally, reducing CPU load and policy update latency. This is enabled by the new agent option value `--envoy-xds-mode=delta-split`. Corresponding Helm value is `envoy.xdsMode=delta-split`. (cilium/cilium#45288, @jrajahalme)\r\n* network driver: add agent side baseline driver and dummy device manager (cilium/cilium#47254, @bersoare)\r\n\r\n**Minor Changes:**\r\n* build: Update iptables from 1.8.8 to 1.8.11 (cilium/cilium#47623, @HadrienPatte)\r\n* clustermesh: no longer restart pods when changing remote clustermesh-apiserver IPs statically defined (without a DNS name) (cilium/cilium#47190, @MrFreezeex)\r\n* CT map adaptive GC interval calculation improvements (cilium/cilium#46796, @fristonio)\r\n* Deprecate WireGuard Node Encryption (cilium/cilium#47219, @pchaigno)\r\n* envoy: demote stale ADS endpoint warning (cilium/cilium#47148, @nezdolik)",
            "tag": "v1.21.0-pre.0",
            "publishedAt": "2026-08-03T19:58:45Z"
          },
          {
            "repository": "cilium/cilium",
            "kind": "milestone",
            "title": "Network namespaces test consolidation",
            "url": "https://github.com/cilium/cilium/milestone/44",
            "description": "Work items related to revamping network namespace interactions.",
            "progress": 50,
            "openIssues": 1,
            "closedIssues": 1
          },
          {
            "repository": "cilium/cilium",
            "kind": "milestone",
            "title": "clang-free",
            "url": "https://github.com/cilium/cilium/milestone/45",
            "description": "Work contributing directly towards shipping a clang-free (or distroless) agent image.",
            "progress": 83,
            "openIssues": 5,
            "closedIssues": 25
          },
          {
            "repository": "cilium/cilium",
            "kind": "milestone",
            "title": "loader refactor",
            "url": "https://github.com/cilium/cilium/milestone/46",
            "description": "Address tech debt in package loader.",
            "progress": 100,
            "openIssues": 0,
            "closedIssues": 7
          },
          {
            "repository": "cilium/cilium",
            "kind": "milestone",
            "title": "ZTunnel Integration",
            "url": "https://github.com/cilium/cilium/milestone/54",
            "description": "This milestone tracks the integration with ZTunnel to support mTLS HBONE traffic between pods.",
            "progress": 70,
            "openIssues": 3,
            "closedIssues": 7
          },
          {
            "repository": "cilium/cilium",
            "kind": "milestone",
            "title": "1.22-feature-freeze",
            "url": "https://github.com/cilium/cilium/milestone/56",
            "description": "",
            "progress": 0,
            "openIssues": 1,
            "closedIssues": 0
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/platform-infrastructure/cilium.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "envoy",
        "repository": "envoyproxy/envoy",
        "name": "Envoy",
        "keywords": [
          "Envoy Proxy"
        ]
      },
      "group": {
        "id": "platform-infrastructure",
        "name": "Platform / Networking / Runtime Infrastructure"
      },
      "news": {
        "repository": "envoyproxy/envoy",
        "collectedAt": "2026-08-13T18:01:58.719902+00:00",
        "latestRelease": {
          "repository": "envoyproxy/envoy",
          "tag": "v1.39.0",
          "title": "v1.39.0",
          "url": "https://github.com/envoyproxy/envoy/releases/tag/v1.39.0",
          "publishedAt": "2026-07-14T22:03:18Z",
          "notes": "## Summary of changes\r\n\r\n## Breaking changes\r\n\r\n- **build**: Envoy now uses Bazel 8. Because Envoy still uses WORKSPACE mode, `--enable_workspace` and `--noenable_bzlmod` are required and have been added to `.bazelrc`; external-repository runfiles now appear directly under the runfiles root.\r\n- **build**: the Intel DLB connection balancer (`envoy.network.connection_balance.dlb`) is disabled for all builds due to a broken source archive.\r\n- **TLS**: `enforce_rsa_key_usage` is deprecated and ignored; Envoy now always enforces the certificate `keyUsage` extension.\r\n- **TLS inspector**: client TLS versions are validated and must be between TLS 1.0 and TLS 1.3 (revertible via `envoy.reloadable_features.tls_inspector_enforce_client_tls_version`).\r\n- **OpenTelemetry tracing**: the tracer now honors Envoy's request-entry sampling decision, including `overall_sampling`, even when propagated trace context or the configured sampler requests sampling. This may reduce exported spans.\r\n\r\n### Security\r\n- HTTP/2 now counts uncompressed cookies toward header-size and header-count limits (**CVE-2026-47774**), strengthens PRIORITY/WINDOW_UPDATE flood protection, and adds configurable nghttp2 RST_STREAM rate limits.\r\n- HTTP/3 fixes cover QPACK blocked-decoding denial of service (**GHSA-p7c7-7c47-pwch**) and inconsistent headers-only `content-length` handling (**CVE-2026-48743**).\r\n- Security fixes were added for ext_authz (**CVE-2026-47205**), ext_proc (**CVE-2026-47207**), gRPC stats (**CVE-2026-47204**), internal redirects (**CVE-2026-47221**), and OAuth2 lifecycle handling (**CVE-2026-48090**).\r\n- OAuth2 adds AES-256-GCM cookie encryption to address **CVE-2026-47775**. Migration is opt-in: enable `oauth2_use_gcm_encryption`, monitor `oauth_legacy_cbc_decrypt`, then disable `oauth2_legacy_cbc_decrypt_compat`.\r\n- Additional fixes cover DNS query validation (**CVE-2026-48497**), JSON nesting limits (**CVE-2026-48042**), PROXY protocol TLV smuggling (**CVE-2026-47692**), formatter crashes (**CVE-2026-47220**), TCP StatsD overflow (**CVE-2026-48706**), TLS SAN NUL handling (**CVE-2026-47778**), and Zstd decompression memory exhaustion (**CVE-2026-48044**).\r\n- New upstream RBAC and dynamic-forward-proxy resolved-address filtering provide CIDR-based protection against SSRF after DNS resolution and host selection.\r\n\r\n### Dynamic modules\r\n- New extension points: access-log/header formatters, downstream and upstream transport sockets, active health checkers, and stats sinks.\r\n- Cluster load balancers can read host stats, read and write dynamic metadata and filter state, and publish main-thread state to worker-local slots.\r\n- Modules can emit metrics from configuration and background contexts; loading and initialization failures now expose server-wide counters tagged by extension instance.\r\n- Added validation-mode detection, network/listener attribute access, batched header and metadata APIs, effective log-level access, and zero-copy borrowed buffers in the Rust SDK.\r\n- Fixed listener HTTP-callout crashes, watermark initialization, streaming-response re-entry, independent decode/encode continuation, CatchUnwind re-entry, `Struct` configuration handling, and HTTP/TCP bridge buffer overflow with more than 64 slices.\r\n\r\n### MCP (Model Context Protocol) and AI protocols\r\n- Added a Wuffs-backed streaming JSON parser for MCP, A2A, OpenAI, Anthropic, and related protocols, with bounded field capture, incremental parsing, no DOM allocation, and duplicate-key detection.\r\n- MCP filtering now exposes processing status, supports configurable duplicate-key rejection, and improves oversized-body behavior for pass-through and rejection modes.\r\n- MCP router adds elicitation and server-to-client request routing, plus lazy per-backend initialization.\r\n- MCP JSON REST Bridge adds per-route tool configuration and locally generated `tools/list` responses.\r\n\r\n### HTTP, routing and protocol\r\n- New HTTP filters provide weighted bandwidth sharing and selectable sub-filter chains with per-route configuration.\r\n- `HeaderMatcher` now evaluates separately supplied header values individually instead of matching only their comma-joined representation (revertible via `envoy.reloadable_features.match_headers_individually`).\r\n- HTTP inspector uses Balsa by default and now fast-fails invalid non-HTTP method bytes instead of buffering up to 64 KiB.\r\n- Added drain-timeout and maximum-connection-duration jitter to reduce synchronized reconnect spikes.\r\n- Routing gains cluster refresh on retries, weighted-cluster reselection, formatter/CEL-based redirect paths, and mixed literal/variable URI-template segments.\r\n- Fixed connection-pool re-entrancy, connectivity-grid teardown and duplicate-attempt bugs, stale on-demand cluster information, and handling of HTTP/2 or HTTP/3 `RST_STREAM(NO_ERROR)` after complete responses.\r\n\r\n### TLS, authentication and authorization\r\n- Added CNSA 1.0/2.0 compliance policies, TLS group formatters for identifying post-quantum key exchange, and suppression of oversized client CA lists.\r\n- QUIC supports opt-in TLS key logging and session-ticket resumption.\r\n- TLS certificate compression via the brotli runtime guard is disabled by default; TLS sockets also gain improved connection-reset reporting.\r\n- OAuth2 adds `PRIVATE_KEY_JWT`, ID-token forwarding, configurable post-logout redirects, access-token-based cookie lifetime, and safe original-request URI formatting with redirect-domain allowlists.\r\n- BasicAuth supports missing-credential pass-through and authenticated-username metadata; JWT extraction can mark forwarded claims whose signatures were not verified.\r\n\r\n### DNS, load balancing and upstream\r\n- The unified DNS cluster implementation is enabled by default; equivalent c-ares resolvers can be shared across clusters to support shared qcache.\r\n- DNS clusters gain a minimum TTL refresh floor, while dynamic forward proxy sub-clusters can use `DnsCluster` configuration and resolved-address CIDR filtering.\r\n- Client-side weighted round robin adds out-of-band ORCA reporting with configurable port, authority, and transport socket matching.\r\n- Least-request load balancing can optionally account for pending requests, with a new per-endpoint pending-request gauge.\r\n- Fixed EDS hostname updates, load reports containing only custom metrics or completed requests, and dynamic-forward-proxy lookup teardown.\r\n\r\n### Networking and system performance\r\n- Linux deployments gain worker CPU affinity and an `SO_REUSEPORT` BPF connection balancer for CPU-local connection steering.\r\n- Added a Linux sockmap socket interface for accelerating same-host TCP traffic through eBPF.\r\n- io_uring adds multishot receives, adaptive read buffers, and configurable write backpressure.\r\n- Reverse tunnels gain opt-in GOAWAY-aware draining and replacement; MySQL proxy adds downstream TLS termination with `caching_sha2_password` mediation.\r\n- Added UDP proxy external authorization, network ext_proc metadata reception, and early external-processor stream closure.\r\n\r\n### Observability\r\n- New access-log data includes upstream TLS SNI and HTTP/TCP downstream/upstream connection duration points; gRPC access logging adds delivery success/failure counters.\r\n- Added dynamic-module and Wasm programmable stats sinks, OpenTelemetry metric request chunking, endpoint observability names, and default-tag overrides.\r\n- Prometheus scraping and large-scale stat-reference release are substantially faster; `/peak_heap_dump` exposes tcmalloc's peak heap profile.\r\n- Added process-wide Lua and Wasm VM gauges, single-entry stack traces, and an Envoy-version log-format token.\r\n- Tap now honors configured runtime sampling and reports sampled-out requests/connections.\r\n\r\n### Rate limiting and configuration\r\n- Rate limiting adds static and dynamic per-descriptor limit overrides, zero-token always-reject behavior, and configurable response-metadata namespaces.\r\n- GCP authentication supports bound access tokens, bound JWTs, and unbound access tokens from the metadata server.\r\n- Added file-backed IP tagging, in-place watched-file modification events, runtime-adjustable fixed-heap limits, health-check HTTP status events, and xDS unsubscribe callbacks.\r\n- Redis proxy adds Redis 7.4 hash-field expiry commands and permits custom commands inside transactions.\r\n\r\n### Other notable changes and fixes\r\n- Fixed Hickory DNS resolver leaks and use-after-free, file-server cancellation use-after-free, Golang filter re-entry, outlier-detection teardown, missing network namespaces, and asynchronous TLS close handling.\r\n- Fixed RTDS guard removal, VHDS subscriptions, Wasm VM cache invalidation when environment variables change, and upstream Wasm metric scoping.\r\n- Improved UDP proxy attempted-host and address logging, Zipkin timestamp trace IDs, gRPC access-log failure accounting, and health-check event detail.\r\n- Added TCP proxy delayed route selection, drain-close handling, and connection-duration access logging.\r\n\r\n**Docker images**:\r\n    https://hub.docker.com/r/envoyproxy/envoy/tags?page=1&name=v1.39.0\r\n**Docs**:\r\n    https://www.envoyproxy.io/docs/envoy/v1.39.0/\r\n**Release notes**:\r\n    https://www.envoyproxy.io/docs/envoy/v1.39.0/version_history/v1.39/v1.39.0\r\n**Full changelog**:\r\n    https://github.com/envoyproxy/envoy/compare/v1.38.0...v1.39.0\r\n\r\n\r\nSigned-off-by: Kateryna Nezdolii [kateryna.nezdolii@gmail.com](mailto:kateryna.nezdolii@gmail.com)\r\nSigned-off-by: Ryan Northey [ryan@synca.io](mailto:ryan@synca.io)\r\nSigned-off-by: Jonh Wendell [jwendell@redhat.com](mailto:jwendell@redhat.com)\r\n",
          "highlights": [
            "Summary of changes",
            "Breaking changes",
            "build: Envoy now uses Bazel 8. Because Envoy still uses WORKSPACE mode, --enableworkspace and --noenablebzlmod are required and have been added to .bazelrc; external-repository runfiles now appear directly under the runfiles root.",
            "build: the Intel DLB connection balancer (envoy.network.connectionbalance.dlb) is disabled for all builds due to a broken source archive.",
            "TLS: enforcersakeyusage is deprecated and ignored; Envoy now always enforces the certificate keyUsage extension.",
            "TLS inspector: client TLS versions are validated and must be between TLS 1.0 and TLS 1.3 (revertible via envoy.reloadablefeatures.tlsinspectorenforceclienttlsversion)."
          ],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "envoyproxy/envoy",
            "kind": "milestone",
            "title": "Publicly available signed binaries/releases",
            "url": "https://github.com/envoyproxy/envoy/milestone/36",
            "description": "",
            "progress": 78,
            "openIssues": 2,
            "closedIssues": 7
          },
          {
            "repository": "envoyproxy/envoy",
            "kind": "milestone",
            "title": "Stabilizing the Golang filter",
            "url": "https://github.com/envoyproxy/envoy/milestone/48",
            "description": "The recently added Golang filter has a number of steps in its roadmap, some known issues and is going through some initial burnin. This milestone is to group issues and PRs",
            "progress": 92,
            "openIssues": 1,
            "closedIssues": 12
          },
          {
            "repository": "envoyproxy/envoy",
            "kind": "milestone",
            "title": "Switch to bzlmod",
            "url": "https://github.com/envoyproxy/envoy/milestone/106",
            "description": "",
            "progress": 50,
            "openIssues": 1,
            "closedIssues": 1
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/platform-infrastructure/envoy.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "etcd-raft",
        "repository": "etcd-io/raft",
        "name": "etcd Raft",
        "keywords": [
          "etcd raft"
        ]
      },
      "group": {
        "id": "distributed-systems",
        "name": "Distributed Systems & Correctness"
      },
      "news": {
        "repository": "etcd-io/raft",
        "collectedAt": "2026-08-13T18:01:56.517328+00:00",
        "latestRelease": {
          "repository": "etcd-io/raft",
          "tag": "v3.7.0",
          "title": "v3.7.0",
          "url": "https://github.com/etcd-io/raft/releases/tag/v3.7.0",
          "publishedAt": "2026-06-23T13:40:04Z",
          "notes": "See the [CHANGELOG/v3.7.0](https://github.com/etcd-io/raft/blob/main/CHANGELOG/CHANGELOG-3.7.md#v3702026-06-21) for more details.",
          "highlights": [],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "etcd-io/raft",
            "kind": "milestone",
            "title": "v4.0.0",
            "url": "https://github.com/etcd-io/raft/milestone/2",
            "description": "",
            "progress": 0,
            "openIssues": 4,
            "closedIssues": 0
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/distributed-systems/etcd-raft.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "foundationdb",
        "repository": "apple/foundationdb",
        "name": "FoundationDB",
        "keywords": [
          "FoundationDB"
        ]
      },
      "group": {
        "id": "distributed-systems",
        "name": "Distributed Systems & Correctness"
      },
      "news": {
        "repository": "apple/foundationdb",
        "collectedAt": "2026-08-13T18:01:58.567200+00:00",
        "latestRelease": {
          "repository": "apple/foundationdb",
          "tag": "7.3.77",
          "title": "Release 7.3.77",
          "url": "https://github.com/apple/foundationdb/releases/tag/7.3.77",
          "publishedAt": "2026-04-16T19:24:36Z",
          "notes": "Same code as 7.3.76 but with avx enabled.",
          "highlights": [],
          "prerelease": false
        },
        "upcoming": [
          {
            "repository": "apple/foundationdb",
            "kind": "prerelease",
            "title": "Release 7.3.79",
            "url": "https://github.com/apple/foundationdb/releases/tag/7.3.79",
            "description": "Same code as 7.3.78 but with avx enabled.",
            "tag": "7.3.79",
            "publishedAt": "2026-07-15T20:13:35Z"
          },
          {
            "repository": "apple/foundationdb",
            "kind": "prerelease",
            "title": "Release 7.3.78",
            "url": "https://github.com/apple/foundationdb/releases/tag/7.3.78",
            "description": "This release is compiled without avx instructions.",
            "tag": "7.3.78",
            "publishedAt": "2026-07-15T20:13:34Z"
          }
        ],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/distributed-systems/foundationdb.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "opencode",
        "repository": "anomalyco/opencode",
        "name": "OpenCode",
        "keywords": [
          "OpenCode"
        ]
      },
      "group": {
        "id": "coding-agent-infrastructure",
        "name": "Coding-Agent Infrastructure"
      },
      "news": {
        "repository": "anomalyco/opencode",
        "collectedAt": "2026-08-13T18:02:16.583088+00:00",
        "latestRelease": {
          "repository": "anomalyco/opencode",
          "tag": "v1.18.18",
          "title": "v1.18.18",
          "url": "https://github.com/anomalyco/opencode/releases/tag/v1.18.18",
          "publishedAt": "2026-08-13T01:15:04Z",
          "notes": "## Core\r\n### Bugfixes\r\n- Select the Kimi system prompt correctly for official Moonshot and Kimi providers\r\n- Fix xhigh reasoning effort for xai models\r\n",
          "highlights": [
            "Core",
            "Bugfixes",
            "Select the Kimi system prompt correctly for official Moonshot and Kimi providers",
            "Fix xhigh reasoning effort for xai models"
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/coding-agent-infrastructure/opencode.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "nats-server",
        "repository": "nats-io/nats-server",
        "name": "NATS Server",
        "keywords": [
          "NATS server",
          "NATS.io"
        ]
      },
      "group": {
        "id": "data-infrastructure",
        "name": "Data / Messaging / Storage Infrastructure"
      },
      "news": {
        "repository": "nats-io/nats-server",
        "collectedAt": "2026-08-13T18:02:04.571778+00:00",
        "latestRelease": {
          "repository": "nats-io/nats-server",
          "tag": "v2.14.5",
          "title": "Release v2.14.5",
          "url": "https://github.com/nats-io/nats-server/releases/tag/v2.14.5",
          "publishedAt": "2026-08-12T15:31:27Z",
          "notes": "## Changelog\r\n\r\nRefer to the [2.14 Upgrade Guide](https://docs.nats.io/release-notes/whats_new/whats_new_214) for backwards compatibility notes with 2.12.x. Please note that the 2.13.x version was skipped.\r\n\r\n### Go Version\r\n\r\n- 1.26.5\r\n\r\n### Dependencies\r\n\r\n- github.com/klauspost/compress v1.19.2 (#8459)\r\n- golang.org/x/crypto v0.55.0 (#8459)\r\n\r\n### Added\r\n\r\nLeafnodes\r\n\r\n- New `dial_timeout` option can be specified in the `leafnode` config block or for specific remotes in the configuration, allowing it to be increased above the default 1 second for high-latency links (#8427)\r\n\r\n### Fixed\r\n\r\nGeneral\r\n\r\n- Fixed a deadlock that could occur in the logger when a close error occurs (#8430)\r\n\r\nJetStream\r\n\r\n- Fix a bug that could result in potential data loss when handling idempotent stream creates when an offline node catches up from a metalayer snapshot, caused by an incorrect update to the create time in the stream assignment (#8449)\r\n\r\n### Complete Changes\r\n \r\nhttps://github.com/nats-io/nats-server/compare/v2.14.4...v2.14.5",
          "highlights": [
            "Changelog",
            "Go Version",
            "1.26.5",
            "Dependencies",
            "github.com/klauspost/compress v1.19.2 (#8459)",
            "golang.org/x/crypto v0.55.0 (#8459)"
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/data-infrastructure/nats-server.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "vllm",
        "repository": "vllm-project/vllm",
        "name": "vLLM",
        "keywords": [
          "vLLM"
        ]
      },
      "group": {
        "id": "ai-infrastructure",
        "name": "AI Infrastructure"
      },
      "news": {
        "repository": "vllm-project/vllm",
        "collectedAt": "2026-08-13T18:02:09.263295+00:00",
        "latestRelease": {
          "repository": "vllm-project/vllm",
          "tag": "v0.27.1",
          "title": "v0.27.1",
          "url": "https://github.com/vllm-project/vllm/releases/tag/v0.27.1",
          "publishedAt": "2026-08-11T10:47:49Z",
          "notes": "This is a patch release on top of v0.27.0.\r\n\r\n- Support quantized DSpark Markov heads (#50424)",
          "highlights": [
            "Support quantized DSpark Markov heads (#50424)"
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/ai-infrastructure/vllm.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "testcontainers-go",
        "repository": "testcontainers/testcontainers-go",
        "name": "Testcontainers for Go",
        "keywords": [
          "Testcontainers"
        ]
      },
      "group": {
        "id": "developer-infrastructure",
        "name": "Developer Infrastructure"
      },
      "news": {
        "repository": "testcontainers/testcontainers-go",
        "collectedAt": "2026-08-13T18:02:09.926681+00:00",
        "latestRelease": {
          "repository": "testcontainers/testcontainers-go",
          "tag": "v0.44.0",
          "title": "v0.44.0",
          "url": "https://github.com/testcontainers/testcontainers-go/releases/tag/v0.44.0",
          "publishedAt": "2026-08-07T10:53:52Z",
          "notes": "# What's Changed\r\n## 🔒 Security\r\n\r\n* security: fix Dependabot alerts for grpc and OTel (#3835) @mdelapenya\r\n\r\n## 🚀 Features\r\n\r\n* feat: allow overriding the session ID (#3051) @jcmfernandes\r\n* feat: add Azure SQL Edge module (#3787) @mdelapenya\r\n* feat: add S3Mock module (#3781) @mdelapenya\r\n* feat: add Fake-GCS-Server module (#3770) @mdelapenya\r\n* feat: add Typesense module (#3786) @mdelapenya\r\n* feat: add Firebird module (#3771) @mdelapenya\r\n* feat: add CouchDB module (#3768) @mdelapenya\r\n* feat: add Mosquitto module (#3774) @mdelapenya\r\n* feat: add Papercut-SMTP module (#3777) @mdelapenya\r\n* feat: add Timeplus module (#3784) @mdelapenya\r\n* feat: add Solr module (#3783) @mdelapenya\r\n* feat: add SFTP module (#3782) @mdelapenya\r\n* feat: add RavenDB module (#3780) @mdelapenya\r\n* feat: add QuestDB module (#3779) @mdelapenya\r\n* feat: add Presto module (#3778) @mdelapenya\r\n* feat: add OrientDB module (#3776) @mdelapenya\r\n* feat: add Nginx module (#3775) @mdelapenya\r\n* feat: add Mailpit module (#3773) @mdelapenya\r\n* feat: add Trino module (#3785) @mdelapenya\r\n* feat: add KurrentDB module (#3772) @mdelapenya\r\n* feat: add CrateDB module (#3769) @mdelapenya\r\n* feat: add ActiveMQ Classic module (#3767) @mdelapenya\r\n* feat: add ability to chain WithConfigModifier, WithEndpointSettingsModifier and WithHostConfigModifier (#3733) @LaurentGoderre\r\n\r\n## 🐛 Bug Fixes\r\n\r\n* fix: escape the container name in the Docker name filter (#3837) @jcmfernandes\r\n* fix: should print max information by default (#3459) @strowk\r\n* fix: read exec exit code only after draining the output stream (#3766) @dean-island\r\n* fix: properly wait for Ryuk startup when reusing reaper (#3761) @karsov\r\n* fix(openfga): remove playground wait from Run and up image to v1.18.0 (#3745) @selvakannanjr\r\n\r\n## 📖 Documentation\r\n\r\n* docs: fix incomplete CleanupContainer documentation (#3826) @Hashim1999164\r\n* docs: fix typo in SkipIfProviderIsNotHealthy docstring (#3764) @salandered\r\n* chore: update modules usage metrics (2026-07) (#3759) @[github-actions[bot]](https://github.com/apps/github-actions)\r\n* chore: update usage metrics (2026-07) (#3757) @[github-actions[bot]](https://github.com/apps/github-actions)\r\n* chore(metrics): usage metrics for modules (#3737) @mdelapenya\r\n* docs(site): add missing languages and reorder docs navigation (#3735) @mdelapenya\r\n\r\n## 🧹 Housekeeping\r\n\r\n* chore: update usage metrics (2026-08) (#3830) @[github-actions[bot]](https://github.com/apps/github-actions)\r\n* chore: update modules usage metrics (2026-08) (#3831) @[github-actions[bot]](https://github.com/apps/github-actions)\r\n* fix: correct indentation in dependabot.yml (#3808) @mdelapenya\r\n* chore(compose): use require instead of assert for service name checks (#3765) @sunghyun1999\r\n* chore: update usage metrics (2026-07) (#3757) @[github-actions[bot]](https://github.com/apps/github-actions)\r\n* chore(wait): replace manual StrategyTarget mocks with generated mockery mocks (#3603) @mateenali66\r\n* chore: use testify's require instead of assert (#3740) @TheRodzz\r\n* fix(metrics): harden collect.go and modules workflow (#3738) @mdelapenya\r\n\r\n## 📦 Dependency updates\r\n\r\n* chore(deps): bump slackapi/slack-github-action from 3.0.3 to 4.0.0 (#3788) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 (#3789) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump docker/setup-docker-action from 5.1.0 to 5.4.0 (#3790) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(azurite): tidy module dependencies (#3838) @mdelapenya\r\n* security: fix Dependabot alerts for grpc and OTel (#3835) @mdelapenya\r\n* chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/storage/azblob from 1.6.0 to 1.8.0 in /modules/azure (#3805) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azsecrets from 1.4.0 to 1.5.0 in /modules/azure (#3806) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump google.golang.org/grpc from 1.79.3 to 1.82.1 in /modules/weaviate (#3820) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump google.golang.org/grpc from 1.79.3 to 1.82.1 in /modules/qdrant (#3821) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump google.golang.org/grpc from 1.80.0 to 1.82.1 in /modules/grafana-lgtm (#3822) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump google.golang.org/grpc from 1.81.0 to 1.82.1 in /modules/gcloud (#3823) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump google.golang.org/grpc from 1.81.1 to 1.82.1 in /modules/compose (#3824) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore: propagate azcore dependency update to azurite module (#3818) @mdelapenya\r\n* chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azcore from 1.21.1 to 1.22.0 in /modules/azure (#3809) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/crypto from 0.53.0 to 0.54.0 (#3791) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump github.com/shirou/gopsutil/v4 from 4.26.5 to 4.26.6 (#3750) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/data/azcosmos from 1.4.1 to 1.5.0 in /modules/azure (#3810) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.5 to 1.19.29 in /modules/localstack (#3812) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.19.28 to 1.19.29 in /modules/s3mock (#3813) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.17.46 to 1.19.29 in /modules/scylladb (#3814) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/crypto from 0.53.0 to 0.54.0 in /modules/azure (#3811) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/crypto from 0.53.0 to 0.54.0 in /modules/azure (#3794) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump github.com/go-stomp/stomp/v3 from 3.0.5 to 3.1.5 in /modules/artemis (#3801) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.13.1 to 1.14.0 in /modules/azure (#3803) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump software.sslmate.com/src/go-pkcs12 from 0.6.0 to 0.7.3 in /modules/cassandra (#3804) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/mod from 0.37.0 to 0.38.0 in /modules/elasticsearch (#3796) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/mod from 0.37.0 to 0.38.0 in /modules/kafka (#3797) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump github.com/arangodb/go-driver/v2 from 2.1.3 to 2.3.1 in /modules/arangodb (#3800) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/crypto from 0.52.0 to 0.54.0 in /modules/dex (#3795) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump github.com/aerospike/aerospike-client-go/v8 from 8.6.0 to 8.7.0 in /modules/aerospike (#3799) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/crypto from 0.51.0 to 0.52.0 in /modules/dex (#3763) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/net from 0.53.0 to 0.55.0 in /modules/dex (#3758) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/mod from 0.36.0 to 0.37.0 in /modulegen (#3751) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/mod from 0.33.0 to 0.37.0 in /modules/redpanda (#3756) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golangci/golangci-lint-action from 7.0.0 to 9.3.0 (#3748) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump tj-actions/changed-files from 47.0.1 to 47.0.6 (#3746) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump SonarSource/sonarqube-scan-action from 5.1.0 to 8.2.0 (#3747) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump mkdocs-include-markdown-plugin from 7.2.2 to 7.3.0 (#3749) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/text from 0.34.0 to 0.38.0 in /modulegen (#3752) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/mod from 0.33.0 to 0.37.0 in /modules/elasticsearch (#3753) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/mod from 0.33.0 to 0.37.0 in /modules/kafka (#3754) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump golang.org/x/mod from 0.33.0 to 0.37.0 in /modules/localstack (#3755) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump actions/github-script from 7.0.1 to 9.0.0 (#3675) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump pymdown-extensions from 10.16.1 to 10.21.3 (#3707) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump go.mongodb.org/mongo-driver/v2 from 2.3.0 to 2.4.2 in /modules/mongodb (#3730) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): bump go.mongodb.org/mongo-driver from 1.14.0 to 1.17.7 in /modules/weaviate (#3731) @[dependabot[bot]](https://github.com/apps/dependabot)\r\n* chore(deps): update moby to latest version (#3736) @Steven-Harris\r\n",
          "highlights": [
            "🔒 Security",
            "security: fix Dependabot alerts for grpc and OTel (#3835) @mdelapenya",
            "🚀 Features",
            "feat: allow overriding the session ID (#3051) @jcmfernandes",
            "feat: add Azure SQL Edge module (#3787) @mdelapenya",
            "feat: add S3Mock module (#3781) @mdelapenya"
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/developer-infrastructure/testcontainers-go.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "loki",
        "repository": "grafana/loki",
        "name": "Loki",
        "keywords": [
          "Grafana Loki"
        ]
      },
      "group": {
        "id": "observability",
        "name": "Observability & Reliability"
      },
      "news": {
        "repository": "grafana/loki",
        "collectedAt": "2026-08-13T18:02:03.296869+00:00",
        "latestRelease": {
          "repository": "grafana/loki",
          "tag": "v3.7.6",
          "title": "v3.7.6",
          "url": "https://github.com/grafana/loki/releases/tag/v3.7.6",
          "publishedAt": "2026-08-06T09:42:29Z",
          "notes": "## [3.7.6](https://github.com/grafana/loki/compare/v3.7.5...v3.7.6) (2026-08-05)\n\n\n### Bug Fixes\n\n* **queryrange:** Preserve sketch in MergeLabels [release-3.7.x] ([#23770](https://github.com/grafana/loki/issues/23770)) ([d48329d](https://github.com/grafana/loki/commit/d48329d090320f668cd8bd7ecd636d3dc0e664d2))",
          "highlights": [
            "3.7.6 (2026-08-05)",
            "Bug Fixes",
            "queryrange: Preserve sketch in MergeLabels [release-3.7.x] (#23770) (d48329d)"
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/observability/loki.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "clickhouse",
        "repository": "ClickHouse/ClickHouse",
        "name": "ClickHouse",
        "keywords": [
          "ClickHouse"
        ]
      },
      "group": {
        "id": "data-infrastructure",
        "name": "Data / Messaging / Storage Infrastructure"
      },
      "news": {
        "repository": "ClickHouse/ClickHouse",
        "collectedAt": "2026-08-13T18:02:06.669887+00:00",
        "latestRelease": {
          "repository": "ClickHouse/ClickHouse",
          "tag": "v26.7.3.19-stable",
          "title": "Release v26.7.3.19-stable",
          "url": "https://github.com/ClickHouse/ClickHouse/releases/tag/v26.7.3.19-stable",
          "publishedAt": "2026-08-06T07:18:47Z",
          "highlights": [],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/data-infrastructure/clickhouse.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "hermes-agent",
        "repository": "NousResearch/hermes-agent",
        "name": "Hermes Agent",
        "keywords": [
          "Hermes Agent"
        ]
      },
      "group": {
        "id": "coding-agent-infrastructure",
        "name": "Coding-Agent Infrastructure"
      },
      "news": {
        "repository": "NousResearch/hermes-agent",
        "collectedAt": "2026-08-13T18:02:15.811086+00:00",
        "latestRelease": {
          "repository": "NousResearch/hermes-agent",
          "tag": "v2026.8.3",
          "title": "Hermes Agent v0.20.0 (2026.8.3)",
          "url": "https://github.com/NousResearch/hermes-agent/releases/tag/v2026.8.3",
          "publishedAt": "2026-08-03T16:57:52Z",
          "notes": "# Hermes Agent v0.20.0 (v2026.8.3)\n\n\n**Release Date:** August 3, 2026\n**Since v0.19.0:** ~3,650 commits · ~1,400 merged PRs · ~5,200 files changed · ~559,000 insertions · ~405,000 deletions · **~1,200 issues closed** · 650+ contributors\n\n> **The Herald Release.** Hermes is the herald of the gods, and this release makes him one in earnest: he **speaks** (real-time conversational voice with streaming TTS, barge-in, on-device wake words, and hands-free control across the CLI, desktop, and every audio-capable gateway platform), he **carries word to other agents** (A2A v1.0), he **announces events to your systems** (signed outbound webhooks), and he **cites his sources** (grounded research with verifiable citations and fact-checking). Around that spine: the desktop app became a platform (artifacts with live preview, a plugin SDK, quick-entry from anywhere, multiple windows), the CLI got a wave of power commands (`!` shell mode, `/init`, `/diff`, `/context`, `/focus`), compression got smarter and gentler, and the tools themselves now recover from their own failures instead of making the model guess. This release rolls up everything from the v0.19.1 infrastructure patch tag — that window is fully documented here.\n\n---\n\n## ✨ Highlights\n\n- **Talk to Hermes — streaming, conversational voice with barge-in** — Voice mode used to mean: speak, wait for the whole reply to generate, then listen to one long audio file. Now Hermes speaks clause-by-clause as the response streams, you can interrupt it mid-sentence by just talking (it stops, listens, and the model is told you cut in), and busy-aware silence detection means it doesn't talk over you. This works in CLI voice mode, on the desktop, and through gateway adapters. Talking to Hermes finally feels like a conversation, not a voicemail exchange. ([#69511](https://github.com/NousResearch/hermes-agent/pull/69511), [#73862](https://github.com/NousResearch/hermes-agent/pull/73862), [#74223](https://github.com/NousResearch/hermes-agent/pull/74223), [#74000](https://github.com/NousResearch/hermes-agent/pull/74000), [#69602](https://github.com/NousResearch/hermes-agent/pull/69602) — @teknium1, @OutThisLife)\n\n- **Wake words and hands-free control** — Say your own open-vocabulary wake phrase (\"hey Hermes\", or anything you pick) and Hermes starts listening — detection runs on-device, so no audio leaves your machine while it waits. Multi-profile voice routing means different wake words can reach different profiles, and saying \"stop\" ends the voice chat on every surface without touching the keyboard. Your terminal is now something you can talk to from across the room. ([#70509](https://github.com/NousResearch/hermes-agent/pull/70509), [#73106](https://github.com/NousResearch/hermes-agent/pull/73106), [#73933](https://github.com/NousResearch/hermes-agent/pull/73933) — @teknium1)\n\n- **Voice on every platform** — Send a voice note to Hermes on WhatsApp, Feishu, DingTalk, LINE, QQ, Photon, or Weixin and it's transcribed and answered; auto-TTS replies are delivered platform-aware (opus where platforms want opus, captions attached correctly). STT is now fully configurable — its own `hermes tools` category, GUI toggles, dashboard dropdowns, unified language resolution so transcripts stop coming back in the wrong language, and OpenAI's gpt-transcribe support. One unified spoken-text preprocessor cleans markdown, code, and URLs out of speech across all TTS providers. ([#73515](https://github.com/NousResearch/hermes-agent/pull/73515), [#73508](https://github.com/NousResearch/hermes-agent/pull/73508), [#73910](https://github.com/NousResearch/hermes-agent/pull/73910), [#73513](https://github.com/NousResearch/hermes-agent/pull/73513), [#73067](https://github.com/NousResearch/hermes-agent/pull/73067) — @teknium1)\n\n- **Research you can trust — grounded citations with fact-checking** — The new `grounded-citations` skill makes Hermes produce research where every claim is backed by a verifiable source: quotes are matched against the actual page text (not hallucinated), citations link to the exact evidence, and a fact-checking mode turns the same machinery on any document or claim you hand it — it tells you what checks out, what doesn't, and what couldn't be verified. If you use Hermes for research, this is the difference between \"sounds right\" and \"provably sourced.\" ([#71698](https://github.com/NousResearch/hermes-agent/pull/71698), [#77104](https://github.com/NousResearch/hermes-agent/pull/77104) — @teknium1)\n\n- **Outbound webhooks — Hermes pushes events to your systems** — Until now, integrating with Hermes meant polling or listening on a platform. Now Hermes pushes **signed lifecycle events** (session activity, turn completions, tool events) to any HTTP endpoint you register — with HMAC signatures so your receiver can verify authenticity. Wire Hermes into your CI, your home automation, your dashboards, or any service that speaks HTTP, with no polling loop. ([#69406](https://github.com/NousResearch/hermes-agent/pull/69406) — @teknium1)\n\n- **The desktop app becomes a platform — artifacts, plugin SDK, quick entry** — Hermes desktop now renders **artifacts**: versioned cards with sandboxed live preview in a right-rail viewer, so generated HTML/apps run safely next to the chat. A real **plugin SDK** landed with Kanban as its founding plugin, `ctx.download` for handing users files, floating pane placement, and multiple GUI windows. A global-hotkey **quick-entry window** captures a thought into any session from anywhere in your OS. The desktop stopped being a chat client and started being a workbench. ([#72345](https://github.com/NousResearch/hermes-agent/pull/72345), [#61173](https://github.com/NousResearch/hermes-agent/pull/61173), [#74413](https://github.com/NousResearch/hermes-agent/pull/74413), [#72315](https://github.com/NousResearch/hermes-agent/pull/72315), [#68259](https://github.com/NousResearch/hermes-agent/pull/68259), [#73143](https://github.com/NousResearch/hermes-agent/pull/73143) — @OutThisLife, @teknium1)\n\n- **Hermes speaks Agent-to-Agent — A2A v1.0** — A new bundled plugin implements the Agent-to-Agent protocol, so Hermes can discover, talk to, and be driven by other A2A-compatible agents. This closes issue #514 — one of the oldest open feature requests in the repo. If you're building multi-agent systems with heterogeneous stacks, Hermes now has a standard wire protocol for joining them. ([#77109](https://github.com/NousResearch/hermes-agent/pull/77109) — @teknium1)\n\n- **CLI power-user wave** — `!command` runs a shell command instantly without spending a model turn. `/init` scans your project and generates (or updates) an `AGENTS.md`. `/diff` shows staged/all/session changes from any surface, `/context` breaks down exactly what's filling your context window, `/focus` gives you a reduced-output view with hidden-line recovery, and Ctrl+S stashes a half-written prompt into a browsable panel. Plus `hermes import-agent` migrates your Claude Code or Codex CLI setup into Hermes in one command. ([#72257](https://github.com/NousResearch/hermes-agent/pull/72257), [#72178](https://github.com/NousResearch/hermes-agent/pull/72178), [#72240](https://github.com/NousResearch/hermes-agent/pull/72240), [#72242](https://github.com/NousResearch/hermes-agent/pull/72242), [#72302](https://github.com/NousResearch/hermes-agent/pull/72302), [#72262](https://github.com/NousResearch/hermes-agent/pull/72262), [#72190](https://github.com/NousResearch/hermes-agent/pull/72190) — @teknium1, several salvaging long-standing community PRs)\n\n- **Correct the agent mid-turn — redirects** — If Hermes is heading the wrong way, you no longer have to `/stop` and re-explain. Type a correction while it works and the active turn is redirected: work in flight is preserved, the original prompt is kept, and the agent course-corrects with your new guidance. Paired with double-ESC draft discard and a composer undo stack, steering feels like editing, not restarting. ([#63104](https://github.com/NousResearch/hermes-agent/pull/63104), [#72339](https://github.com/NousResearch/hermes-agent/pull/72339), [#74736](https://github.com/NousResearch/hermes-agent/pull/74736) — @OutThisLife)\n\n- **Tools that fix themselves** — A sweep of self-recovery upgrades means the agent wastes far fewer turns on tool friction: truncated terminal output spills to a file the agent can read back, `patch` detects already-applied edits and diagnoses whitespace mismatches, `write_file` verifies content on disk, searches that match nothing probe for near-misses and recover, and common failure classes come back with actionable hints. The default tool-calling iteration limit also jumped 90 → 500 — long autonomous runs stopped hitting an artificial wall. ([#77041](https://github.com/NousResearch/hermes-agent/pull/77041), [#76998](https://github.com/NousResearch/hermes-agent/pull/76998), [#77024](https://github.com/NousResearch/hermes-agent/pull/77024), [#77055](https://github.com/NousResearch/hermes-agent/pull/77055), [#77011](https://github.com/NousResearch/hermes-agent/pull/77011), [#76992](https://github.com/NousResearch/hermes-agent/pull/76992), [#72176](https://github.com/NousResearch/hermes-agent/pull/72176) — @teknium1)\n\n- **Compression that respects your conversation** — Context compression got a deep overhaul: proactive tool-result pruning for large-window models, per-turn micro-compaction that amortizes the cost instead of one giant pause, a guaranteed N-user-message tail so recent conversation always survives, progress-aware timeouts that stop punishing slow summary models, and ghost-skill defense so a pruned skill can never silently haunt a session. Thresholds are now configurable per-model and in absolute tokens. Long sessions stay coherent and stop stalling. ([#70254](https://github.com/NousResearch/hermes-agent/pull/70254), [#75345](https://github.com/NousResearch/hermes-agent/pull/75345), [#70250](https://github.com/NousResearch/hermes-agent/pull/70250), [#71508](https://github.com/NousResearch/hermes-agent/pull/71508), [#70275](https://github.com/NousResearch/hermes-agent/pull/70275) — @teknium1, @kshitijk4poor, salvaging multiple community PRs)\n\n- **Smart approvals grow up** — `hermes approvals suggest` mines your approval history into allowlist proposals, operators can customize the smart-approval policy, a consecutive-denial circuit breaker stops a misbehaving loop cold, and desktop pairing approvals are profile-correct with a proper surface to answer them from. Plus a new approval gate for docker/podman daemon-redirect commands. Less clicking \"approve\", without giving an inch of control. ([#72259](https://github.com/NousResearch/hermes-agent/pull/72259), [#72186](https://github.com/NousResearch/hermes-agent/pull/72186), [#72203](https://github.com/NousResearch/hermes-agent/pull/72203), [#74446](https://github.com/NousResearch/hermes-agent/pull/74446), [#71092](https://github.com/NousResearch/hermes-agent/pull/71092) — @teknium1, @OutThisLife)\n\n- **Faster everywhere, again** — Prompt caching now covers tool schemas on native Anthropic without history loss. `hermes -w` cold start dropped ~14s → ~1.8s, `hermes update` no-ops got 2–6s faster, heavy SDKs lazy-load off the import path, config reads stopped deep-copying (54× faster on the telemetry gate), and the desktop shipped a second 60fps wave — streaming cost independent of transcript length, drag at 60fps with five streaming tabs, idle CPU near zero in the background. ([#76032](https://github.com/NousResearch/hermes-agent/pull/76032), [#71637](https://github.com/NousResearch/hermes-agent/pull/71637), [#74218](https://github.com/NousResearch/hermes-agent/pull/74218), [#74204](https://github.com/NousResearch/hermes-agent/pull/74204), [#71835](https://github.com/NousResearch/hermes-agent/pull/71835), [#72346](https://github.com/NousResearch/hermes-agent/pull/72346), [#75218](https://github.com/NousResearch/hermes-agent/pull/75218) — @kshitijk4poor, @teknium1, @OutThisLife)\n\n- **New places to run and be reached** — Buzz lands as a bundled gateway platform (Block's Nostr-based messenger, with native WebSocket transport and NIP-42 auth), the Vercel AI Gateway provider and Vercel Sandbox terminal backend return modernized, desktop gains an SSH remote-backend connection mode, and the Relay shipped four phases of parity — media, interactive prompts, thread lifecycle, typing indicators — plus HSP personal + org skill sync. ([#73610](https://github.com/NousResearch/hermes-agent/pull/73610), [#73761](https://github.com/NousResearch/hermes-agent/pull/73761), [#74518](https://github.com/NousResearch/hermes-agent/pull/74518), [#68130](https://github.com/NousResearch/hermes-agent/pull/68130), [#71300](https://github.com/NousResearch/hermes-agent/pull/71300)–[#71624](https://github.com/NousResearch/hermes-agent/pull/71624), [#66730](https://github.com/NousResearch/hermes-agent/pull/66730) — @teknium1, @yoniebans, @benbarclay)\n\n---\n\n## 🎙️ Voice & Speech\n\n### Conversational voice\n- Streaming, conversational TTS with barge-in across all surfaces; clause-by-clause synthesis for CLI voice mode + gateway adapters ([#69511](https://github.com/NousResearch/hermes-agent/pull/69511), [#73862](https://github.com/NousResearch/hermes-agent/pull/73862) — @OutThisLife, @teknium1)\n- Voice chat UX polish — busy-aware silence, stop hint, thinking sounds, barge-in fix; full-duplex turn listener (interrupt by voice during generation AND playback) ([#74000](https://github.com/NousResearch/hermes-agent/pull/74000), [#74223](https://github.com/NousResearch/hermes-agent/pull/74223) — @teknium1)\n- On-device wake words with open-vocabulary phrases + multi-profile voice routing; say \"stop\" to end voice chat hands-free on every surface ([#70509](https://github.com/NousResearch/hermes-agent/pull/70509), [#73106](https://github.com/NousResearch/hermes-agent/pull/73106), [#73933](https://github.com/NousResearch/hermes-agent/pull/73933) — @teknium1)\n- The model is told when the user interrupts its spoken reply; desktop speaks the whole turn and idle-flushes held narration ([#69602](https://github.com/NousResearch/hermes-agent/pull/69602), [#69936](https://github.com/NousResearch/hermes-agent/pull/69936) — @OutThisLife, @teknium1)\n- 15-item CLI/TUI voice-mode UX and environment fix wave ([#73520](https://github.com/NousResearch/hermes-agent/pull/73520) — @teknium1)\n\n### TTS / STT infrastructure\n- Unified spoken-text preprocessing + speed/instructions/provider tool params; unified STT language resolution (fixes the wrong-language transcription class); global `stt.language` defaults to `en` ([#73513](https://github.com/NousResearch/hermes-agent/pull/73513), [#73067](https://github.com/NousResearch/hermes-agent/pull/73067), [#73100](https://github.com/NousResearch/hermes-agent/pull/73100) — @teknium1)\n- Fully configurable STT — `hermes tools` category, GUI toggle/matrix, dashboard dropdowns, setup status; OpenAI gpt-transcribe support ([#73910](https://github.com/NousResearch/hermes-agent/pull/73910), [#73853](https://github.com/NousResearch/hermes-agent/pull/73853) — @teknium1)\n- Platform-aware auto-TTS voice delivery (opus platforms, streamed/global gap, captions); inbound voice classification/routing for Feishu, DingTalk, LINE, QQ, Photon, WhatsApp, Weixin ([#73508](https://github.com/NousResearch/hermes-agent/pull/73508), [#73515](https://github.com/NousResearch/hermes-agent/pull/73515) — @teknium1)\n- Command TTS/STT provider hardening — idle timeouts, env scrubbing, no-shell, path guards ([#73514](https://github.com/NousResearch/hermes-agent/pull/73514) — @teknium1)\n- Sync per-sentence TTS synthesis pipelined with playback — the next sentence renders while the current one speaks ([#77355](https://github.com/NousResearch/hermes-agent/pull/77355) — @kshitijk4poor)\n- Discord voice PCM streams to ffmpeg stdin instead of a temp file ([#76970](https://github.com/NousResearch/hermes-agent/pull/76970) — @kshitijk4poor)\n\n## 🏗️ Core Agent & Architecture\n\n### Compression & context\n- Proactive tool-result pruning for large-window models; per-turn micro-compaction; N-user tail guarantee (`compression.min_tail_user_messages`); bounded summarizer input with head+tail retention ([#70254](https://github.com/NousResearch/hermes-agent/pull/70254), [#75345](https://github.com/NousResearch/hermes-agent/pull/75345), [#70250](https://github.com/NousResearch/hermes-agent/pull/70250), [#70249](https://github.com/NousResearch/hermes-agent/pull/70249) — @teknium1, @kshitijk4poor)\n- Ghost-skill defense — `[SKILL_PRUNED]` markers, protected prune, deterministic survival; progress-aware timeouts; lock-contended compression soft-defers instead of exhausting ([#70275](https://github.com/NousResearch/hermes-agent/pull/70275), [#71508](https://github.com/NousResearch/hermes-agent/pull/71508), [#70285](https://github.com/NousResearch/hermes-agent/pull/70285) — @teknium1)\n- Per-model threshold overrides; absolute token threshold (`compression.threshold_tokens`); opt-in idle-triggered compaction; opt-in progress notices; structured local logging for compression attempts ([#69339](https://github.com/NousResearch/hermes-agent/pull/69339), [#69335](https://github.com/NousResearch/hermes-agent/pull/69335), [#69360](https://github.com/NousResearch/hermes-agent/pull/69360), [#70457](https://github.com/NousResearch/hermes-agent/pull/70457), [#69338](https://github.com/NousResearch/hermes-agent/pull/69338) — @teknium1)\n- Context-engine ABC grows `select_context()` + `on_turn_complete()` verbs (salvage of @chaos-xxl's RFC work); engines can suppress or customize compaction status ([#70458](https://github.com/NousResearch/hermes-agent/pull/70458), [#69859](https://github.com/NousResearch/hermes-agent/pull/69859) — @teknium1)\n- Strict redaction applied at every compaction text boundary ([#69294](https://github.com/NousResearch/hermes-agent/pull/69294) — @teknium1)\n\n### Prompt caching & hot-path performance\n- Tool schemas cached on native Anthropic without history loss + consolidated cache-plan internals ([#76032](https://github.com/NousResearch/hermes-agent/pull/76032), [#76067](https://github.com/NousResearch/hermes-agent/pull/76067) — @kshitijk4poor)\n- DeepSeek prompt caching on OpenCode gateways; per-API-call token accounting off the turn thread; OpenAI wire client reused across sequential LLM calls; send-path tool-call canonicalization memoized ([#75886](https://github.com/NousResearch/hermes-agent/pull/75886), [#73359](https://github.com/NousResearch/hermes-agent/pull/73359), [#73375](https://github.com/NousResearch/hermes-agent/pull/73375), [#76880](https://github.com/NousResearch/hermes-agent/pull/76880) — @teknium1, @kshitijk4poor)\n- Readonly config loader at 29 call sites (28× cheaper reads); per-turn config deepcopies killed (telemetry gate 54×); one raw config.yaml parse per process; inter-tool delay removed ([#74322](https://github.com/NousResearch/hermes-agent/pull/74322), [#74211](https://github.com/NousResearch/hermes-agent/pull/74211), [#74228](https://github.com/NousResearch/hermes-agent/pull/74228), [#64172](https://github.com/NousResearch/hermes-agent/pull/64172) — @teknium1, @Soju06)\n- Lazy heavy-SDK imports (−8-10% import cost on top of the mcp/tool-discovery diet); streaming hot loop drops per-chunk repr() (~3× cheaper accounting); cursor/memo optimizations for per-iteration history walks ([#74204](https://github.com/NousResearch/hermes-agent/pull/74204), [#74194](https://github.com/NousResearch/hermes-agent/pull/74194), [#74221](https://github.com/NousResearch/hermes-agent/pull/74221), [#74231](https://github.com/NousResearch/hermes-agent/pull/74231) — @teknium1)\n- Cold-start ~14s GIL stall during backend init mitigated; turn flush batched into one SQLite transaction; provider-capability-gated prompt cache keys (implied for api.openai.com) ([#77814](https://github.com/NousResearch/hermes-agent/pull/77814), [#77619](https://github.com/NousResearch/hermes-agent/pull/77619), [#77609](https://github.com/NousResearch/hermes-agent/pull/77609) — @kshitijk4poor)\n- AIAgent hot-path salvage — prompt-cache copy, reasoning-timeout precompute, lazy compressor init ([#57229](https://github.com/NousResearch/hermes-agent/pull/57229) — @kshitijk4poor)\n\n### Approvals & the agent loop\n- `hermes approvals suggest` mines approval history into allowlist proposals; operator-customizable `approvals.smart_policy`; consecutive-denial circuit breaker; cross-surface approvals mode command ([#72259](https://github.com/NousResearch/hermes-agent/pull/72259), [#72186](https://github.com/NousResearch/hermes-agent/pull/72186), [#72203](https://github.com/NousResearch/hermes-agent/pull/72203), [#63517](https://github.com/NousResearch/hermes-agent/pull/63517) — @teknium1)\n- Docker/podman daemon-redirect commands require approval; session-wide runaway-loop caps for web_search + delegate_task (Claude Code-inspired) ([#71092](https://github.com/NousResearch/hermes-agent/pull/71092), [#66600](https://github.com/NousResearch/hermes-agent/pull/66600) — @teknium1)\n- Mid-turn redirects — user corrections steer the active turn, preserving in-flight work and the original prompt ([#63104](https://github.com/NousResearch/hermes-agent/pull/63104), [#72339](https://github.com/NousResearch/hermes-agent/pull/72339) — @OutThisLife)\n- Delegation: structured timeout/stall metadata + live per-child status in `/agents`; subagents can use `execute_code`; redacted child tool history exposed in `subagent_stop`; public subagent lifecycle API for plugins ([#72300](https://github.com/NousResearch/hermes-agent/pull/72300), [#69325](https://github.com/NousResearch/hermes-agent/pull/69325), [#72403](https://github.com/NousResearch/hermes-agent/pull/72403), [#72501](https://github.com/NousResearch/hermes-agent/pull/72501) — @teknium1)\n- Single-owner refactors for backend identity + failure-scoped skips, empty-content wire repair, call_id/reasoning sanitization, model-switch parsing ([#72505](https://github.com/NousResearch/hermes-agent/pull/72505), [#73071](https://github.com/NousResearch/hermes-agent/pull/73071), [#74319](https://github.com/NousResearch/hermes-agent/pull/74319), [#74229](https://github.com/NousResearch/hermes-agent/pull/74229) — @teknium1)\n- Labeled reasoning excerpt surfaced at the empty-response terminal; tool_search probe-validates blind tool_call args ([#65144](https://github.com/NousResearch/hermes-agent/pull/65144), [#59267](https://github.com/NousResearch/hermes-agent/pull/59267) — @teknium1)\n\n### Tool self-recovery wave\n- Terminal: recoverable truncation (full output spilled + pre-truncation size), cwd echoed when a command changes directory, output-pattern failure hints ([#77041](https://github.com/NousResearch/hermes-agent/pull/77041), [#77004](https://github.com/NousResearch/hermes-agent/pull/77004), [#76992](https://github.com/NousResearch/hermes-agent/pull/76992) — @teknium1)\n- Patch: already-applied edits return success no-op, whitespace-visualized no-match diagnosis, ambiguous-match locations listed ([#76998](https://github.com/NousResearch/hermes-agent/pull/76998), [#77024](https://github.com/NousResearch/hermes-agent/pull/77024), [#77001](https://github.com/NousResearch/hermes-agent/pull/77001) — @teknium1)\n- Search: zero-match probes + multi-path recovery, auto-multiline for newline patterns; read_file default limit 500 → 2000 lines; negative-result cache for read/search misses; write_file verifies on-disk content ([#77011](https://github.com/NousResearch/hermes-agent/pull/77011), [#77102](https://github.com/NousResearch/hermes-agent/pull/77102), [#76996](https://github.com/NousResearch/hermes-agent/pull/76996), [#76945](https://github.com/NousResearch/hermes-agent/pull/76945), [#77055](https://github.com/NousResearch/hermes-agent/pull/77055) — @teknium1, @kshitijk4poor)\n- execute_code recovery hints; skill_view dedup stub for unchanged re-reads; terminal/execute_code schema prose trimmed ~40%; tiered tool disclosure scales with catalog size; default iteration limit 90 → 500 ([#77106](https://github.com/NousResearch/hermes-agent/pull/77106), [#77095](https://github.com/NousResearch/hermes-agent/pull/77095), [#77023](https://github.com/NousResearch/hermes-agent/pull/77023), [#67034](https://github.com/NousResearch/hermes-agent/pull/67034), [#72176](https://github.com/NousResearch/hermes-agent/pull/72176) — @teknium1)\n\n### Providers & models\n- Vercel AI Gateway provider + Vercel Sandbox terminal backend return, modernized (SDK 0.7.2, telemetry off) ([#74518](https://github.com/NousResearch/hermes-agent/pull/74518) — @teknium1)\n- Gemini 3.1 Pro + 3.6 Flash in catalogs; Gemini salvage cluster (3.6-flash aux default, Vertex catalog, direct cost tracking); claude-opus-5 in OpenRouter + Nous Portal; deepseek-v4-flash-0731 ([#73479](https://github.com/NousResearch/hermes-agent/pull/73479), [#73516](https://github.com/NousResearch/hermes-agent/pull/73516), [#70946](https://github.com/NousResearch/hermes-agent/pull/70946), [#75501](https://github.com/NousResearch/hermes-agent/pull/75501) — @teknium1)\n- Bedrock Converse API prompt caching (cachePoint) ([#70231](https://github.com/NousResearch/hermes-agent/pull/70231) — @JoaoMarcos44)\n- OpenAI data-residency endpoints get declared transport + correct catalog; provider-aware API-server request routing; backend-acknowledged session model lock; Nous sticky routing via top-level session_id ([#74958](https://github.com/NousResearch/hermes-agent/pull/74958), [#70853](https://github.com/NousResearch/hermes-agent/pull/70853), [#70950](https://github.com/NousResearch/hermes-agent/pull/70950), [#69253](https://github.com/NousResearch/hermes-agent/pull/69253) — @victor-kyriazakos, @teknium1)\n- Model picker: curated defaults + collapsible providers + select-all; stale caches served instantly with background refresh; custom-endpoint probe capped at 1.5s; honcho OAuth device-code login ([#73172](https://github.com/NousResearch/hermes-agent/pull/73172), [#76430](https://github.com/NousResearch/hermes-agent/pull/76430), [#76922](https://github.com/NousResearch/hermes-agent/pull/76922), [#61608](https://github.com/NousResearch/hermes-agent/pull/61608) — @OutThisLife, @teknium1, @kshitijk4poor, @akattelu)\n- ACP: named custom providers in the model selector; authenticated cross-provider model choices; non-blocking startup via background MCP discovery ([#70082](https://github.com/NousResearch/hermes-agent/pull/70082), [#70404](https://github.com/NousResearch/hermes-agent/pull/70404), [#75985](https://github.com/NousResearch/hermes-agent/pull/75985) — @israellot, @amanning3390, @kshitijk4poor)\n\n### Secrets & config\n- Command-helper secret source (composes with all vaults); one-command token rotation + actionable startup errors; opt-in encrypted break-glass cache for Bitwarden; vault-injected keys scoped per profile home; orchestrator preserve_existing + profile aliasing ([#69266](https://github.com/NousResearch/hermes-agent/pull/69266), [#68605](https://github.com/NousResearch/hermes-agent/pull/68605), [#69251](https://github.com/NousResearch/hermes-agent/pull/69251), [#69250](https://github.com/NousResearch/hermes-agent/pull/69250), [#69058](https://github.com/NousResearch/hermes-agent/pull/69058) — @teknium1)\n- `${env:VAR}` SecretRef parity between config.yaml and MCP config; secret-source env vars reach stdio MCP servers ([#69267](https://github.com/NousResearch/hermes-agent/pull/69267), [#69053](https://github.com/NousResearch/hermes-agent/pull/69053) — @teknium1)\n- Canonical config loaders for behavioral reads; table-driven config migration registry; DEFAULT_CONFIG extracted to config_defaults.py; auto-migration support floor at v12 ([#74237](https://github.com/NousResearch/hermes-agent/pull/74237), [#74200](https://github.com/NousResearch/hermes-agent/pull/74200), [#74182](https://github.com/NousResearch/hermes-agent/pull/74182), [#74433](https://github.com/NousResearch/hermes-agent/pull/74433) — @teknium1)\n\n## 🌐 Gateway, Relay & Fleet\n- Session activity heartbeats, stall watchdog, and bounded compression waits — re-landed hardened after an in-window revert cycle (originally #72424 by @fangliquanflq) ([#76354](https://github.com/NousResearch/hermes-agent/pull/76354) — @teknium1)\n- SessionState consolidation (19 session-keyed dicts → one turn/conversation/persistent-scoped object); TurnContext/TurnRunner seam extraction; declarative busy_policy on CommandDef ([#74289](https://github.com/NousResearch/hermes-agent/pull/74289), [#74353](https://github.com/NousResearch/hermes-agent/pull/74353), [#74197](https://github.com/NousResearch/hermes-agent/pull/74197) — @teknium1)\n- Relay parity waves: Phase 1 (supported_ops discovery, identity fields, /handoff aliasing), Phase 2 media, Phase 3 interactive prompts, Phase 4 thread lifecycle; egress typing indicators ([#71300](https://github.com/NousResearch/hermes-agent/pull/71300), [#71363](https://github.com/NousResearch/hermes-agent/pull/71363), [#71404](https://github.com/NousResearch/hermes-agent/pull/71404), [#71624](https://github.com/NousResearch/hermes-agent/pull/71624), [#69721](https://github.com/NousResearch/hermes-agent/pull/69721) — @benbarclay)\n- HSP skill sync: personal client (M1) + org-skills client (M2) + org-skill namespace with token-gated discovery ([#66730](https://github.com/NousResearch/hermes-agent/pull/66730), [#70024](https://github.com/NousResearch/hermes-agent/pull/70024), [#70459](https://github.com/NousResearch/hermes-agent/pull/70459) — @benbarclay)\n- Buzz (Block/Nostr) platform adapter with native WebSocket inbound transport + NIP-42 auth ([#73610](https://github.com/NousResearch/hermes-agent/pull/73610), [#73761](https://github.com/NousResearch/hermes-agent/pull/73761) — @teknium1)\n- Photon: native polls, effects, clarify-as-poll, rich links (4-PR salvage) ([#73614](https://github.com/NousResearch/hermes-agent/pull/73614) — @teknium1)\n- Slack: native Block Kit clarify buttons; opt-in reaction triggers; outbound payload sanitization; thread-context lifecycle fixes ([#69318](https://github.com/NousResearch/hermes-agent/pull/69318), [#70195](https://github.com/NousResearch/hermes-agent/pull/70195), [#69317](https://github.com/NousResearch/hermes-agent/pull/69317), [#69320](https://github.com/NousResearch/hermes-agent/pull/69320) — @teknium1)\n- Discord auto-thread sessions keyed on prospective_thread_id; reply references built from ids (no fetch_message); WhatsApp configurable inbound read receipts ([#76513](https://github.com/NousResearch/hermes-agent/pull/76513), [#76875](https://github.com/NousResearch/hermes-agent/pull/76875), [#73322](https://github.com/NousResearch/hermes-agent/pull/73322) — @benbarclay, @kshitijk4poor)\n- Kanban wakes resume the creator's DM/thread session; kanban/delegate wake-ups reach api_server sessions; per-task model + thinking-depth from the board ([#72191](https://github.com/NousResearch/hermes-agent/pull/72191), [#70171](https://github.com/NousResearch/hermes-agent/pull/70171), [#69876](https://github.com/NousResearch/hermes-agent/pull/69876), [#76417](https://github.com/NousResearch/hermes-agent/pull/76417) — @teknium1, @OutThisLife)\n- Relay: Discord tool-progress routed into the auto-thread instead of the parent channel ([#77830](https://github.com/NousResearch/hermes-agent/pull/77830) — @benbarclay)\n- Outbound webhooks — push signed lifecycle events to external endpoints; simplex channel enumeration in `hermes send --list` ([#69406](https://github.com/NousResearch/hermes-agent/pull/69406), [#77110](https://github.com/NousResearch/hermes-agent/pull/77110) — @teknium1)\n\n## 🖥️ Hermes Desktop App\n\n### The platform wave\n- **Artifacts** — versioned cards, sandboxed live preview, right-rail viewer ([#72345](https://github.com/NousResearch/hermes-agent/pull/72345) — @teknium1)\n- **Plugin SDK** — Kanban as the founding desktop plugin; `ctx.download` hands the user a file; widget-app SDK (apps as state+reducer+render) with three reference apps; widget-grid layout engine + background-aware theme engine ([#61173](https://github.com/NousResearch/hermes-agent/pull/61173), [#74413](https://github.com/NousResearch/hermes-agent/pull/74413), [#68306](https://github.com/NousResearch/hermes-agent/pull/68306), [#20379](https://github.com/NousResearch/hermes-agent/pull/20379) — @OutThisLife)\n- Quick-entry window (global hotkey → any session); multiple GUI windows; floating pane placement; pane toggles anywhere + hidden header; ⌘O open-folder-as-project ([#72315](https://github.com/NousResearch/hermes-agent/pull/72315), [#68259](https://github.com/NousResearch/hermes-agent/pull/68259), [#73143](https://github.com/NousResearch/hermes-agent/pull/73143), [#75848](https://github.com/NousResearch/hermes-agent/pull/75848), [#74623](https://github.com/NousResearch/hermes-agent/pull/74623) — @teknium1, @OutThisLife)\n- SSH remote-backend connection mode; event-driven live sync replaces always-on polls; remote profile routing/sessions/pool lifecycle repaired ([#68130](https://github.com/NousResearch/hermes-agent/pull/68130), [#73673](https://github.com/NousResearch/hermes-agent/pull/73673), [#72835](https://github.com/NousResearch/hermes-agent/pull/72835) — @yoniebans, @OutThisLife)\n- Let the agent drive the shell (preview pane + pane focus) AND inspect the desktop app it's developing; find-in-page (Ctrl+F); GUI terminal copy/paste + font picker ([#69519](https://github.com/NousResearch/hermes-agent/pull/69519), [#73121](https://github.com/NousResearch/hermes-agent/pull/73121), [#72235](https://github.com/NousResearch/hermes-agent/pull/72235), [#73705](https://github.com/NousResearch/hermes-agent/pull/73705), [#76395](https://github.com/NousResearch/hermes-agent/pull/76395) — @OutThisLife, @teknium1)\n\n### Composer & UX\n- Attach files/folders/links via picker; composer chips for @ paths and pasted links; composer undo stack; double-ESC discards draft; double-Enter sends the queued turn; type-to-focus ([#74668](https://github.com/NousResearch/hermes-agent/pull/74668), [#73110](https://github.com/NousResearch/hermes-agent/pull/73110), [#72201](https://github.com/NousResearch/hermes-agent/pull/72201), [#72288](https://github.com/NousResearch/hermes-agent/pull/72288), [#74736](https://github.com/NousResearch/hermes-agent/pull/74736), [#73101](https://github.com/NousResearch/hermes-agent/pull/73101), [#68918](https://github.com/NousResearch/hermes-agent/pull/68918) — @OutThisLife)\n- 2-keypress model switching (⌘⇧M); YOLO in ⌘K with live toggle state; keyboard-first pickers; keyboard navigation for clarify choices; server-owned pins that follow you between apps ([#74545](https://github.com/NousResearch/hermes-agent/pull/74545), [#74674](https://github.com/NousResearch/hermes-agent/pull/74674), [#74602](https://github.com/NousResearch/hermes-agent/pull/74602), [#69799](https://github.com/NousResearch/hermes-agent/pull/69799), [#74234](https://github.com/NousResearch/hermes-agent/pull/74234) — @OutThisLife)\n- Grouped, live-ticking tool-activity line; improved tool call detail views; @session links resolve to clickable titles; brand icons on known-domain links; iMessage-style emoji reactions (opt-in, two-way); double-click to heart ([#72893](https://github.com/NousResearch/hermes-agent/pull/72893), [#69868](https://github.com/NousResearch/hermes-agent/pull/69868), [#71162](https://github.com/NousResearch/hermes-agent/pull/71162), [#73047](https://github.com/NousResearch/hermes-agent/pull/73047), [#74533](https://github.com/NousResearch/hermes-agent/pull/74533), [#74644](https://github.com/NousResearch/hermes-agent/pull/74644) — @OutThisLife, @teknium1)\n- Sidebar date dividers + pinned section + opt-in stale-session auto-archive; sessions stop lying about running state; credit-usage toasts; configurable attachment size limit; Cron Blueprints + Webhooks pages; searchable timezone picker ([#70822](https://github.com/NousResearch/hermes-agent/pull/70822), [#72303](https://github.com/NousResearch/hermes-agent/pull/72303), [#69828](https://github.com/NousResearch/hermes-agent/pull/69828), [#73221](https://github.com/NousResearch/hermes-agent/pull/73221), [#70066](https://github.com/NousResearch/hermes-agent/pull/70066), [#69687](https://github.com/NousResearch/hermes-agent/pull/69687), [#73505](https://github.com/NousResearch/hermes-agent/pull/73505) — @OutThisLife, @austinpickett, @Adolanium, @teknium1)\n- RFC 8252 native desktop sign-in (system browser + PKCE, no webview cookies); \"Connect to existing Hermes\" in first-run onboarding; profile-correct pairing approvals with a desktop surface ([#67920](https://github.com/NousResearch/hermes-agent/pull/67920), [#70907](https://github.com/NousResearch/hermes-agent/pull/70907), [#74446](https://github.com/NousResearch/hermes-agent/pull/74446) — @benbarclay, @OutThisLife)\n- Keep-computer-awake toggle + notch wake indicator; /battery status-bar toggle; UI zoom 90% default preset; status bar hideable ([#68140](https://github.com/NousResearch/hermes-agent/pull/68140), [#76396](https://github.com/NousResearch/hermes-agent/pull/76396), [#68860](https://github.com/NousResearch/hermes-agent/pull/68860), [#73161](https://github.com/NousResearch/hermes-agent/pull/73161), [#72960](https://github.com/NousResearch/hermes-agent/pull/72960) — @OutThisLife, @teknium1)\n\n### Desktop performance (60fps wave 2)\n- Streaming cost independent of transcript length; 60fps on real sessions (reflow-gated pins, adaptive flush); drag at 60fps with five streaming tabs; multitab streaming made fast ([#71835](https://github.com/NousResearch/hermes-agent/pull/71835), [#72504](https://github.com/NousResearch/hermes-agent/pull/72504), [#72346](https://github.com/NousResearch/hermes-agent/pull/72346), [#71780](https://github.com/NousResearch/hermes-agent/pull/71780) — @OutThisLife)\n- Hidden-pane timers paused (agents view, cron sidebar, floating pet), scroll/status loops stopped in busy sessions ([#77651](https://github.com/NousResearch/hermes-agent/pull/77651) — @kshitijk4poor); idle CPU near zero in the background; sidebar/overlay render churn killed; statusbar + transcript stop re-rendering per token/sash-drag/session-switch; ⌘K opens instantly; renderer cold start keeps shiki/mermaid off the boot path ([#75218](https://github.com/NousResearch/hermes-agent/pull/75218), [#73698](https://github.com/NousResearch/hermes-agent/pull/73698), [#72163](https://github.com/NousResearch/hermes-agent/pull/72163), [#72245](https://github.com/NousResearch/hermes-agent/pull/72245), [#72524](https://github.com/NousResearch/hermes-agent/pull/72524), [#74665](https://github.com/NousResearch/hermes-agent/pull/74665), [#73024](https://github.com/NousResearch/hermes-agent/pull/73024) — @OutThisLife)\n- State diagnostics (render + store churn counters) + a lint rule banning atom-mirrored refs so the stale-read bug class cannot return; Playwright E2E suite with visual regression diffs ([#71925](https://github.com/NousResearch/hermes-agent/pull/71925), [#71560](https://github.com/NousResearch/hermes-agent/pull/71560), [#65805](https://github.com/NousResearch/hermes-agent/pull/65805) — @OutThisLife, @teknium1, @ethernet8023)\n\n## 🖥️ CLI, TUI & Dashboard\n- `!` shell mode; `/init` AGENTS.md generation; `/diff` (staged/all/session, cross-surface); `/context` breakdown; `/focus` reduced-output view; Ctrl+S prompt stash; persistent `/goal` indicator; multi-select clarify (checkboxes) across CLI/gateway/TUI ([#72257](https://github.com/NousResearch/hermes-agent/pull/72257), [#72178](https://github.com/NousResearch/hermes-agent/pull/72178), [#72240](https://github.com/NousResearch/hermes-agent/pull/72240), [#72242](https://github.com/NousResearch/hermes-agent/pull/72242), [#72302](https://github.com/NousResearch/hermes-agent/pull/72302), [#72262](https://github.com/NousResearch/hermes-agent/pull/72262), [#72244](https://github.com/NousResearch/hermes-agent/pull/72244), [#72188](https://github.com/NousResearch/hermes-agent/pull/72188) — @teknium1, salvaging @SHL0MS, @iRonin, @gigi206 + more)\n- `hermes import-agent` — one-command migration from Claude Code / Codex CLI setups ([#72190](https://github.com/NousResearch/hermes-agent/pull/72190) — @teknium1)\n- Per-turn summary line + live token flow in the spinner; cross-surface theme SDK (one skin themes CLI, TUI, and desktop, live) ([#72246](https://github.com/NousResearch/hermes-agent/pull/72246), [#68857](https://github.com/NousResearch/hermes-agent/pull/68857) — @teknium1, @OutThisLife)\n- TUI: reach the model picker without wrecking your draft + mid-turn switching; slash menu leads with your most-used skills; attachments live in the composer; Arabic (ar) locale with RTL across desktop/dashboard/agent ([#74756](https://github.com/NousResearch/hermes-agent/pull/74756), [#75931](https://github.com/NousResearch/hermes-agent/pull/75931), [#75210](https://github.com/NousResearch/hermes-agent/pull/75210), [#70870](https://github.com/NousResearch/hermes-agent/pull/70870) — @OutThisLife)\n- `hermes -w` startup ~14s → ~1.8s; global `--version` fast path; banner update-check 6× faster; dashboard lazy-loads routes + GROUP BY session stats; session filtering tabs (Chats/Automation/All) ([#71637](https://github.com/NousResearch/hermes-agent/pull/71637), [#62096](https://github.com/NousResearch/hermes-agent/pull/62096), [#74188](https://github.com/NousResearch/hermes-agent/pull/74188), [#72294](https://github.com/NousResearch/hermes-agent/pull/72294), [#73362](https://github.com/NousResearch/hermes-agent/pull/73362), [#73865](https://github.com/NousResearch/hermes-agent/pull/73865) — @teknium1, @kshitijk4poor)\n- Runtime: Node 26 required across installers/heal/upgrade, managed Node/uv resolve before bare PATH, outdated managed trees heal to target major; brew + pip/PyPI wheel channels retired (shell installer / Docker / Nix are the supported channels) ([#76459](https://github.com/NousResearch/hermes-agent/pull/76459), [#68217](https://github.com/NousResearch/hermes-agent/pull/68217) — @ethernet8023)\n\n## 🧩 Skills, Plugins & MCP\n- **A2A v1.0** — Agent-to-Agent protocol plugin (closes #514) ([#77109](https://github.com/NousResearch/hermes-agent/pull/77109) — @teknium1)\n- Curator: surface unmanaged skills + `curator adopt`; skill-description truncation surfaced to authors; grounded-citations skill (+ fact-checking mode); simplify-code v1.1; tldraw-offline scripting skill ([#71648](https://github.com/NousResearch/hermes-agent/pull/71648), [#70519](https://github.com/NousResearch/hermes-agent/pull/70519), [#71698](https://github.com/NousResearch/hermes-agent/pull/71698), [#77104](https://github.com/NousResearch/hermes-agent/pull/77104), [#70440](https://github.com/NousResearch/hermes-agent/pull/70440), [#66896](https://github.com/NousResearch/hermes-agent/pull/66896) — @teknium1)\n- Office skills bundled: docx, xlsx, pdf + refreshed powerpoint; skills-tree debloat continues (yuanbao, segment-anything, jupyter, heartmula, audiocraft → optional-skills; claude-marketplace source removed; hub restructure absorbing themes/desktop-plugins/tui-widgets) ([#68595](https://github.com/NousResearch/hermes-agent/pull/68595), [#70452](https://github.com/NousResearch/hermes-agent/pull/70452)–[#70456](https://github.com/NousResearch/hermes-agent/pull/70456), [#73903](https://github.com/NousResearch/hermes-agent/pull/73903) — @teknium1)\n- MCP: Comfy Cloud catalog entry with curated 20-tool default; hidden-whitespace warnings in MCP config; pinecone-research optional skill ([#66112](https://github.com/NousResearch/hermes-agent/pull/66112), [#75736](https://github.com/NousResearch/hermes-agent/pull/75736), [#70512](https://github.com/NousResearch/hermes-agent/pull/70512) — @teknium1)\n- MCP lazy server startup from a fingerprint-keyed on-disk tool-schema cache — configured servers no longer all boot at session start (design from #56832) ([#77511](https://github.com/NousResearch/hermes-agent/pull/77511) — @kshitijk4poor)\n- NeMo Relay observability integration — re-landed after an in-window revert, on stable NeMo Relay 0.6 ([#67607](https://github.com/NousResearch/hermes-agent/pull/67607) — @afourniernv)\n- Gateway health & diagnostics OTLP export ([#64536](https://github.com/NousResearch/hermes-agent/pull/64536) — @victor-kyriazakos)\n\n## 🔒 Security & Reliability\n- Iron-proxy credential-injection egress firewall re-landed ([#70848](https://github.com/NousResearch/hermes-agent/pull/70848) — @teknium1)\n- DNS-pinned SSRF-safe fetches + Slack CDN allowlist; strict redaction at compaction boundaries; ReDoS eliminated in config-key redaction patterns; prose words embedding a secret keyword no longer masked ([#70193](https://github.com/NousResearch/hermes-agent/pull/70193), [#69294](https://github.com/NousResearch/hermes-agent/pull/69294), [#76083](https://github.com/NousResearch/hermes-agent/pull/76083), [#67776](https://github.com/NousResearch/hermes-agent/pull/67776) — @teknium1)\n- Tier-3 credential reads scoped (FAL/XAI/VERCEL/DAYTONA/GITHUB presence checks etc.); CVE dependency pins refreshed (cryptography, starlette, python-multipart); hindsight env file 0600; /model moved off the gateway event loop ([#75888](https://github.com/NousResearch/hermes-agent/pull/75888), [#72362](https://github.com/NousResearch/hermes-agent/pull/72362) — @teknium1)\n- Windows hardening wave: text-mode subprocess decode bug class closed repo-wide, console flashes hidden across daemons/env probes/LSP/installer paths, residual encoding gaps (MCP stdio, gateway update I/O, STT/TTS, desktop spawn) ([#70875](https://github.com/NousResearch/hermes-agent/pull/70875), [#70205](https://github.com/NousResearch/hermes-agent/pull/70205), [#70264](https://github.com/NousResearch/hermes-agent/pull/70264), [#71014](https://github.com/NousResearch/hermes-agent/pull/71014) — @teknium1, salvaging several community PRs)\n- State/session integrity: four session-state fixes (safe close tracking, flush-cursor class fix, row-retry, usage-PK healer); compact v23 FTS layout + `hermes sessions optimize` + CJK-bigram FTS; read-path split with per-thread read-only connections ([#75883](https://github.com/NousResearch/hermes-agent/pull/75883), [#65798](https://github.com/NousResearch/hermes-agent/pull/65798), [#69423](https://github.com/NousResearch/hermes-agent/pull/69423), [#73344](https://github.com/NousResearch/hermes-agent/pull/73344) — @teknium1, @kshitijk4poor)\n- OpenViking memory-provider hardening — fail closed on blocked endpoints, server verification before credentials are sent, config.yaml-first settings ([#77747](https://github.com/NousResearch/hermes-agent/pull/77747) — @kshitijk4poor)\n- Credential pool: reset-aware primary restore (stay on fallback until the rate-limit window resets) + deferred-refresh locking fixes; FTS UPDATE triggers narrowed with fail-closed CJK migration ([#77631](https://github.com/NousResearch/hermes-agent/pull/77631), [#77628](https://github.com/NousResearch/hermes-agent/pull/77628) — @kshitijk4poor)\n- Config-driven memory allocator trim with telemetry; holographic memory vectors stored float32; loop-invariant HRR encodes hoisted ([#76905](https://github.com/NousResearch/hermes-agent/pull/76905), [#76917](https://github.com/NousResearch/hermes-agent/pull/76917), [#76881](https://github.com/NousResearch/hermes-agent/pull/76881) — @kshitijk4poor)\n\n## 🐛 Notable Bug Fixes\n- Voice: full-duplex interruption during generation AND playback; whole-turn desktop speech; auto-TTS delivery gaps ([#74223](https://github.com/NousResearch/hermes-agent/pull/74223), [#69936](https://github.com/NousResearch/hermes-agent/pull/69936), [#73508](https://github.com/NousResearch/hermes-agent/pull/73508) — @teknium1)\n- Desktop: Stop parks the queue instead of firing the next queued prompt; branch-in-new-chat restart loss; false remote-gateway reauthentication; cross-session composer leaks ([#68725](https://github.com/NousResearch/hermes-agent/pull/68725), [#71960](https://github.com/NousResearch/hermes-agent/pull/71960), [#68250](https://github.com/NousResearch/hermes-agent/pull/68250), [#70986](https://github.com/NousResearch/hermes-agent/pull/70986) — @SHL0MS, @alelpoan, @helix4u, @OutThisLife)\n- Gateway: session lists scoped before limiting; relay-backed home delivery after restart; timeline display events persisted ([#65509](https://github.com/NousResearch/hermes-agent/pull/65509), [#70102](https://github.com/NousResearch/hermes-agent/pull/70102), [#69771](https://github.com/NousResearch/hermes-agent/pull/69771) — @GodsBoy, @victor-kyriazakos, @ethernet8023)\n- Agent: context-length fallback logging + batch trajectory durability; Codex OAuth context windows revalidated against the live catalog ([#76027](https://github.com/NousResearch/hermes-agent/pull/76027), [#68554](https://github.com/NousResearch/hermes-agent/pull/68554) — @kshitijk4poor, @teknium1)\n- ...plus roughly 770 more `fix:` PRs across every subsystem this window.\n\n## 👥 Contributors\n\n**647 contributors** shipped this release (commit authors, co-authors, and salvaged-PR credits).\n\n### Core\n@teknium1, @OutThisLife (desktop, voice, perf), @kshitijk4poor (perf, caching, salvage), @ethernet8023 (runtime, E2E, desktop), @benbarclay (relay, HSP, auth)\n\n### All Contributors (alphabetical)\n@02356abc, @0301chris, @0xAlcibiades, @0xDevNinja, @0xLeathery, @0xprincess, @0xr00tf3rr3t, @100yenadmin,\n@2001Y, @3ssiri, @55nx954gn6-debug, @686f6c61, @87degrees, @aaronlab, @abundantbeing, @Adolanium,\n@adriansotomora, @adurham, @afourniernv, @afurm, @AgenticSpark, @ahmadashfq, @AhmetArif0, @ai-ag2026,\n@AIalliAI, @aider4ryder, @airclear, @ajzrva-sys, @akattelu, @AKAZIK-py, @akb4q, @akshan-main, @AlanBurningsuit,\n@alelpoan, @AlexFucuson9, @AlexxRussell, @AllardQuek, @alt-glitch, @aman-merchant, @amanning3390, @amathxbt,\n@aml1973, @amoreno16003, @AndrewMoryakov, @andrexibiza, @andynguyendk, @andyylin, @aneym, @angelos,\n@aniruddhaadak80, @AnnasMazhar, @annguyenNous, @anoopmehendale-cue, @AnthonyFrancis, @arcabotai, @ArcherQAQ,\n@Ares4Tech, @arimu1, @arnoldfrancisca, @asimons81, @asorry75, @AtakanGs, @ATran28, @austinpickett,\n@Automata-intelligentsia, @awain7, @aweiker, @aydnOktay, @ayushere, @b, @baau, @baauzi, @baenregod,\n@bakhtiersizhaev, @Baophan00, @baoyu0, @Bartok9, @basilalshukaili, @BB-light, @bbopen, @Beandon13,\n@beardedeagle, @bedirhancode, @benbarclay, @benegessarit, @benjamin2026-dot, @bennybuoy, @BenSheridanEdwards,\n@BKStock, @BlackishGreen33, @bnikanjam, @bounce12340, @Bounty13, @bpross, @briandevans, @bricelb, @brunopirz,\n@bryanneva, @byshubham, @camaleonidas, @canorionen, @carbongotfound, @carljborg, @carlotestor, @carrion256,\n@caseyanthony, @cat-thats-fat, @Cdddo, @ceverson70, @chancelu, @chaos-xxl, @CharlesMcquade, @chazmaniandinkle,\n@chefboyrdave21, @chelsealong, @Christopher-Schulze, @chuenchen309, @ciabata-git, @cifangyiquan, @cipry0200,\n@ckaznocha, @ckorhonen, @CleanDev-Fix, @CocaKova, @coffee-the-dev, @colingreig, @Commander, @connorblack,\n@CoreyNoDream, @Cossackx, @crayfish-ai, @criptogus, @ctaylor86, @cucurigoo, @cypres0099, @d31tcjg, @Da7-Tech,\n@damiankluk, @danielblankhh, @DanielMaly, @Dannou, @davesecops, @davidgut1982, @DavidMetcalfe, @davidrobertson,\n@ddifa86, @ddy4633, @deacon-botdoctor, @deaneeth, @deepjia, @deltaahead, @DESXIE, @devsart95, @dhruvkej9,\n@dhruvraajeev, @DI404N, @diegomarino, @diffen77, @dirtyren, @dnth, @DocAwk, @dolphin-creator, @Dolverin,\n@dombejar, @doncazper, @dongjiang1989, @DonutsDelivery, @dorukardahan, @Doud-FR, @drafish, @Drexuxux,\n@drleadflow, @dsitmilis, @dskwe, @dso2ng, @dstkwll, @Dusk1e, @dyreckt, @eagle-nyp, @Eapwrk, @eason2026,\n@eazye19, @egilewski, @ehz0ah, @elcocoel, @eliemada, @eloklam, @elphamale, @embwl0x, @emozilla, @Enough1122,\n@enzo2, @erick713006, @ErnestHysa, @Esther-Zhu023, @ethernet8023, @evgyur, @f-trycua, @faikwo, @falkoro,\n@fangliquanflq, @fazerluga-creator, @fcavalcantirj, @ferminquant, @fesalfayed, @FixItFoundry, @flag0x369,\n@floatingrain, @FlorianVal, @flyingdoubleG, @FraserHum, @frizikk, @frohsinnllc, @Frowtek, @FvanW, @fyzanshaik,\n@ganzziani, @gercamjr, @giggling-ginger, @gigi206, @giladbau, @glesperance, @gnanam1990, @GodsBoy, @golldyck,\n@gonzalofrancoceballos, @gshall, @gumclaw, @Guoen0, @Gurud25, @gvago, @HaisamAbbas, @hansai-art, @hanyu1212,\n@happy5318, @haran2001, @hariNEzuMI928, @harjothkhara, @harrisonmedmedmetrics, @Harshkamdar67, @hdd69,\n@heathley, @helix4u, @HeLLGURD, @hellofrommorgan, @hereicq, @hermz580, @HexLab98, @hinablue, @HOYALIM, @hrnbld,\n@huntsyea, @iamwongeeeee, @ianks, @ibaldr89, @Icather, @ijevin, @ildunari, @Imgaojp, @imgyf, @immuhammadfurqan,\n@iniak, @iRonin, @isheng-eqi, @iso2kx, @israellot, @itsflownium, @IvanMiao, @iveywest, @izumi0uu, @Jaaneek,\n@JabberELF, @jackjin1997, @jakelongvu-bot, @Janig88, @jasoisjaso, @jbbottoms, @jeeaay, @jeeves-assistant,\n@jeff-mettel, @JeffStone69, @JeliTron, @jethac, @jfmusa2024-cyber, @Jiahui-Gu, @jinglun010-cpu, @JoaoMarcos44,\n@joelbrilliant, @John-Lussier, @johnkattenhorn, @Johnny-xuan, @johnnykor82, @joncaldwell90, @JonthanaHanh,\n@jordanhubbard, @JorkeyLiu, @jquesnelle, @jrfbch, @juanmartitegui, @Julientalbot, @juniperbevensee, @justemu,\n@kael-odin, @kaishi00, @kaiyisg, @kamonspecial, @kandotrun, @KCAYAAI, @keepConcentration, @kelsia14, @Kenmege,\n@kerpopule, @Kev-fs, @Kewe63, @kharitonov-ivan, @Kingdomwarrior23, @kingrubic, @Kinkoolino-Hermes, @kjames2001,\n@knoal, @kohoj, @Kolektori, @konsisumer, @koshaji, @kronexoi, @kshitijk4poor, @kuangmi-bit, @kudi88, @kylezh,\n@kyssta-exe, @Kyzcreig, @lanyusea, @LauraGPT, @LavyaTandel, @LeonSGP43, @leoprodz, @LevSky22, @lEWFkRAD,\n@lewis4x4, @lexgenius, @LFDMcore, @LiangYang666, @lidises, @light-merlin-dark, @lihengming, @Linux2010,\n@LionGateOS, @liuhao1024, @liusencomic-cyber, @ljsdut, @lkevincc0, @LLQWQ, @locker95, @logical-and,\n@LordNikon1983, @lost9999, @Love-JourneY, @LunarNexus, @luxiaolu4827, @lxman, @m4r13y, @MaartenDMT,\n@MacroAnarchy, @maff-t2b, @MahdiHedhli, @mahdiwafy, @malaiwah, @mannnrachman, @mapu-og, @markoub, @matarbot,\n@materemias, @matt-strawbridge, @mattezell, @MattMaximo, @mattmillerai, @mattshapsss, @MaxFreedomPollard,\n@maxmilian, @McHermes, @mehmetkr-31, @menhguin, @metamon-p, @mijanx, @MLcogTech, @moeadham, @mollusk,\n@monerostar, @MorAlekss, @morolab, @motoblurr, @MrAbsaroka, @mrzlab630, @ms-alan, @muctobi, @MustafaK99,\n@mwbrooks, @myk0la-b, @mzkarami, @namredips, @nanami7777777, @nanckh, @natebransc, @nateEc, @navahc09,\n@Ne0teric, @necoweb3, @nftpoetrist, @nickkarhan, @Ninso112, @nkreadly07, @nnnet, @NPFernando, @nrmjeremy,\n@nu476, @null-runner, @nullptr0807, @NYTEMODEONLY, @obelisk-complex, @OfficialDelta, @okalentiev,\n@oliviaaaa7788, @OmarB97, @omid3098, @ooiuuii, @oppenheimor, @oreoluwa, @ousiaresearch, @OutThisLife,\n@panDing19, @paralegalia, @patp, @PavelTajdus, @peacockesq, @Pebrd, @peterw, @phantom-instruction-set,\n@pierrenode, @PINKIIILQWQ, @piyushbag, @plainOldCode, @pnascimento9596, @pooyan6, @pprism13, @praneshnikhar,\n@PRATHAMESH75, @Prontsevich, @quantumbyte1617, @QuarkAssistant, @Que0x, @Qwinty, @rayjerrywoo, @rayjun,\n@Reaper-Forge, @RedClaus, @redsol-llc, @reinbeumer, @RelaxJonh, @RemyFevry, @replygirl, @rerdi92, @rhylryan21,\n@RichardHojunJang, @richkapp, @rkfshakti, @rlaope, @rob-coco, @rob-maron, @robbyczgw-cla, @robgfl45,\n@robzolkos, @rod-nxtlevel, @rodboev, @Roger--Han, @rsayar, @rudironsoni, @ruizanthony, @rungmc357, @s00rz,\n@s905060, @Sahil-SS9, @sakhnenkoff, @salimhamed, @samrusani, @sbe27, @ScaleLeanChris, @schattenan, @sealca,\n@seamusmore, @sebaorrego-koronet, @seppegadeyne, @sergioperezcheco, @sethmills21, @sg-shag, @sgtworkman,\n@shady2k, @shannonsands, @shellybotmoyer, @sherman-yang, @shivasymbl, @Shizoqua, @SHL0MS, @simonmmafs,\n@skyer-flyyy, @Skywind5487, @sl4m3, @Slopez2023, @SmallNew2003, @smfworks, @Soju06, @Solitud1nem,\n@solyanviktor-star, @somewheresy, @Sora-bluesky, @sowork-skills, @soynchux, @sparkeros, @spfcraze,\n@spiky02plateau, @spro-work, @SquabbyZ, @srojk34, @StanleyStetson, @StartupBros-com, @StellarisW,\n@stephenschoettler, @Stoltemberg, @stremtec, @Studio729, @stwith, @subhoya, @sunwz1115, @suparious,\n@supplefrog, @sycamoregroupltd, @szzhoujiarui, @tachyon-r, @Tamaz-sujashvili, @tandixit95, @tank321, @tavva,\n@tcconnally, @temalo, @th3wingman, @the3asic, @TheAngryPit, @TheEpTic, @theone139344, @TheSmokeDev,\n@thirstycrow, @tianma-if, @Tianworld, @tinetwork, @to-na, @tom-channel, @tomqiaozc, @toomij99, @trac3r00,\n@Tranquil-Flow, @Trantor-develops, @trevorgordon981, @trevornk, @trippyogi, @trymhaak, @tsuk1nose, @tusharui,\n@TutkuEroglu, @tw0316, @twe-cloud, @tymrtn, @UltraInstinct0x, @umi008, @unixwzrd, @upicat, @vaibhavjnf, @valda,\n@Vansh5632, @Variable85, @vb3, @VerbalChainsaw, @vexclawx31, @victor-kyriazakos, @vigilancetech-com,\n@virtuadex, @Vissirexa, @VittoriaLanzo, @VIVAAN-DHAWAN, @wangyunyou, @waroffchange, @wayne1992127, @web3blind,\n@webtecnica, @WeiYusc, @wen0531, @wernerhp, @wesleysimplicio, @westkite1201, @wgd753, @wgu9,\n@wjj1872744570-source, @wjq990112, @WojtekMR3, @WOLIKIMCHENG, @Wpnx330, @wreed4, @wuli666, @WXBR, @wz-heng,\n@x7peeps, @xcompass, @xd-Neji, @xenodmc, @Xipong, @xrazai, @Xue-1997, @xxxigm, @y0shua1ee, @yaleman,\n@yemi-lagosinternationalmarket, @ygd58, @yingliang-zhang, @yinkev, @yitang, @YLChen-007, @yoniebans,\n@youzi-1122, @ypwcharles, @yuexiongHNU, @yungchentang, @yuzilongleif-collab, @yyzquwu, @z23, @ZachariahChu,\n@zakhounet, @zapabob, @Zavianx, @zehuaw1, @zengzheqing, @Zeraphim, @zgzczzw, @zhangyang-crazy-one,\n@Zhekinmaksim, @Zioywishing, @zmlgit, @zombopanda, @ZundamonnoVRChatkaisetu\nAlso: @kyssta-exe 25470058+kyssta-exe.\n\nThank you to every one of the 647 people who contributed code, co-authored fixes, filed the ~1,200 issues this release closes, and had their PRs salvaged into main. Hermes ships this fast because of you.\n\n---\n\n**Full Changelog**: [v2026.7.20...v2026.8.3](https://github.com/NousResearch/hermes-agent/compare/v2026.7.20...v2026.8.3)\n",
          "highlights": [
            "✨ Highlights",
            "Talk to Hermes — streaming, conversational voice with barge-in — Voice mode used to mean: speak, wait for the whole reply to generate, then listen to one long audio file. Now Hermes speaks clause-by-clause as the response streams, you can i",
            "Wake words and hands-free control — Say your own open-vocabulary wake phrase (\"hey Hermes\", or anything you pick) and Hermes starts listening — detection runs on-device, so no audio leaves your machine while it waits. Multi-profile voice ro",
            "Voice on every platform — Send a voice note to Hermes on WhatsApp, Feishu, DingTalk, LINE, QQ, Photon, or Weixin and it's transcribed and answered; auto-TTS replies are delivered platform-aware (opus where platforms want opus, captions atta",
            "Research you can trust — grounded citations with fact-checking — The new grounded-citations skill makes Hermes produce research where every claim is backed by a verifiable source: quotes are matched against the actual page text (not halluci",
            "Outbound webhooks — Hermes pushes events to your systems — Until now, integrating with Hermes meant polling or listening on a platform. Now Hermes pushes signed lifecycle events (session activity, turn completions, tool events) to any HTTP "
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/coding-agent-infrastructure/hermes-agent.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "jepsen",
        "repository": "jepsen-io/jepsen",
        "name": "Jepsen",
        "keywords": [
          "Jepsen"
        ]
      },
      "group": {
        "id": "distributed-systems",
        "name": "Distributed Systems & Correctness"
      },
      "news": {
        "repository": "jepsen-io/jepsen",
        "collectedAt": "2026-08-13T18:01:57.391912+00:00",
        "latestRelease": {
          "repository": "jepsen-io/jepsen",
          "tag": "v0.3.13",
          "title": "0.3.13",
          "url": "https://github.com/jepsen-io/jepsen/releases/tag/v0.3.13",
          "publishedAt": "2026-07-31T00:45:15Z",
          "notes": "This is a small release. It makes expensive generators more efficient with a\r\ncache, allows rw and append tests a final chance to detect data loss at the end\r\nof tests, and lets file snapshot nemeses run when `/tmp` is on a different\r\nkind of filesystem.\r\n\r\n### New Features\r\n\r\n- `generator/cache`: caches operations from an expensive generator to reduce\r\n  (e.g.) IO costs.\r\n- `tests.cycle.rw` and `append` now come with `:final-generator` and\r\n  `:wrap-generator` which, during the final phase of a test, can issue final\r\n   reads of all keys.\r\n- `snapshot-file-chunks` now works across filesystem types.\r\n\r\n### Minor Changes\r\n\r\n- `core/prepare-test`: Don't double-wrap generators in `Forgettable` when run as\r\na part of `test-all`. This didn't break anything, but it was unnecesary.\r\n",
          "highlights": [
            "New Features",
            "generator/cache: caches operations from an expensive generator to reduce",
            "tests.cycle.rw and append now come with :final-generator and",
            "snapshot-file-chunks now works across filesystem types.",
            "Minor Changes",
            "core/prepare-test: Don't double-wrap generators in Forgettable when run as"
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/distributed-systems/jepsen.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "buf",
        "repository": "bufbuild/buf",
        "name": "Buf",
        "keywords": [
          "Buf protobuf",
          "Buf Schema Registry"
        ]
      },
      "group": {
        "id": "developer-infrastructure",
        "name": "Developer Infrastructure"
      },
      "news": {
        "repository": "bufbuild/buf",
        "collectedAt": "2026-08-13T18:02:10.878057+00:00",
        "latestRelease": {
          "repository": "bufbuild/buf",
          "tag": "v1.72.0",
          "title": "v1.72.0",
          "url": "https://github.com/bufbuild/buf/releases/tag/v1.72.0",
          "publishedAt": "2026-07-17T20:15:07Z",
          "notes": "- Fix `buf beta registry webhook create` and `buf beta registry webhook list` to emit proto JSON output.\r\n- Fix HTTPS Basic authentication for remote inputs to use `BUF_INPUT_HTTPS_USERNAME` for the username.\r\n- Fix `IMPORT_USED` lint rule silently reporting no unused imports when `google/protobuf/descriptor.proto` is in the transitive dependency graph.",
          "highlights": [
            "Fix buf beta registry webhook create and buf beta registry webhook list to emit proto JSON output.",
            "Fix HTTPS Basic authentication for remote inputs to use BUFINPUTHTTPSUSERNAME for the username.",
            "Fix IMPORTUSED lint rule silently reporting no unused imports when google/protobuf/descriptor.proto is in the transitive dependency graph."
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/developer-infrastructure/buf.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "temporal",
        "repository": "temporalio/temporal",
        "name": "Temporal",
        "keywords": [
          "Temporal.io",
          "Temporal workflow"
        ]
      },
      "group": {
        "id": "platform-infrastructure",
        "name": "Platform / Networking / Runtime Infrastructure"
      },
      "news": {
        "repository": "temporalio/temporal",
        "collectedAt": "2026-08-13T18:01:58.960116+00:00",
        "latestRelease": {
          "repository": "temporalio/temporal",
          "tag": "v1.31.2",
          "title": "v1.31.2",
          "url": "https://github.com/temporalio/temporal/releases/tag/v1.31.2",
          "publishedAt": "2026-07-08T17:10:11Z",
          "notes": "## What's Changed\r\n* Bump defaultCliVersion to 1.7.2 for v1.31.1 admin-tools \r\n* Cherry-pick #9917, \"Cover replication streaming endpoint with authorization\"\r\n* Update Alpine to 3.23.5\r\n\r\n\r\n### Potential Breaking Change \r\nIf using authorization with replication setup, set `system.disableStreamingAuthorizer` dynamic config to `true` to opt out from changes in this release and avoid replication traffic connection errors. Check the linked CVE for implications of opting out.\r\n\r\n### **Security**\r\n- Addresses [CVE-2026-5724](https://www.cve.org/cverecord?id=CVE-2026-5724), MEDIUM\r\n\r\n**Full Changelog**: https://github.com/temporalio/temporal/compare/v1.31.1...v1.31.2",
          "highlights": [
            "What's Changed",
            "Bump defaultCliVersion to 1.7.2 for v1.31.1 admin-tools",
            "Cherry-pick #9917, \"Cover replication streaming endpoint with authorization\"",
            "Update Alpine to 3.23.5",
            "Potential Breaking Change",
            "Security"
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/platform-infrastructure/temporal.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "tigerbeetle",
        "repository": "tigerbeetle/tigerbeetle",
        "name": "TigerBeetle",
        "keywords": [
          "TigerBeetle"
        ]
      },
      "group": {
        "id": "distributed-systems",
        "name": "Distributed Systems & Correctness"
      },
      "news": {
        "repository": "tigerbeetle/tigerbeetle",
        "collectedAt": "2026-08-13T18:01:57.196373+00:00",
        "latestRelease": {
          "repository": "tigerbeetle/tigerbeetle",
          "tag": "0.17.9",
          "title": "0.17.9",
          "url": "https://github.com/tigerbeetle/tigerbeetle/releases/tag/0.17.9",
          "publishedAt": "2026-07-06T17:24:50Z",
          "notes": "# 0.17.9\r\n\r\n### Supported upgrade versions\r\n\r\nOldest supported client version: 0.16.4\r\nOldest upgradable replica version: 0.17.5\r\n\r\n## Server\r\n\r\n* Binary: Download the zip for your OS and architecture from this page and unzip.\r\n* Docker: `docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.9`\r\n* Docker (debug image): `docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.9-debug`\r\n\r\n## Clients\r\n\r\n**NOTE**: Because of package manager caching, it may take a few\r\nminutes after the release for this version to appear in the package\r\nmanager.\r\n\r\nYou cannot run a newer client against an older cluster: clients are only compatible\r\nwith replicas from their own release *or newer*, subject to the newer release's\r\n`Oldest supported client version`.\r\n\r\n* .NET: `dotnet add package tigerbeetle --version 0.17.9`\r\n* Go: `go mod edit -require github.com/tigerbeetle/tigerbeetle-go@v0.17.9`\r\n* Java: Update the version of `com.tigerbeetle.tigerbeetle-java` in `pom.xml`\r\n  to `0.17.9`.\r\n* Node.js: `npm install --save-exact tigerbeetle-node@0.17.9`\r\n* Python: `pip install tigerbeetle==0.17.9`\r\n\r\n## Changelog\r\n\r\n\r\n### Safety And Performance\r\n\r\n- [#3810](https://github.com/tigerbeetle/tigerbeetle/pull/3810)\r\n\r\n  Revert unique keys, which caused compatibility issues\r\n  (see [#3802](https://github.com/tigerbeetle/tigerbeetle/pull/3802)).\r\n\r\n- [#3822](https://github.com/tigerbeetle/tigerbeetle/pull/3822),\r\n  [#3844](https://github.com/tigerbeetle/tigerbeetle/pull/3844)\r\n\r\n  Extend `inspect constants` to catch schema changes and prints\r\n  the `Checkpoint Schedule` section.\r\n\r\n- [#3845](https://github.com/tigerbeetle/tigerbeetle/pull/3845)\r\n\r\n  Micro-optimization to the radix sort algorithm to avoid copies when dealing\r\n  with large stack-allocated values.\r\n\r\n- [#3840](https://github.com/tigerbeetle/tigerbeetle/pull/3840)\r\n\r\n  Online schema validation, ensuring coherent `key_min`/`key_max` when reading data.\r\n\r\n### Features\r\n\r\n- [#3816](https://github.com/tigerbeetle/tigerbeetle/pull/3816)\r\n\r\n  Improve the Ruby client migration guide.\r\n\r\n- [#3836](https://github.com/tigerbeetle/tigerbeetle/pull/3836),\r\n  [#3832](https://github.com/tigerbeetle/tigerbeetle/pull/3832),\r\n  [#3835](https://github.com/tigerbeetle/tigerbeetle/pull/3835),\r\n  [#3834](https://github.com/tigerbeetle/tigerbeetle/pull/3834)\r\n\r\n  Various docs improvements, including adding the Ruby client and print layout support.\r\n\r\n- [#3830](https://github.com/tigerbeetle/tigerbeetle/pull/3830),\r\n  [#3811](https://github.com/tigerbeetle/tigerbeetle/pull/3811)\r\n\r\n  Add a u128 bounds check in the Ruby client and make its status return type more idiomatic.\r\n\r\n- [#3827](https://github.com/tigerbeetle/tigerbeetle/pull/3827)\r\n\r\n  Improve the Rust client, removing the bitflags dependency and enabling overflow checks.\r\n\r\n- [#3852](https://github.com/tigerbeetle/tigerbeetle/pull/3852)\r\n\r\n  Experimental CLI `--memory` flag that automatically sizes the grid and object caches to use\r\n  all assigned memory.\r\n\r\n### Internals\r\n\r\n- [#3825](https://github.com/tigerbeetle/tigerbeetle/pull/3825),\r\n  [#3831](https://github.com/tigerbeetle/tigerbeetle/pull/3831)\r\n\r\n  Improve various code comments.\r\n\r\n- [#3793](https://github.com/tigerbeetle/tigerbeetle/pull/3793)\r\n\r\n  Switch to `stdx.SocketAddress`.\r\n\r\n- [#3826](https://github.com/tigerbeetle/tigerbeetle/pull/3826)\r\n\r\n  Fail on curl instead of unzip for network flakes during Vortex builds.\r\n\r\n- [#3813](https://github.com/tigerbeetle/tigerbeetle/pull/3813)\r\n\r\n  Expose `TimeSim` and fixtures in VSR.\r\n\r\n- [#3820](https://github.com/tigerbeetle/tigerbeetle/pull/3820)\r\n\r\n  Introduce the canonical workload principle for benchmarks.\r\n\r\n- [#3682](https://github.com/tigerbeetle/tigerbeetle/pull/3682)\r\n\r\n  Make publishing TigerBeetle client artifacts idempotent.\r\n\r\n- [#3817](https://github.com/tigerbeetle/tigerbeetle/pull/3817)\r\n\r\n  Workaround MacOS builds on Zig 0.14.1 (see [issue](ttps://codeberg.org/ziglang/zig/issues/31658)).\r\n\r\n### TigerTracks 🎧\r\n\r\n- [Home](https://www.youtube.com/watch?v=5Fc9A6mLHJU)\r\n\r\n<img width=\"1712\" height=\"1152\" alt=\"image\" src=\"https://github.com/user-attachments/assets/0e04023d-3860-4138-a3f0-8f7598c2ef0c\" />\r\n",
          "highlights": [
            "Supported upgrade versions",
            "Server",
            "Binary: Download the zip for your OS and architecture from this page and unzip.",
            "Docker: docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.9",
            "Docker (debug image): docker pull ghcr.io/tigerbeetle/tigerbeetle:0.17.9-debug",
            "Clients"
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/distributed-systems/tigerbeetle.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "bentoml",
        "repository": "bentoml/BentoML",
        "name": "BentoML",
        "keywords": [
          "BentoML"
        ]
      },
      "group": {
        "id": "ai-infrastructure",
        "name": "AI Infrastructure"
      },
      "news": {
        "repository": "bentoml/BentoML",
        "collectedAt": "2026-08-13T18:02:07.786235+00:00",
        "latestRelease": {
          "repository": "bentoml/BentoML",
          "tag": "v1.4.39",
          "title": "v1.4.39",
          "url": "https://github.com/bentoml/BentoML/releases/tag/v1.4.39",
          "publishedAt": "2026-05-07T10:37:29Z",
          "notes": "## What's Changed\r\n* ci: pre-commit autoupdate [skip ci] by @pre-commit-ci[bot] in https://github.com/bentoml/BentoML/pull/5593\r\n* fix: prevent following symlinks when copying files in BentoStore by @frostming in https://github.com/bentoml/BentoML/pull/5598\r\n* fix: add sharing=locked to BuildKit cache mounts for multi-arch builds by @lawrence3699 in https://github.com/bentoml/BentoML/pull/5597\r\n* fix: enhance Dockerfile generation by normalizing base image lines and adding tests by @frostming in https://github.com/bentoml/BentoML/pull/5603\r\n* fix: defer prometheus_client import in bentoml.metrics to fix histogram collection in multiprocess mode by @ramkrishs in https://github.com/bentoml/BentoML/pull/5602\r\n* ci: pre-commit autoupdate [skip ci] by @pre-commit-ci[bot] in https://github.com/bentoml/BentoML/pull/5605\r\n* fix: handle string input in FileSchema by encoding to UTF-8 by @frostming in https://github.com/bentoml/BentoML/pull/5606\r\n\r\n## New Contributors\r\n* @lawrence3699 made their first contribution in https://github.com/bentoml/BentoML/pull/5597\r\n* @ramkrishs made their first contribution in https://github.com/bentoml/BentoML/pull/5602\r\n\r\n**Full Changelog**: https://github.com/bentoml/BentoML/compare/v1.4.38...v1.4.39",
          "highlights": [
            "What's Changed",
            "ci: pre-commit autoupdate [skip ci] by @pre-commit-ci[bot] in https://github.com/bentoml/BentoML/pull/5593",
            "fix: prevent following symlinks when copying files in BentoStore by @frostming in https://github.com/bentoml/BentoML/pull/5598",
            "fix: add sharing=locked to BuildKit cache mounts for multi-arch builds by @lawrence3699 in https://github.com/bentoml/BentoML/pull/5597",
            "fix: enhance Dockerfile generation by normalizing base image lines and adding tests by @frostming in https://github.com/bentoml/BentoML/pull/5603",
            "fix: defer prometheusclient import in bentoml.metrics to fix histogram collection in multiprocess mode by @ramkrishs in https://github.com/bentoml/BentoML/pull/5602"
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/ai-infrastructure/bentoml.html"
    },
    {
      "date": "2026-08-13",
      "project": {
        "id": "raft-rs",
        "repository": "tikv/raft-rs",
        "name": "raft-rs",
        "keywords": [
          "raft-rs"
        ]
      },
      "group": {
        "id": "distributed-systems",
        "name": "Distributed Systems & Correctness"
      },
      "news": {
        "repository": "tikv/raft-rs",
        "collectedAt": "2026-08-13T18:01:56.495752+00:00",
        "latestRelease": {
          "repository": "tikv/raft-rs",
          "tag": "v0.7.0",
          "title": "0.7.0",
          "url": "https://github.com/tikv/raft-rs/releases/tag/v0.7.0",
          "publishedAt": "2023-03-07T09:22:26Z",
          "notes": "- Update prost to 0.11 (#496)\r\n- Make priority an i64 so a lower than default priority can be configured (#495)\r\n- Allow fetching entries in asynchronous manner (#459)\r\n- Support setting max-inflight-msgs in runtime to reduce memory usage (#450)",
          "highlights": [
            "Update prost to 0.11 (#496)",
            "Make priority an i64 so a lower than default priority can be configured (#495)",
            "Allow fetching entries in asynchronous manner (#459)",
            "Support setting max-inflight-msgs in runtime to reduce memory usage (#450)"
          ],
          "prerelease": false
        },
        "upcoming": [],
        "communityDiscussions": []
      },
      "pageUrl": "https://amk9978.github.io/contribution-compass/updates/2026-08-13/distributed-systems/raft-rs.html"
    }
  ]
}
