helloadhavan/github_issues huggingface dataset:
Repository: rust-lang/rust
Pull request: Fix LegacyKeyValueFormat report from docker build: mips

Part of https://github.com/rust-lang/rust/pull/152305

r? @marcoieni

Changed files:
filename: src/ci/docker/host-x86_64/dist-mips-linux/Dockerfile
patch: @@ -26,5 +26,5 @@ ENV \
 
 ENV HOSTS=mips-unknown-linux-gnu
 
-ENV RUST_CONFIGURE_ARGS --enable-extended --disable-docs
-ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS
+ENV RUST_CONFIGURE_ARGS="--enable-extended --disable-docs"
+ENV SCRIPT="python3 ../x.py dist --host $HOSTS --target $HOSTS"

filename: src/ci/docker/host-x86_64/dist-mips64-linux/Dockerfile
patch: @@ -26,5 +26,5 @@ ENV \
 
 ENV HOSTS=mips64-unknown-linux-gnuabi64
 
-ENV RUST_CONFIGURE_ARGS --enable-extended --disable-docs
-ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS
+ENV RUST_CONFIGURE_ARGS="--enable-extended --disable-docs"
+ENV SCRIPT="python3 ../x.py dist --host $HOSTS --target $HOSTS"

filename: src/ci/docker/host-x86_64/dist-mips64el-linux/Dockerfile
patch: @@ -26,5 +26,5 @@ ENV \
 
 ENV HOSTS=mips64el-unknown-linux-gnuabi64
 
-ENV RUST_CONFIGURE_ARGS --enable-extended --disable-docs
-ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS
+ENV RUST_CONFIGURE_ARGS="--enable-extended --disable-docs"
+ENV SCRIPT="python3 ../x.py dist --host $HOSTS --target $HOSTS"

filename: src/ci/docker/host-x86_64/dist-mipsel-linux/Dockerfile
patch: @@ -26,5 +26,5 @@ ENV \
 
 ENV HOSTS=mipsel-unknown-linux-gnu
 
-ENV RUST_CONFIGURE_ARGS --enable-extended --disable-docs
-ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS
+ENV RUST_CONFIGURE_ARGS="--enable-extended --disable-docs"
+ENV SCRIPT="python3 ../x.py dist --host $HOSTS --target $HOSTS"
Repository: ollama/ollama
Pull request: Add Vulkan GPU support instructions in development.md

Add Vulkan GPU support documentation for AMD/Intel GPUs
﻿
This PR adds development documentation for building Ollama with Vulkan support, providing an alternative GPU acceleration option for AMD and Intel graphics cards on both Windows and Linux platforms.

Changed files:
filename: docs/development.md
patch: @@ -49,6 +49,8 @@ Install prerequisites:
     - [Ninja](https://github.com/ninja-build/ninja/releases)
 - (Optional) NVIDIA GPU support
     - [CUDA SDK](https://developer.nvidia.com/cuda-downloads?target_os=Windows&target_arch=x86_64&target_version=11&target_type=exe_network)
+- (Optional) VULKAN GPU support
+    - [VULKAN SDK](https://vulkan.lunarg.com/sdk/home) - useful for AMD/Intel GPUs
 
 Then, configure and build the project:
 
@@ -57,6 +59,17 @@ cmake -B build
 cmake --build build --config Release
 ```
 
+> Building for Vulkan requires VULKAN_SDK environment variable:
+> 
+> PowerShell
+> ```powershell
+> $env:VULKAN_SDK="C:\VulkanSDK\<version>"
+> ```
+> CMD
+> ```cmd
+> set VULKAN_SDK=C:\VulkanSDK\<version>
+> ```
+
 > [!IMPORTANT]
 > Building for ROCm requires additional flags:
 > ```
@@ -65,6 +78,7 @@ cmake --build build --config Release
 > ```
 
 
+
 Lastly, run Ollama:
 
 ```shell
@@ -84,7 +98,9 @@ Install prerequisites:
     - [ROCm](https://rocm.docs.amd.com/projects/install-on-linux/en/latest/install/quick-start.html)
 - (Optional) NVIDIA GPU support
     - [CUDA SDK](https://developer.nvidia.com/cuda-downloads)
-
+- (Optional) VULKAN GPU support
+    - [VULKAN SDK](https://vulkan.lunarg.com/sdk/home) - useful for AMD/Intel GPUs
+    - Or install via package manager: `sudo apt install vulkan-sdk` (Ubuntu/Debian) or `sudo dnf install vulkan-sdk` (Fedora/CentOS)
 > [!IMPORTANT]
 > Ensure prerequisites are in `PATH` before running CMake.
Repository: vercel/next.js
Pull request: Fix pr-status script missing failed jobs on page 2+ of API results

## Summary

`getFailedJobs()` in `scripts/pr-status.js` used jq's `select(.conclusion == "failure")` filter during GitHub API pagination. When a page had 100 jobs but none were failures, jq returned empty output, and the `if (!output.trim()) break` check terminated the pagination loop early — never fetching page 2+ where actual failures existed.

For example, on PR #90755 (129 total jobs), all 100 jobs on page 1 were success/skipped, while the 2 failures (`test unit windows (22) / build` and `thank you, next`) were on page 2 (jobs 101-129). The script reported "Found 0 failed jobs" when there were actually 2.

## Fix

`getFailedJobs()` now delegates to `getAllJobs()` (which fetches all jobs without jq filtering, so pagination works correctly) and filters for failures in JavaScript afterward. This is simpler and avoids the class of bug where jq pre-filtering interacts badly with pagination.

## Test Plan

- Ran `node scripts/pr-status.js 90755` before fix: reported 0 failed jobs
- Ran `node scripts/pr-status.js 90755` after fix: correctly reported 2 failed jobs (`test unit windows (22) / build` and `thank you, next`)

Changed files:
filename: scripts/pr-status.js
patch: @@ -217,34 +217,14 @@ function getRunMetadata(runId) {
 }
 
 function getFailedJobs(runId) {
-  const failedJobs = []
-  let page = 1
-
-  while (true) {
-    const jqQuery = '.jobs[] | select(.conclusion == "failure") | {id, name}'
-    let output
-    try {
-      output = exec(
-        `gh api "repos/vercel/next.js/actions/runs/${runId}/jobs?per_page=100&page=${page}" --jq '${jqQuery}'`
-      )
-    } catch {
-      break
-    }
-
-    if (!output.trim()) break
-
-    const jobs = output
-      .split('\n')
-      .filter((line) => line.trim())
-      .map((line) => JSON.parse(line))
-
-    failedJobs.push(...jobs)
-
-    if (jobs.length < 100) break
-    page++
-  }
-
-  return failedJobs
+  // Fetch all jobs first, then filter for failures in JS.
+  // We can't use jq filtering during pagination because a page full of
+  // non-failure jobs produces empty jq output, which would incorrectly
+  // stop pagination before reaching later pages that contain failures.
+  const allJobs = getAllJobs(runId)
+  return allJobs
+    .filter((j) => j.conclusion === 'failure')
+    .map((j) => ({ id: j.id, name: j.name }))
 }
 
 function getAllJobs(runId) {
Repository: nodejs/node
Pull request: url: suppress warnings from url.format/url.resolve inside node_modules

Fixes: #61724

Changed files:
filename: lib/url.js
patch: @@ -132,7 +132,7 @@ const {
 let urlParseWarned = false;
 
 function urlParse(url, parseQueryString, slashesDenoteHost) {
-  if (!urlParseWarned && !isInsideNodeModules(2)) {
+  if (!urlParseWarned && !isInsideNodeModules(4)) {
     urlParseWarned = true;
     process.emitWarning(
       '`url.parse()` behavior is not standardized and prone to ' +

filename: test/fixtures/node_modules/url-deprecations.js
patch: @@ -0,0 +1,5 @@
+const url = require('url');
+
+url.parse('foo');
+url.format('foo');
+url.resolve('foo', 'bar');

filename: test/parallel/test-url-parse-deprecation.js
patch: @@ -0,0 +1,23 @@
+'use strict';
+
+const common = require('../common');
+const fixtures = require('../common/fixtures');
+
+const assert = require('assert');
+const url = require('url');
+
+const fixturePath = fixtures.path('node_modules', 'url-deprecations.js');
+
+// Application deprecation for url.parse()
+url.parse('foo');
+common.expectWarning('DeprecationWarning',
+                     [/`url\.parse\(\)` behavior is not standardized/, 'DEP0169']);
+
+// No warnings from inside node_modules
+common.spawnPromisified(process.execPath, [fixturePath]).then(
+  common.mustCall(({ code, signal, stderr }) => {
+    assert.strictEqual(code, 0);
+    assert.strictEqual(signal, null);
+    assert.doesNotMatch(stderr, /\[DEP0169\]/);
+  })
+);

filename: test/parallel/test-url-parse-invalid-input.js
patch: @@ -87,13 +87,6 @@ if (common.hasIntl) {
       }));
   });
 
-  // Warning should only happen once per process.
-  common.expectWarning({
-    DeprecationWarning: {
-      // eslint-disable-next-line @stylistic/js/max-len
-      DEP0169: '`url.parse()` behavior is not standardized and prone to errors that have security implications. Use the WHATWG URL API instead. CVEs are not issued for `url.parse()` vulnerabilities.',
-    },
-  });
   badURLs.forEach((badURL) => {
     assert.throws(() => url.parse(badURL), {
       code: 'ERR_INVALID_ARG_VALUE',
Repository: electron/electron
Pull request: fix: user resizable transparent windows on win32

Backport of #49428

See that PR for details.


notes: Fixed user resizing of transparent windows on win32 platform

Changed files:
filename: shell/browser/native_window_views.cc
patch: @@ -1018,17 +1018,13 @@ void NativeWindowViews::MoveTop() {
 
 bool NativeWindowViews::CanResize() const {
 #if BUILDFLAG(IS_WIN)
-  return resizable_ && thick_frame_;
+  return has_frame() ? resizable_ && thick_frame_ : resizable_;
 #else
   return resizable_;
 #endif
 }
 
 bool NativeWindowViews::IsResizable() const {
-#if BUILDFLAG(IS_WIN)
-  if (has_frame())
-    return ::GetWindowLong(GetAcceleratedWidget(), GWL_STYLE) & WS_THICKFRAME;
-#endif
   return CanResize();
 }
 

filename: spec/api-browser-window-spec.ts
patch: @@ -5611,7 +5611,7 @@ describe('BrowserWindow module', () => {
           thickFrame: true,
           transparent: true
         });
-        expect(w.isResizable()).to.be.false('resizable');
+        expect(w.isResizable()).to.be.true('resizable');
         w.maximize();
         expect(w.isMaximized()).to.be.true('maximized');
         const bounds = w.getBounds();
Repository: huggingface/transformers
Pull request: Fix zamba2 rotary embedding call when use_mem_rope is False

`self.rotary_emb` is always called since https://github.com/huggingface/transformers/pull/39847 while only being initialized when `config.use_mem_rope` is True

inference failing since v5 for models `config.use_mem_rope=False` 
```
AttributeError: 'Zamba2Model' object has no attribute 'rotary_emb'
```

https://github.com/huggingface/transformers/blob/v4.57.6/src/transformers/models/zamba2/modeling_zamba2.py#L1312-L1316


Changed files:
filename: src/transformers/models/zamba2/modeling_zamba2.py
patch: @@ -1339,7 +1339,12 @@ def forward(
             past_key_values=past_key_values,
             position_ids=position_ids,
         )
-        position_embeddings = self.rotary_emb(hidden_states, position_ids=position_ids)
+
+        # create position embeddings to be shared across the decoder layers
+        if self.config.use_mem_rope:
+            position_embeddings = self.rotary_emb(hidden_states, position_ids=position_ids)
+        else:
+            position_embeddings = None
 
         all_hidden_states = () if output_hidden_states else None
         all_self_attns = () if output_attentions else None

filename: src/transformers/models/zamba2/modular_zamba2.py
patch: @@ -1057,7 +1057,12 @@ def forward(
             past_key_values=past_key_values,
             position_ids=position_ids,
         )
-        position_embeddings = self.rotary_emb(hidden_states, position_ids=position_ids)
+
+        # create position embeddings to be shared across the decoder layers
+        if self.config.use_mem_rope:
+            position_embeddings = self.rotary_emb(hidden_states, position_ids=position_ids)
+        else:
+            position_embeddings = None
 
         all_hidden_states = () if output_hidden_states else None
         all_self_attns = () if output_attentions else None
Repository: ollama/ollama
Pull request: fix(api): correct Content-Type header for /api/chat and /api/generate when using cloud models

Problem:
When using cloud models, the Content-Type header was not properly set, even though the code at line 1983 (now 1948) attempted to set it.

Cause:
Execution order was the issue:
At line 1968, client.Chat(c, &req, fn) is called.
Inside client.Chat, the callback fn (at line 1950) calls c.Writer.Write() (line 1960) to write data.
On the first Write(), Gin sends HTTP headers if they haven’t been sent yet.

At line 1987, there is an attempt to set the header after data was written — too late.
HTTP headers must be set before the response body is written; after that, headers cannot be changed.
Additionally, if client.Chat returns an error (lines 1976, 1980, 1985, 1988), the header was never set.

Solution:
The header is now set before calling client.Chat (lines 1942–1948), ensuring:
The header is set before writing data.
The header is set regardless of success.
Duplicate code that ran after writing data was removed.

Closes #13258

Changed files:
filename: server/routes.go
patch: @@ -262,6 +262,12 @@ func (s *Server) GenerateHandler(c *gin.Context) {
 			slog.Warn("embedded messages in the model not supported with '/api/generate'; try '/api/chat' instead")
 		}
 
+		contentType := "application/x-ndjson"
+		if req.Stream != nil && !*req.Stream {
+			contentType = "application/json; charset=utf-8"
+		}
+		c.Header("Content-Type", contentType)
+
 		fn := func(resp api.GenerateResponse) error {
 			resp.Model = origModel
 			resp.RemoteModel = m.Config.RemoteModel
@@ -303,12 +309,6 @@ func (s *Server) GenerateHandler(c *gin.Context) {
 			return
 		}
 
-		contentType := "application/json; charset=utf-8"
-		if req.Stream != nil && *req.Stream {
-			contentType = "application/x-ndjson"
-		}
-		c.Header("Content-Type", contentType)
-
 		return
 	}
 
@@ -1939,6 +1939,12 @@ func (s *Server) ChatHandler(c *gin.Context) {
 			}
 		}
 
+		contentType := "application/x-ndjson"
+		if req.Stream != nil && !*req.Stream {
+			contentType = "application/json; charset=utf-8"
+		}
+		c.Header("Content-Type", contentType)
+
 		fn := func(resp api.ChatResponse) error {
 			resp.Model = origModel
 			resp.RemoteModel = m.Config.RemoteModel
@@ -1980,12 +1986,6 @@ func (s *Server) ChatHandler(c *gin.Context) {
 			return
 		}
 
-		contentType := "application/json; charset=utf-8"
-		if req.Stream != nil && *req.Stream {
-			contentType = "application/x-ndjson"
-		}
-		c.Header("Content-Type", contentType)
-
 		return
 	}
Repository: vercel/next.js
Pull request: Turbopack: don't panic due to eventual consistency in module merging

Turn into bail to handle eventual consistency more gracefully

Changed files:
filename: turbopack/crates/turbopack-ecmascript/src/lib.rs
patch: @@ -1525,16 +1525,17 @@ async fn merge_modules(
         }
     };
 
-    debug_assert!(
-        inserted.len() == contents.len(),
-        "Not all merged modules were inserted: {:?}",
-        contents
-            .iter()
-            .enumerate()
-            .map(async |(i, m)| Ok((inserted.contains(&i), m.0.ident().to_string().await?)))
-            .try_join()
-            .await?,
-    );
+    if cfg!(debug_assertions) && inserted.len() != contents.len() {
+        bail!(
+            "Not all merged modules were inserted: {:?}",
+            contents
+                .iter()
+                .enumerate()
+                .map(async |(i, m)| Ok((inserted.contains(&i), m.0.ident().to_string().await?)))
+                .try_join()
+                .await?,
+        );
+    }
 
     let comments = contents
         .iter_mut()
Repository: nodejs/node
Pull request: doc: correct `util.convertProcessSignalToExitCode` validation behavior

This method validates its argument and throws. It never returns `null`.

Additionally, remove ambiguous "signal code" nomenclature to refer to signal name.

Changed files:
filename: doc/api/util.md
patch: @@ -89,35 +89,36 @@ callbackFunction((err, ret) => {
 });
 ```
 
-## `util.convertProcessSignalToExitCode(signalCode)`
+## `util.convertProcessSignalToExitCode(signal)`
 
 <!-- YAML
 added:
  - v25.4.0
  - v24.14.0
 -->
 
-* `signalCode` {string} A signal name (e.g., `'SIGTERM'`, `'SIGKILL'`).
-* Returns: {number|null} The exit code, or `null` if the signal is invalid.
+* `signal` {string} A signal name (e.g. `'SIGTERM'`)
+* Returns: {number} The exit code corresponding to `signal`
 
 The `util.convertProcessSignalToExitCode()` method converts a signal name to its
 corresponding POSIX exit code. Following the POSIX standard, the exit code
 for a process terminated by a signal is calculated as `128 + signal number`.
 
+If `signal` is not a valid signal name, then an error will be thrown. See
+[`signal(7)`][] for a list of valid signals.
+
 ```mjs
 import { convertProcessSignalToExitCode } from 'node:util';
 
 console.log(convertProcessSignalToExitCode('SIGTERM')); // 143 (128 + 15)
 console.log(convertProcessSignalToExitCode('SIGKILL')); // 137 (128 + 9)
-console.log(convertProcessSignalToExitCode('INVALID')); // null
 ```
 
 ```cjs
 const { convertProcessSignalToExitCode } = require('node:util');
 
 console.log(convertProcessSignalToExitCode('SIGTERM')); // 143 (128 + 15)
 console.log(convertProcessSignalToExitCode('SIGKILL')); // 137 (128 + 9)
-console.log(convertProcessSignalToExitCode('INVALID')); // null
 ```
 
 This is particularly useful when working with processes to determine
@@ -3869,6 +3870,7 @@ npx codemod@latest @nodejs/util-is
 [`mime.toString()`]: #mimetostring
 [`mimeParams.entries()`]: #mimeparamsentries
 [`napi_create_external()`]: n-api.md#napi_create_external
+[`signal(7)`]: https://man7.org/linux/man-pages/man7/signal.7.html
 [`target` and `handler`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy#terminology
 [`tty.hasColors()`]: tty.md#writestreamhascolorscount-env
 [`util.diff()`]: #utildiffactual-expected
Repository: ollama/ollama
Pull request: Enable flash attention for vision encoders

Currently the vision encoder components of vision models do not use flash attention, even when the text portions do. This is due to the way that the vision models construct their tensors, which did not meet the requirements of our fast attention model for backends. By softening those requirements (along with recent softer requirements from the underlying GGML kernels), we are able to use flash attention for vision models as well.

This can significantly reduce the size of the compute graph as well as improve processing speed. For example, the compute graph for ministral-3 at default settings goes from 9.1G to 882M with flash attention turned on. Flash attention for vision encoders is controlled by the existing flash attention settings for the overall model.

This also enables flash attention by default for the mistral3 architecture to take advantage of the improvements.

Changed files:
filename: fs/ggml/ggml.go
patch: @@ -831,6 +831,7 @@ func (f GGML) FlashAttention() bool {
 	return slices.Contains([]string{
 		"gemma3",
 		"gptoss", "gpt-oss",
+		"mistral3",
 		"qwen3", "qwen3moe",
 		"qwen3vl", "qwen3vlmoe",
 	}, f.KV().String("general.architecture"))
Repository: rust-lang/rust
Pull request: Create GPU target notification group

Creating the notification group for the newly created GPU target (see [mcp#960](https://rust-lang.zulipchat.com/#narrow/channel/233931-t-compiler.2Fmajor-changes/topic/Create.20a.20GPU.20notification.20group.20compiler-team.23960/near/568629680))

I'm following these [steps](https://github.com/rust-lang/rust/issues/133334).

(feel free to suggest a better wording)

r? @jieyouxu 

Changed files:
filename: triagebot.toml
patch: @@ -194,6 +194,11 @@ Hi relnotes-interest-group, this issue/PR could use some help in reviewing /
 adjusting release notes. Could you take a look if available? Thanks <3
 """
 
+[ping.gpu-target]
+message = """\
+Hi GPU experts, this issue/PR could use some guidance on how this should be
+resolved/implemented. Could you take a look if available? Thanks <3
+"""
 
 # ------------------------------------------------------------------------------
 # Autolabels
Repository: vercel/next.js
Pull request: fix: run lerna on a branch

Trying to fix: `lerna ERR! ENOGIT Detached git HEAD, please checkout a branch to choose versions.` on `set-preview-version.js`

[Slack thread](https://vercel.slack.com/archives/C02CDC2ALJH/p1773051154649349)

Changed files:
filename: scripts/set-preview-version.js
patch: @@ -31,6 +31,12 @@ async function main() {
   // 15.0.0 -> 15.0.0
   const [semverStableVersion] = lernaConfig.version.split('-')
   const version = `${semverStableVersion}-preview-${shortSha}-${dateString}`
+  //
+  // Lerna version requires a non-detached HEAD
+  await execa('git', ['checkout', '-B', `preview/${shortSha}`, githubSha], {
+    cwd: repoRoot,
+    stdio: 'inherit',
+  })
 
   await execa(
     'pnpm',
Repository: huggingface/transformers
Pull request: chameleon added to MODELS_WITH_INCORRECT_HUB_TOKENIZER_CLASS

chameleon added to MODELS_WITH_INCORRECT_HUB_TOKENIZER_CLASS

Changed files:
filename: src/transformers/models/auto/tokenization_auto.py
patch: @@ -341,6 +341,7 @@
 # These models will be forced to use TokenizersBackend.
 MODELS_WITH_INCORRECT_HUB_TOKENIZER_CLASS: set[str] = {
     "arctic",
+    "chameleon",
     "deepseek_vl",
     "deepseek_vl_v2",
     "deepseek_vl_hybrid",
Repository: electron/electron
Pull request: fix: user resizable transparent windows on win32

Backport of #49428

See that PR for details.


notes: Fixed user resizing of transparent windows on win32 platform

Changed files:
filename: shell/browser/native_window_views.cc
patch: @@ -1017,17 +1017,13 @@ void NativeWindowViews::MoveTop() {
 
 bool NativeWindowViews::CanResize() const {
 #if BUILDFLAG(IS_WIN)
-  return resizable_ && thick_frame_;
+  return has_frame() ? resizable_ && thick_frame_ : resizable_;
 #else
   return resizable_;
 #endif
 }
 
 bool NativeWindowViews::IsResizable() const {
-#if BUILDFLAG(IS_WIN)
-  if (has_frame())
-    return ::GetWindowLong(GetAcceleratedWidget(), GWL_STYLE) & WS_THICKFRAME;
-#endif
   return CanResize();
 }
 

filename: spec/api-browser-window-spec.ts
patch: @@ -5550,7 +5550,7 @@ describe('BrowserWindow module', () => {
           thickFrame: true,
           transparent: true
         });
-        expect(w.isResizable()).to.be.false('resizable');
+        expect(w.isResizable()).to.be.true('resizable');
         w.maximize();
         expect(w.isMaximized()).to.be.true('maximized');
         const bounds = w.getBounds();
Repository: huggingface/transformers
Pull request: Revert "test merge queue 1"

Reverts huggingface/transformers#44529

Changed files:
filename: src/transformers/models/wav2vec2/tokenization_wav2vec2.py
patch: @@ -37,9 +37,6 @@
     import torch
 
 
-a = 3
-
-
 VOCAB_FILES_NAMES = {
     "vocab_file": "vocab.json",
     "tokenizer_config_file": "tokenizer_config.json",
Repository: facebook/react
Pull request: [tests] disableLegacyMode in test-renderer

500 tests failed from not using async act. Will fix the tests and then re-land this.

Changed files:
filename: packages/shared/forks/ReactFeatureFlags.test-renderer.native-fb.js
patch: @@ -16,7 +16,7 @@ export const disableCommentsAsDOMContainers = true;
 export const disableInputAttributeSyncing = false;
 export const disableLegacyContext = false;
 export const disableLegacyContextForFunctionComponents = false;
-export const disableLegacyMode = true;
+export const disableLegacyMode = false;
 export const disableSchedulerTimeoutInWorkLoop = false;
 export const disableTextareaChildren = false;
 export const enableAsyncDebugInfo = false;
Repository: electron/electron
Pull request: fix: user resizable transparent windows on win32

Backport of #49428

See that PR for details.


notes: Fixed user resizing of transparent windows on win32 platform

Changed files:
filename: shell/browser/native_window_views.cc
patch: @@ -1000,17 +1000,13 @@ void NativeWindowViews::MoveTop() {
 
 bool NativeWindowViews::CanResize() const {
 #if BUILDFLAG(IS_WIN)
-  return resizable_ && thick_frame_;
+  return has_frame() ? resizable_ && thick_frame_ : resizable_;
 #else
   return resizable_;
 #endif
 }
 
 bool NativeWindowViews::IsResizable() const {
-#if BUILDFLAG(IS_WIN)
-  if (has_frame())
-    return ::GetWindowLong(GetAcceleratedWidget(), GWL_STYLE) & WS_THICKFRAME;
-#endif
   return CanResize();
 }
 

filename: spec/api-browser-window-spec.ts
patch: @@ -5501,7 +5501,7 @@ describe('BrowserWindow module', () => {
           thickFrame: true,
           transparent: true
         });
-        expect(w.isResizable()).to.be.false('resizable');
+        expect(w.isResizable()).to.be.true('resizable');
         w.maximize();
         expect(w.isMaximized()).to.be.true('maximized');
         const bounds = w.getBounds();