helloadhavan/github_issues huggingface dataset:
Repository: vercel/next.js
Pull request: Use for...in instead of Object.keys for parallelRouteKey traversal

## For Maintainers

### What?

Replace `Object.keys().forEach` with a `for...in` loop in the `createFlightRouterStateFromLoaderTreeImpl` function.

### Why?

`for...in` avoids the intermediate array allocation from `Object.keys()`, which becomes increasingly impactful as key count grows.

| Method | 1 key | 2 keys | 5 keys |
|---|---|---|---|
| `for...in` | **4.5ms** | **6.1ms** | **10.3ms** |
| `for (i) + Object.keys()` | 7.1ms (1.6x) | 17.1ms (2.8x) | 40.1ms (3.9x) |
| `for...of Object.keys()` | 7.5ms (1.7x) | 17.0ms (2.8x) | 41.3ms (4.0x) |
| `Object.keys().forEach()` | 10.7ms (2.4x) | 20.0ms (3.3x) | 42.0ms (4.1x) |

While the impact is minimal this code is in the hot path for rendering every request so it's worth optimizing. Especially as the payload will have a lot of single-key cases.

### How?

Changed the `Object.keys(parallelRoutes).forEach()` pattern to a direct `for (const parallelRouteKey in parallelRoutes)` loop while maintaining the same functionality.


Changed files:
filename: packages/next/src/server/app-render/create-flight-router-state-from-loader-tree.ts
patch: @@ -30,7 +30,7 @@ function createFlightRouterStateFromLoaderTreeImpl(
 
   let childHasLoadingBoundary = false
   const children: FlightRouterState[1] = {}
-  Object.keys(parallelRoutes).forEach((parallelRouteKey) => {
+  for (const parallelRouteKey in parallelRoutes) {
     const child = createFlightRouterStateFromLoaderTreeImpl(
       parallelRoutes[parallelRouteKey],
       getDynamicParamFromSegment,
@@ -45,7 +45,7 @@ function createFlightRouterStateFromLoaderTreeImpl(
       childHasLoadingBoundary = true
     }
     children[parallelRouteKey] = child
-  })
+  }
   segmentTree[1] = children
 
   if (includeHasLoadingBoundary) {
Repository: rust-lang/rust
Pull request: std: make `OsString::truncate` a no-op when `len > current_len`

Align `OsString::truncate` (and the underlying WTF-8 implementation) with `String::truncate` by making it a no-op when `len > self.len()`.

Previously, `OsString::truncate` would panic if `len > self.len()`, while `String::truncate` treats such cases as a no-op.

Tracking (`os_string_truncate`): https://github.com/rust-lang/rust/issues/133262
See also: https://github.com/rust-lang/rust/pull/32977

cc: @alexcrichton, @lolbinarycat

Changed files:
filename: library/alloc/src/wtf8/mod.rs
patch: @@ -342,14 +342,18 @@ impl Wtf8Buf {
 
     /// Shortens a string to the specified length.
     ///
+    /// If `new_len` is greater than the string's current length, this has no
+    /// effect.
+    ///
     /// # Panics
     ///
-    /// Panics if `new_len` > current length,
-    /// or if `new_len` is not a code point boundary.
+    /// Panics if `new_len` does not lie on a code point boundary.
     #[inline]
     pub fn truncate(&mut self, new_len: usize) {
-        assert!(self.is_code_point_boundary(new_len));
-        self.bytes.truncate(new_len)
+        if new_len <= self.len() {
+            assert!(self.is_code_point_boundary(new_len));
+            self.bytes.truncate(new_len)
+        }
     }
 
     /// Consumes the WTF-8 string and tries to convert it to a vec of bytes.

filename: library/alloc/src/wtf8/tests.rs
patch: @@ -308,10 +308,10 @@ fn wtf8buf_truncate_fail_code_point_boundary() {
 }
 
 #[test]
-#[should_panic]
-fn wtf8buf_truncate_fail_longer() {
+fn wtf8buf_truncate_invalid_len() {
     let mut string = Wtf8Buf::from_str("aé");
     string.truncate(4);
+    assert_eq!(string, Wtf8Buf::from_str("aé"));
 }
 
 #[test]

filename: library/std/src/ffi/os_str.rs
patch: @@ -576,15 +576,21 @@ impl OsString {
 
     /// Truncate the `OsString` to the specified length.
     ///
+    /// If `new_len` is greater than the string's current length, this has no
+    /// effect.
+    ///
     /// # Panics
+    ///
     /// Panics if `len` does not lie on a valid `OsStr` boundary
     /// (as described in [`OsStr::slice_encoded_bytes`]).
     #[inline]
     #[unstable(feature = "os_string_truncate", issue = "133262")]
     pub fn truncate(&mut self, len: usize) {
-        self.as_os_str().inner.check_public_boundary(len);
-        // SAFETY: The length was just checked to be at a valid boundary.
-        unsafe { self.inner.truncate_unchecked(len) };
+        if len <= self.len() {
+            self.as_os_str().inner.check_public_boundary(len);
+            // SAFETY: The length was just checked to be at a valid boundary.
+            unsafe { self.inner.truncate_unchecked(len) };
+        }
     }
 
     /// Provides plumbing to `Vec::extend_from_slice` without giving full
Repository: electron/electron
Pull request: build: authenticate curl requests to googlesource in lint workflow

#### Description of Change

Speculative fix for lint failures!

The "Download GN Binary" and "Download clang-format Binary" steps fetch files from chromium.googlesource.com without passing authentication cookies. When googlesource rate-limits or returns a transient error (502), the HTML error page is piped into `base64 -d`, causing `base64: invalid input`.

The `set-chromium-cookie` action already configures `~/.gitcookies` in a prior step. Pass `-b ~/.gitcookies` to both `curl` calls so they authenticate, matching what the cookie verification step itself does.

#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

- [x] PR description included
- [x] `npm test` passes
- [x] [PR release notes](https://github.com/electron/clerk/blob/main/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/main/README.md#examples).

#### Release Notes

Notes: none

Changed files:
filename: .github/workflows/pipeline-electron-lint.yml
patch: @@ -46,7 +46,7 @@ jobs:
       shell: bash
       run: |
         chromium_revision="$(grep -A1 chromium_version src/electron/DEPS | tr -d '\n' | cut -d\' -f4)"
-        gn_version="$(curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/DEPS?format=TEXT" | base64 -d | grep gn_version | head -n1 | cut -d\' -f4)"
+        gn_version="$(curl -sL -b ~/.gitcookies "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/DEPS?format=TEXT" | base64 -d | grep gn_version | head -n1 | cut -d\' -f4)"
 
         cipd ensure -ensure-file - -root . <<-CIPD
         \$ServiceURL https://chrome-infra-packages.appspot.com/
@@ -62,7 +62,7 @@ jobs:
         chromium_revision="$(grep -A1 chromium_version src/electron/DEPS | tr -d '\n' | cut -d\' -f4)"
 
         mkdir -p src/buildtools
-        curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/buildtools/DEPS?format=TEXT" | base64 -d > src/buildtools/DEPS
+        curl -sL -b ~/.gitcookies "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/buildtools/DEPS?format=TEXT" | base64 -d > src/buildtools/DEPS
 
         gclient sync --spec="solutions=[{'name':'src/buildtools','url':None,'deps_file':'DEPS','custom_vars':{'process_deps':True},'managed':False}]"
     - name: Add problem matchers
Repository: ollama/ollama
Pull request: kvcache: Use Cast instead of Copy for flash attention masks

Flash attention kernels require the mask of the KV cache be a F16 rather than an F32. We can use the GGML operation ggml_cast to do this rather than doing it ourselves, which allows reuse of a preallocated buffer in the graph rather than allocating a new one for each batch. This improves token generation performance with flash attention by 10-30% (with gpt-oss). This also makes performance with flash attention better than without it, as expected.

Changed files:
filename: kvcache/causal.go
patch: @@ -378,9 +378,7 @@ func (c *Causal) buildMask(ctx ml.Context) ml.Tensor {
 	maskTensor := ctx.Input().FromFloatSlice(mask, length, batchSize)
 
 	if c.config.MaskDType != ml.DTypeF32 {
-		out := ctx.Input().Empty(c.config.MaskDType, maskTensor.Shape()...)
-		ctx.Forward(maskTensor.Copy(ctx, out))
-		maskTensor = out
+		maskTensor = maskTensor.Cast(ctx, c.config.MaskDType)
 	}
 
 	return maskTensor

filename: ml/backend.go
patch: @@ -396,6 +396,7 @@ type Tensor interface {
 
 	Shape() []int
 	DType() DType
+	Cast(ctx Context, dtype DType) Tensor
 
 	Bytes() []byte
 	Floats() []float32

filename: ml/backend/ggml/ggml.go
patch: @@ -843,23 +843,7 @@ func (c *Context) newTensor(dtype ml.DType, shape []int) ml.Tensor {
 		panic("set Input or Layer before creating tensors")
 	}
 
-	var cdtype uint32
-	switch dtype {
-	case ml.DTypeF32:
-		cdtype = C.GGML_TYPE_F32
-	case ml.DTypeF16:
-		cdtype = C.GGML_TYPE_F16
-	case ml.DTypeQ80:
-		cdtype = C.GGML_TYPE_Q8_0
-	case ml.DTypeQ40:
-		cdtype = C.GGML_TYPE_Q4_0
-	case ml.DTypeI32:
-		cdtype = C.GGML_TYPE_I32
-	case ml.DTypeMXFP4:
-		cdtype = C.GGML_TYPE_MXFP4
-	default:
-		panic("unsupported dtype")
-	}
+	cdtype := ggmlDType(dtype)
 
 	if len(shape) < 1 || shape[0] == 0 {
 		var shape C.int64_t = 0
@@ -1056,6 +1040,32 @@ func (t *Tensor) DType() ml.DType {
 	}
 }
 
+func ggmlDType(dtype ml.DType) uint32 {
+	switch dtype {
+	case ml.DTypeF32:
+		return C.GGML_TYPE_F32
+	case ml.DTypeF16:
+		return C.GGML_TYPE_F16
+	case ml.DTypeQ80:
+		return C.GGML_TYPE_Q8_0
+	case ml.DTypeQ40:
+		return C.GGML_TYPE_Q4_0
+	case ml.DTypeI32:
+		return C.GGML_TYPE_I32
+	case ml.DTypeMXFP4:
+		return C.GGML_TYPE_MXFP4
+	default:
+		panic("unsupported dtype")
+	}
+}
+
+func (t *Tensor) Cast(ctx ml.Context, dtype ml.DType) ml.Tensor {
+	return &Tensor{
+		b: t.b,
+		t: C.ggml_cast(ctx.(*Context).ctx, t.t, ggmlDType(dtype)),
+	}
+}
+
 func (t *Tensor) Neg(ctx ml.Context) ml.Tensor {
 	return &Tensor{
 		b: t.b,
Repository: ollama/ollama
Pull request: Add any-agent to Libraries in README

This PR adds a reference to our any-agent library under the `Libraries` section of the README.

[any-agent](https://github.com/mozilla-ai/any-agent) is developed by [mozilla.ai](https://www.mozilla.ai/), and aims to provide a unified interface to use and evaluate different agent frameworks, allowing developers to work with multiple agent frameworks (including LangChain, LlamaIndex, OpenAI Agents and a few others) through a consistent API, and making it trivial to change across providers.

Changed files:
filename: README.md
patch: @@ -540,6 +540,7 @@ See the [API documentation](./docs/api.md) for all endpoints.
 - [Ollama for D](https://github.com/kassane/ollama-d)
 - [OllamaPlusPlus](https://github.com/HardCodeDev777/OllamaPlusPlus) (Very simple C++ library for Ollama)
 - [any-llm](https://github.com/mozilla-ai/any-llm) (A single interface to use different llm providers by [mozilla.ai](https://www.mozilla.ai/))
+- [any-agent](https://github.com/mozilla-ai/any-agent) (A single interface to use and evaluate different agent frameworks by [mozilla.ai](https://www.mozilla.ai/))
 
 ### Mobile
Repository: ollama/ollama
Pull request: Add any-llm to Libraries in README.md

This PR adds a reference to our any-llm library under the Libraries section of the README.

[any-llm](https://github.com/mozilla-ai/any-llm) is developed by [mozilla.ai](https://www.mozilla.ai/), and aims to provide a single, unified interface to use different llm providers. For more information, for example on how it differs from LiteLLM or AISuite, you can read our blog [here](https://blog.mozilla.ai/introducing-any-llm-a-unified-api-to-access-any-llm-provider/)

Changed files:
filename: README.md
patch: @@ -538,6 +538,7 @@ See the [API documentation](./docs/api.md) for all endpoints.
 - [Nichey](https://github.com/goodreasonai/nichey) is a Python package for generating custom wikis for your research topic
 - [Ollama for D](https://github.com/kassane/ollama-d)
 - [OllamaPlusPlus](https://github.com/HardCodeDev777/OllamaPlusPlus) (Very simple C++ library for Ollama)
+- [any-llm](https://github.com/mozilla-ai/any-llm) (A single interface to use different llm providers by [mozilla.ai](https://www.mozilla.ai/))
 
 ### Mobile
Repository: vercel/next.js
Pull request: ci: only cancel pull_request_stats on PR updates

This avoids cancelling on canary branch when a commit is merged while previous commit is still running

## Summary
- keep cancel-in-progress behavior for pull_request runs
- stop canceling in-progress runs for follow-up pushes to canary by using a per-run concurrency group for push events

x-ref: https://github.com/vercel/next.js/actions/runs/22113161316/job/63914496141

Changed files:
filename: .github/workflows/pull_request_stats.yml
patch: @@ -8,8 +8,9 @@ on:
 name: Generate Stats
 
 concurrency:
-  group: ${{ github.workflow }}-${{ github.ref }}
-  cancel-in-progress: true
+  # Keep cancel-on-update behavior for PRs, but allow canary pushes to run independently.
+  group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.ref || github.run_id }}
+  cancel-in-progress: ${{ github.event_name == 'pull_request' }}
 
 env:
   NAPI_CLI_VERSION: 2.18.4
Repository: electron/electron
Pull request: build: authenticate curl requests to googlesource in lint workflow

Backport of #50001

See that PR for details.


Notes: none

Changed files:
filename: .github/workflows/pipeline-electron-lint.yml
patch: @@ -46,7 +46,7 @@ jobs:
       shell: bash
       run: |
         chromium_revision="$(grep -A1 chromium_version src/electron/DEPS | tr -d '\n' | cut -d\' -f4)"
-        gn_version="$(curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/DEPS?format=TEXT" | base64 -d | grep gn_version | head -n1 | cut -d\' -f4)"
+        gn_version="$(curl -sL -b ~/.gitcookies "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/DEPS?format=TEXT" | base64 -d | grep gn_version | head -n1 | cut -d\' -f4)"
 
         cipd ensure -ensure-file - -root . <<-CIPD
         \$ServiceURL https://chrome-infra-packages.appspot.com/
@@ -62,7 +62,7 @@ jobs:
         chromium_revision="$(grep -A1 chromium_version src/electron/DEPS | tr -d '\n' | cut -d\' -f4)"
 
         mkdir -p src/buildtools
-        curl -sL "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/buildtools/DEPS?format=TEXT" | base64 -d > src/buildtools/DEPS
+        curl -sL -b ~/.gitcookies "https://chromium.googlesource.com/chromium/src/+/${chromium_revision}/buildtools/DEPS?format=TEXT" | base64 -d > src/buildtools/DEPS
 
         gclient sync --spec="solutions=[{'name':'src/buildtools','url':None,'deps_file':'DEPS','custom_vars':{'process_deps':True},'managed':False}]"
     - name: Add problem matchers
Repository: vercel/next.js
Pull request: [Instant] test: remove unnecessary reactDebugChannel permutation

This is already handled by our test sharding, we don't need to duplicate it

Changed files:
filename: test/e2e/app-dir/instant-validation-static-shells/fixtures/invalid-blocking-page-below-static/next.config.ts
patch: @@ -5,7 +5,6 @@ const nextConfig: NextConfig = {
   productionBrowserSourceMaps: true,
   experimental: {
     prerenderEarlyExit: false,
-    reactDebugChannel: process.env.REACT_DEBUG_CHANNEL ? true : false,
   },
   typescript: {
     ignoreBuildErrors: true,

filename: test/e2e/app-dir/instant-validation-static-shells/fixtures/valid/next.config.ts
patch: @@ -5,7 +5,6 @@ const nextConfig: NextConfig = {
   productionBrowserSourceMaps: true,
   experimental: {
     prerenderEarlyExit: false,
-    reactDebugChannel: process.env.REACT_DEBUG_CHANNEL ? true : false,
   },
   typescript: {
     ignoreBuildErrors: true,

filename: test/e2e/app-dir/instant-validation-static-shells/instant-validation-static-shells.test.ts
patch: @@ -29,18 +29,12 @@ describe('instant validation - opting out of static shells', () => {
   })
 })
 
-describe.each([
-  { debugChannelEnabled: true, description: 'with debug channel' },
-  { debugChannelEnabled: false, description: 'without debug channel' },
-])('instant validation - $description', ({ debugChannelEnabled }) => {
+describe('instant validation', () => {
   describe('requires a static shell if a below a static layout page is configured as blocking', () => {
     const { next, skipped, isNextDev } = nextTestSetup({
       files: join(__dirname, 'fixtures', 'invalid-blocking-page-below-static'),
       skipStart: true,
       skipDeployment: true,
-      env: {
-        REACT_DEBUG_CHANNEL: debugChannelEnabled ? '1' : '',
-      },
     })
     if (skipped) return
 

filename: test/e2e/app-dir/instant-validation/instant-validation.test.ts
patch: @@ -11,16 +11,10 @@ import {
   RedboxSnapshot,
 } from '../../../lib/add-redbox-matchers'
 
-describe.each([
-  { debugChannelEnabled: true, description: 'with debug channel' },
-  { debugChannelEnabled: false, description: 'without debug channel' },
-])('instant validation - $description', ({ debugChannelEnabled }) => {
+describe('instant validation', () => {
   const { next, skipped, isNextDev } = nextTestSetup({
     files: __dirname,
     skipDeployment: true,
-    env: {
-      REACT_DEBUG_CHANNEL: debugChannelEnabled ? '1' : '',
-    },
   })
   if (skipped) return
   if (!isNextDev) {

filename: test/e2e/app-dir/instant-validation/next.config.ts
patch: @@ -3,9 +3,6 @@ import type { NextConfig } from 'next'
 const nextConfig: NextConfig = {
   cacheComponents: true,
   productionBrowserSourceMaps: true,
-  experimental: {
-    reactDebugChannel: process.env.REACT_DEBUG_CHANNEL ? true : false,
-  },
   typescript: {
     ignoreBuildErrors: true,
   },
Repository: nodejs/node
Pull request: deps: update amaro to 1.1.5

This is an automated update of amaro to 1.1.5.

Changed files:
filename: deps/amaro/dist/package.json
patch: @@ -4,7 +4,7 @@
     "강동윤 <kdy1997.dev@gmail.com>"
   ],
   "description": "wasm module for swc",
-  "version": "1.13.20",
+  "version": "1.13.21",
   "license": "Apache-2.0",
   "repository": {
     "type": "git",

filename: deps/amaro/lib/wasm.d.ts
patch: @@ -30,7 +30,7 @@ interface TransformConfig {
      * Don't create `export {}`.
      * By default, strip creates `export {}` for modules to preserve module
      * context.
-     * 
+     *
      * @see https://github.com/swc-project/swc/issues/1698
      */
     noEmptyExport?: boolean;
@@ -39,7 +39,7 @@ interface TransformConfig {
      * Disables an optimization that inlines TS enum member values
      * within the same module that assumes the enum member values
      * are never modified.
-     * 
+     *
      * Defaults to false.
      */
     tsEnumIsMutable?: boolean;
@@ -53,7 +53,7 @@ interface TransformConfig {
 interface JsxConfig {
     /**
      * How to transform JSX.
-     * 
+     *
      * @default "react-jsx"
      */
     transform?: "react-jsx" | "react-jsxdev";

filename: deps/amaro/package.json
patch: @@ -1,6 +1,6 @@
 {
 	"name": "amaro",
-	"version": "1.1.4",
+	"version": "1.1.5",
 	"description": "Node.js TypeScript wrapper",
 	"license": "MIT",
 	"type": "commonjs",

filename: src/amaro_version.h
patch: @@ -2,5 +2,5 @@
 // Refer to tools/dep_updaters/update-amaro.sh
 #ifndef SRC_AMARO_VERSION_H_
 #define SRC_AMARO_VERSION_H_
-#define AMARO_VERSION "1.1.4"
+#define AMARO_VERSION "1.1.5"
 #endif  // SRC_AMARO_VERSION_H_
Repository: ollama/ollama
Pull request: disable output_all

explicitly disable `output_all` since we're using `cparams.embeddings` slightly differently than intended. with `output_all=true`, hidden states is not truncated to just the last position of each sequence and blocks use of `ggml_cuda_mul_mat_vec_q` for inputs > 8. instead it falls back to `ggml_cuda_op_mul_mat_cublas` which allocates temporary buffers to hold dequantized tensors. this can be problematic when the quantized tensor is `token_embd.weight` which for models such as gemma2:2b allocates >2GB

Changed files:
filename: llama/llama.cpp/src/llama-context.cpp
patch: @@ -962,8 +962,7 @@ int llama_context::decode(const llama_batch & batch_inp) {
     const int64_t n_vocab = vocab.n_tokens();
     const int64_t n_embd  = hparams.n_embd;
 
-    // when computing embeddings, all tokens are output
-    const bool output_all = cparams.embeddings;
+    const bool output_all = false;
 
     if (!balloc->init(batch_inp, vocab, memory.get(), n_embd, cparams.kv_unified ? LLAMA_MAX_SEQ : cparams.n_seq_max, output_all)) {
         LLAMA_LOG_ERROR("%s: failed to initialize batch\n", __func__);

filename: llama/patches/0019-Enable-CUDA-Graphs-for-gemma3n.patch
patch: @@ -13,7 +13,7 @@ checks.
  1 file changed, 18 insertions(+)
 
 diff --git a/ggml/src/ggml-cuda/ggml-cuda.cu b/ggml/src/ggml-cuda/ggml-cuda.cu
-index 57eae461..9db0c8b5 100644
+index 57eae461..c7f9dc3a 100644
 --- a/ggml/src/ggml-cuda/ggml-cuda.cu
 +++ b/ggml/src/ggml-cuda/ggml-cuda.cu
 @@ -2671,12 +2671,24 @@ static bool check_node_graph_compatibility_and_refresh_copy_ops(ggml_backend_cud

filename: llama/patches/0023-decode-disable-output_all.patch
patch: @@ -0,0 +1,23 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Michael Yang <git@mxy.ng>
+Date: Mon, 18 Aug 2025 16:58:39 -0700
+Subject: [PATCH] decode: disable output_all
+
+---
+ src/llama-context.cpp | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/llama-context.cpp b/src/llama-context.cpp
+index 26a5cf9c..6ece5263 100644
+--- a/src/llama-context.cpp
++++ b/src/llama-context.cpp
+@@ -962,8 +962,7 @@ int llama_context::decode(const llama_batch & batch_inp) {
+     const int64_t n_vocab = vocab.n_tokens();
+     const int64_t n_embd  = hparams.n_embd;
+ 
+-    // when computing embeddings, all tokens are output
+-    const bool output_all = cparams.embeddings;
++    const bool output_all = false;
+ 
+     if (!balloc->init(batch_inp, vocab, memory.get(), n_embd, cparams.kv_unified ? LLAMA_MAX_SEQ : cparams.n_seq_max, output_all)) {
+         LLAMA_LOG_ERROR("%s: failed to initialize batch\n", __func__);
Repository: ollama/ollama
Pull request: README update: added new integration - Andes 

A Visual Studio Code extension that provides a local UI interface for Ollama models. This project is written by me

Changed files:
filename: README.md
patch: @@ -412,6 +412,7 @@ See the [API documentation](./docs/api.md) for all endpoints.
 - [ai-hub](https://github.com/Aj-Seven/ai-hub) (AI Hub supports multiple models via API keys and Chat support via Ollama API.)
 - [Mayan EDMS](https://gitlab.com/mayan-edms/mayan-edms) (Open source document management system to organize, tag, search, and automate your files with powerful Ollama driven workflows.)
 - [Serene Pub](https://github.com/doolijb/serene-pub) (Beginner friendly, open source AI Roleplaying App for Windows, Mac OS and Linux. Search, download and use models with Ollama all inside the app.)
+- [Andes](https://github.com/aqerd/andes) (A Visual Studio Code extension that provides a local UI interface for Ollama models)
 
 ### Cloud
Repository: facebook/react
Pull request: [Flight] Support Async Modules in Turbopack Server References

Seems like this was missed in https://github.com/facebook/react/pull/31313

Changed files:
filename: packages/react-server-dom-turbopack/src/client/ReactFlightClientConfigBundlerTurbopack.js
patch: @@ -132,7 +132,19 @@ export function resolveServerReference<T>(
       );
     }
   }
-  // TODO: This needs to return async: true if it's an async module.
+  if (resolvedModuleData.async) {
+    // If the module is marked as async in a Client Reference, we don't actually care.
+    // What matters is whether the consumer wants to unwrap it or not.
+    // For Server References, it is different because the consumer is completely internal
+    // to the bundler. So instead of passing it to each reference we can mark it in the
+    // manifest.
+    return [
+      resolvedModuleData.id,
+      resolvedModuleData.chunks,
+      name,
+      1 /* async */,
+    ];
+  }
   return [resolvedModuleData.id, resolvedModuleData.chunks, name];
 }