helloadhavan/github_issues huggingface dataset:
Repository: nodejs/node
Pull request: http: move writeHeader to end-of-life

It's been over 7 years since it was deprecated in documentation only, and it’s been runtime-deprecated since version 25. I think it can finally be moved to end-of-life for version 26, since its usage is practically nonexistent.

Changed files:
filename: doc/api/deprecations.md
patch: @@ -1600,6 +1600,9 @@ instead.
 
 <!-- YAML
 changes:
+  - version: REPLACEME
+    pr-url: https://github.com/nodejs/node/pull/60635
+    description: End-of-Life.
   - version: v25.0.0
     pr-url: https://github.com/nodejs/node/pull/59060
     description: Runtime deprecation.
@@ -1608,7 +1611,7 @@ changes:
     description: Documentation-only deprecation.
 -->
 
-Type: Runtime
+Type: End-of-Life
 
 The `node:http` module `ServerResponse.prototype.writeHeader()` API is
 deprecated. Please use `ServerResponse.prototype.writeHead()` instead.

filename: lib/_http_server.js
patch: @@ -84,7 +84,6 @@ const {
 } = require('internal/errors');
 const {
   assignFunctionName,
-  deprecate,
   kEmptyObject,
   promisify,
 } = require('internal/util');
@@ -447,10 +446,6 @@ function writeHead(statusCode, reason, obj) {
   return this;
 }
 
-ServerResponse.prototype.writeHeader = deprecate(ServerResponse.prototype.writeHead,
-                                                 'ServerResponse.prototype.writeHeader is deprecated.',
-                                                 'DEP0063');
-
 function storeHTTPOptions(options) {
   this[kIncomingMessage] = options.IncomingMessage || IncomingMessage;
   this[kServerResponse] = options.ServerResponse || ServerResponse;

filename: test/parallel/test-write-header.js
patch: @@ -1,20 +0,0 @@
-'use strict';
-const common = require('../common');
-const assert = require('assert');
-const http = require('http');
-
-common.expectWarning('DeprecationWarning',
-                     'ServerResponse.prototype.writeHeader is deprecated.', 'DEP0063');
-
-const server = http.createServer(common.mustCall((req, res) => {
-  res.writeHeader(200, [ 'test', '2', 'test2', '2' ]);
-  res.end();
-})).listen(0, common.mustCall(() => {
-  http.get({ port: server.address().port }, common.mustCall((res) => {
-    assert.strictEqual(res.headers.test, '2');
-    assert.strictEqual(res.headers.test2, '2');
-    res.resume().on('end', common.mustCall(() => {
-      server.close();
-    }));
-  }));
-}));
Repository: electron/electron
Pull request: build: apply additional compression to dsym on upload

Backport of #48930

See that PR for details.


Notes: none

Changed files:
filename: script/lib/util.py
patch: @@ -84,6 +84,12 @@ def make_zip(zip_file_path, files, dirs):
       zip_file.close()
 
 
+def make_tar_xz(tar_file_path, files, dirs):
+  safe_unlink(tar_file_path)
+  allfiles = files + dirs
+  execute(['tar', '-cJf', tar_file_path] + allfiles)
+
+
 def rm_rf(path):
   try:
     shutil.rmtree(path)

filename: script/zip-symbols.py
patch: @@ -6,7 +6,7 @@
 import sys
 
 from lib.config import PLATFORM
-from lib.util import scoped_cwd, get_electron_version, make_zip, \
+from lib.util import scoped_cwd, get_electron_version, make_zip, make_tar_xz, \
                      get_electron_branding, get_out_dir, execute
 
 ELECTRON_VERSION = get_electron_version()
@@ -27,16 +27,15 @@ def main():
     make_zip(zip_file, licenses, dirs)
 
   if PLATFORM == 'darwin':
-    dsym_name = 'dsym.zip'
+    dsym_name = 'dsym.tar.xz'
     with scoped_cwd(args.build_dir):
       dsyms = glob.glob('*.dSYM')
       snapshot_dsyms = ['v8_context_snapshot_generator.dSYM']
       for dsym in snapshot_dsyms:
         if (dsym in dsyms):
           dsyms.remove(dsym)
-      dsym_zip_file = os.path.join(args.build_dir, dsym_name)
-      print('Making dsym zip: ' + dsym_zip_file)
-      make_zip(dsym_zip_file, licenses, dsyms)
+      dsym_tar_file = os.path.join(args.build_dir, dsym_name)
+      make_tar_xz(dsym_tar_file, licenses, dsyms)
       dsym_snapshot_name = 'dsym-snapshot.zip'
       dsym_snapshot_zip_file = os.path.join(args.build_dir, dsym_snapshot_name)
       print('Making dsym snapshot zip: ' + dsym_snapshot_zip_file)
Repository: ollama/ollama
Pull request: Refine default thread selection for NUMA systems

Until we have full NUMA support, this adjusts the default thread selection algorithm to count up the number of performance cores across all sockets.

Fixes #7287 
Fixes #7359 

Changed files:
filename: discover/gpu_linux.go
patch: @@ -3,9 +3,11 @@ package discover
 import (
 	"bufio"
 	"fmt"
+	"io"
 	"os"
 	"reflect"
 	"regexp"
+	"sort"
 	"strings"
 
 	"github.com/ollama/ollama/format"
@@ -109,6 +111,10 @@ func GetCPUDetails() ([]CPU, error) {
 	if err != nil {
 		return nil, err
 	}
+	return linuxCPUDetails(file)
+}
+
+func linuxCPUDetails(file io.Reader) ([]CPU, error) {
 	reColumns := regexp.MustCompile("\t+: ")
 	scanner := bufio.NewScanner(file)
 	cpuInfos := []linuxCpuInfo{}
@@ -131,6 +137,9 @@ func GetCPUDetails() ([]CPU, error) {
 			cpu = &linuxCpuInfo{}
 		}
 	}
+	if cpu.ID != "" {
+		cpuInfos = append(cpuInfos, *cpu)
+	}
 
 	// Process the sockets/cores/threads
 	socketByID := map[string]*CPU{}
@@ -177,10 +186,14 @@ func GetCPUDetails() ([]CPU, error) {
 			s.EfficiencyCoreCount = efficiencyCoreCount
 		}
 	}
-
-	result := []CPU{}
-	for _, c := range socketByID {
-		result = append(result, *c)
+	keys := make([]string, 0, len(socketByID))
+	result := make([]CPU, 0, len(socketByID))
+	for k := range socketByID {
+		keys = append(keys, k)
+	}
+	sort.Strings(keys)
+	for _, k := range keys {
+		result = append(result, *socketByID[k])
 	}
 	return result, nil
 }

filename: discover/types.go
patch: @@ -175,6 +175,11 @@ func (si SystemInfo) GetOptimalThreadCount() int {
 	if len(si.System.CPUs) == 0 {
 		return 0
 	}
-	// Allocate thread count matching the performance cores on a single socket
-	return si.System.CPUs[0].CoreCount - si.System.CPUs[0].EfficiencyCoreCount
+
+	coreCount := 0
+	for _, c := range si.System.CPUs {
+		coreCount += c.CoreCount - c.EfficiencyCoreCount
+	}
+
+	return coreCount
 }
Repository: facebook/react
Pull request: [ci] Also cache playground playwright browsers


Following #32678, do the same for the playground e2e test since this step can sometimes take many minutes to complete.


Changed files:
filename: .github/workflows/compiler_playground.yml
patch: @@ -40,7 +40,19 @@ jobs:
             **/node_modules
           key: compiler-node_modules-v6-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('compiler/**/yarn.lock') }}
       - run: yarn install --frozen-lockfile
+      - name: Check Playwright version
+        id: playwright_version
+        run: echo "playwright_version=$(npm ls @playwright/test | grep @playwright | sed 's/.*@//' | head -1)" >> "$GITHUB_OUTPUT"
+      - name: Cache Playwright Browsers for version ${{ steps.playwright_version.outputs.playwright_version }}
+        id: cache_playwright_browsers
+        uses: actions/cache@v4
+        with:
+          path: ~/.cache/ms-playwright
+          key: playwright-browsers-v6-${{ runner.arch }}-${{ runner.os }}-${{ steps.playwright_version.outputs.playwright_version }}
       - run: npx playwright install --with-deps chromium
+        if: steps.cache_playwright_browsers.outputs.cache-hit != 'true'
+      - run: npx playwright install-deps
+        if: steps.cache_playwright_browsers.outputs.cache-hit == 'true'
       - run: CI=true yarn test
       - run: ls -R test-results
         if: '!cancelled()'

filename: .github/workflows/runtime_build_and_test.yml
patch: @@ -599,13 +599,10 @@ jobs:
         if: steps.node_modules.outputs.cache-hit != 'true'
       - run: yarn --cwd fixtures/flight install --frozen-lockfile
         if: steps.node_modules.outputs.cache-hit != 'true'
-      - name: Store Playwright version
+      - name: Check Playwright version
         id: playwright_version
-        run: |
-          PLAYWRIGHT_VERSION=$(npm ls @playwright/test | grep @playwright | sed 's/.*@//')
-          echo "Playwright's Version: $PLAYWRIGHT_VERSION"
-          echo "playwright_version=$PLAYWRIGHT_VERSION" >> "$GITHUB_OUTPUT"
-      - name: Cache Playwright Browsers for Playwright's Version
+        run: echo "playwright_version=$(npm ls @playwright/test | grep @playwright | sed 's/.*@//' | head -1)" >> "$GITHUB_OUTPUT"
+      - name: Cache Playwright Browsers for version ${{ steps.playwright_version.outputs.playwright_version }}
         id: cache_playwright_browsers
         uses: actions/cache@v4
         with:
Repository: facebook/react
Pull request: [ci] Warm cache


Try restoring from old caches as a base to speed up the case where node_modules needs updating.
---
[//]: # (BEGIN SAPLING FOOTER)
Stack created with [Sapling](https://sapling-scm.com). Best reviewed with [ReviewStack](https://reviewstack.dev/facebook/react/pull/32685).
* #32686
* __->__ #32685

Changed files:
filename: .github/workflows/runtime_build_and_test.yml
patch: @@ -41,6 +41,16 @@ jobs:
           node-version-file: '.nvmrc'
           cache: yarn
           cache-dependency-path: yarn.lock
+      - name: Warm with old cache
+        if: steps.node_modules.outputs.cache-hit != 'true'
+        uses: actions/cache/restore@v4
+        with:
+          path: |
+            **/node_modules
+          key: runtime-node_modules-v6-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
+          restore-keys: |
+            runtime-node_modules-v6-${{ runner.arch }}-${{ runner.os }}-
+            runtime-node_modules-v6-
       - run: yarn install --frozen-lockfile
         if: steps.node_modules.outputs.cache-hit != 'true'
       - name: Save cache
@@ -74,6 +84,16 @@ jobs:
           cache-dependency-path: |
             yarn.lock
             compiler/yarn.lock
+      - name: Warm with old cache
+        if: steps.node_modules.outputs.cache-hit != 'true'
+        uses: actions/cache/restore@v4
+        with:
+          path: |
+            **/node_modules
+          key: runtime-and-compiler-node_modules-v6-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('yarn.lock', 'compiler/yarn.lock') }}
+          restore-keys: |
+            runtime-and-compiler-node_modules-v6-${{ runner.arch }}-${{ runner.os }}-
+            runtime-and-compiler-node_modules-v6-
       - run: yarn install --frozen-lockfile
         if: steps.node_modules.outputs.cache-hit != 'true'
       - run: yarn --cwd compiler install --frozen-lockfile
Repository: vercel/next.js
Pull request: [ci] Ensure runners use configured Node.js version

Follow-up to https://github.com/vercel/next.js/pull/86720 which only fixed it for Unix runners.

The `FNM_MULTISHELL_PATH` variable contains a win32 path but we need a unix path since we're using Bash by default.
We also need to update our runners to not have an existing Node.js path in `PATH`. GitHub Actions wants to isolate steps from another so agnostic tools trying to mutate the environment can't work. We need to specifically handle those mutations via `GITHUB_PATH` and `GITHUB_ENV`.

With runners without a pre-configured bash profile (designated default): https://github.com/vercel/next.js/actions/runs/20248003051/job/58132998115?pr=87183#step:7:28
With current runner setup having pre-configured bash profile: https://github.com/vercel/next.js/actions/runs/20248124244/job/58133406989?pr=87183#step:7:29

Note that you have to look at jobs with runners not starting out with the desired Node.js version i.e. we need to remove the custom profile setups.


Changed files:
filename: .github/workflows/build_reusable.yml
patch: @@ -151,9 +151,10 @@ jobs:
           script: |
             core.setOutput('input_step_key', '${{ inputs.stepName }}'.toLowerCase().replaceAll(/[/.]/g, '-').trim('-'));
 
-      - name: Use Node.js ${{ inputs.nodeVersion || env.NODE_LTS_VERSION }}
+      - name: Use Node.js ${{ inputs.nodeVersion || env.NODE_LTS_VERSION }} for default shell
         run: |
-          node --version || echo "Node.js not installed yet"
+          node --version || true
+          which node || true
           # TODO: May be sufficient to just set `$FNM_MULTISHELL_PATH/bin` from `fnm env --json` into GITHUB_PATH
           fnm_env=$(fnm env)
           # Debug what we're about to eval
@@ -163,10 +164,15 @@ jobs:
           fnm default ${{ inputs.nodeVersion || env.NODE_LTS_VERSION }}
           node --version
           which node
-          echo "$FNM_MULTISHELL_PATH/bin" >> "$GITHUB_PATH"
+          NODE_SHELL_PATH=$(dirname "$(which node)")
+          echo "Adding '$NODE_SHELL_PATH' to GITHUB_PATH"
+          echo "$NODE_SHELL_PATH" >> "$GITHUB_PATH"
       # Debug used Node.js version in a separate step to ensure
       # the Node.js version is set for the entire job
-      - run: node --version
+      - name: Verify Node.js version
+        run: |
+          which node
+          node --version
       - name: Prepare corepack
         if: ${{ contains(fromJson(inputs.runs_on_labels), 'ubuntu-latest') }}
         run: |
Repository: electron/electron
Pull request: fix:  Windows: Calling window.setFocusable(true) will no longer cause a window to lose focus


#### Description of Change

On Windows, calling `NativeWindowViews::SetFocusable(bool focusable)` currently always calls `Focus(false)` at the end of the function regardless of if we're setting focusable to true or false. While it does make sense to lose focus when calling `SetFocusable(false)`, it doesn't make sense to drop focus when calling `SetFocusable(true)`. Setting to `true` should also not forcibly focus. So I propose to drop focus only when `!focusable`, and do not call `Focus()` at all when `focusable`.

#### Release Notes

Notes: Windows: Calling window.setFocusable(true) will no longer cause a window to lose focus

Changed files:
filename: shell/browser/native_window_views.cc
patch: @@ -1363,7 +1363,8 @@ void NativeWindowViews::SetFocusable(bool focusable) {
     ex_style |= WS_EX_NOACTIVATE;
   ::SetWindowLong(GetAcceleratedWidget(), GWL_EXSTYLE, ex_style);
   SetSkipTaskbar(!focusable);
-  Focus(false);
+  if (!focusable)
+    Focus(false);
 #endif
 }
Repository: vuejs/vue
Pull request: support plugin with multi version vue (#5970)

<!--
Please make sure to read the Pull Request Guidelines:
https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#pull-request-guidelines
-->

<!-- PULL REQUEST TEMPLATE -->
<!-- (Update "[ ]" to "[x]" to check a box) -->

**What kind of change does this PR introduce?** (check at least one)

- [ ] Bugfix
- [x] Feature
- [ ] Code style update
- [ ] Refactor
- [ ] Build-related changes
- [ ] Other, please describe:

**Does this PR introduce a breaking change?** (check one)

- [x] Yes
- [ ] No

If yes, please describe the impact and migration path for existing applications:

**The PR fulfills these requirements:**

- [x] It's submitted to the `dev` branch for v2.x (or to a previous version branch), _not_ the `master` branch
- [x] When resolving a specific issue, it's referenced in the PR's title (e.g. `fix #xxx[,#xxx]`, where "xxx" is the issue number)
- [x] All tests are passing: https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#development-setup
- [x] New/updated tests are included

If adding a **new feature**, the PR's description includes:
- [x] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

**Other information:**

Changed files:
filename: src/core/global-api/use.js
patch: @@ -4,13 +4,11 @@ import { toArray } from '../util/index'
 
 export function initUse (Vue: GlobalAPI) {
   Vue.use = function (plugin: Function | Object) {
-    const cid = this.cid
-    if (!plugin._installed) {
-      plugin._installed = {}
-    }
-    if (plugin._installed[cid]) {
+    const installedPlugins = (this._installedPlugins || (this._installedPlugins = []))
+    if (installedPlugins.indexOf(plugin) > -1) {
       return this
     }
+
     // additional parameters
     const args = toArray(arguments, 1)
     args.unshift(this)
@@ -19,7 +17,7 @@ export function initUse (Vue: GlobalAPI) {
     } else if (typeof plugin === 'function') {
       plugin.apply(null, args)
     }
-    plugin._installed[cid] = true
+    installedPlugins.push(plugin)
     return this
   }
 }

filename: test/unit/features/global-api/use.spec.js
patch: @@ -33,4 +33,20 @@ describe('Global API: use', () => {
     expect(Vue.options.directives['plugin-test']).toBeUndefined()
     expect(Ctor.options.directives['plugin-test']).toBe(def)
   })
+
+  // Github issue #5970
+  it('should work on multi version', () => {
+    const Ctor1 = Vue.extend({})
+    const Ctor2 = Vue.extend({})
+
+    Ctor1.use(pluginStub, options)
+    expect(Vue.options.directives['plugin-test']).toBeUndefined()
+    expect(Ctor1.options.directives['plugin-test']).toBe(def)
+
+    // multi version Vue Ctor with the same cid
+    Ctor2.cid = Ctor1.cid
+    Ctor2.use(pluginStub, options)
+    expect(Vue.options.directives['plugin-test']).toBeUndefined()
+    expect(Ctor2.options.directives['plugin-test']).toBe(def)
+  })
 })
Repository: ollama/ollama
Pull request: runner.go: Don't trim whitespace from inputs

It's possible to get prompts that consist entirely of whitespace - this is most likely to happen when generating embeddings. Currently, we will trim this away, leaving an empty prompt, which will then generate an error.

Generating embeddings from whitespace should not trigger an error, as this may break pipelines. It's better to just leave the whitespace in place and process what we are given. This is consistent with past versions of Ollama.

Bug #7578

Changed files:
filename: llama/runner/runner.go
patch: @@ -163,15 +163,13 @@ func (s *Server) inputs(prompt string, images []ImageData) ([]input, error) {
 
 	for i, part := range parts {
 		// text - tokenize
-		if strings.TrimSpace(part) != "" {
-			tokens, err := s.lc.Model().Tokenize(part, i == 0, true)
-			if err != nil {
-				return nil, err
-			}
+		tokens, err := s.lc.Model().Tokenize(part, i == 0, true)
+		if err != nil {
+			return nil, err
+		}
 
-			for _, t := range tokens {
-				inputs = append(inputs, input{token: t})
-			}
+		for _, t := range tokens {
+			inputs = append(inputs, input{token: t})
 		}
 
 		// image - generate image embedding
Repository: electron/electron
Pull request: fix:  Windows: Calling window.setFocusable(true) will no longer cause a window to lose focus

Backport of #45640

See that PR for details.


Notes: Windows: Calling window.setFocusable(true) will no longer cause a window to lose focus

Changed files:
filename: shell/browser/native_window_views.cc
patch: @@ -1363,7 +1363,8 @@ void NativeWindowViews::SetFocusable(bool focusable) {
     ex_style |= WS_EX_NOACTIVATE;
   ::SetWindowLong(GetAcceleratedWidget(), GWL_EXSTYLE, ex_style);
   SetSkipTaskbar(!focusable);
-  Focus(false);
+  if (!focusable)
+    Focus(false);
 #endif
 }
Repository: vercel/next.js
Pull request: Turbopack: Inline uses of the SliceMap type alias

- We (@lukesandberg, @sokra, and myself) discussed this type alias during the team meeting on Thursday and decided the alias wasn't worth it. Apparently I left a comment to the effect when this was first added: https://github.com/vercel/next.js/pull/76053#discussion_r1956639433

- Now that [`FrozenMap`](https://turbopack-rust-docs.vercel.sh/rustdoc/turbo_frozenmap/map/struct.FrozenMap.html) exists, we want people to gravitate towards that type instead of `SliceMap`. 

- I tried replacing these uses with `FrozenMap` in #87050, but it turns out that we do care a lot about iteration order for these types.

Changed files:
filename: turbopack/crates/turbo-tasks/src/lib.rs
patch: @@ -138,8 +138,6 @@ pub use crate::{
     },
 };
 
-pub type SliceMap<K, V> = Box<[(K, V)]>;
-
 pub type FxIndexSet<T> = indexmap::IndexSet<T, BuildHasherDefault<FxHasher>>;
 pub type FxIndexMap<K, V> = indexmap::IndexMap<K, V, BuildHasherDefault<FxHasher>>;
 pub type FxDashMap<K, V> = dashmap::DashMap<K, V, BuildHasherDefault<FxHasher>>;

filename: turbopack/crates/turbopack-core/src/resolve/mod.rs
patch: @@ -17,8 +17,8 @@ use tracing::{Instrument, Level};
 use turbo_frozenmap::{FrozenMap, FrozenSet};
 use turbo_rcstr::{RcStr, rcstr};
 use turbo_tasks::{
-    FxIndexMap, FxIndexSet, NonLocalValue, ReadRef, ResolvedVc, SliceMap, TaskInput,
-    TryFlatJoinIterExt, TryJoinIterExt, ValueToString, Vc, trace::TraceRawVcs,
+    FxIndexMap, FxIndexSet, NonLocalValue, ReadRef, ResolvedVc, TaskInput, TryFlatJoinIterExt,
+    TryJoinIterExt, ValueToString, Vc, trace::TraceRawVcs,
 };
 use turbo_tasks_fs::{FileSystemEntryType, FileSystemPath};
 use turbo_unix_path::normalize_request;
@@ -173,7 +173,7 @@ impl ExportUsage {
 #[turbo_tasks::value(shared)]
 #[derive(Clone, Debug)]
 pub struct ModuleResolveResult {
-    pub primary: SliceMap<RequestKey, ModuleResolveResultItem>,
+    pub primary: Box<[(RequestKey, ModuleResolveResultItem)]>,
     /// Affecting sources are other files that influence the resolve result.  For example,
     /// traversed symlinks
     pub affecting_sources: Box<[ResolvedVc<Box<dyn Source>>]>,
@@ -513,7 +513,7 @@ impl RequestKey {
 #[turbo_tasks::value(shared)]
 #[derive(Clone)]
 pub struct ResolveResult {
-    pub primary: SliceMap<RequestKey, ResolveResultItem>,
+    pub primary: Box<[(RequestKey, ResolveResultItem)]>,
     /// Affecting sources are other files that influence the resolve result.  For example,
     /// traversed symlinks
     pub affecting_sources: Box<[ResolvedVc<Box<dyn Source>>]>,
Repository: facebook/react
Pull request: Enable Fragment refs in Experimental

That we can test it out in Next.js router conditionally when experimental is on for other reasons.

Changed files:
filename: packages/shared/ReactFeatureFlags.js
patch: @@ -162,7 +162,7 @@ export const enableUseEffectCRUDOverload = false;
 export const enableFastAddPropertiesInDiffing = true;
 export const enableLazyPublicInstanceInFabric = false;
 
-export const enableFragmentRefs = false;
+export const enableFragmentRefs = __EXPERIMENTAL__;
 
 // -----------------------------------------------------------------------------
 // Ready for next major.
Repository: ollama/ollama
Pull request: fix(mllama): sync backend between batches

On multi-GPUs and cross attention specifically, sync the backend between batches to ensure operations are complete before moving on 

Resolves #7558 

Changed files:
filename: llama/llama.go
patch: @@ -600,6 +600,10 @@ func (c *Context) SetCrossAttention(state bool) {
 	C.llama_set_cross_attention(c.c, C.bool(state))
 }
 
+func (c *Context) Synchronize() {
+	C.llama_synchronize(c.c)
+}
+
 // sampling
 // TODO: this is a temporary wrapper to allow calling C++ code from CGo
 type SamplingContext struct {

filename: llama/runner/runner.go
patch: @@ -409,6 +409,13 @@ func (s *Server) processBatch(tokenBatch *llama.Batch, embedBatch *llama.Batch)
 		return
 	}
 
+	if crossAttention {
+		// synchronize state to ensure the cross attention batch is complete.
+		// needed specifically for multi-GPU systems otherwise an inflight
+		// task may be incorrectly invalidated causing a crash
+		s.lc.Synchronize()
+	}
+
 	for i, seq := range s.seqs {
 		if seq == nil {
 			continue
Repository: facebook/react
Pull request: [ci] Fix Will commit these changes www step


Unlike the fbsource version of the step, www doesn't add any changes so the `force` input doesn't actually work


Changed files:
filename: .github/workflows/runtime_commit_artifacts.yml
patch: @@ -246,8 +246,8 @@ jobs:
       - name: Will commit these changes
         if: inputs.force == true || steps.check_should_commit.outputs.should_commit == 'true'
         run: |
-          echo ":"
-          git status -u
+          git add .
+          git status
       - name: Check commit message
         if: inputs.dry_run
         run: |