helloadhavan/github_issues huggingface dataset:
Repository: vuejs/vue
Pull request: prevent nested thunk children from failing

This prevents avoidable failures in some cases, for example in a functional component using JSX that produces a double thunk:

``` js
render: (h, { children }) => <MyComponent>{ children }</MyComponent>
```


Changed files:
filename: src/core/vdom/helpers.js
patch: @@ -7,12 +7,16 @@ export function normalizeChildren (
   children: any,
   ns: string | void
 ): Array<VNode> | void {
-  // invoke children thunks.
-  // components always receive their children as thunks so that they
-  // can perform the actual render inside their own dependency collection cycle.
-  if (typeof children === 'function') {
+  // Invoke children thunks. Components always receive their children
+  // as thunks so that they can perform the actual render inside their
+  // own dependency collection cycle. Also, since JSX automatically
+  // wraps component children in a thunk, we handle nested thunks to
+  // prevent situations such as <MyComponent>{ children }</MyComponent>
+  // from failing when it produces a double thunk.
+  while (typeof children === 'function') {
     children = children()
   }
+
   if (isPrimitive(children)) {
     return [createTextVNode(children)]
   }

filename: test/unit/features/options/render.spec.js
patch: @@ -36,4 +36,16 @@ describe('Options render', () => {
     new Vue().$mount()
     expect('Failed to mount component: template or render function not defined.').toHaveBeenWarned()
   })
+
+  // Since JSX automatically thunkifies children, this will
+  // prevent <MyComponent>{ children }</MyComponent> from
+  // failing when it produces a double thunk.
+  it('should support nested thunk children', () => {
+    const vm = new Vue({
+      render: h => h('div',
+        () => () => () => ['hello ', h('strong', 'world')]
+      )
+    }).$mount()
+    expect(vm.$el.innerHTML).toBe('hello <strong>world</strong>')
+  })
 })
Repository: vercel/next.js
Pull request: Update deploy manifest

The filter condition on the existing tests was incorrect so updated those and added flakey prefetch ones from 

https://github.com/vercel/next.js/actions/runs/19184159066/job/54847336252
https://github.com/vercel/next.js/actions/runs/19184159066/job/54847336291

Changed files:
filename: test/deploy-tests-manifest.json
patch: @@ -1,13 +1,23 @@
 {
   "version": 2,
   "suites": {
+    "test/e2e/app-dir/app-client-cache/client-cache.defaults.test.ts": {
+      "failed": [
+        "app dir client cache semantics (default semantics) prefetch={true} should re-use the cache for the full page, only for 5 mins"
+      ]
+    },
+    "test/e2e/app-dir/app-client-cache/client-cache.experimental.test.ts": {
+      "failed": [
+        "app dir client cache semantics (experimental staleTimes) static: 180 prefetch={undefined} - default should re-use the loading boundary for the custom static override time (3 minutes)"
+      ]
+    },
     "test/e2e/app-dir/actions/app-action.test.ts": {
       "failed": [
         "app-dir action handling fetch actions should invalidate client cache when path is revalidated",
         "app-dir action handling fetch actions should invalidate client cache when tag is revalidated",
         "app-dir action handling fetch actions should handle revalidateTag",
         "app-dir action handling fetch actions should store revalidation data in the prefetch cache",
-        "app-dir action handling fetch actions should invalidate the client router cache if the redirect action triggers a revalidation"
+        "app-dir action handling should invalidate the client router cache if the redirect action triggers a revalidation"
       ]
     },
     "test/e2e/app-dir/actions/app-action-node-middleware.test.ts": {
@@ -16,7 +26,7 @@
         "app-dir action handling fetch actions should invalidate client cache when tag is revalidated",
         "app-dir action handling fetch actions should handle revalidateTag",
         "app-dir action handling fetch actions should store revalidation data in the prefetch cache",
-        "app-dir action handling fetch actions should invalidate the client router cache if the redirect action triggers a revalidation"
+        "app-dir action handling should invalidate the client router cache if the redirect action triggers a revalidation"
       ]
     },
     "test/e2e/app-dir/app-static/app-static.test.ts": {
Repository: ollama/ollama
Pull request: server: fix dupe err message

https://github.com/ollama/ollama/pull/5734#discussion_r1686970988 

Changed files:
filename: server/routes.go
patch: @@ -609,10 +609,9 @@ func (s *Server) CreateModelHandler(c *gin.Context) {
 		defer cancel()
 
 		quantization := cmp.Or(r.Quantize, r.Quantization)
-		if err := CreateModel(ctx, name, filepath.Dir(r.Path), strings.ToUpper(quantization), f, fn); err != nil {
-			if errors.Is(err, errBadTemplate) {
-				ch <- gin.H{"error": err.Error(), "status": http.StatusBadRequest}
-			}
+		if err := CreateModel(ctx, name, filepath.Dir(r.Path), strings.ToUpper(quantization), f, fn); errors.Is(err, errBadTemplate) {
+			ch <- gin.H{"error": err.Error(), "status": http.StatusBadRequest}
+		} else if err != nil {
 			ch <- gin.H{"error": err.Error()}
 		}
 	}()
Repository: nodejs/node
Pull request: meta: loop userland-migrations in deprecations

/cc @JakobJingleheimer @nodejs/userland-migrations

Changed files:
filename: .github/CODEOWNERS
patch: @@ -228,3 +228,6 @@
 /lib/path.js @nodejs/path
 /lib/path/* @nodejs/path
 /test/parallel/test-path-* @nodejs/path
+
+# userland-migrations
+/doc/api/deprecations.md @nodejs/userland-migrations
Repository: electron/electron
Pull request: fix: runtime JS error that crashes `GetPackageJSON`

#### Description of Change

We overriden the `GetPackageJSON` in Node.js to let us read files straight from the ASAR file instead of disk. The override works by providing a JS method with the limitation that it should not throw a runtime error. However, this invariant was accidentally violated by `asar.splitPath` that sometimes contrary to its' TypeScript definition returned `false`.

#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

- [x] PR description included and stakeholders cc'd
- [x] `npm test` passes
- [ ] tests are [changed or added](https://github.com/electron/electron/blob/main/docs/development/testing.md)
- [ ] relevant API documentation, tutorials, and examples are updated and follow the [documentation style guide](https://github.com/electron/electron/blob/main/docs/development/style-guide.md)
- [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).

cc @zcbenz @nikwen 

## Example of crash stack

```
0: libsystem_kernel.dylib +0x[REDACTED]
1: libsystem_c.dylib +0x0000000000078a38
2: node::OnFatalError(char const*, char const*)+0xf8 (node_errors.cc:593)
3: v8::Utils::ReportApiFailure(char const*, char const*)+0x4c (api.cc:272)
4: node::modules::BindingData::GetPackageJSON(node::Realm*, std::__Cr::basic_string_view<char, std::__Cr::char_traits<char>>, node::modules::BindingData::ErrorContext*)+0x15f8 (v8-local-handle.h:770)
5: node::modules::BindingData::TraverseParent(node::Realm*, std::__Cr::__fs::filesystem::path const&)+0x460 (node_modules.cc:396)
6: node::modules::BindingData::GetNearestParentPackageJSON(v8::FunctionCallbackInfo<v8::Value> const&)+0x270 (node_modules.cc:432)
```

#### Release Notes

Notes:  fix: runtime JS error that crashes `GetPackageJSON`

Changed files:
filename: shell/common/api/electron_api_asar.cc
patch: @@ -191,13 +191,15 @@ class Archive : public node::ObjectWrap {
 static void SplitPath(const v8::FunctionCallbackInfo<v8::Value>& args) {
   auto* isolate = args.GetIsolate();
 
+  auto dict = gin_helper::Dictionary::CreateEmpty(isolate);
+  args.GetReturnValue().Set(dict.GetHandle());
+
   base::FilePath path;
   if (!gin::ConvertFromV8(isolate, args[0], &path)) {
-    args.GetReturnValue().Set(v8::False(isolate));
+    dict.Set("isAsar", false);
     return;
   }
 
-  auto dict = gin_helper::Dictionary::CreateEmpty(isolate);
   base::FilePath asar_path, file_path;
   if (asar::GetAsarArchivePath(path, &asar_path, &file_path, true)) {
     dict.Set("isAsar", true);
@@ -206,7 +208,6 @@ static void SplitPath(const v8::FunctionCallbackInfo<v8::Value>& args) {
   } else {
     dict.Set("isAsar", false);
   }
-  args.GetReturnValue().Set(dict.GetHandle());
 }
 
 void Initialize(v8::Local<v8::Object> exports,
Repository: vuejs/vue
Pull request: Handle back-ticks in expression

This fixes #3273 but might introduce other bugs. I'm not sure of it.


Changed files:
filename: src/parsers/expression.js
patch: @@ -23,7 +23,7 @@ const improperKeywordsRE =
 
 const wsRE = /\s/g
 const newlineRE = /\n/g
-const saveRE = /[\{,]\s*[\w\$_]+\s*:|('(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`)|new |typeof |void /g
+const saveRE = /[\{,]\s*[\w\$_]+\s*:|('(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\"']|\\.)*`|`(?:[^`\\]|\\.)*`)|new |typeof |void /g
 const restoreRE = /"(\d+)"/g
 const pathTestRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['.*?'\]|\[".*?"\]|\[\d+\]|\[[A-Za-z_$][\w$]*\])*$/
 const identRE = /[^\w$\.](?:[A-Za-z_$][\w$]*)/g

filename: test/unit/specs/parsers/expression_spec.js
patch: @@ -67,6 +67,18 @@ var testCases = [
     scope: {c: 32},
     expected: { a: '35', b: 32 }
   },
+  {
+    // Object with string values with back-quotes
+    exp: '[{"a":"he`llo"},{"b":"world"},{"c":55}]',
+    scope: {},
+    expected: [{ 'a': 'he`llo'}, { 'b': 'world'}, { 'c': 55}]
+  },
+  {
+    // Object with string values and back quotes (single quoted string)
+    exp: '[{\'a\':\'he`llo\'},{\'b\':\'world\'},{\'c\':55}]',
+    scope: {},
+    expected: [{ 'a': 'he`llo'}, { 'b': 'world'}, { 'c': 55}]
+  },
   {
     // dollar signs and underscore
     exp: "_a + ' ' + $b",
Repository: ollama/ollama
Pull request: convert: capture `head_dim` for mistral


Changed files:
filename: convert/mistral.go
patch: @@ -71,6 +71,11 @@ func (m *MistralModel) WriteGGUF(ws io.WriteSeeker) error {
 		"tokenizer.ggml.unknown_token_id": uint32(0),
 	}
 
+	if m.Params.HeadDimension > 0 {
+		kv["llama.attention.key_length"] = uint32(m.Params.HeadDimension)
+		kv["llama.attention.value_length"] = uint32(m.Params.HeadDimension)
+	}
+
 	return llm.NewGGUFV3(m.Params.ByteOrder).Encode(ws, kv, m.Tensors)
 }
Repository: ggml-org/llama.cpp
Pull request: release: update uploadReleaseAsset API

fixes: #19011

GitHub Script v8 updated the way the API is called. Instead of calling `uploadReleaseAsset` as

```js
github.repos.uploadReleaseAsset(...)
```

we now need to use the `.rest` object as such

```js
github.rest.repos.uploadReleaseAsset(...)
```

Changed files:
filename: .github/workflows/release.yml
patch: @@ -897,7 +897,7 @@ jobs:
             for (let file of await fs.readdirSync('./release')) {
               if (path.extname(file) === '.zip' || file.endsWith('.tar.gz')) {
                 console.log('uploadReleaseAsset', file);
-                await github.repos.uploadReleaseAsset({
+                await github.rest.repos.uploadReleaseAsset({
                   owner: context.repo.owner,
                   repo: context.repo.repo,
                   release_id: release_id,
Repository: electron/electron
Pull request: fix: add missed enum `SaveRequestType` to PdfViewerPrivate function

#### Description of Change

Fix https://github.com/electron/electron/issues/48347

#### Checklist
<!-- Remove items that do not apply. For completed items, change [ ] to [x]. -->

- [x] PR description included and stakeholders cc'd
- [x] `npm test` passes
- [x] tests are [changed or added](https://github.com/electron/electron/blob/main/docs/development/testing.md)
- [x] relevant API documentation, tutorials, and examples are updated and follow the [documentation style guide](https://github.com/electron/electron/blob/main/docs/development/style-guide.md)
- [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: Fix download button does not work in PDF Viewer


Changed files:
filename: shell/common/extensions/api/pdf_viewer_private.idl
patch: @@ -6,6 +6,15 @@
 // functionality that the PDF Viewer needs from outside the PDF plugin. This API
 // is exclusively for the PDF Viewer.
 namespace pdfViewerPrivate {
+  // Must match `SaveRequestType` in `pdf/mojom/pdf.mojom` and
+  // `tools/typescript/definitions/pdf_viewer_private.d.ts`.
+  enum SaveRequestType {
+    ANNOTATION,
+    ORIGINAL,
+    EDITED,
+    SEARCHIFIED
+  };
+
   // Nearly identical to mimeHandlerPrivate.StreamInfo, but without a mime type
   // nor a response header field. Those fields are unused by the PDF viewer.
   dictionary StreamInfo {
@@ -52,6 +61,13 @@ namespace pdfViewerPrivate {
         DOMString url,
         IsAllowedLocalFileAccessCallback callback);
 
+    // Sends a request to save the PDF to Google Drive if `saveRequestType` is
+    // set. Otherwise, if `saveRequestType` is not set, the default action is
+    // to cancel the existing upload.
+    static void saveToDrive(
+        optional SaveRequestType saveRequestType,
+        optional VoidCallback callback);
+
     // Sets the current tab title to `title` for a full-page PDF.
     static void setPdfDocumentTitle(
         DOMString title,
Repository: ollama/ollama
Pull request: Refine error reporting for subprocess crash

On windows, the exit status winds up being the search term many users search for and end up piling in on issues that are unrelated. This refines the reporting so that if we have a more detailed message we'll suppress the exit status portion of the message.


Example:

Before
```
> ollama run akuldatta/mistral-nemo-instruct-12b:q5km
Error: llama runner process has terminated: exit status 0xc0000409 error loading model: check_tensor_dims: tensor 'blk.0.attn_q.weight' has wrong shape; expected  5120,  5120, got  5120,  4096,     1,     1
```

After:
```
> ollama run akuldatta/mistral-nemo-instruct-12b:q5km
Error: llama runner process has terminated: error loading model: check_tensor_dims: tensor 'blk.0.attn_q.weight' has wrong shape; expected  5120,  5120, got  5120,  4096,     1,     1
```

This should reduce the amount of users posting unrelated problems on whatever open issue(s) happen to have `0xc0000409` in the title.

Changed files:
filename: llm/server.go
patch: @@ -417,7 +417,17 @@ func NewLlamaServer(gpus gpu.GpuInfoList, model string, ggml *GGML, adapters, pr
 
 		// reap subprocess when it exits
 		go func() {
-			s.done <- s.cmd.Wait()
+			err := s.cmd.Wait()
+			// Favor a more detailed message over the process exit status
+			if err != nil && s.status != nil && s.status.LastErrMsg != "" {
+				slog.Debug("llama runner terminated", "error", err)
+				if strings.Contains(s.status.LastErrMsg, "unknown model") {
+					s.status.LastErrMsg = "this model is not supported by your version of Ollama. You may need to upgrade"
+				}
+				s.done <- fmt.Errorf(s.status.LastErrMsg)
+			} else {
+				s.done <- err
+			}
 		}()
 
 		return s, nil
@@ -580,14 +590,7 @@ func (s *llmServer) WaitUntilRunning(ctx context.Context) error {
 			slog.Warn("client connection closed before server finished loading, aborting load")
 			return fmt.Errorf("timed out waiting for llama runner to start: %w", ctx.Err())
 		case err := <-s.done:
-			msg := ""
-			if s.status != nil && s.status.LastErrMsg != "" {
-				msg = s.status.LastErrMsg
-			}
-			if strings.Contains(msg, "unknown model") {
-				return fmt.Errorf("this model is not supported by your version of Ollama. You may need to upgrade")
-			}
-			return fmt.Errorf("llama runner process has terminated: %v %s", err, msg)
+			return fmt.Errorf("llama runner process has terminated: %w", err)
 		default:
 		}
 		if time.Now().After(stallTimer) {
Repository: vuejs/vue
Pull request: [2.0] allow to initialize value attribute to 0

I realized `<input :value="value">` is not working on initialization when `value` is `0`.
And also `undefined` is appeared on input field, they are not happened on v1.0

Reproduction: 
[2.0.0-beta.5] https://jsfiddle.net/srbg2em6/1/
[1.0.26] https://jsfiddle.net/srbg2em6/


Changed files:
filename: src/platforms/web/runtime/modules/dom-props.js
patch: @@ -22,8 +22,9 @@ function updateDOMProps (oldVnode: VNodeWithData, vnode: VNodeWithData) {
       // non-string values will be stringified
       elm._value = cur
       // avoid resetting cursor position when value is the same
-      if (elm.value != cur) { // eslint-disable-line
-        elm.value = cur
+      const strCur = cur == null ? '' : String(cur)
+      if (elm.value !== strCur) {
+        elm.value = strCur
       }
     } else {
       elm[key] = cur

filename: test/unit/modules/vdom/modules/props.spec.js
patch: @@ -23,4 +23,10 @@ describe('vdom domProps module', () => {
     const elm = patch(vnode1, vnode2)
     expect(elm.src).toBeUndefined()
   })
+
+  it('should initialize the elements value to zero', () => {
+    const vnode = new VNode('input', { domProps: { value: 0 }})
+    const elm = patch(null, vnode)
+    expect(elm.value).toBe('0')
+  })
 })
Repository: nodejs/node
Pull request: build: remove V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE defs

It has been renamed to V8_COMPRESS_POINTERS_IN_MULTIPLE_CAGES in https://chromium-review.googlesource.com/c/v8/v8/+/5439559

<!--
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.
-->


Changed files:
filename: common.gypi
patch: @@ -449,9 +449,6 @@
       ['v8_enable_pointer_compression_shared_cage == 1', {
         'defines': ['V8_COMPRESS_POINTERS_IN_SHARED_CAGE'],
       }],
-      ['v8_enable_pointer_compression == 1 and v8_enable_pointer_compression_shared_cage != 1', {
-        'defines': ['V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE'],
-      }],
       ['v8_enable_pointer_compression == 1 or v8_enable_31bit_smis_on_64bit_arch == 1', {
         'defines': ['V8_31BIT_SMIS_ON_64BIT_ARCH'],
       }],

filename: tools/v8_gypfiles/features.gypi
patch: @@ -361,9 +361,6 @@
       ['v8_enable_pointer_compression_shared_cage==1', {
         'defines': ['V8_COMPRESS_POINTERS_IN_SHARED_CAGE'],
       }],
-      ['v8_enable_pointer_compression==1 and v8_enable_pointer_compression_shared_cage==0', {
-        'defines': ['V8_COMPRESS_POINTERS_IN_ISOLATE_CAGE'],
-      }],
       ['v8_enable_pointer_compression==1 or v8_enable_31bit_smis_on_64bit_arch==1', {
         'defines': ['V8_31BIT_SMIS_ON_64BIT_ARCH',],
       }],
Repository: ollama/ollama
Pull request: Remove no longer supported max vram var

The OLLAMA_MAX_VRAM env var was a temporary workaround for OOM scenarios.  With Concurrency this was no longer wired up, and the simplistic value doesn't map to multi-GPU setups.  Users can still set `num_gpu` to limit memory usage to avoid OOM if we get our predictions wrong.

Fixes #5754 

Changed files:
filename: cmd/cmd.go
patch: @@ -1344,7 +1344,6 @@ func NewCLI() *cobra.Command {
 				envVars["OLLAMA_TMPDIR"],
 				envVars["OLLAMA_FLASH_ATTENTION"],
 				envVars["OLLAMA_LLM_LIBRARY"],
-				envVars["OLLAMA_MAX_VRAM"],
 			})
 		default:
 			appendEnvDocs(cmd, envs)

filename: envconfig/config.go
patch: @@ -43,8 +43,6 @@ var (
 	MaxRunners int
 	// Set via OLLAMA_MAX_QUEUE in the environment
 	MaxQueuedRequests int
-	// Set via OLLAMA_MAX_VRAM in the environment
-	MaxVRAM uint64
 	// Set via OLLAMA_MODELS in the environment
 	ModelsDir string
 	// Set via OLLAMA_NOHISTORY in the environment
@@ -89,7 +87,6 @@ func AsMap() map[string]EnvVar {
 		"OLLAMA_LLM_LIBRARY":       {"OLLAMA_LLM_LIBRARY", LLMLibrary, "Set LLM library to bypass autodetection"},
 		"OLLAMA_MAX_LOADED_MODELS": {"OLLAMA_MAX_LOADED_MODELS", MaxRunners, "Maximum number of loaded models per GPU"},
 		"OLLAMA_MAX_QUEUE":         {"OLLAMA_MAX_QUEUE", MaxQueuedRequests, "Maximum number of queued requests"},
-		"OLLAMA_MAX_VRAM":          {"OLLAMA_MAX_VRAM", MaxVRAM, "Maximum VRAM"},
 		"OLLAMA_MODELS":            {"OLLAMA_MODELS", ModelsDir, "The path to the models directory"},
 		"OLLAMA_NOHISTORY":         {"OLLAMA_NOHISTORY", NoHistory, "Do not preserve readline history"},
 		"OLLAMA_NOPRUNE":           {"OLLAMA_NOPRUNE", NoPrune, "Do not prune model blobs on startup"},
@@ -194,16 +191,6 @@ func LoadConfig() {
 
 	TmpDir = clean("OLLAMA_TMPDIR")
 
-	userLimit := clean("OLLAMA_MAX_VRAM")
-	if userLimit != "" {
-		avail, err := strconv.ParseUint(userLimit, 10, 64)
-		if err != nil {
-			slog.Error("invalid setting, ignoring", "OLLAMA_MAX_VRAM", userLimit, "error", err)
-		} else {
-			MaxVRAM = avail
-		}
-	}
-
 	LLMLibrary = clean("OLLAMA_LLM_LIBRARY")
 
 	if onp := clean("OLLAMA_NUM_PARALLEL"); onp != "" {

filename: integration/concurrency_test.go
patch: @@ -69,7 +69,7 @@ func TestIntegrationConcurrentPredictOrcaMini(t *testing.T) {
 	reqLimit := len(req)
 	iterLimit := 5
 
-	vram := os.Getenv("OLLAMA_MAX_VRAM")
+	vram := os.Getenv("OLLAMA_MAX_VRAM") // TODO - discover actual VRAM
 	if vram != "" {
 		max, err := strconv.ParseUint(vram, 10, 64)
 		require.NoError(t, err)
@@ -106,7 +106,7 @@ func TestIntegrationConcurrentPredictOrcaMini(t *testing.T) {
 
 // Stress the system if we know how much VRAM it has, and attempt to load more models than will fit
 func TestMultiModelStress(t *testing.T) {
-	vram := os.Getenv("OLLAMA_MAX_VRAM")
+	vram := os.Getenv("OLLAMA_MAX_VRAM") // TODO - discover actual VRAM
 	if vram == "" {
 		t.Skip("OLLAMA_MAX_VRAM not specified, can't pick the right models for the stress test")
 	}