helloadhavan/github_issues huggingface dataset:
Repository: ggml-org/llama.cpp
Pull request: clip: fix nb calculation for qwen3-vl

This may silently fail if `mul_mat` return something other than F32 in the future, so I'm using `ggml_row_size` to be more future-proof.


Changed files:
filename: tools/mtmd/clip.cpp
patch: @@ -987,12 +987,20 @@ struct clip_graph {
                 cur = ggml_mul_mat(ctx0, layer.qkv_w, cur);
                 cur = ggml_add(ctx0, cur, layer.qkv_b);
 
-                ggml_tensor * Qcur = ggml_view_3d(ctx0, cur, d_head, n_head, n_pos, d_head*sizeof(float),
-                    cur->nb[1], 0);
-                ggml_tensor * Kcur = ggml_view_3d(ctx0, cur, d_head, n_head, n_pos, d_head*sizeof(float),
-                    cur->nb[1], n_embd * sizeof(float));
-                ggml_tensor * Vcur = ggml_view_3d(ctx0, cur, d_head, n_head, n_pos, d_head*sizeof(float),
-                    cur->nb[1], 2 * n_embd * sizeof(float));
+                ggml_tensor * Qcur = ggml_view_3d(ctx0, cur, d_head, n_head, n_pos,
+                        /* nb1    */ ggml_row_size(cur->type, d_head),
+                        /* nb2    */ cur->nb[1],
+                        /* offset */ 0);
+
+                ggml_tensor * Kcur = ggml_view_3d(ctx0, cur, d_head, n_head, n_pos,
+                        /* nb1    */ ggml_row_size(cur->type, d_head),
+                        /* nb2    */ cur->nb[1],
+                        /* offset */ ggml_row_size(cur->type, n_embd));
+
+                ggml_tensor * Vcur = ggml_view_3d(ctx0, cur, d_head, n_head, n_pos,
+                        /* nb1    */ ggml_row_size(cur->type, d_head),
+                        /* nb2    */ cur->nb[1],
+                        /* offset */ ggml_row_size(cur->type, 2 * n_embd));
 
                 cb(Qcur, "Qcur", il);
                 cb(Kcur, "Kcur", il);
Repository: denoland/deno
Pull request: fix(ext/node): fix deadline resolution for queued timers

Fixes `test-timers-immediate-queue.js`

Changed files:
filename: Cargo.lock
patch: @@ -1884,9 +1884,9 @@ dependencies = [
 
 [[package]]
 name = "deno_core"
-version = "0.377.0"
+version = "0.380.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38828fa5f4f80e9c098ae38c7a0498454cd2585e2621ba2b78a9f7bd4809946c"
+checksum = "669603e9d217e82488f22f89632831a7bc879f7cae9827037d44f22c27148ba1"
 dependencies = [
  "anyhow",
  "az",
@@ -2625,9 +2625,9 @@ dependencies = [
 
 [[package]]
 name = "deno_ops"
-version = "0.253.0"
+version = "0.256.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80bed6a89fd812d9088ad177aa69679dde6222054ad7b89c5e2d449a51335098"
+checksum = "ca88fda306cb23dc660f4740ca8be45b00ccfb78f09b178772c0b9a8cc49fbb1"
 dependencies = [
  "indexmap 2.9.0",
  "proc-macro2",
@@ -8269,9 +8269,9 @@ dependencies = [
 
 [[package]]
 name = "serde_v8"
-version = "0.286.0"
+version = "0.289.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "975f0a103a7370dffee5b2d4dca75817b3d031fcca863be4a9e6748a79dca811"
+checksum = "781b7703bd6f995cc753c371b8ede9e0b09c0c47b3848d7d1cade89666520a92"
 dependencies = [
  "deno_error",
  "num-bigint",

filename: Cargo.toml
patch: @@ -64,7 +64,7 @@ repository = "https://github.com/denoland/deno"
 
 [workspace.dependencies]
 deno_ast = { version = "=0.52.0", features = ["transpiling"] }
-deno_core = { version = "0.377.0" }
+deno_core = { version = "0.380.0" }
 
 deno_cache_dir = "=0.26.3"
 deno_doc = "=0.188.0"

filename: tests/node_compat/config.json
patch: @@ -1261,6 +1261,7 @@
     "parallel/test-timers-immediate-unref-simple.js": {},
     "parallel/test-timers-immediate-unref.js": {},
     "parallel/test-timers-immediate.js": {},
+    "parallel/test-timers-immediate-queue.js": {},
     "parallel/test-timers-interval-throw.js": {},
     "parallel/test-timers-non-integer-delay.js": {},
     "parallel/test-timers-not-emit-duration-zero.js": {},

filename: tests/wpt/runner/expectation.json
patch: @@ -13549,7 +13549,7 @@
     "MessagePort_onmessage_start.any.html": true,
     "MessagePort_onmessage_start.any.worker.html": true,
     "postMessage_MessagePorts_xsite.sub.window.html": false,
-    "MessageEvent_onmessage_postMessage_infinite_loop.html": false,
+    "MessageEvent_onmessage_postMessage_infinite_loop.html": true,
     "messageerror.html": false,
     "multi-globals": {
       "broadcastchannel-current.sub.html": false,
Repository: vercel/next.js
Pull request: Update Rspack development test manifest

This auto-generated PR updates the development integration test manifest used when testing Rspack.

Changed files:
filename: test/rspack-dev-tests-manifest.json
patch: @@ -540,8 +540,8 @@
     "runtimeError": false
   },
   "test/development/app-dir/build-error-logs/build-error-logs.test.ts": {
-    "passed": ["build-error-logs should only log error a single time"],
-    "failed": [],
+    "passed": [],
+    "failed": ["build-error-logs should only log error a single time"],
     "pending": [],
     "flakey": [],
     "runtimeError": false
@@ -3674,6 +3674,7 @@
       "app dir - basic searchParams prop server component should have the correct search params on middleware rewrite",
       "app dir - basic searchParams prop server component should have the correct search params on rewrite",
       "app dir - basic server components Loading should render loading.js in browser for slow layout",
+      "app dir - basic server components Loading should render loading.js in browser for slow layout and page",
       "app dir - basic server components Loading should render loading.js in browser for slow page",
       "app dir - basic server components Loading should render loading.js in initial html for slow layout",
       "app dir - basic server components Loading should render loading.js in initial html for slow layout and page",
@@ -3688,7 +3689,6 @@
       "app dir - basic server components dynamic routes should only pass params that apply to the layout",
       "app dir - basic server components middleware should strip internal query parameters from requests to middleware for redirect",
       "app dir - basic server components middleware should strip internal query parameters from requests to middleware for rewrite",
-      "app dir - basic server components next/router should support router.back and router.forward",
       "app dir - basic server components should include client component layout with server component route should include it client-side",
       "app dir - basic server components should include client component layout with server component route should include it server-side",
       "app dir - basic server components should not serve .client.js as a path",
@@ -3732,7 +3732,7 @@
     ],
     "failed": [
       "app dir - basic <Link /> should navigate to pages dynamic route from pages page if it overlaps with an app page",
-      "app dir - basic server components Loading should render loading.js in browser for slow layout and page"
+      "app dir - basic server components next/router should support router.back and router.forward"
     ],
     "pending": [
       "app dir - basic HMR should HMR correctly when changing the component type",
Repository: ollama/ollama
Pull request: runners


Changed files:
filename: .github/workflows/test.yaml
patch: @@ -34,7 +34,7 @@ jobs:
       matrix:
         cuda-version:
           - '11.8.0'
-    runs-on: ubuntu-latest
+    runs-on: linux
     container: nvidia/cuda:${{ matrix.cuda-version }}-devel-ubuntu20.04
     steps:
       - run: |
@@ -59,14 +59,12 @@ jobs:
           name: cuda-${{ matrix.cuda-version }}-libraries
           path: llm/llama.cpp/build/**/lib/*
   generate-rocm:
-    # TODO: re-enable once runners get more storage
-    if: ${{ false }}
     strategy:
       matrix:
         rocm-version:
           - '5.7.1'
           - '6.0'
-    runs-on: ubuntu-latest
+    runs-on: linux
     container: rocm/dev-ubuntu-20.04:${{ matrix.rocm-version }}
     steps:
       - run: |
Repository: denoland/deno
Pull request: fix(ext/node): properly implement process.features

This almost correctly implements `process.features`, the only missing bit is `process.features.inspector` which will be handled in https://github.com/denoland/deno/pull/31863 because it requires to disable a bunch of tests that were false positives.

Makes `parallel/test-process-features.js` test pass.

Changed files:
filename: ext/node/polyfills/process.ts
patch: @@ -94,7 +94,7 @@ import * as uv from "ext:deno_node/internal_binding/uv.ts";
 import type { BindingName } from "ext:deno_node/internal_binding/mod.ts";
 import { buildAllowedFlags } from "ext:deno_node/internal/process/per_thread.mjs";
 
-const { NumberMAX_SAFE_INTEGER } = primordials;
+const { NumberMAX_SAFE_INTEGER, ObjectDefineProperty } = primordials;
 
 const notImplementedEvents = [
   "multipleResolves",
@@ -884,7 +884,41 @@ Object.defineProperty(process, "allowedNodeEnvironmentFlags", {
 
 export const allowedNodeEnvironmentFlags = ALLOWED_FLAGS;
 
-process.features = { inspector: false };
+const features = {
+  // TODO(bartlomieju): change value of `inspector` to true
+  inspector: false,
+  // TODO(bartlomieju): not sure if it's worth getting actual value during build process
+  debug: false,
+  uv: true,
+  ipv6: true,
+  // deno-lint-ignore camelcase
+  tls_alpn: true,
+  // deno-lint-ignore camelcase
+  tls_sni: true,
+  // deno-lint-ignore camelcase
+  tls_ocsp: true,
+  tls: true,
+  // deno-lint-ignore camelcase
+  openssl_is_boringssl: false,
+  // deno-lint-ignore camelcase
+  cached_builtins: true,
+  // deno-lint-ignore camelcase
+  require_module: true,
+  get typescript() {
+    if (Deno.build.standalone) {
+      return false;
+    }
+    return "transform";
+  },
+};
+
+ObjectDefineProperty(process, "features", {
+  __proto__: null,
+  enumerable: true,
+  writable: false,
+  configurable: false,
+  value: features,
+});
 
 // TODO(kt3k): Get the value from --no-deprecation flag.
 process.noDeprecation = false;

filename: tests/node_compat/config.json
patch: @@ -943,6 +943,7 @@
     "parallel/test-process-exit-handler.js": {},
     "parallel/test-process-exit-recursive.js": {},
     "parallel/test-process-exit.js": {},
+    "parallel/test-process-features.js": {},
     "parallel/test-process-getgroups.js": {},
     "parallel/test-process-hrtime-bigint.js": {},
     "parallel/test-process-kill-null.js": {},
Repository: electron/electron
Pull request: perf: don't create unused menuitem icons

Backport of #47100

See that PR for details.


Notes: none.

Changed files:
filename: shell/browser/ui/gtk/menu_util.cc
patch: @@ -60,29 +60,23 @@ GdkModifierType GetGdkModifierForAccelerator(
 
 }  // namespace
 
-GtkWidget* BuildMenuItemWithImage(const std::string& label, GtkWidget* image) {
-// GTK4 removed support for image menu items.
+GtkWidget* BuildMenuItemWithImage(const std::string& label,
+                                  const gfx::Image& icon) {
+// GTK4 removed support for menuitem icons.
 #if GTK_CHECK_VERSION(3, 90, 0)
   return gtk_menu_item_new_with_mnemonic(label.c_str());
 #else
   G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
   GtkWidget* menu_item = gtk_image_menu_item_new_with_mnemonic(label.c_str());
+  GdkPixbuf* pixbuf = gtk_util::GdkPixbufFromSkBitmap(*icon.ToSkBitmap());
+  GtkWidget* image = gtk_image_new_from_pixbuf(pixbuf);
   gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);
+  g_object_unref(pixbuf);
   G_GNUC_END_IGNORE_DEPRECATIONS;
   return menu_item;
 #endif
 }
 
-GtkWidget* BuildMenuItemWithImage(const std::string& label,
-                                  const gfx::Image& icon) {
-  GdkPixbuf* pixbuf = gtk_util::GdkPixbufFromSkBitmap(*icon.ToSkBitmap());
-
-  GtkWidget* menu_item =
-      BuildMenuItemWithImage(label, gtk_image_new_from_pixbuf(pixbuf));
-  g_object_unref(pixbuf);
-  return menu_item;
-}
-
 GtkWidget* BuildMenuItemWithLabel(const std::string& label) {
   return gtk_menu_item_new_with_mnemonic(label.c_str());
 }

filename: shell/browser/ui/gtk/menu_util.h
patch: @@ -26,8 +26,6 @@ using MenuActivatedCallback = base::RepeatingCallback<void(GtkWidget*)>;
 
 // Builds GtkImageMenuItems.
 GtkWidget* BuildMenuItemWithImage(const std::string& label, GtkWidget* image);
-GtkWidget* BuildMenuItemWithImage(const std::string& label,
-                                  const gfx::Image& icon);
 GtkWidget* BuildMenuItemWithLabel(const std::string& label);
 
 ui::MenuModel* ModelForMenuItem(GtkMenuItem* menu_item);
Repository: facebook/react
Pull request: Re-enable prettier for compiler/

Stack from [ghstack](https://github.com/ezyang/ghstack) (oldest at bottom):
* #29997
* __->__ #29993

Now that the compiler directory has its own prettier config, we can
remove the prettierignore entry for compiler/ so it still runs in your
editor if you open the root directory

Changed files:
filename: scripts/prettier/index.js
patch: @@ -55,6 +55,7 @@ const files = glob
     ignore: [
       '**/node_modules/**',
       '**/cjs/**',
+      'compiler/**',
       ...ignoredPathsListedInPrettierIgnoreInGlobFormat,
     ],
   })
Repository: electron/electron
Pull request: perf: don't create unused menuitem icons

#### Description of Change

GTK >= 3.90.0 removed support for menuitem icons. When Electron is built with GTK >= 3.90.0, our code builds these icons and then throws them away unused. Instead, let's just not build them.

Our `gtk_util::GdkPixbufFromSkBitmap()` utility uses BGRAToRGBA and is expensive to call.

#### Checklist

- [x] PR description included and stakeholders cc'd
- [x] `npm test` passes
- [x] [PR release notes](https://github.com/electron/clerk/blob/main/README.md) describe the change in a way relevant to app developers, and are [capitalized, punctuated, and past tense](https://github.com/electron/clerk/blob/main/README.md#examples).

#### Release Notes

Notes: none.

Changed files:
filename: shell/browser/ui/gtk/menu_util.cc
patch: @@ -61,29 +61,23 @@ GdkModifierType GetGdkModifierForAccelerator(
 
 }  // namespace
 
-GtkWidget* BuildMenuItemWithImage(const std::string& label, GtkWidget* image) {
-// GTK4 removed support for image menu items.
+GtkWidget* BuildMenuItemWithImage(const std::string& label,
+                                  const gfx::Image& icon) {
+// GTK4 removed support for menuitem icons.
 #if GTK_CHECK_VERSION(3, 90, 0)
   return gtk_menu_item_new_with_mnemonic(label.c_str());
 #else
   G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
   GtkWidget* menu_item = gtk_image_menu_item_new_with_mnemonic(label.c_str());
+  GdkPixbuf* pixbuf = gtk_util::GdkPixbufFromSkBitmap(*icon.ToSkBitmap());
+  GtkWidget* image = gtk_image_new_from_pixbuf(pixbuf);
   gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(menu_item), image);
+  g_object_unref(pixbuf);
   G_GNUC_END_IGNORE_DEPRECATIONS;
   return menu_item;
 #endif
 }
 
-GtkWidget* BuildMenuItemWithImage(const std::string& label,
-                                  const gfx::Image& icon) {
-  GdkPixbuf* pixbuf = gtk_util::GdkPixbufFromSkBitmap(*icon.ToSkBitmap());
-
-  GtkWidget* menu_item =
-      BuildMenuItemWithImage(label, gtk_image_new_from_pixbuf(pixbuf));
-  g_object_unref(pixbuf);
-  return menu_item;
-}
-
 GtkWidget* BuildMenuItemWithLabel(const std::string& label) {
   return gtk_menu_item_new_with_mnemonic(label.c_str());
 }

filename: shell/browser/ui/gtk/menu_util.h
patch: @@ -26,8 +26,6 @@ using MenuActivatedCallback = base::RepeatingCallback<void(GtkWidget*)>;
 
 // Builds GtkImageMenuItems.
 GtkWidget* BuildMenuItemWithImage(const std::string& label, GtkWidget* image);
-GtkWidget* BuildMenuItemWithImage(const std::string& label,
-                                  const gfx::Image& icon);
 GtkWidget* BuildMenuItemWithLabel(const std::string& label);
 
 ui::MenuModel* ModelForMenuItem(GtkMenuItem* menu_item);
Repository: facebook/react
Pull request: Revert "www: remove dynamic feature flag enableSchedulingProfiler"

Reverts facebook/react#29994

Changed files:
filename: packages/shared/forks/ReactFeatureFlags.www-dynamic.js
patch: @@ -40,6 +40,8 @@ export const disableLegacyMode = __VARIANT__;
 // NOTE: This feature will only work in DEV mode; all callsites are wrapped with __DEV__.
 export const enableDebugTracing = __EXPERIMENTAL__;
 
+export const enableSchedulingProfiler = __VARIANT__;
+
 export const enableInfiniteRenderLoopDetection = __VARIANT__;
 
 // TODO: These flags are hard-coded to the default values used in open source.

filename: packages/shared/forks/ReactFeatureFlags.www.js
patch: @@ -59,7 +59,9 @@ export const enableAsyncActions = true;
 export const disableInputAttributeSyncing = false;
 export const enableLegacyFBSupport = true;
 
-export const enableSchedulingProfiler = __DEV__;
+// Logs additional User Timing API marks for use with an experimental profiling tool.
+export const enableSchedulingProfiler: boolean =
+  __PROFILE__ && dynamicFeatureFlags.enableSchedulingProfiler;
 
 export const disableLegacyContext = __EXPERIMENTAL__;
 export const enableGetInspectorDataForInstanceInProduction = false;
Repository: ggml-org/llama.cpp
Pull request: cli: add migration warning

Add a warning prior to the move, for more visibility


Changed files:
filename: tools/main/main.cpp
patch: @@ -521,6 +521,12 @@ int main(int argc, char ** argv) {
         is_interacting = params.interactive_first;
     }
 
+    LOG_WRN("*****************************\n");
+    LOG_WRN("IMPORTANT: The current llama-cli will be moved to llama-completion in the near future\n");
+    LOG_WRN("  New llama-cli will have enhanced features and improved user experience\n");
+    LOG_WRN("  More info: https://github.com/ggml-org/llama.cpp/discussions/17618\n");
+    LOG_WRN("*****************************\n");
+
     bool is_antiprompt        = false;
     bool input_echo           = true;
     bool display              = true;
Repository: nodejs/node
Pull request: assert: remove dead code

`code` variable in `getErrMessage` util is not initialized anymore since this commit https://github.com/nodejs/node/commit/43c380e9b6307514668809f18fc2e181247047e4 and the handling of it is now dead code. This PR removes them.

Changed files:
filename: lib/internal/assert/utils.js
patch: @@ -9,7 +9,6 @@ const {
   SafeMap,
   StringPrototypeCharCodeAt,
   StringPrototypeIncludes,
-  StringPrototypeIndexOf,
   StringPrototypeReplace,
   StringPrototypeSlice,
   StringPrototypeSplit,
@@ -174,7 +173,6 @@ function getErrMessage(message, fn) {
   const line = call.getLineNumber() - 1;
   let column = call.getColumnNumber() - 1;
   let identifier;
-  let code;
 
   if (filename) {
     identifier = `${filename}${line}${column}`;
@@ -199,31 +197,24 @@ function getErrMessage(message, fn) {
     // errors are handled faster.
     if (errorStackTraceLimitIsWritable) Error.stackTraceLimit = 0;
 
-    if (filename) {
-      if (decoder === undefined) {
-        const { StringDecoder } = require('string_decoder');
-        decoder = new StringDecoder('utf8');
-      }
-
-      // ESM file prop is a file proto. Convert that to path.
-      // This ensure opensync will not throw ENOENT for ESM files.
-      const fileProtoPrefix = 'file://';
-      if (StringPrototypeStartsWith(filename, fileProtoPrefix)) {
-        filename = fileURLToPath(filename);
-      }
+    if (decoder === undefined) {
+      const { StringDecoder } = require('string_decoder');
+      decoder = new StringDecoder('utf8');
+    }
 
-      fd = openSync(filename, 'r', 0o666);
-      // Reset column and message.
-      ({ 0: column, 1: message } = getCode(fd, line, column));
-      // Flush unfinished multi byte characters.
-      decoder.end();
-    } else {
-      for (let i = 0; i < line; i++) {
-        code = StringPrototypeSlice(code,
-                                    StringPrototypeIndexOf(code, '\n') + 1);
-      }
-      ({ 0: column, 1: message } = parseCode(code, column));
+    // ESM file prop is a file proto. Convert that to path.
+    // This ensure opensync will not throw ENOENT for ESM files.
+    const fileProtoPrefix = 'file://';
+    if (StringPrototypeStartsWith(filename, fileProtoPrefix)) {
+      filename = fileURLToPath(filename);
     }
+
+    fd = openSync(filename, 'r', 0o666);
+    // Reset column and message.
+    ({ 0: column, 1: message } = getCode(fd, line, column));
+    // Flush unfinished multi byte characters.
+    decoder.end();
+
     // Always normalize indentation, otherwise the message could look weird.
     if (StringPrototypeIncludes(message, '\n')) {
       if (EOL === '\r\n') {
Repository: ollama/ollama
Pull request: disable rocm builds

rocm builds are failing because of disk space issues. disable them temporarily until larger runners

resolves #2373

Changed files:
filename: .github/workflows/test.yaml
patch: @@ -59,6 +59,8 @@ jobs:
           name: cuda-${{ matrix.cuda-version }}-libraries
           path: llm/llama.cpp/build/**/lib/*
   generate-rocm:
+    # TODO: re-enable once runners get more storage
+    if: ${{ false }}
     strategy:
       matrix:
         rocm-version:
Repository: facebook/react
Pull request: www: remove dynamic feature flag enableSchedulingProfiler


Changed files:
filename: packages/shared/forks/ReactFeatureFlags.www-dynamic.js
patch: @@ -40,8 +40,6 @@ export const disableLegacyMode = __VARIANT__;
 // NOTE: This feature will only work in DEV mode; all callsites are wrapped with __DEV__.
 export const enableDebugTracing = __EXPERIMENTAL__;
 
-export const enableSchedulingProfiler = __VARIANT__;
-
 export const enableInfiniteRenderLoopDetection = __VARIANT__;
 
 // TODO: These flags are hard-coded to the default values used in open source.

filename: packages/shared/forks/ReactFeatureFlags.www.js
patch: @@ -59,9 +59,7 @@ export const enableAsyncActions = true;
 export const disableInputAttributeSyncing = false;
 export const enableLegacyFBSupport = true;
 
-// Logs additional User Timing API marks for use with an experimental profiling tool.
-export const enableSchedulingProfiler: boolean =
-  __PROFILE__ && dynamicFeatureFlags.enableSchedulingProfiler;
+export const enableSchedulingProfiler = __DEV__;
 
 export const disableLegacyContext = __EXPERIMENTAL__;
 export const enableGetInspectorDataForInstanceInProduction = false;
Repository: vercel/next.js
Pull request: Turbopack: read project strongly consistent in project_update

### What?

Once tasks should read all cells strongly consistent, but `project()` was not read strongly consistent.

* read project strongly consistent in project_update


Closes PACK-5500

Changed files:
filename: crates/next-api/src/project.rs
patch: @@ -289,6 +289,11 @@ impl ProjectContainer {
     }
 }
 
+#[turbo_tasks::function(operation)]
+fn project_operation(project: ResolvedVc<ProjectContainer>) -> Vc<Project> {
+    project.project()
+}
+
 #[turbo_tasks::function(operation)]
 fn project_fs_operation(project: ResolvedVc<Project>) -> Vc<DiskFileSystem> {
     project.project_fs()
@@ -344,7 +349,8 @@ impl ProjectContainer {
             preview_props,
         } = options;
 
-        let this = self.await?;
+        let resolved_self = self.to_resolved().await?;
+        let this = resolved_self.await?;
 
         let mut new_options = this
             .options_state
@@ -386,7 +392,9 @@ impl ProjectContainer {
         // TODO: Handle mode switch, should prevent mode being switched.
         let watch = new_options.watch;
 
-        let project = self.project().to_resolved().await?;
+        let project = project_operation(resolved_self)
+            .resolve_strongly_consistent()
+            .await?;
         let prev_project_fs = project_fs_operation(project)
             .read_strongly_consistent()
             .await?;
@@ -395,7 +403,9 @@ impl ProjectContainer {
             .await?;
 
         this.options_state.set(Some(new_options));
-        let project = self.project().to_resolved().await?;
+        let project = project_operation(resolved_self)
+            .resolve_strongly_consistent()
+            .await?;
         let project_fs = project_fs_operation(project)
             .read_strongly_consistent()
             .await?;