helloadhavan/github_issues huggingface dataset:
Repository: vuejs/vue
Pull request: Support select multiple binding (fix #4755)

Determine multiple in runtime. fix #4755 

Changed files:
filename: src/platforms/web/compiler/directives/model.js
patch: @@ -163,13 +163,14 @@ function genSelect (
   }
 
   const number = modifiers && modifiers.number
-  const assignment = `Array.prototype.filter` +
+  const selectedVal = `Array.prototype.filter` +
     `.call($event.target.options,function(o){return o.selected})` +
     `.map(function(o){var val = "_value" in o ? o._value : o.value;` +
-    `return ${number ? '_n(val)' : 'val'}})` +
-    (el.attrsMap.multiple == null ? '[0]' : '')
+    `return ${number ? '_n(val)' : 'val'}})`
 
-  const code = genAssignmentCode(value, assignment)
+  const assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]'
+  let code = `var $$selectedVal = ${selectedVal};`
+  code = `${code} ${genAssignmentCode(value, assignment)}`
   addHandler(el, 'change', code, null, true)
 }
 

filename: test/unit/features/directives/model-select.spec.js
patch: @@ -262,6 +262,31 @@ describe('Directive v-model select', () => {
     })
   }
 
+  it('should work with multiple binding', (done) => {
+    const spy = jasmine.createSpy()
+    const vm = new Vue({
+      data: {
+        isMultiple: true,
+        selections: ['1']
+      },
+      template:
+        '<select v-model="selections" :multiple="isMultiple">' +
+          '<option value="1">item 1</option>' +
+          '<option value="2">item 2</option>' +
+        '</select>',
+      watch: {
+        selections: spy
+      }
+    }).$mount()
+    document.body.appendChild(vm.$el)
+    vm.$el.options[1].selected = true
+    triggerEvent(vm.$el, 'change')
+    waitForUpdate(() => {
+      expect(spy).toHaveBeenCalled()
+      expect(vm.selections).toEqual(['1', '2'])
+    }).then(done)
+  })
+
   it('multiple with static template', () => {
     const vm = new Vue({
       template:
Repository: facebook/react
Pull request: [builds/facebook-fbsource] Add workflow to close direct PRs


Changed files:
filename: .github/workflows/shared_close_direct_sync_branch_prs.yml
patch: @@ -0,0 +1,37 @@
+name: (Shared) Close Direct Sync Branch PRs
+
+on:
+  pull_request:
+    branches:
+      - 'builds/facebook-**'
+
+env:
+  TZ: /usr/share/zoneinfo/America/Los_Angeles
+  # https://github.com/actions/cache/blob/main/tips-and-workarounds.md#cache-segment-restore-timeout
+  SEGMENT_DOWNLOAD_TIMEOUT_MINS: 1
+
+jobs:
+  close_pr:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Close PR
+        uses: actions/github-script@v7
+        with:
+          script: |
+            const owner = context.repo.owner;
+            const repo = context.repo.repo;
+            const pullNumber = ${{ github.event.number }};
+
+            await github.rest.pulls.createReview({
+              owner,
+              repo,
+              pull_number: pullNumber,
+              body: 'Do not land changes to `${{ github.event.pull_request.base.ref }}`. Please re-open your PR targeting `main` instead.',
+              event: 'REQUEST_CHANGES'
+            });
+            await github.rest.pulls.update({
+              owner,
+              repo,
+              pull_number: pullNumber,
+              state: 'closed'
+            });
Repository: facebook/react
Pull request: [react-native] Suppress Flow nonstrict-import check in ReactNativeTypes


Summary: Unblock internal sync.

Test Plan:

Reviewers:

Subscribers:

Tasks:

Tags:


Changed files:
filename: packages/react-native-renderer/src/ReactNativeTypes.js
patch: @@ -10,6 +10,7 @@
  */
 
 import type {ElementRef, ElementType, MixedElement} from 'react';
+// $FlowFixMe[nonstrict-import] TODO(@rubennorte)
 import {type PublicRootInstance} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';
 
 export type MeasureOnSuccessCallback = (
Repository: huggingface/transformers
Pull request: skip `MLukeTokenizerTest` temporarily

# What does this PR do?

As it fails at this moment. Skip for now but let's try to bring it back as soon as we could .

 https://app.circleci.com/pipelines/github/huggingface/transformers/155465/workflows/2c0019c5-4390-47c0-92a6-96aa6b30ce56/jobs/2044080

Changed files:
filename: tests/models/mluke/test_tokenization_mluke.py
patch: @@ -26,6 +26,8 @@
 SAMPLE_ENTITY_VOCAB = get_tests_dir("fixtures/test_entity_vocab.json")
 
 
+# TODO: (Ita / Arthur) FIXME
+@unittest.skip("Skip for now as this fails after #40936")
 class MLukeTokenizerTest(TokenizerTesterMixin, unittest.TestCase):
     from_pretrained_id = "studio-ousia/mluke-base"
     tokenizer_class = MLukeTokenizer
Repository: nodejs/node
Pull request: Add CJS/ESM variants to sqlite documentation where missing

Make sure all the functions documented in sqlite's documentation have CJS/ESM variants:

This PR includes:

- Adding a CJS variant for `createTagStore` 
- Separating `applyChangeset`'s code snippet to CJS and ESM variants and adding the missing `import`/`require` of `DatabaseSync` to them so it's executable without having to manually modify it.

Refs: https://github.com/nodejs/node/issues/60394

Changed files:
filename: doc/api/sqlite.md
patch: @@ -504,6 +504,33 @@ console.log(allUsers);
 // ]
 ```
 
+```cjs
+const { DatabaseSync } = require('node:sqlite');
+
+const db = new DatabaseSync(':memory:');
+const sql = db.createTagStore();
+
+db.exec('CREATE TABLE users (id INT, name TEXT)');
+
+// Using the 'run' method to insert data.
+// The tagged literal is used to identify the prepared statement.
+sql.run`INSERT INTO users VALUES (1, 'Alice')`;
+sql.run`INSERT INTO users VALUES (2, 'Bob')`;
+
+// Using the 'get' method to retrieve a single row.
+const id = 1;
+const user = sql.get`SELECT * FROM users WHERE id = ${id}`;
+console.log(user); // { id: 1, name: 'Alice' }
+
+// Using the 'all' method to retrieve all rows.
+const allUsers = sql.all`SELECT * FROM users ORDER BY id`;
+console.log(allUsers);
+// [
+//   { id: 1, name: 'Alice' },
+//   { id: 2, name: 'Bob' }
+// ]
+```
+
 ### `database.createSession([options])`
 
 <!-- YAML
@@ -557,7 +584,29 @@ added:
 An exception is thrown if the database is not
 open. This method is a wrapper around [`sqlite3changeset_apply()`][].
 
-```js
+```mjs
+import { DatabaseSync } from 'node:sqlite';
+
+const sourceDb = new DatabaseSync(':memory:');
+const targetDb = new DatabaseSync(':memory:');
+
+sourceDb.exec('CREATE TABLE data(key INTEGER PRIMARY KEY, value TEXT)');
+targetDb.exec('CREATE TABLE data(key INTEGER PRIMARY KEY, value TEXT)');
+
+const session = sourceDb.createSession();
+
+const insert = sourceDb.prepare('INSERT INTO data (key, value) VALUES (?, ?)');
+insert.run(1, 'hello');
+insert.run(2, 'world');
+
+const changeset = session.changeset();
+targetDb.applyChangeset(changeset);
+// Now that the changeset has been applied, targetDb contains the same data as sourceDb.
+```
+
+```cjs
+const { DatabaseSync } = require('node:sqlite');
+
 const sourceDb = new DatabaseSync(':memory:');
 const targetDb = new DatabaseSync(':memory:');
Repository: ollama/ollama
Pull request: Log system memory at info

On systems with low system memory, we can hit allocation failures that are difficult to diagnose without debug logs.  This will make it easier to spot.

Resolves #6558

Changed files:
filename: llm/server.go
patch: @@ -98,7 +98,7 @@ func NewLlamaServer(gpus gpu.GpuInfoList, model string, ggml *GGML, adapters, pr
 		systemTotalMemory = systemMemInfo.TotalMemory
 		systemFreeMemory = systemMemInfo.FreeMemory
 		systemSwapFreeMemory = systemMemInfo.FreeSwap
-		slog.Debug("system memory", "total", format.HumanBytes2(systemTotalMemory), "free", format.HumanBytes2(systemFreeMemory), "free_swap", format.HumanBytes2(systemSwapFreeMemory))
+		slog.Info("system memory", "total", format.HumanBytes2(systemTotalMemory), "free", format.HumanBytes2(systemFreeMemory), "free_swap", format.HumanBytes2(systemSwapFreeMemory))
 	}
 
 	// If the user wants zero GPU layers, reset the gpu list to be CPU/system ram info
Repository: ollama/ollama
Pull request: Update community integration - Painting Droid

I've added integration with Ollama to [Painting Droid](https://github.com/mateuszmigas/painting-droid). Users can now ask Llava about stuff they are drawing. More integration is coming to allow Ollama to invoke drawing functions within the app.

![CleanShot 2024-07-06 at 08 19 58@2x](https://github.com/ollama/ollama/assets/54471371/4032d01b-3be8-4f8f-ada2-2f86eabae068)


Changed files:
filename: README.md
patch: @@ -296,6 +296,7 @@ See the [API documentation](./docs/api.md) for all endpoints.
 - [OllamaSpring](https://github.com/CrazyNeil/OllamaSpring) (Ollama Client for macOS)
 - [LLocal.in](https://github.com/kartikm7/llocal) (Easy to use Electron Desktop Client for Ollama)
 - [Ollama with Google Mesop](https://github.com/rapidarchitect/ollama_mesop/) (Mesop Chat Client implementation with Ollama)
+- [Painting Droid](https://github.com/mateuszmigas/painting-droid) (Painting app with AI integrations)
 - [Kerlig AI](https://www.kerlig.com/) (AI writing assistant for macOS)
 - [AI Studio](https://github.com/MindWorkAI/AI-Studio)
 - [Sidellama](https://github.com/gyopak/sidellama) (browser-based LLM client)
Repository: vuejs/vue
Pull request: Be able to delete array item in `Vue.delete`

Since the `Vue.set` support to insert an item to array, the `Vue.delete` should also support to delete an item from array.

Take the following code as an example:

```js
const vm = new Vue({
  template: '<div><span v-for="obj in lists">{{obj.name}}</span></div>',
  data: {
    lists: [
      { name: 'A' },
      { name: 'B' }
    ]
  }
}).$mount()

Vue.delete(vm.lists, 1)
// vm.lists.length--
```

The `Vue.delete(vm.lists, 1)` just delete the property `1` from the array, but the `vm.lists.length` is still be 2. Evaluating `obj.name` at the second time will caught a TypeError (undefined is not an object).

Changed files:
filename: src/core/observer/index.js
patch: @@ -218,7 +218,11 @@ export function set (obj: Array<any> | Object, key: any, val: any) {
 /**
  * Delete a property and trigger change if necessary.
  */
-export function del (obj: Object, key: string) {
+export function del (obj: Array<any> | Object, key: any) {
+  if (Array.isArray(obj)) {
+    obj.splice(key, 1)
+    return
+  }
   const ob = obj.__ob__
   if (obj._isVue || (ob && ob.vmCount)) {
     process.env.NODE_ENV !== 'production' && warn(

filename: test/unit/features/global-api/set-delete.spec.js
patch: @@ -72,5 +72,29 @@ describe('Global API: set/delete', () => {
         expect(vm.$el.innerHTML).toBe('')
       }).then(done)
     })
+
+    it('be able to delete an item in array', done => {
+      const vm = new Vue({
+        template: '<div><p v-for="obj in lists">{{obj.name}}</p></div>',
+        data: {
+          lists: [
+            { name: 'A' },
+            { name: 'B' },
+            { name: 'C' }
+          ]
+        }
+      }).$mount()
+      expect(vm.$el.innerHTML).toBe('<p>A</p><p>B</p><p>C</p>')
+      Vue.delete(vm.lists, 1)
+      waitForUpdate(() => {
+        expect(vm.$el.innerHTML).toBe('<p>A</p><p>C</p>')
+        Vue.delete(vm.lists, 1)
+      }).then(() => {
+        expect(vm.$el.innerHTML).toBe('<p>A</p>')
+        Vue.delete(vm.lists, 0)
+      }).then(() => {
+        expect(vm.$el.innerHTML).toBe('')
+      }).then(done)
+    })
   })
 })
Repository: ollama/ollama
Pull request: Updated Ollama4j link

Updated Ollama4j link and added link to Ollama4j Web UI tool.

Changed files:
filename: README.md
patch: @@ -304,6 +304,7 @@ See the [API documentation](./docs/api.md) for all endpoints.
 - [Harbor](https://github.com/av/harbor) (Containerized LLM Toolkit with Ollama as default backend)
 - [Go-CREW](https://www.jonathanhecl.com/go-crew/) (Powerful Offline RAG in Golang)
 - [PartCAD](https://github.com/openvmp/partcad/) (CAD model generation with OpenSCAD and CadQuery)
+- [Ollama4j Web UI](https://github.com/ollama4j/ollama4j-web-ui) - Java-based Web UI for Ollama built with Vaadin, Spring Boot and Ollama4j
 
 ### Terminal
 
@@ -356,7 +357,7 @@ See the [API documentation](./docs/api.md) for all endpoints.
 - [Ollama for Ruby](https://github.com/gbaptista/ollama-ai)
 - [Ollama-rs for Rust](https://github.com/pepperoni21/ollama-rs)
 - [Ollama-hpp for C++](https://github.com/jmont-dev/ollama-hpp)
-- [Ollama4j for Java](https://github.com/amithkoujalgi/ollama4j)
+- [Ollama4j for Java](https://github.com/ollama4j/ollama4j)
 - [ModelFusion Typescript Library](https://modelfusion.dev/integration/model-provider/ollama)
 - [OllamaKit for Swift](https://github.com/kevinhermawan/OllamaKit)
 - [Ollama for Dart](https://github.com/breitburg/dart-ollama)
Repository: ollama/ollama
Pull request: llama: fix sync script ggml-metal_darwin_arm64.m filename


Changed files:
filename: llama/sync.sh
patch: @@ -53,7 +53,7 @@ cp $src_dir/ggml/src/ggml-quants.c $dst_dir/ggml-quants.c
 cp $src_dir/ggml/src/ggml-quants.h $dst_dir/ggml-quants.h
 cp $src_dir/ggml/src/ggml-metal.metal $dst_dir/ggml-metal.metal
 cp $src_dir/ggml/include/ggml-metal.h $dst_dir/ggml-metal.h
-cp $src_dir/ggml/src/ggml-metal.m $dst_dir/ggml-metal-darwin_arm64.m
+cp $src_dir/ggml/src/ggml-metal.m $dst_dir/ggml-metal_darwin_arm64.m
 cp $src_dir/ggml/src/ggml-impl.h $dst_dir/ggml-impl.h
 cp $src_dir/ggml/include/ggml-cuda.h $dst_dir/ggml-cuda.h
 cp $src_dir/ggml/src/ggml-cuda.cu $dst_dir/ggml-cuda.cu
Repository: ggml-org/llama.cpp
Pull request: model-conversion : add debug option to conversion script

This commit adds a debug option to the model conversion script to enable using the Python debugger (pdb) during model conversion.

The motivation for this is that I've found myself adding this a few times now and it would be quicker to have this flag as an option and a makefile target/recipe for it.


Changed files:
filename: examples/model-conversion/Makefile
patch: @@ -33,11 +33,14 @@ DEVICE ?= auto
 causal-convert-model-bf16: OUTTYPE=bf16
 causal-convert-model-bf16: causal-convert-model
 
+causal-convert-model-debug: DEBUG=--debug
+causal-convert-model-debug: causal-convert-model
+
 causal-convert-model:
 	$(call validate_model_path,causal-convert-model)
 	@MODEL_NAME="$(MODEL_NAME)" OUTTYPE="$(OUTTYPE)" MODEL_PATH="$(MODEL_PATH)" \
 	METADATA_OVERRIDE="$(METADATA_OVERRIDE)" \
-	./scripts/causal/convert-model.sh
+	./scripts/causal/convert-model.sh $(DEBUG)
 
 causal-convert-mm-model-bf16: OUTTYPE=bf16
 causal-convert-mm-model-bf16: MM_OUTTYPE=f16

filename: examples/model-conversion/scripts/causal/convert-model.sh
patch: @@ -4,12 +4,17 @@ set -e
 
 # Parse command line arguments
 MMPROJ=""
+DEBUG=""
 while [[ $# -gt 0 ]]; do
     case $1 in
         --mmproj)
             MMPROJ="--mmproj"
             shift
             ;;
+        --debug)
+            DEBUG="1"
+            shift
+            ;;
         *)
             shift
             ;;
@@ -28,7 +33,12 @@ echo "Data  type: ${TYPE}"
 echo "Converted model path:: ${CONVERTED_MODEL}"
 echo "Metadata override: ${METADATA_OVERRIDE}"
 
-CMD_ARGS=("python" "../../convert_hf_to_gguf.py" "--verbose")
+if [[ -n "$DEBUG" ]]; then
+    CMD_ARGS=("python" "-m" "pdb")
+else
+    CMD_ARGS=("python")
+fi
+CMD_ARGS+=("../../convert_hf_to_gguf.py" "--verbose")
 CMD_ARGS+=("${MODEL_PATH}")
 CMD_ARGS+=("--outfile" "${CONVERTED_MODEL}")
 CMD_ARGS+=("--outtype" "${TYPE}")
Repository: facebook/react
Pull request: [react-native] fix divergence in synced code


Alternative to #32334


Changed files:
filename: packages/react-native-renderer/src/ReactNativeTypes.js
patch: @@ -10,6 +10,7 @@
  */
 
 import type {ElementRef, ElementType, MixedElement} from 'react';
+import {type PublicRootInstance} from 'react-native/Libraries/ReactPrivate/ReactNativePrivateInterface';
 
 export type MeasureOnSuccessCallback = (
   x: number,
@@ -231,7 +232,6 @@ export opaque type Node = mixed;
 export opaque type InternalInstanceHandle = mixed;
 type PublicInstance = mixed;
 type PublicTextInstance = mixed;
-export opaque type PublicRootInstance = mixed;
 
 export type ReactFabricType = {
   findHostInstance_DEPRECATED<TElementType: ElementType>(
@@ -261,6 +261,7 @@ export type ReactFabricType = {
   getPublicInstanceFromInternalInstanceHandle(
     internalInstanceHandle: InternalInstanceHandle,
   ): PublicInstance | PublicTextInstance | null,
+  getPublicInstanceFromRootTag(rootTag: number): PublicRootInstance | null,
   ...
 };
Repository: vercel/next.js
Pull request: Turbopack: Expose an environment variable for exposing the `detail` field of issues

We have a `detail` field on Turbopack issues, but there was no way to actually read that value from Next.js.

This adds a hacky environment variable, which is better than nothing.

![Screenshot 2025-11-25 at 3.32.04 PM.png](https://app.graphite.com/user-attachments/assets/aef1b6c2-062f-47c1-98ee-91be68d6cfc7.png)

Changed files:
filename: packages/next/src/shared/lib/turbopack/utils.ts
patch: @@ -17,6 +17,8 @@ export type IssuesMap = Map<IssueKey, Issue>
 export type EntryIssuesMap = Map<EntryKey, IssuesMap>
 export type TopLevelIssuesMap = IssuesMap
 
+const VERBOSE_ISSUES = !!process.env.NEXT_TURBOPACK_VERBOSE_ISSUES
+
 /**
  * An error generated from emitted Turbopack issues. This can include build
  * errors caused by issues with user code.
@@ -91,7 +93,7 @@ export function processIssues(
 }
 
 export function formatIssue(issue: Issue) {
-  const { filePath, title, description, source, importTraces } = issue
+  const { filePath, title, description, detail, source, importTraces } = issue
   let { documentationLink } = issue
   const formattedTitle = renderStyledStringToErrorAnsi(title).replace(
     /\n/g,
@@ -166,10 +168,10 @@ export function formatIssue(issue: Issue) {
     }
   }
 
-  // TODO: make it possible to enable this for debugging, but not in tests.
-  // if (detail) {
-  //   message += renderStyledStringToErrorAnsi(detail) + '\n\n'
-  // }
+  // TODO: make it easier to enable this for debugging
+  if (VERBOSE_ISSUES && detail) {
+    message += renderStyledStringToErrorAnsi(detail) + '\n\n'
+  }
 
   if (importTraces?.length) {
     // This is the same logic as in turbopack/crates/turbopack-cli-utils/src/issue.rs
Repository: facebook/react
Pull request: Trigger Discord notification when draft PR is set to "ready for review"

Follow-up for #32332. The Discord webhook seems to ignore draft PRs, which is a good thing. But when a draft PR is then later set to "ready for review" we do want to send another notification that should not be filtered out.

Changed files:
filename: .github/workflows/runtime_discord_notify.yml
patch: @@ -2,7 +2,7 @@ name: (Runtime) Discord Notify
 
 on:
   pull_request_target:
-    types: [opened]
+    types: [opened, ready_for_review]
     paths-ignore:
       - compiler/**
       - .github/workflows/compiler_**.yml
Repository: vuejs/vue
Pull request: Remove dead link

"Building Larger Apps with Vue.js" is not in the 2.X documentation anymore. 

Alternatives:
- link to the original page: https://v1.vuejs.org/guide/application.html
- link to vue-cli, as the previous page suggests? https://github.com/vuejs/vue-cli

<!--
Please make sure to read the Pull Request Guidelines:
https://github.com/vuejs/vue/blob/dev/.github/CONTRIBUTING.md#pull-request-guidelines
-->


Changed files:
filename: examples/todomvc/readme.md
patch: @@ -13,7 +13,6 @@ Here are some links you may find helpful:
 * [Official Guide](https://vuejs.org/guide/)
 * [API Reference](https://vuejs.org/api/)
 * [Examples](https://vuejs.org/examples/)
-* [Building Larger Apps with Vue.js](https://vuejs.org/guide/application.html)
 
 Get help from other Vue.js users:
Repository: electron/electron
Pull request: fix: `trafficLightPosition` incorrect with `customButtonsOnHover`

#### Description of Change

Closes https://github.com/electron/electron/issues/48463.

Fixes an issue where `trafficLightPosition` would not be correctly applied when using `titleBarStyle: 'customButtonsOnHover'`. On macOS 26, toggling the hidden state of the standard window buttons can
cause AppKit to re-layout the title bar container and reset its frame, which loses the custom margin adjustments.

To fix this re-apply the calculated geometry after visibility changes to keep the buttons at the specified margin
instead of snapping back to the default until the next manual resize.

#### 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] [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: Fixed an issue where `trafficLightPosition` would not be correctly applied when using `titleBarStyle: 'customButtonsOnHover'` on macOS 26.


Changed files:
filename: shell/browser/ui/cocoa/window_buttons_proxy.mm
patch: @@ -176,6 +176,13 @@ - (void)updateButtonsVisibility {
     [button setHidden:hidden];
     [button setNeedsDisplay:YES];
   }
+
+  // On macOS 26, toggling the hidden state of the standard window buttons can
+  // cause AppKit to re-layout the title bar container and reset its frame,
+  // which loses the custom margin adjustments. Re-apply the calculated geometry
+  // after visibility changes to keep the buttons at the specified margin
+  // instead of snapping back to the default until the next manual resize.
+  [self redraw];
 }
 
 // Return the bounds of all 3 buttons.
Repository: ollama/ollama
Pull request: Fix sprintf to snprintf

/Users/au/src/ollama/llm/ext_server/server.cpp:289:9: warning: 'sprintf' is deprecated: This function is provided for compatibility reasons only. Due to security concerns inherent in the design of sprintf(3), it is highly recommended that you use snprintf(3) instead.

Changed files:
filename: llm/ext_server/server.cpp
patch: @@ -262,7 +262,7 @@ struct server_slot {
        char buffer[512];
         double t_token = t_prompt_processing / n_prompt_tokens_processed;
         double n_tokens_second = 1e3 / t_prompt_processing * n_prompt_tokens_processed;
-        sprintf(buffer, "prompt eval time     = %10.2f ms / %5d tokens (%8.2f ms per token, %8.2f tokens per second)",
+        snprintf(buffer, sizeof(buffer), "prompt eval time     = %10.2f ms / %5d tokens (%8.2f ms per token, %8.2f tokens per second)",
                 t_prompt_processing, n_prompt_tokens_processed,
                 t_token, n_tokens_second);
         LOG_DEBUG(buffer, {
@@ -276,7 +276,7 @@ struct server_slot {
 
         t_token = t_token_generation / n_decoded;
         n_tokens_second = 1e3 / t_token_generation * n_decoded;
-        sprintf(buffer, "generation eval time = %10.2f ms / %5d runs   (%8.2f ms per token, %8.2f tokens per second)",
+        snprintf(buffer, sizeof(buffer), "generation eval time = %10.2f ms / %5d runs   (%8.2f ms per token, %8.2f tokens per second)",
                 t_token_generation, n_decoded,
                 t_token, n_tokens_second);
         LOG_DEBUG(buffer, {
@@ -288,7 +288,7 @@ struct server_slot {
             {"n_tokens_second",    n_tokens_second},
         });
 
-        sprintf(buffer, "          total time = %10.2f ms", t_prompt_processing + t_token_generation);
+        snprintf(buffer, sizeof(buffer), "          total time = %10.2f ms", t_prompt_processing + t_token_generation);
         LOG_DEBUG(buffer, {
             {"slot_id",             id},
             {"task_id",             task_id},
Repository: ollama/ollama
Pull request: Added the tool to generate 3D CAD models using Ollama


Changed files:
filename: README.md
patch: @@ -303,6 +303,7 @@ See the [API documentation](./docs/api.md) for all endpoints.
 - [BoltAI for Mac](https://boltai.com) (AI Chat Client for Mac)
 - [Harbor](https://github.com/av/harbor) (Containerized LLM Toolkit with Ollama as default backend)
 - [Go-CREW](https://www.jonathanhecl.com/go-crew/) (Powerful Offline RAG in Golang)
+- [PartCAD](https://github.com/openvmp/partcad/) (CAD model generation with OpenSCAD and CadQuery)
 
 ### Terminal