helloadhavan/github_issues huggingface dataset:
Repository: denoland/deno
Pull request: fix: format wasm stack traces per W3C spec

## Summary

- Update wasm stack trace formatting to use the W3C WebAssembly Web API spec format: `wasm-function[<funcIndex>]:0x<hexOffset>` instead of the generic `line:col` format
- Update existing `wasm_url` test expectation to match
- Add new integration test (`wasm_stack_trace`) covering:
  - Basic unreachable trap with correct `wasm-function[0]:0x<offset>` format
  - Multi-frame wasm call chain verifying correct function indices across frames
  - `Error.prepareStackTrace` callsite `toString()` producing correct wasm format

Fixes #32239
Actually fixed in https://github.com/denoland/deno/pull/32293, this just adds a test.

Changed files:
filename: tests/specs/run/wasm_stack_trace/__test__.jsonc
patch: @@ -0,0 +1,5 @@
+{
+  "args": "run --quiet wasm_stack_trace.js",
+  "output": "wasm_stack_trace.out",
+  "exitCode": 0
+}

filename: tests/specs/run/wasm_stack_trace/wasm_stack_trace.js
patch: @@ -0,0 +1,39 @@
+import source unreachableModule from "./unreachable.wasm";
+import source stackTraceModule from "./stack_trace.wasm";
+
+// Test 1: Basic unreachable trap - verify wasm stack frame format
+try {
+  const instance = new WebAssembly.Instance(unreachableModule);
+  instance.exports.main();
+} catch (e) {
+  console.log(e.stack);
+}
+
+// Test 2: Wasm -> JS -> throw - verify multi-frame wasm stack
+try {
+  const instance = new WebAssembly.Instance(stackTraceModule, {
+    env: {
+      js_func() {
+        throw new Error("from JS");
+      },
+    },
+  });
+  instance.exports.entry();
+} catch (e) {
+  console.log(e.stack);
+}
+
+// Test 3: Error.prepareStackTrace sees correct wasm frame toString
+const origPrepare = Error.prepareStackTrace;
+Error.prepareStackTrace = (_error, callsites) => {
+  return callsites
+    .map((cs) => cs.toString())
+    .join("\n");
+};
+try {
+  const instance = new WebAssembly.Instance(unreachableModule);
+  instance.exports.main();
+} catch (e) {
+  console.log(e.stack);
+}
+Error.prepareStackTrace = origPrepare;

filename: tests/specs/run/wasm_stack_trace/wasm_stack_trace.out
patch: @@ -0,0 +1,10 @@
+RuntimeError: unreachable
+    at main (wasm://wasm/[WILDCARD]:wasm-function[0]:0x[WILDCARD])
+    at [WILDCARD]wasm_stack_trace.js:7:20
+Error: from JS
+    at js_func ([WILDCARD]wasm_stack_trace.js:17:15)
+    at call_js (wasm://wasm/[WILDCARD]:wasm-function[WILDCARD]:0x[WILDCARD])
+    at entry (wasm://wasm/[WILDCARD]:wasm-function[WILDCARD]:0x[WILDCARD])
+    at [WILDCARD]wasm_stack_trace.js:21:20
+main (wasm://wasm/[WILDCARD]:wasm-function[0]:0x[WILDCARD])
+[WILDCARD]wasm_stack_trace.js:35:20
Repository: vercel/next.js
Pull request: fix: make sure caller exists in babel preset

### What?

https://github.com/vercel/next.js/pull/82676 introduced a small bug when using the Babel preset standalone without Next.js itself. It throws the following error:

```
Cannot read properties of undefined (reading 'transformMode') (While processing: "/home/runner/work/my-project/node_modules/next/babel.js")
```

### How?

Other uses of `api.caller` in the preset checks if the caller exists before accessing its properties. This PR makes sure we're doing the same in the standalone check.


Changed files:
filename: packages/next/src/build/babel/preset.ts
patch: @@ -145,7 +145,7 @@ export default (
   const isStandalone = api.caller(
     // NOTE: `transformMode` may be undefined if the user configured `babel-loader` themselves. In
     // this case, we should assume we're in 'default' mode.
-    (caller: any) => caller.transformMode === 'standalone'
+    (caller: any) => !!caller && caller.transformMode === 'standalone'
   )
   const isServer = api.caller((caller: any) => !!caller && caller.isServer)
Repository: denoland/deno
Pull request: fix(ext/node): remove fs.promises.fstat, not a public Node.js API

Closes https://github.com/denoland/deno/issues/27423

`fs.promises` in Node.js does not expose `fstat` or other `f`-prefixed APIs. The promise-based equivalent is `FileHandle.stat()`, which is already supported via `handle.ts`.

This removes the erroneous `fs.promises.fstat` export from both `polyfills/fs/promises.ts` and the `promises` object in `polyfills/fs.ts`.


Changed files:
filename: ext/node/polyfills/fs.ts
patch: @@ -24,7 +24,7 @@ import { exists, existsSync } from "ext:deno_node/_fs/_fs_exists.ts";
 import { fchmod, fchmodSync } from "ext:deno_node/_fs/_fs_fchmod.ts";
 import { fchown, fchownSync } from "ext:deno_node/_fs/_fs_fchown.ts";
 import { fdatasync, fdatasyncSync } from "ext:deno_node/_fs/_fs_fdatasync.ts";
-import { fstat, fstatPromise, fstatSync } from "ext:deno_node/_fs/_fs_fstat.ts";
+import { fstat, fstatSync } from "ext:deno_node/_fs/_fs_fstat.ts";
 import { fsync, fsyncSync } from "ext:deno_node/_fs/_fs_fsync.ts";
 import { ftruncate, ftruncateSync } from "ext:deno_node/_fs/_fs_ftruncate.ts";
 import { futimes, futimesSync } from "ext:deno_node/_fs/_fs_futimes.ts";
@@ -212,7 +212,6 @@ const promises = {
   lstat: lstatPromise,
   stat: statPromise,
   statfs: statfsPromise,
-  fstat: fstatPromise,
   link: linkPromise,
   unlink: unlinkPromise,
   chmod: chmodPromise,

filename: ext/node/polyfills/fs/promises.ts
patch: @@ -17,7 +17,6 @@ export const symlink = fsPromises.symlink;
 export const lstat = fsPromises.lstat;
 export const stat = fsPromises.stat;
 export const statfs = fsPromises.statfs;
-export const fstat = fsPromises.fstat;
 export const link = fsPromises.link;
 export const unlink = fsPromises.unlink;
 export const chmod = fsPromises.chmod;
Repository: nodejs/node
Pull request: doc: update environment_variables

The example missed a character - `my variable` instead of `my variable a`.
Also, `treaded` was changed to `treated`.

Changed files:
filename: doc/api/environment_variables.md
patch: @@ -96,10 +96,10 @@ For example:
     MY_VAR_B   =    '   my variable b   '
 ```
 
-will be treaded identically to:
+will be treated identically to:
 
 ```text
-MY_VAR_A = my variable
+MY_VAR_A = my variable a
 MY_VAR_B = '   my variable b   '
 ```
Repository: ollama/ollama
Pull request: Add license in file header for vendored llama.cpp code


Changed files:
filename: llm/ext_server/server.cpp
patch: @@ -1,3 +1,25 @@
+// MIT License
+
+// Copyright (c) 2023 Georgi Gerganov
+
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+
 #include "common.h"
 #include "llama.h"
 #include "grammar-parser.h"

filename: llm/ext_server/utils.hpp
patch: @@ -1,3 +1,25 @@
+// MIT License
+
+// Copyright (c) 2023 Georgi Gerganov
+
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+
+// The above copyright notice and this permission notice shall be included in all
+// copies or substantial portions of the Software.
+
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+// SOFTWARE.
+
 #pragma once
 
 #include <string>
Repository: nodejs/node
Pull request: build: fix OpenSSL version detection

Fix OpenSSL version detection in `configure.py` when `pkg-config` is used to configure building with a shared OpenSSL library.

Fixes: https://github.com/nodejs/node/pull/59249#discussion_r2249368196

---

cc @jasnell 
<!--
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: configure.py
patch: @@ -1205,7 +1205,7 @@ def get_gas_version(cc):
   warn(f'Could not recognize `gas`: {gas_ret}')
   return '0.0'
 
-def get_openssl_version():
+def get_openssl_version(o):
   """Parse OpenSSL version from opensslv.h header file.
 
   Returns the version as a number matching OPENSSL_VERSION_NUMBER format:
@@ -1219,6 +1219,9 @@ def get_openssl_version():
       args = ['-I', 'deps/openssl/openssl/include'] + args
     elif options.shared_openssl_includes:
       args = ['-I', options.shared_openssl_includes] + args
+    else:
+      for dir in o['include_dirs']:
+        args = ['-I', dir] + args
 
     proc = subprocess.Popen(
       shlex.split(CC) + args,
@@ -1887,10 +1890,10 @@ def without_ssl_error(option):
   if options.quic:
     o['defines'] += ['NODE_OPENSSL_HAS_QUIC']
 
-  o['variables']['openssl_version'] = get_openssl_version()
-
   configure_library('openssl', o)
 
+  o['variables']['openssl_version'] = get_openssl_version(o)
+
 def configure_sqlite(o):
   o['variables']['node_use_sqlite'] = b(not options.without_sqlite)
   if options.without_sqlite:
Repository: facebook/react
Pull request: [ci] Add devtools regression workflow

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

More or less a straight copy from the circleci config. I spotted some
inefficiencies but will fix those later to make reviewing this easier.

Changed files:
filename: .circleci/config.yml
patch: @@ -124,24 +124,6 @@ jobs:
           path: ./build/devtools/firefox-extension.zip
           destination: react-devtools-firefox-extension.zip
 
-  run_devtools_e2e_tests:
-    docker: *docker
-    environment: *environment
-    steps:
-      - checkout
-      - attach_workspace:
-          at: .
-      - setup_node_modules
-      - run:
-          name: Playwright install deps
-          command: |
-            npx playwright install
-            sudo npx playwright install-deps
-      - run:
-          environment:
-            RELEASE_CHANNEL: experimental
-          command: ./scripts/circleci/run_devtools_e2e_tests.js
-
   run_devtools_tests_for_versions:
     docker: *docker
     environment: *environment

filename: .github/workflows/devtools_regression_tests.yml
patch: @@ -1,9 +1,6 @@
 name: (DevTools) Regression Tests
 
 on:
-  pull_request:
-    branches:
-      - 'gh/poteto/**' # @nocommit
   schedule:
     - cron: 0 0 * * *
   workflow_dispatch:
Repository: ollama/ollama
Pull request: Remove need for `$VSINSTALLDIR` since build will fail if `ninja.exe` cannot be found


Changed files:
filename: docs/development.md
patch: @@ -116,29 +116,30 @@ Note: The windows build for Ollama is still under development.
 
 Install required tools:
 
-- MSVC toolchain - C/C++ and cmake as minimal requirements - You must build from a "Developer Shell" with the environment variables set
-- go version 1.22 or higher
+- MSVC toolchain - C/C++ and cmake as minimal requirements
+- Go version 1.22 or higher
 - MinGW (pick one variant) with GCC.
-  - <https://www.mingw-w64.org/>
-  - <https://www.msys2.org/>
+  - [MinGW-w64](https://www.mingw-w64.org/)
+  - [MSYS2](https://www.msys2.org/)
 
 ```powershell
 $env:CGO_ENABLED="1"
-
 go generate ./...
-
 go build .
 ```
 
 #### Windows CUDA (NVIDIA)
 
-In addition to the common Windows development tools described above, install CUDA **AFTER** you install MSVC.
+In addition to the common Windows development tools described above, install CUDA after installing MSVC.
 
 - [NVIDIA CUDA](https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html)
 
 
 #### Windows ROCm (AMD Radeon)
 
-In addition to the common Windows development tools described above, install AMDs HIP package **AFTER** you install MSVC
+In addition to the common Windows development tools described above, install AMDs HIP package after installing MSVC.
 
 - [AMD HIP](https://www.amd.com/en/developer/resources/rocm-hub/hip-sdk.html)
+- [Strawberry Perl](https://strawberryperl.com/)
+
+Lastly, add `ninja.exe` included with MSVC to the system path (e.g. `C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja`).
\ No newline at end of file

filename: llm/generate/gen_windows.ps1
patch: @@ -27,12 +27,6 @@ function amdGPUs {
 }
 
 function init_vars {
-    # Verify the environment is a Developer Shell for MSVC 2019
-    write-host $env:VSINSTALLDIR
-    if (($env:VSINSTALLDIR -eq $null)) {
-        Write-Error "`r`nBUILD ERROR - YOUR DEVELOPMENT ENVIRONMENT IS NOT SET UP CORRECTLY`r`nTo build Ollama you must run from an MSVC Developer Shell`r`nSee .\docs\development.md for instructions to set up your dev environment"
-        exit 1
-    }
     $script:SRC_DIR = $(resolve-path "..\..\")
     $script:llamacppDir = "../llama.cpp"
     $script:cmakeDefs = @(
@@ -261,7 +255,7 @@ if ($null -ne $env:HIP_PATH) {
         )
 
     # Make sure the ROCm binary dir is first in the path
-    $env:PATH="$env:HIP_PATH\bin;$env:VSINSTALLDIR\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja;$env:PATH"
+    $env:PATH="$env:HIP_PATH\bin;$env:PATH"
 
     # We have to clobber the LIB var from the developer shell for clang to work properly
     $env:LIB=""
Repository: ggml-org/llama.cpp
Pull request: CUDA: fix FP16 overflow in tile FA kernel

Follow-up to https://github.com/ggml-org/llama.cpp/pull/17558 .

I forgot that the tile kernel would also be suffering the same problem with overflows. Unfortunately unlike the vector kernel the tile kernel is compute bound rather than I/O bound so simply switching the arithmetic to FP32 is not a good option. I think the least bad option is to scale down Q and to then scale up KQ afterwards again. The tradeoff is potentially flushing some small values < $2^{-12}$ to zero. Affected GPUs are P100s, V100s, and RDNA1 or older AMD GPUs.

Changed files:
filename: ggml/src/ggml-cuda/fattn-tile.cuh
patch: @@ -564,6 +564,12 @@ static __device__ __forceinline__ void flash_attn_tile_iter(
         for (int i_KQ_0 = 0; i_KQ_0 < nbatch_fa; i_KQ_0 += np*warp_size) {
             const int i_KQ = i_KQ_0 + (threadIdx.y % np)*warp_size + threadIdx.x;
 
+#if defined(FAST_FP16_AVAILABLE) && !defined(V_DOT2_F32_F16_AVAILABLE)
+            // Without the v_dot2_f32_f16 instruction there is a higher risk of numerical overflow in the KQ calculation.
+            // Therefore, scale down Q values and apply the inverse scale the FP32 KQ values afterwards again.
+            KQ_acc[i_KQ_0/(np*warp_size)*cpw + jc0] *= 4.0f;
+#endif // defined(FAST_FP16_AVAILABLE) && !defined(V_DOT2_F32_F16_AVAILABLE)
+
             if (use_logit_softcap) {
                 KQ_acc[(i_KQ_0/(np*warp_size))*cpw + jc0] = logit_softcap * tanhf(KQ_acc[(i_KQ_0/(np*warp_size))*cpw + jc0]);
             }
@@ -858,6 +864,11 @@ static __global__ void flash_attn_tile(
 #pragma unroll
                 for (int i1 = 0; i1 < cpy_ne_D; i1 += 2) {
                     tmp_h2[i1/2] = make_half2(tmp_f[i1 + 0], tmp_f[i1 + 1]);
+#if defined(FAST_FP16_AVAILABLE) && !defined(V_DOT2_F32_F16_AVAILABLE)
+                    // Without the v_dot2_f32_f16 instruction there is a higher risk of numerical overflow in the KQ calculation.
+                    // Therefore, scale down Q values and apply the inverse scale the FP32 KQ values afterwards again.
+                    tmp_h2[i1/2] *= make_half2(0.25f, 0.25f);
+#endif // defined(FAST_FP16_AVAILABLE) && !defined(V_DOT2_F32_F16_AVAILABLE)
                 }
                 ggml_cuda_memcpy_1<sizeof(tmp_h2)>(
                     &Q_tmp[jc*(DKQ/2) + i0/2 + (threadIdx.y % np)*(warp_size*cpy_ne_D/2) + threadIdx.x*(cpy_ne_D/2)],
Repository: ollama/ollama
Pull request: malformed markdown link

Just a quick PR for malformed link on the README I noticed.

Changed files:
filename: README.md
patch: @@ -287,8 +287,8 @@ See the [API documentation](./docs/api.md) for all endpoints.
 - [Odin Runes](https://github.com/leonid20000/OdinRunes)
 - [LLM-X: Progressive Web App](https://github.com/mrdjohnson/llm-x)
 - [AnythingLLM (Docker + MacOs/Windows/Linux native app)](https://github.com/Mintplex-Labs/anything-llm)
-- [Ollama Basic Chat: Uses HyperDiv Reactive UI] (https://github.com/rapidarchitect/ollama_basic_chat)
-- [Ollama-chats RPG: (https://github.com/drazdra/ollama-chats)]
+- [Ollama Basic Chat: Uses HyperDiv Reactive UI](https://github.com/rapidarchitect/ollama_basic_chat)
+- [Ollama-chats RPG](https://github.com/drazdra/ollama-chats)
 
 ### Terminal
Repository: denoland/deno
Pull request: fix(ext/node): support ipv6 host in `node:http`

Closes #21864. Full reproduction of the bug:

```ts
import { once } from "node:events";
import { request } from "node:http";

await using _server = Deno.serve({ hostname: "::1" }, () => new Response());
const req = request("http://[::1]:8000").end();
const [res] = await once(req, "response");
console.log(res.statusCode); // should print `200`
```


Changed files:
filename: ext/node/polyfills/http.ts
patch: @@ -98,8 +98,12 @@ import { methods as METHODS } from "node:_http_common";
 import { deprecate } from "node:util";
 
 const { internalRidSymbol } = core;
-const { ArrayIsArray, StringPrototypeToLowerCase, SafeArrayIterator } =
-  primordials;
+const {
+  ArrayIsArray,
+  StringPrototypeIncludes,
+  StringPrototypeToLowerCase,
+  SafeArrayIterator,
+} = primordials;
 
 type Chunk = string | Buffer | Uint8Array;
 
@@ -969,9 +973,9 @@ class ClientRequest extends OutgoingMessage {
       path = "/" + path;
     }
     const url = new URL(
-      `${protocol}//${auth ? `${auth}@` : ""}${host}${
-        port === 80 ? "" : `:${port}`
-      }${path}`,
+      `${protocol}//${auth ? `${auth}@` : ""}${
+        StringPrototypeIncludes(host, ":") ? `[${host}]` : host
+      }${port === 80 ? "" : `:${port}`}${path}`,
     );
     url.hash = hash;
     return url.href;

filename: tests/unit_node/http_test.ts
patch: @@ -2,7 +2,7 @@
 
 // deno-lint-ignore-file no-console
 
-import EventEmitter from "node:events";
+import { EventEmitter, once } from "node:events";
 import http, {
   IncomingMessage,
   type RequestOptions,
@@ -11,7 +11,7 @@ import http, {
 import url from "node:url";
 import https from "node:https";
 import zlib from "node:zlib";
-import net, { Socket } from "node:net";
+import net, { type AddressInfo, Socket } from "node:net";
 import fs from "node:fs";
 import { text } from "node:stream/consumers";
 
@@ -441,6 +441,19 @@ Deno.test("[node/http] request with headers", async () => {
   await promise;
 });
 
+Deno.test("[node/http] request with ipv6 host", async () => {
+  const server = http.createServer((_req, res) => res.end()).listen(0, "::1");
+  await once(server, "listening");
+  const { port } = server.address() as AddressInfo;
+  const req = http.request(`http://[::1]:${port}`).end();
+  const [res] = await once(req, "response") as [IncomingMessage];
+  assertEquals(res.statusCode, 200);
+  res.resume();
+  await once(res, "end");
+  server.close();
+  await once(server, "close");
+});
+
 Deno.test("[node/http] non-string buffer response", {
   // TODO(kt3k): Enable sanitizer. A "zlib" resource is leaked in this test case.
   sanitizeResources: false,
Repository: huggingface/transformers
Pull request: Fix mxfp4 dequantization

# What does this PR do?

https://github.com/huggingface/transformers/pull/41222 changed the signature of a caller in TP without updating the function calls, so `dequantization` is currently broken. This fixes it.

Changed files:
filename: src/transformers/integrations/mxfp4.py
patch: @@ -343,7 +343,6 @@ def dequantize(module, param_name, param_value, target_device, dq_param_name, **
                     to_contiguous,
                     rank,
                     device_mesh,
-                    set_param=False,
                 )
             blocks_attr = f"{proj}_blocks"
             scales_attr = f"{proj}_scales"
Repository: ollama/ollama
Pull request: Update README.md

adding drazdra/ollama-chats to the list of UI :)

Changed files:
filename: README.md
patch: @@ -280,6 +280,7 @@ See the [API documentation](./docs/api.md) for all endpoints.
 - [NextChat](https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web) with [Get Started Doc](https://docs.nextchat.dev/models/ollama)
 - [Odin Runes](https://github.com/leonid20000/OdinRunes)
 - [LLM-X: Progressive Web App](https://github.com/mrdjohnson/llm-x)
+- [Ollama-chats: (https://github.com/drazdra/ollama-chats)] - one-file browser chat rpg with Ollama
 
 ### Terminal