sharjeelyunus/github-issues-dataset huggingface dataset:
Repository: pytorch
Issue: Provide `gather_mm` functionality and/or expand nested tensor support
Labels: triaged,module: nestedtensor

### 🚀 The feature, motivation and pitch

I am interested in achieving the same functionality as [dgl.ops.gather_mm](https://docs.dgl.ai/generated/dgl.ops.gather_mm.html) without having to rely on DGL as an external dependency (as it is not trivial to get up and running).

`gather_mm` essentially performs a set of dense matrix multiplications using a single invocation while looking up the corresponding RHS matrices (e.g. weights) on demand.

### Alternatives

The functionality can be implemented using torch nested tensors. This avoids the need for a foor loop to compute the matrix multiplications however for loop are still needed to reshape / convert to and from input tensors and nested tensor. This limits the performance and increases the memory requirement.

Below is a code snippet for it:
```python
import torch
print(f'Running PyTorch version: {torch.__version__}')

torchdevice = torch.device('cpu')
if torch.cuda.is_available():
  torchdevice = torch.device('cuda')
  print('Default GPU is ' + torch.cuda.get_device_name(torch.device('cuda')))
print('Running on ' + str(torchdevice))

NN = 1000
DD1 = 32
DD2 = 7
RR = 10

aa = torch.randn((NN,DD1), device=torchdevice)
bb = torch.randn((RR,DD1,DD2), device=torchdevice)
iidx_b = torch.randint(low=0, high=RR, size=(NN,),device=torchdevice)

def my_gather_mm(a, b, idx_b):
  # mimic https://docs.dgl.ai/generated/dgl.ops.gather_mm.html
  R,D1,D2 = b.shape
  N = idx_b.shape[0]

  # Sanity check sizes
  assert(a.shape[0]==N and a.shape[1]==D1)

  torchdevice = a.device
  src_idx = torch.arange(N,device=torchdevice)

  # Ideally the conversions below to nested tensor would be handled without for looops and without copy
  nested_a = torch.nested.as_nested_tensor([a[idx_b==i,:] for i in range(R)] )
  src_idx_reshuffled = torch.cat( [src_idx[idx_b==i] for i in range(R)] )
  nested_b = torch.nested.as_nested_tensor(
      [b[i,:,:].squeeze() for i in range(R)] )

  # The actual gather matmul computation
  nested_ab = torch.matmul(nested_a,nested_b)

  # Convert back to tensors, again, ideally this would be handled natively with no copy
  ab_segmented = torch.cat(nested_ab.unbind(),dim=0)
  ab = torch.empty((N,D2),device=torchdevice)
  ab[src_idx_reshuffled] = ab_segmented
  return ab

aab = my_gather_mm(aa, bb, iidx_b)
print(aab.shape)
```

### Additional context

A relevant paper looking at optimising `gather_mm`:
https://ieeexplore.ieee.org/abstract/document/10196568

PyG has a similar `segment_matmul` op:
https://pyg-lib.readthedocs.io/en/latest/modules/ops.html#pyg_lib.ops.segment_matmul
which is also found in DGL:
https://docs.dgl.ai/generated/dgl.ops.segment_mm.html

Representing nested tensors as concatenated tensors is discussed here:
https://github.com/pytorch/nestedtensor/issues/453

cc @cpuhrsch @jbschlosser @bhosmer @drisspg @soulitzer @davidberard98 @YuqingJ
Repository: vscode
Issue: Remove duplicate rendering code of Context Attachments
Labels: debt,chat

There seems to be 2 code copies of attachment rendering ([List Renderer](https://github.com/microsoft/vscode/blob/0da18f3d72b6d9c72f2d20a7545f4eac8a69b1ee/src/vs/workbench/contrib/chat/browser/chatContentParts/chatAttachmentsContentPart.ts#L50), [Input Part](https://github.com/microsoft/vscode/blob/0da18f3d72b6d9c72f2d20a7545f4eac8a69b1ee/src/vs/workbench/contrib/chat/browser/chatInputPart.ts#L706)). Every time we introduce a new attachment type or change some of the logic we need to make the change in both places which is not ideal and can easily get forgotten.
Repository: opencv
Issue: TrackerDaSiamRPN does not work with the new DNN engine
Labels: bug,category: video,category: dnn

### System Information

Platform: Any
Reference: https://github.com/opencv/opencv/pull/26056

### Detailed description

-

### Steps to reproduce

-

### Issue submission checklist

- [X] I report the issue, it's not a question
- [X] I checked the problem with documentation, FAQ, open issues, forum.opencv.org, Stack Overflow, etc and have not found any solution
- [X] I updated to the latest OpenCV version and the issue is still there
- [X] There is reproducer code and related data files (videos, images, onnx, etc)
Repository: storybook
Issue: [Documentation]: globalTypes icon deprecated documentation
Labels: documentation,needs triage

### Describe the problem

The documentation for using icons seems to be outdated. I can also not find any documentation on the available icon names. Some icons from @storybook/icon seem to work when using them all lowercase and without the `Icon` part.
Repository: flutter
Issue: [in_app_purchase] A way to listen to StoreKit messages in flutter?
Labels: platform-ios,p: in_app_purchase,package,c: proposal,P2,team-ios,triaged-ios

### Use case

Currently, We can only listen to purchase stream in flutter. I want to be able to listen to Storekit messages and respond to them. This will be useful for handling errors related to billing issues and winback offers. 

### Proposal

Swift Code for sample: 

```swift
for await message in StoreKit.Message.messages {
                    if message.reason != .winBackOffer {
                        // Ask the system to display messages now.
                        try? displayStoreMessage(message)
                    }
}
```
Repository: TypeScript
Issue: Incomplete typecheck when assigning to a mapped object type with remapped keys
Labels: Suggestion,Awaiting More Feedback

### 🔎 Search Terms

typechecker, mapped object type, remapped keys, ts2322

### 🕗 Version & Regression Information

- This is the behavior in every version I tried, and I reviewed the FAQ for entries about mapped types.
  - Tried on `nightly` and every version down to 4.1.5 (first version supporting remapped keys)

### ⏯ Playground Link

https://www.typescriptlang.org/play/?#code/C4TwDgpgBAygFgQ0lAvFA3lAZgexwLigGdgAnASwDsBzAbigCMFTDKBXAWwYlPoF9aAKFDJ4SCAFkkqDNjyEA5LhwAmBfSYsoCzWv5CR0KWEgATMcjSYA2gGkoVKAGsIIHFliJkCIp-HG7AF1AwgsIIKgBQUEsNkoAY2ByHEooDiQANQQAGzYIAB57CAAPYAhKU18XNw8wgD4ACkEoFudXQlsAGmbWoi8IUP7u1rSkM0JjMzDh1vSwQf8kboBKDB6W+JSSUZMIU1tXGTnrasChEc3KbYA3HLyZPvET1zP1nbNrObMDkECZW9yECEfCAA

### 💻 Code

```ts
type Shape = { foo: string; bar: number; };
type ShapeMap = { foo: 'foo2'; bar: 'bar2'; };
type MappedShape = { [K in keyof Shape as ShapeMap[K]]: Shape[K] };

function mapValue<K extends keyof Shape>(
    key: K,
    shape: Shape,
    mapped: MappedShape,
    map: ShapeMap,
) {
    const mappedKey = map[key];
    const value = shape[key];
    mapped[mappedKey] = value; // <-- Not allowed to assign `value` here
}
```


### 🙁 Actual behavior

The error says
```
Type 'Shape[K]' is not assignable to type 'MappedShape[ShapeMap[K]]'.
  Type 'Shape' is missing the following properties from type 'MappedShape': foo2, bar2
```

The second line is correct, `Shape` is different from `MappedShape` since they don't have any property names in common (which is the idea 🙂). That incompatibility is not relevant when it's the value in `Shape[K]` that should be assignable to `MappedShape[ShapeMap[K]]`.

To an uninitiated eye it looks like the typechecking either ends too early or too late since it compares the wrong types when trying to do the assignment. That's just a guess that might be incorrect so take that with all the salt you want 👍

### 🙂 Expected behavior

 Assigning `Shape[K]` to `MappedShape[ShapeMap[K]]` should be allowed since they are the same types when resolved.

### Additional information about the issue

If changing the code to always take `foo` as the key ([Playground](https://www.typescriptlang.org/play/?#code/C4TwDgpgBAygFgQ0lAvFA3lAZgexwLigGdgAnASwDsBzAbigCMFTDKBXAWwYlPoF9aAKFDJ4SCAFkkqDNjyEA5LhwAmBfSYsoCzWv5CR0KWEgATMcjSYA2gGkoVKAGsIIHFliJkCIp-HG7AF1AwgsIIKgBQUEsNkoAY2ByHEooDiQANQQAGzYIAApBKGLnV0VlBQAaIpKiLwhQ+uqStKQzQmMzMOaS9LBG-yRqgEoMGuL4lJJWkwhTW1cZPusXEEChFsnKaYA3HLyZOvEV13XxmbNrPrMFtZk93IghPiA)) it works correctly:

```ts
type Shape = { foo: string; bar: number; };
type ShapeMap = { foo: 'foo2'; bar: 'bar2'; };
type MappedShape = { [K in keyof Shape as ShapeMap[K]]: Shape[K] };

function mapValue(
    key: 'foo',
    shape: Shape,
    mapped: MappedShape,
    map: ShapeMap,
) {
    const mappedKey = map[key];
    const value = shape[key];
    mapped[mappedKey] = value; // No type error
}
```
Repository: bitcoin
Issue: depends: llvm-ranlib (etc): "No such file or directory" on Intel macOS 15.0
Labels: macOS,Build system

Tried on Intel macOS 15.0 (Xcode 16.0) and 13.7 (Xcode 15.2):

```
$ cd depends
$ make
/bin/sh: command -v llvm-ranlib: No such file or directory
/bin/sh: command -v llvm-strip: No such file or directory
/bin/sh: command -v llvm-nm: No such file or directory
/bin/sh: command -v llvm-objdump: No such file or directory
/bin/sh: command -v dsymutil: No such file or directory
Fetching libevent-2.1.12-stable.tar.gz from ...
```

It does seem to finish building dependencies, but I haven't tested if they actually work.

I do have `/usr/bin/{ranlib,strip,nm,objdump,dsymutil}`.
Repository: vscode
Issue: SCM Graph - Date ordering
Labels: feature-request,scm

<!-- ⚠️⚠️ Do Not Delete This! feature_request_template ⚠️⚠️ -->
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
<!-- Please search existing issues to avoid creating duplicates. -->

<!-- Describe the feature you'd like. -->

The new Source Control Graph is cool; I like it a lot. However, could we at least have the option to have commits in strict date order? When I'm working on bringing an older branch up to date with changes that have been merged to the main branch, it feels weird (to me anyway, as someone using a merge-based workflow pattern) for all the older commits on the current branch to be show ahead of the newer changes on the other branch. I don't mind if this isn't the default view as long as I can get it somehow.

This would also mean that this particular view wouldn't change much when switching branches.

Thanks!

----

I couldn't find anything on the topic in online documentation, but that might have been because there's been extensions that provide history viewing functionality that are making searches difficult. I also couldn't identify any existing issues on this topic.
Repository: storybook
Issue: [Bug]: In Chrome, scrolling in Preview iframe stops working after resizing iframe by dragging divider
Labels: bug,needs triage

### Describe the bug

In Chrome, I lose the ability to scroll inside the Preview iframe after dragging the divider between the Preview iframe and the Sidebar on the left.

Below is a video "demonstrating" the problem. At the end, I attempt and fail to scroll vertically inside the Preview iframe, though in the video you can't tell that that's what I'm trying to do.


https://github.com/user-attachments/assets/218c7d6a-ccd9-4ec3-aa3d-c7f662227467



### Reproduction link

https://stackblitz.com/github/storybookjs/sandboxes/tree/next/nextjs/default-ts/after-storybook

### Reproduction steps

1. Open Chrome. I'm using Chrome version 128.0.6613.120 (Official Build) (arm64), and my operating system is macOS 13.5.2.
2. Go to https://stackblitz.com/github/storybookjs/sandboxes/tree/next/nextjs/default-ts/after-storybook
3. In Storybook, navigate to a "Page" story (just so that the content in the Preview iframe is long enough for vertical scrolling).
4. Click inside the Preview iframe; successfully scroll vertically.
5. Resize the Preview iframe by dragging the divider between the Preview iframe and the Sidebar on the left.
6. Attempt to scroll vertically inside the Preview iframe.

### System

```bash
Storybook Environment Info:

  System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.20.3 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 10.2.3 - /usr/local/bin/npm <----- active
    pnpm: 8.15.6 - /usr/local/bin/pnpm
  npmPackages:
    @storybook/addon-essentials: ^8.4.0-alpha.1 => 8.4.0-alpha.1 
    @storybook/addon-interactions: ^8.4.0-alpha.1 => 8.4.0-alpha.1 
    @storybook/addon-onboarding: ^8.4.0-alpha.1 => 8.4.0-alpha.1 
    @storybook/blocks: ^8.4.0-alpha.1 => 8.4.0-alpha.1 
    @storybook/nextjs: ^8.4.0-alpha.1 => 8.4.0-alpha.1 
    @storybook/react: ^8.4.0-alpha.1 => 8.4.0-alpha.1 
    @storybook/test: ^8.4.0-alpha.1 => 8.4.0-alpha.1 
    storybook: ^8.4.0-alpha.1 => 8.4.0-alpha.1
```


### Additional context

This seems very similar to some old issues that were resolved:

- https://github.com/storybookjs/storybook/issues/1779
- https://github.com/storybookjs/storybook/issues/2482
- https://github.com/storybookjs/storybook/issues/17202
Repository: go
Issue: x/pkgsite: Source links for git.glasklar.is
Labels: pkgsite

I would like to add source links for modules hosted on git.glasklar.is.  Following the instructions in https://github.com/golang/go/issues/40477, I created a CL in pkgsite: https://go-review.googlesource.com/c/pkgsite/+/609535

(Sorry for filling a new issue. The instructions say to just add a comment in the original thread but that github issue is locked…)
Repository: go
Issue: proposal: cmd/go: permit C files when not using cgo or SWIG
Labels: Proposal

### Proposal Details

## Background

The Go compiler doesn't allow to have C, C++, Objectice-C, and Fortran files in a package unless cgo or SWIG are used. This means that if a Go package contains any of these files, then `CGO_ENABLED` can't be 0 and there should be at least one Go file with the `import "C"` statement.

This restriction was added in Go 1.4 in https://github.com/golang/go/commit/a0785a53add4253db84349d58abbe2ba8be130d9. My understanding is that its intention was to prohibit people from using the `6c` compiler and guide them to cgo instead.

## Proposal

Now that `6c` nobody even knows what is is the `6c` compiler, I propose to lift the aforementioned restriction.

## Motivation

The main motivation here is to allow C files not used in cgo to be copied into the Go vendor directory. Note that only directories with at least one Go file are eligible to be copied to the vendor directory. This conflicts with the requirement of using having to use cgo when Go and C files coexist in the same directory, as cgo might not be desired to avoid compiling unnecessary files or even having runtime dependencies (i.e. C header) available at build time.

There is at least one real project that needs this: [microsoft/retina](https://github.com/microsoft/retina) has some Go packages that only exist to hold C files not used with cgo, but that are compiled on-the-fly as `bpf` objects so that the builder image doesn't require all the BPF machinery installed and to facilitate cross-compilations. These object will then be loaded and attached to the Linux kernel.

Currently microsoft/retina builds with `CGO_ENABLED=0` to workaround the Go compiler restrictions, but in the near future cgo will have to be enabled due to other requirements, so this workaround won't work anymore.
Repository: pytorch
Issue: Onnx scaled_dot_product_attention does not allow to export model
Labels: triaged,oncall: pt2,export-triaged,oncall: export

### 🐛 Describe the bug

The model is converted with dynamo and opset 18, torch nightly, and most recent onnx and onnxscript, 
# PyTorch ONNX Conversion Report

```
✅ Obtain model graph with `torch.export.export`
⚪ Obtain model graph with `torch.export.export(..., strict=False)`
⚪ Obtain model graph with `torch.jit.trace`
❌ Translate the graph into ONNX
⚪ Run `onnx.checker` on the ONNX model
⚪ Execute the model with ONNX Runtime
⚪ Validate model output accuracy
```
```
RuntimeError: Internal error: pybind11::error_already_set called while Python error indicator not set.

While executing %scaled_dot_product_attention : [num_users=2] = call_function[target=torch.ops.aten.scaled_dot_product_attention.default](args = (%expand, %expand_1, %expand_2), kwargs = {})
Original traceback:
  File "src/models/Gatr_pf_e_tau_onnx2.py", line 162, in forward
    embedded_outputs, _ = self.gatr(
  File "PID_GNN/src/gatr_v111/nets/gatr.py", line 158, in forward
    h_mv, h_s = block(
  File "PID_GNN/src/gatr_v111/layers/gatr_block.py", line 126, in forward
    h_mv, h_s = self.attention(
  File "/gatr_v111/layers/attention/self_attention.py", line 135, in forward
    h_mv, h_s = self.attention(q_mv, k_mv, v_mv, q_s, k_s, v_s, attention_mask=None)
  File "/afs/cern.ch/work/m/mgarciam/private/PID_GNN/src/gatr_v111/layers/attention/attention.py", line 83, in forward
    h_mv, h_s = self.geometric_attention(
  File "src/gatr_v111/primitives/attention.py", line 522, in forward
    v_out = scaled_dot_product_attention(q, k, v) # attn_mask=attn_mask)

```

the markdown is:
[onnx_export_2024-09-26_15-53-37-082571_conversion.md](https://github.com/user-attachments/files/17149851/onnx_export_2024-09-26_15-53-37-082571_conversion.md)

### Versions

onnxscript 0.1.0.dev20240925
torch-nigthly
onnx

cc @ezyang @chauhang @penguinwu @avikchaudhuri @gmagogsfm @zhxchen17 @tugsbayasgalan @angelayi @suo @ydwu4
Repository: next.js
Issue: NextResponse.rewrite does not override origin server headers
Labels: bug,Middleware

### Link to the code that reproduces this issue

https://github.com/Gebov/nextjs-rewrite-headers

### To Reproduce

1. Start the app
2. Request /rewrite
3. Inspect the response headers
4. Verify that the Cache-Control header is not overriden
5. Verify that the custom header is overriden

### Current vs. Expected behavior

Currently the app is configured to proxy requests to nextjs.org with the URL /rewrite.

I expect all the headers specified in the NextResponse.headers to be overriden. In particular the Cache-Control header.
Currently it is not overriden. Custom headers work.

### Provide environment information

```bash
Operating System:
  Platform: win32
  Arch: x64
  Version: Windows 11 Enterprise
  Available memory (MB): 32488
  Available CPU cores: 16
Binaries:
  Node: 20.15.0
  npm: N/A
  Yarn: N/A
  pnpm: N/A
Relevant Packages:
  next: 14.2.13 // Latest available version is detected (14.2.13).
  eslint-config-next: N/A
  react: 18.3.1
  react-dom: 18.3.1
  typescript: N/A
Next.js Config:
  output: N/A
```


### Which area(s) are affected? (Select all that apply)

Middleware

### Which stage(s) are affected? (Select all that apply)

next dev (local), next start (local)

### Additional context

_No response_
Repository: godot
Issue: LLVM builds selects different version for tools 
Labels: topic:buildsystem,needs testing

### Tested versions

master

### System information

Debian testing; SCons 4.5.2; Python 3.12.6

### Issue description

First of all I am not sure if it is bug of godot or rather a bug of SCons but anyway users (me) are affected

I have installed several llvm versions: 15,16,18. If I use llvm without lto everything is fine but if I try to enable lto I get these strange errors:

```
Ranlib Library modules/libmodule_csg.linuxbsd.template_release.x86_64.llvm.a ...
bfd plugin: LLVM gold plugin has failed to create LTO module: Unknown attribute kind (86) (Producer: 'LLVM16.0.6' Reader: 'LLVM 15.0.7')
bfd plugin: LLVM gold plugin has failed to create LTO module: Unknown attribute kind (86) (Producer: 'LLVM16.0.6' Reader: 'LLVM 15.0.7')
bfd plugin: LLVM gold plugin has failed to create LTO module: Unknown attribute kind (86) (Producer: 'LLVM16.0.6' Reader: 'LLVM 15.0.7')
```

It selects one version for creating (what it creates `*.o` files?) and uses another version to link a library from them. It is weird especially in my case because it uses a lower version which can't understand format of higher version. If I remove `llvm-15*` packages everything starts to work correctly but emscripten depends on `llvm-15` (at least for now in debian testing). It also a bit strange that it uses 16 because I also installed 18. 

### Steps to reproduce

N/A

### Minimal reproduction project (MRP)

N/A
Repository: vscode
Issue: AgentCompletions makes false assumptions
Labels: debt

The `filterText` tricks there are a bit wonky. 

https://github.com/microsoft/vscode/blob/a3c638174671449cfab4b4e7542d4121575e8dfa/src/vs/workbench/contrib/chat/browser/contrib/chatInputCompletions.ts#L215-L223


If a provider wants to demote an item in reference another of its items it can just place them like so in the array of completion it returns. The ranking goes by score and in case of equal score the initial, provider defined, order is used a tiebreaker (assuming `sortText` isn't used, which would also be a way to achieve this)
Repository: tauri
Issue: [bug] [macOS] Issue with loading fonts in expo RN app with Tauri on MacOS
Labels: type: bug,platform: macOS,status: needs triage

### Describe the bug

We have an Expo React Native app that we run using Tauri. It works fine on Windows, but there's a strange issue on macOS. When running the app on macOS through Tauri, the fonts fail to load correctly (although the app works fine when run in a browser on macOS, both in Safari and Chrome).

The issue is that the fonts don't load as expected. More specifically, they seem to load (everything is displayed correctly), but `useFonts` returns `Error: 6000ms timeout exceeded`.

```ts
  const [fontsLoaded, err] = useFonts({
    'Inter-Black': require('@/assets/fonts/inter/Inter-Black.otf'),
    'Inter-Regular': require('@/assets/fonts/inter/Inter-Regular.otf'),
    'Inter-Medium': require('@/assets/fonts/inter/Inter-Medium.otf'),
    'Inter-Bold': require('@/assets/fonts/inter/Inter-Bold.otf'),
    'Inter-SemiBold': require('@/assets/fonts/inter/Inter-SemiBold.otf'),
  });
```

Under the hood, `useFonts` (from **expo-font**) uses `document.fonts.load(...)`. When I tried calling this function directly, I encountered the same issue: the callback was only triggered once (should be called 5 times). However, when I used `document.fonts.ready`, it indicated that all fonts were loaded.

As a workaround, we now use a combination of `useFonts` and `document.fonts.ready`.

Interestingly, if I only load one font, the error doesn’t occur. I also tried increasing the timeout to 60 seconds, but the same error persisted.


### Reproduction

_No response_

### Expected behavior

No error while loading fonts.

### Full `tauri info` output

```text
[✔] Environment
    - OS: Mac OS 14.6.1 X64
    ✔ Xcode Command Line Tools: installed
    ✔ rustc: 1.80.1 (3f5fd8dd4 2024-08-06)
    ✔ cargo: 1.80.1 (376290515 2024-07-16)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-aarch64-apple-darwin (default)
    - node: 20.9.0
    - yarn: 1.22.19
    - npm: 10.1.0

[-] Packages
    - tauri [RUST]: 1.8.0
    - tauri-build [RUST]: 1.5.5
    - wry [RUST]: 0.24.11
    - tao [RUST]: 0.16.10
    - @tauri-apps/api [NPM]: 1.6.0
    - @tauri-apps/cli [NPM]: 1.6.2

[-] App
    - build-type: bundle
    - CSP: unset
    - distDir: ../dist
    - devPath: http://localhost:8081/
    - framework: React
```


### Stack trace

_No response_

### Additional context

_No response_
Repository: godot
Issue: Shaders get corrupted after power outage
Labels: topic:editor,needs testing

### Tested versions

4.3 stable

### System information

Godot v4.3.stable - Windows 10.0.19045 - GLES3 (Compatibility) - NVIDIA GeForce GT 1030 (NVIDIA; 32.0.15.6109) - Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz (8 Threads)

### Issue description

I was working on my project, I hit save and 3 milliseconds later the power went off

Nothing was corrupted except the unique .gdshader file I have in the entire project

The thing is, I was working on scripts and scenes and that shader has not been touched since the dinosaurs

I didn't even have it opened on Shader Editor, so there has to be a bug somewhere

### Steps to reproduce

1. Have at least one .gdshader file in your project
2. Hit save and disconnect your PC from power

### Minimal reproduction project (MRP)

You can use this project:
https://godotengine.org/asset-library/asset/2732