helloadhavan/github_issues huggingface dataset:
Repository: ggml-org/llama.cpp
Pull request: [SYCL] fix flash_attention crash for Qwen3-Coder

The code branches can't cover the case of Qwen3-Coder-Next-UD-IQ1_M.gguf.
Add code as final handler.
Verified the LLM and all related UT cases are passed. 

Changed files:
filename: ggml/src/ggml-sycl/fattn-tile.hpp
patch: @@ -1252,6 +1252,16 @@ static void launch_fattn_tile_switch_ncols1(ggml_backend_sycl_context & ctx, ggm
         return;
     }
 
+    {
+        constexpr int cols_per_block = ncols2*2;
+        const int nwarps    = ggml_sycl_fattn_tile_get_nthreads (DKQ, DV, cols_per_block, cc) / warp_size;
+        const int nbatch_fa = ggml_sycl_fattn_tile_get_nbatch_fa(DKQ, DV, cols_per_block, cc);
+        launch_fattn<DV, cols_per_block/ncols2, ncols2,
+            flash_attn_tile<DKQ, DV, cols_per_block / ncols2, ncols2, use_logit_softcap, warp_size>, warp_size>
+            (ctx, dst, nwarps, nbytes_shared, nbatch_fa, true, true, false);
+        return;
+    }
+
     GGML_ABORT("fatal error");
 }
Repository: ollama/ollama
Pull request: AMD: block running on unsupported gfx900/gfx906

With the recent GGML bump, we no longer can support AMD gfx900/gfx906, however the engine discovery code currently requires rocblas to reject the GPU to correctly fall back to CPU.  This approach works.

With trace debugging enabled, running on a system with a dual setup consisting of gfx1030 and gfx906 it now correctly rejects the gfx906 instead of crashing during inference
```
ggml_cuda_init: initializing rocBLAS on device 0

rocBLAS error: Cannot read /home/daniel/tmp/lib/ollama/rocm/rocblas/library/TensileLibrary.dat: Illegal seek for GPU arch : gfx906
 List of available TensileLibrary Files :
...
time=2025-10-02T23:39:17.093Z level=TRACE source=runner.go:163 msg="removing unsupported or overlapping GPU combination" libDir=/home/daniel/tmp/lib/ollama/rocm description="AMD Radeon Graphics" compute=gfx906 pci_id=0d:00.0
...
time=2025-10-02T23:39:17.093Z level=INFO source=types.go:111 msg="inference compute" id=GPU-9abb57639fa80c50 library=ROCm compute=gfx1030 name=ROCm0 description="AMD Radeon Graphics" libdirs=ollama,rocm driver=60342.13 pci_id=06:00.0 type=discrete total="16.0 GiB" available="16.0 GiB"
```

Changed files:
filename: .github/workflows/release.yaml
patch: @@ -163,6 +163,7 @@ jobs:
           cmake --preset "${{ matrix.preset }}" ${{ matrix.flags }} -DOLLAMA_RUNNER_DIR="${{ matrix.runner_dir }}"
           cmake --build --parallel --preset "${{ matrix.preset }}"
           cmake --install build --component "${{ startsWith(matrix.preset, 'CUDA ') && 'CUDA' || startsWith(matrix.preset, 'ROCm ') && 'HIP' || 'CPU' }}" --strip --parallel 8
+          rm -f dist\lib\ollama\rocm\rocblas\library\*gfx906*
         env:
           CMAKE_GENERATOR: Ninja
       - uses: actions/upload-artifact@v4

filename: Dockerfile
patch: @@ -80,6 +80,7 @@ RUN --mount=type=cache,target=/root/.ccache \
     cmake --preset 'ROCm 6' -DOLLAMA_RUNNER_DIR="rocm" \
         && cmake --build --parallel ${PARALLEL} --preset 'ROCm 6' \
         && cmake --install build --component HIP --strip --parallel ${PARALLEL}
+RUN rm -f dist/lib/ollama/rocm/rocblas/library/*gfx90[06]*
 
 FROM --platform=linux/arm64 nvcr.io/nvidia/l4t-jetpack:${JETPACK5VERSION} AS jetpack-5
 ARG CMAKEVERSION

filename: scripts/build_windows.ps1
patch: @@ -179,6 +179,7 @@ function buildROCm() {
             if ($LASTEXITCODE -ne 0) { exit($LASTEXITCODE)}
             & cmake --install build --component "HIP" --strip
             if ($LASTEXITCODE -ne 0) { exit($LASTEXITCODE)}
+            rm -f $script:DIST_DIR\lib\ollama\rocm\rocblas\library\*gfx906*
         }
     }
 }
Repository: electron/electron
Pull request: fix: `screen.getCursorScreenPoint()` crash on Wayland

Backport of #50092

See that PR for details.


Notes: Fixed an issue where `screen.getCursorScreenPoint()` crashed on Wayland when it was called before a `BrowserWindow` had been created

Changed files:
filename: docs/api/screen.md
patch: @@ -110,6 +110,8 @@ Returns [`Point`](structures/point.md)
 
 The current absolute position of the mouse pointer.
 
+Not supported on Wayland (Linux).
+
 > [!NOTE]
 > The return value is a DIP point, not a screen physical point.
 

filename: shell/browser/api/electron_api_screen.cc
patch: @@ -32,10 +32,6 @@
 #include "shell/browser/linux/x11_util.h"
 #endif
 
-#if defined(USE_OZONE)
-#include "ui/ozone/public/ozone_platform.h"
-#endif
-
 namespace electron::api {
 
 gin::DeprecatedWrapperInfo Screen::kWrapperInfo = {gin::kEmbedderNativeGin};
@@ -81,16 +77,9 @@ Screen::~Screen() {
 }
 
 gfx::Point Screen::GetCursorScreenPoint(v8::Isolate* isolate) {
-#if defined(USE_OZONE)
-  // Wayland will crash unless a window is created prior to calling
-  // GetCursorScreenPoint.
-  if (!ui::OzonePlatform::IsInitialized()) {
-    gin_helper::ErrorThrower thrower(isolate);
-    thrower.ThrowError(
-        "screen.getCursorScreenPoint() cannot be called before a window has "
-        "been created.");
+#if BUILDFLAG(IS_LINUX)
+  if (x11_util::IsWayland())
     return {};
-  }
 #endif
   return screen_->GetCursorScreenPoint();
 }

filename: shell/browser/linux/x11_util.cc
patch: @@ -4,13 +4,27 @@
 
 #include "shell/browser/linux/x11_util.h"
 
+#include "build/build_config.h"
 #include "ui/ozone/platform_selection.h"  // nogncheck
 
 namespace x11_util {
 
 bool IsX11() {
-  static const bool is_x11 = ui::GetOzonePlatformId() == ui::kPlatformX11;
-  return is_x11;
+#if BUILDFLAG(IS_LINUX)
+  static const bool is = ui::GetOzonePlatformId() == ui::kPlatformX11;
+  return is;
+#else
+  return false;
+#endif
+}
+
+bool IsWayland() {
+#if BUILDFLAG(IS_LINUX)
+  static const bool is = ui::GetOzonePlatformId() == ui::kPlatformWayland;
+  return is;
+#else
+  return false;
+#endif
 }
 
 }  // namespace x11_util

filename: shell/browser/linux/x11_util.h
patch: @@ -7,7 +7,8 @@
 
 namespace x11_util {
 
-bool IsX11();
+[[nodiscard]] bool IsX11();
+[[nodiscard]] bool IsWayland();
 
 }  // namespace x11_util
Repository: facebook/react
Pull request: [DevTools] Defer Suspense tab to 19.3.0-canary


Changed files:
filename: packages/react-devtools-shared/src/backend/agent.js
patch: @@ -739,7 +739,7 @@ export default class Agent extends EventEmitter<{
     if (renderer !== null) {
       const devRenderer = renderer.bundleType === 1;
       const enableSuspenseTab =
-        devRenderer && gte(renderer.version, '19.2.0-canary');
+        devRenderer && gte(renderer.version, '19.3.0-canary');
       if (enableSuspenseTab) {
         this._bridge.send('enableSuspenseTab');
       }
Repository: rust-lang/rust
Pull request: Make `par_slice` consistent with single-threaded execution

<!-- homu-ignore:start -->
<!-- homu-ignore:end -->

rust-lang/rust#152375 removed this consistency by switching from order preserving join to scope, which does not preserve order as stated in `par_fns` as well. This also makes `par_slice` behavior consistent with `par_fns`.

Changed files:
filename: compiler/rustc_data_structures/src/sync/parallel.rs
patch: @@ -129,12 +129,28 @@ fn par_slice<I: DynSend>(
     for_each: impl Fn(&mut I) + DynSync + DynSend,
     proof: FromDyn<()>,
 ) {
+    match items {
+        [] => return,
+        [item] => {
+            guard.run(|| for_each(item));
+            return;
+        }
+        _ => (),
+    }
+
     let for_each = proof.derive(for_each);
     let mut items = for_each.derive(items);
     rustc_thread_pool::scope(|s| {
         let proof = items.derive(());
-        let group_size = std::cmp::max(items.len() / 128, 1);
-        for group in items.chunks_mut(group_size) {
+
+        const MAX_GROUP_COUNT: usize = 128;
+        let group_size = items.len().div_ceil(MAX_GROUP_COUNT);
+        let groups = items.chunks_mut(group_size);
+
+        // Reverse the order of the later functions since Rayon executes them in reverse
+        // order when using a single thread. This ensures the execution order matches
+        // that of a single threaded rustc.
+        for group in groups.rev() {
             let group = proof.derive(group);
             s.spawn(|_| {
                 let mut group = group;
Repository: nodejs/node
Pull request: doc: fixed typo in managing-social-media-acounts.md file

1) doc: fixed typo in managing-social-media-acounts.md file which had a missing **_c_** in **_acounts_** word
2) fixed typo in LinkedIn

Changed files:
filename: doc/contributing/managing-social-media-accounts.md
patch: @@ -41,7 +41,7 @@ delegated to the Foundation Staff.
 
 No project members have access to the Facebook account.
 
-## Linkedin
+## LinkedIn
 
 Day to day management of the LinkedIn account has been
 delegated to the Foundation Staff.
Repository: facebook/react
Pull request: Fix DevTools fixture crash due to usage of renamed APIs

Now uses `useEffectEvent` or `experimental_useEffectEvent`. Whichever is available so that you can test the fixture with FB or older builds.

Changed files:
filename: packages/react-devtools-shell/src/app/InspectableElements/UseEffectEvent.js
patch: @@ -1,6 +1,8 @@
 import * as React from 'react';
 
-const {experimental_useEffectEvent, useState, useEffect} = React;
+const {useState, useEffect} = React;
+const useEffectEvent =
+  React.useEffectEvent || React.experimental_useEffectEvent;
 
 export default function UseEffectEvent(): React.Node {
   return (
@@ -12,14 +14,14 @@ export default function UseEffectEvent(): React.Node {
 }
 
 function SingleHookCase() {
-  const onClick = experimental_useEffectEvent(() => {});
+  const onClick = useEffectEvent(() => {});
 
   return <div onClick={onClick} />;
 }
 
 function useCustomHook() {
   const [state, setState] = useState();
-  const onClick = experimental_useEffectEvent(() => {});
+  const onClick = useEffectEvent(() => {});
   useEffect(() => {});
 
   return [state, setState, onClick];
Repository: ggml-org/llama.cpp
Pull request: Hexagon: Slight optimization for argosrt output init

Hexagon: Slight optimization for argosrt output init

Changed files:
filename: ggml/src/ggml-hexagon/htp/argsort-ops.c
patch: @@ -164,6 +164,12 @@ static void quicksort_values_indices_desc(float * values, int32_t * indices, int
     if (i < right) quicksort_values_indices_desc(values, indices, i, right);
 }
 
+// LUT for ramp initialization of argsort output (first 32 members)
+int32_t argosrt_ramp_lut[32] __attribute__((aligned(VLEN))) = {
+    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+    16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31
+};
+
 static void htp_argsort_f32(unsigned int n, unsigned int i, void * data) {
     struct htp_argsort_context * actx = (struct htp_argsort_context *)data;
     struct htp_ops_context * octx = actx->octx;
@@ -205,8 +211,12 @@ static void htp_argsort_f32(unsigned int n, unsigned int i, void * data) {
     // Padded to 128 bytes.
 
     size_t values_size = hex_round_up(ne00 * sizeof(float), 128);
+    size_t num_vec_ind_values = hmx_ceil_div(ne00, VLEN/(sizeof(int32_t)));
     float * values_buf = (float *) spad;
     int32_t * indices_buf = (int32_t *) (spad + values_size);
+    HVX_Vector * indices_buf_vec = (HVX_Vector *) (spad + values_size);
+    const HVX_Vector ind_init_vec = *(HVX_Vector *)argosrt_ramp_lut;
+    const HVX_Vector ind_diff_vec = Q6_V_vsplat_R(32);
 
     for (uint32_t r = start_row; r < end_row; r++) {
         uint32_t src_offset = r * nb01;
@@ -218,9 +228,11 @@ static void htp_argsort_f32(unsigned int n, unsigned int i, void * data) {
         hex_l2fetch(src_ptr, ne00 * sizeof(float), ne00 * sizeof(float), 1);
         hvx_copy_f32_au((uint8_t*)values_buf, src_ptr, ne00);
 
-        // Initialize indices
-        for (uint32_t j = 0; j < ne00; j++) {
-            indices_buf[j] = j;
+        // Initialize indices - Start with values 0..31, add 32 for additional vec iterations
+        HVX_Vector curr_ind_vec = ind_init_vec;
+        for (uint32_t j_vec = 0; j_vec < num_vec_ind_values; j_vec++) {
+            indices_buf_vec[j_vec] = curr_ind_vec;
+            curr_ind_vec = Q6_Vw_vadd_VwVw(curr_ind_vec, ind_diff_vec);
         }
 
         // Sort values and mirror swaps to indices
Repository: huggingface/transformers
Pull request: Fix return value - fixes #44238

# What does this PR do?

Makes sure `find_bad_commit` always return the result `dict`

Changed files:
filename: utils/check_bad_commit.py
patch: @@ -231,7 +231,8 @@ def find_bad_commit(target_test, start_commit, end_commit):
     if "error: bisect run failed" in bash_result.stderr:
         error_msg = f"Error when running git bisect:\nbash error: {bash_result.stderr}\nbash output:\n{bash_result.stdout}\nset `bad_commit` to `None`."
         print(error_msg)
-        return None, "git bisect failed"
+        result["status"] = "git bisect failed"
+        return result
 
     pattern = r"(.+) is the first bad commit"
     commits = re.findall(pattern, bash_result.stdout)
Repository: nodejs/node
Pull request: doc: reserve NMV 145 for Electron 41

<!--
Before submitting a pull request, please read:

- the CONTRIBUTING guide at https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md
- the commit message formatting guidelines at
  https://github.com/nodejs/node/blob/HEAD/doc/contributing/pull-requests.md#commit-message-guidelines

For code changes:
1. Include tests for any bug fixes or new features.
2. Update documentation if relevant.
3. Ensure that `make -j4 test` (UNIX), or `vcbuild test` (Windows) passes.

If you believe this PR should be highlighted in the Node.js CHANGELOG
please add the `notable-change` label.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.
-->

Reserves NMV 145 for Electron 41. Thank you! 🙂

[Relevant Electron task.](https://github.com/orgs/electron/projects/119/views/3?pane=issue&itemId=136092826)

Changed files:
filename: doc/abi_version_registry.json
patch: @@ -1,5 +1,6 @@
 {
   "NODE_MODULE_VERSION": [
+    { "modules": 145,"runtime": "electron", "variant": "electron",             "versions": "41" },
     { "modules": 144,"runtime": "node",     "variant": "v8_14.3",              "versions": "26.0.0-pre" },
     { "modules": 143,"runtime": "electron", "variant": "electron",             "versions": "40" },
     { "modules": 142,"runtime": "node",     "variant": "v8_14.2",              "versions": "26.0.0-pre" },
Repository: electron/electron
Pull request: fix: strictly validate sender for internal IPC reply channels

Backport of #50118

See that PR for details.


Notes: none

Changed files:
filename: lib/browser/ipc-main-internal-utils.ts
patch: @@ -19,8 +19,8 @@ export function invokeInWebContents<T> (sender: Electron.WebContents, command: s
     const requestId = ++nextId;
     const channel = `${command}_RESPONSE_${requestId}`;
     ipcMainInternal.on(channel, function handler (event, error: Error, result: any) {
-      if (event.type === 'frame' && event.sender !== sender) {
-        console.error(`Reply to ${command} sent by unexpected WebContents (${event.sender.id})`);
+      if (event.type !== 'frame' || event.sender !== sender) {
+        console.error(`Reply to ${command} sent by unexpected sender`);
         return;
       }
 
@@ -43,8 +43,8 @@ export function invokeInWebFrameMain<T> (sender: Electron.WebFrameMain, command:
     const channel = `${command}_RESPONSE_${requestId}`;
     const frameTreeNodeId = sender.frameTreeNodeId;
     ipcMainInternal.on(channel, function handler (event, error: Error, result: any) {
-      if (event.type === 'frame' && event.frameTreeNodeId !== frameTreeNodeId) {
-        console.error(`Reply to ${command} sent by unexpected WebFrameMain (${event.frameTreeNodeId})`);
+      if (event.type !== 'frame' || event.frameTreeNodeId !== frameTreeNodeId) {
+        console.error(`Reply to ${command} sent by unexpected sender`);
         return;
       }
Repository: facebook/react
Pull request: [Fiber] Clean up ViewTransition when it fails to start

The View Transition docs were unclear about this but apparently the `finished` promise never settles if the animation never started. So if there's an error that rejects the `ready` promise, we'll never run the clean up which can cause it to stall.

Fixes #34662.

However, ultimately that is caused by Chrome stalling our default `onDefaultTransitionIndicator` but it should be unblocked after 10 seconds, not a minute.

Changed files:
filename: packages/react-dom-bindings/src/client/ReactFiberConfigDOM.js
patch: @@ -2279,6 +2279,11 @@ export function startViewTransition(
       spawnedWorkCallback();
     };
     const handleError = (error: mixed) => {
+      // $FlowFixMe[prop-missing]
+      if (ownerDocument.__reactViewTransition === transition) {
+        // $FlowFixMe[prop-missing]
+        ownerDocument.__reactViewTransition = null;
+      }
       try {
         error = customizeViewTransitionError(error, false);
         if (error !== null) {
@@ -2293,6 +2298,9 @@ export function startViewTransition(
         layoutCallback();
         // Skip afterMutationCallback() since we're not animating.
         spawnedWorkCallback();
+        if (enableProfilerTimer) {
+          finishedAnimation();
+        }
       }
     };
     transition.ready.then(readyCallback, handleError);
@@ -2699,6 +2707,11 @@ export function startGestureTransition(
         ? () => requestAnimationFrame(readyCallback)
         : readyCallback;
     const handleError = (error: mixed) => {
+      // $FlowFixMe[prop-missing]
+      if (ownerDocument.__reactViewTransition === transition) {
+        // $FlowFixMe[prop-missing]
+        ownerDocument.__reactViewTransition = null;
+      }
       try {
         error = customizeViewTransitionError(error, true);
         if (error !== null) {
@@ -2713,6 +2726,9 @@ export function startGestureTransition(
         // Skip readyCallback() and go straight to animateCallbck() since we're not animating.
         // animateCallback() is still required to restore states.
         animateCallback();
+        if (enableProfilerTimer) {
+          finishedAnimation();
+        }
       }
     };
     transition.ready.then(readyForAnimations, handleError);
Repository: ollama/ollama
Pull request: discover: fix typo


Changed files:
filename: discover/runner.go
patch: @@ -408,7 +408,7 @@ func (r *bootstrapRunner) HasExited() bool {
 
 func bootstrapDevices(ctx context.Context, ollamaLibDirs []string, extraEnvs []string) []ml.DeviceInfo {
 	// TODO DRY out with llm/server.go
-	slog.Debug("spawing runner with", "OLLAMA_LIBRARY_PATH", ollamaLibDirs, "extra_envs", extraEnvs)
+	slog.Debug("spawning runner with", "OLLAMA_LIBRARY_PATH", ollamaLibDirs, "extra_envs", extraEnvs)
 	start := time.Now()
 	defer func() {
 		slog.Debug("bootstrap discovery took", "duration", time.Since(start), "OLLAMA_LIBRARY_PATH", ollamaLibDirs, "extra_envs", extraEnvs)
Repository: rust-lang/rust
Pull request: Update cargo submodule

14 commits in cbb9bb8bd0fb272b1be0d63a010701ecb3d1d6d3..e84cb639edfea2c42efd563b72a9be0cc5de6523
2026-03-13 14:34:16 +0000 to 2026-03-21 01:27:07 +0000
- Fix symlink_and_directory when running in a long target dir name (rust-lang/cargo#16775)
- cargo clean: Validate that target_dir is not a file  (rust-lang/cargo#16765)
- fix: fetching non-standard git refspecs on non-github repos (rust-lang/cargo#16768)
- Update tar to 0.4.45 (rust-lang/cargo#16771)
- chore: Remove edition_lint_opts from Lint (rust-lang/cargo#16762)
- refactor: split out several smaller changes to prepare for async http (rust-lang/cargo#16763)
- fix(compile): Make build.warnings ignore non-local deps (rust-lang/cargo#16760)
- fix: detect circular publish dependency cycle in workspace publish (rust-lang/cargo#16722)
- refactor(shell): Pull out term integration into `anstyle-progress` (rust-lang/cargo#16757)
- test: reproduce rustfix panic on overlapping suggestions (rust-lang/cargo#16705)
- fix: Avoid panic for package specs with an empty fragment (rust-lang/cargo#16754)
- refactor(registry): avoid dynamic dispatch for Registry trait (rust-lang/cargo#16752)
- refactor(shell): Pull out hyperlink logic into anstyle-hyperlink (rust-lang/cargo#16749)
- refactor(install): Remove dead code (rust-lang/cargo#16718)


Changed files:
filename: src/tools/cargo
patch: @@ -1 +1 @@
-Subproject commit cbb9bb8bd0fb272b1be0d63a010701ecb3d1d6d3
+Subproject commit e84cb639edfea2c42efd563b72a9be0cc5de6523
Repository: ollama/ollama
Pull request: Improve download stability by increasing timeout threshold from 5s to 30s

- Increased the stall detection timeout in downloadChunk from 5 seconds to 30 seconds.
- This prevents premature “part stalled” retries during slow or unstable network connections.
- Improves overall download stability and reliability, especially on slower networks.

Changed files:
filename: server/download.go
patch: @@ -368,7 +368,7 @@ func (b *blobDownload) downloadChunk(ctx context.Context, requestURL *url.URL, w
 				lastUpdated := part.lastUpdated
 				part.lastUpdatedMu.Unlock()
 
-				if !lastUpdated.IsZero() && time.Since(lastUpdated) > 5*time.Second {
+				if !lastUpdated.IsZero() && time.Since(lastUpdated) > 30*time.Second {
 					const msg = "%s part %d stalled; retrying. If this persists, press ctrl-c to exit, then 'ollama pull' to find a faster connection."
 					slog.Info(fmt.Sprintf(msg, b.Digest[7:19], part.N))
 					// reset last updated
Repository: huggingface/transformers
Pull request: fix regression report_to "all"

# What does this PR do?

This PR fixes https://github.com/huggingface/transformers/pull/43806#discussion_r2834269455. We removed `self.report_to == "all"` functionality by mistake. Adding it back ! 

Changed files:
filename: src/transformers/training_args.py
patch: @@ -1515,7 +1515,11 @@ def __post_init__(self):
         if self.greater_is_better is None and self.metric_for_best_model is not None:
             self.greater_is_better = not self.metric_for_best_model.endswith("loss")
 
-        if self.report_to == "none" or self.report_to == ["none"]:
+        if self.report_to == "all" or self.report_to == ["all"]:
+            from .integrations import get_available_reporting_integrations
+
+            self.report_to = get_available_reporting_integrations()
+        elif self.report_to == "none" or self.report_to == ["none"]:
             self.report_to = []
         elif not isinstance(self.report_to, list):
             self.report_to = [self.report_to]