helloadhavan/github_issues huggingface dataset:
Repository: ollama/ollama
Pull request: fix(routes): skip bad manifests


Changed files:
filename: server/routes.go
patch: @@ -735,24 +735,27 @@ func (s *Server) ListModelsHandler(c *gin.Context) {
 
 			n := model.ParseNameFromFilepath(rel)
 			if !n.IsValid() {
-				slog.Info("invalid model filepath", "path", rel)
+				slog.Warn("bad manifest filepath", "path", rel)
 				return nil
 			}
 
 			m, err := ParseNamedManifest(n)
 			if err != nil {
-				return err
+				slog.Warn("bad manifest", "name", n, "error", err)
+				return nil
 			}
 
 			f, err := m.Config.Open()
 			if err != nil {
-				return err
+				slog.Warn("bad manifest config filepath", "name", n, "error", err)
+				return nil
 			}
 			defer f.Close()
 
 			var c ConfigV2
 			if err := json.NewDecoder(f).Decode(&c); err != nil {
-				return err
+				slog.Warn("bad manifest config", "name", n, "error", err)
+				return nil
 			}
 
 			// tag should never be masked
Repository: facebook/react
Pull request: Don't read currentTransition back from internals

This code is weird. It reads back the transition that it just set from the shared internals. It's almost like it expects it to be a getter or something.

This avoids that and makes it consistent with what ReactFiberHooks already does.

Changed files:
filename: packages/react/src/ReactStartTransition.js
patch: @@ -23,20 +23,17 @@ export function startTransition(
   options?: StartTransitionOptions,
 ) {
   const prevTransition = ReactSharedInternals.T;
-  const transition: BatchConfigTransition = {};
-  ReactSharedInternals.T = transition;
-  const currentTransition = ReactSharedInternals.T;
+  const currentTransition: BatchConfigTransition = {};
+  ReactSharedInternals.T = currentTransition;
 
   if (__DEV__) {
-    ReactSharedInternals.T._updatedFibers = new Set();
+    currentTransition._updatedFibers = new Set();
   }
 
   if (enableTransitionTracing) {
     if (options !== undefined && options.name !== undefined) {
-      // $FlowFixMe[incompatible-use] found when upgrading Flow
-      ReactSharedInternals.T.name = options.name;
-      // $FlowFixMe[incompatible-use] found when upgrading Flow
-      ReactSharedInternals.T.startTime = -1;
+      currentTransition.name = options.name;
+      currentTransition.startTime = -1;
     }
   }
 
@@ -45,7 +42,7 @@ export function startTransition(
       const returnValue = scope();
       const onStartTransitionFinish = ReactSharedInternals.S;
       if (onStartTransitionFinish !== null) {
-        onStartTransitionFinish(transition, returnValue);
+        onStartTransitionFinish(currentTransition, returnValue);
       }
       if (
         typeof returnValue === 'object' &&
Repository: ggml-org/llama.cpp
Pull request: rpc: fix segfault on invalid endpoint format

When the `endpoint` does not contain a port number, `get_socket` returns nullptr. This causes a segmentation fault when `send_rpc_cmd` subsequently dereferences the null sock pointer.

https://github.com/ggml-org/llama.cpp/blob/af3be131c065a38e476c34295bceda6cb956e7d7/ggml/src/ggml-rpc/ggml-rpc.cpp#L2054-L2060

Related issue:
- https://github.com/ggml-org/llama.cpp/issues/18377

Changed files:
filename: common/arg.cpp
patch: @@ -2017,7 +2017,7 @@ common_params_context common_params_parser_init(common_params & params, llama_ex
     if (llama_supports_rpc()) {
         add_opt(common_arg(
             {"--rpc"}, "SERVERS",
-            "comma separated list of RPC servers",
+            "comma separated list of RPC servers (host:port)",
             [](common_params & params, const std::string & value) {
                 add_rpc_devices(value);
                 GGML_UNUSED(params);

filename: ggml/src/ggml-rpc/ggml-rpc.cpp
patch: @@ -524,6 +524,7 @@ static std::shared_ptr<socket_t> get_socket(const std::string & endpoint) {
     std::string host;
     int port;
     if (!parse_endpoint(endpoint, host, port)) {
+        GGML_LOG_ERROR("Failed to parse endpoint: %s\n", endpoint.c_str());
         return nullptr;
     }
 #ifdef _WIN32
@@ -2053,6 +2054,10 @@ ggml_backend_reg_t ggml_backend_rpc_reg(void) {
 
 static uint32_t ggml_backend_rpc_get_device_count(const char * endpoint) {
     auto sock = get_socket(endpoint);
+    if (sock == nullptr) {
+        GGML_LOG_ERROR("Failed to connect to %s\n", endpoint);
+        return 0;
+    }
     rpc_msg_device_count_rsp response;
     bool status = send_rpc_cmd(sock, RPC_CMD_DEVICE_COUNT, nullptr, 0, &response, sizeof(response));
     RPC_STATUS_ASSERT(status);
Repository: electron/electron
Pull request: ci: set git `core.longpaths` to true

Backport of #47695

See that PR for details.


Notes: none

Changed files:
filename: .github/actions/install-build-tools/action.yml
patch: @@ -11,6 +11,7 @@ runs:
         git config --global core.autocrlf false
         git config --global branch.autosetuprebase always
         git config --global core.fscache true
+        git config --global core.longpaths true
         git config --global core.preloadindex true
       fi
       export BUILD_TOOLS_SHA=6e8526315ea3b4828882497e532b8340e64e053c

filename: .github/workflows/pipeline-segment-electron-test.yml
patch: @@ -135,6 +135,7 @@ jobs:
         git config --global core.autocrlf false
         git config --global branch.autosetuprebase always
         git config --global core.fscache true
+        git config --global core.longpaths true
         git config --global core.preloadindex true
         git clone --filter=tree:0 https://chromium.googlesource.com/chromium/tools/depot_tools.git
         # Ensure depot_tools does not update.
Repository: ggml-org/llama.cpp
Pull request: llama-fit-params: fix step size for last device

Fixes https://github.com/ggml-org/llama.cpp/issues/18337 .

Follow-up to https://github.com/ggml-org/llama.cpp/pull/18148 , I forgot to adjust one spot in the code w.r.t. having to leave at least one full layer on the last device.

Changed files:
filename: src/llama.cpp
patch: @@ -512,6 +512,9 @@ static void llama_params_fit_impl(
             if (mem_high[id] > targets[id]) {
                 assert(ngl_per_device_high[id].n_layer > ngl_per_device[id].n_layer);
                 uint32_t delta = ngl_per_device_high[id].n_layer - ngl_per_device[id].n_layer;
+                if (hp_nex > 0 && size_t(id) == nd - 1) {
+                    delta--;
+                }
                 LLAMA_LOG_DEBUG("%s: start filling device %" PRIu32 ", delta=%" PRIu32 "\n", __func__, id, delta);
                 while (delta > 1) {
                     uint32_t step_size = int64_t(delta) * (targets[id] - mem[id]) / (mem_high[id] - mem[id]);
Repository: electron/electron
Pull request: ci: remove `kTCCServiceMicrophone` change

Backport of #47816

See that PR for details.


Notes: none


Changed files:
filename: .github/workflows/pipeline-segment-electron-test.yml
patch: @@ -100,7 +100,6 @@ jobs:
         }
 
         userValuesArray=(
-            "'kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
             "'kTCCServiceCamera','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
             "'kTCCServiceBluetoothAlways','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
             "'kTCCServiceAppleEvents','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
Repository: huggingface/transformers
Pull request: Fix bark after #41445

# What does this PR do?

Some Bark model classes are not `GenerationMixin` and have their own `generation` method.

#41445 makes change to `GenerationMixin` and those changes are not applied to those Bark model classes, then causes the bark tests to fail. One example is

> tests/models/bark/test_modeling_bark.py::BarkModelIntegrationTests::test_generate_batching

This PR adds `GenerationMixin` to those models and the tests pass now.




Changed files:
filename: src/transformers/models/bark/modeling_bark.py
patch: @@ -1318,7 +1318,7 @@ def generate(
     output sound according to specific predefined voice.
     """
 )
-class BarkModel(BarkPreTrainedModel):
+class BarkModel(BarkPreTrainedModel, GenerationMixin):
     config: BarkConfig
 
     def __init__(self, config):
Repository: electron/electron
Pull request: ci: remove `kTCCServiceMicrophone` change

#### Description of Change

Ref https://github.com/actions/runner-images/pull/11412

#### 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: none


Changed files:
filename: .github/workflows/pipeline-segment-electron-test.yml
patch: @@ -100,7 +100,6 @@ jobs:
         }
 
         userValuesArray=(
-            "'kTCCServiceMicrophone','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
             "'kTCCServiceCamera','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
             "'kTCCServiceBluetoothAlways','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
             "'kTCCServiceAppleEvents','/usr/local/opt/runner/provisioner/provisioner',1,2,4,1,NULL,NULL,0,'UNUSED',NULL,0,1687786159"
Repository: ollama/ollama
Pull request: Community Integration: PromptingTools.jl

First of all, thank you for the awesome library!

I was wondering if you would consider adding a link to PromptingTools.jl, a Julia library that has had an integration with Ollama since its early days.

Changed files:
filename: README.md
patch: @@ -357,6 +357,7 @@ See the [API documentation](./docs/api.md) for all endpoints.
 - [Ollama Connector for SAP ABAP](https://github.com/b-tocs/abap_btocs_ollama)
 - [Testcontainers](https://testcontainers.com/modules/ollama/)
 - [Portkey](https://portkey.ai/docs/welcome/integration-guides/ollama)
+- [PromptingTools.jl](https://github.com/svilupp/PromptingTools.jl) with an [example](https://svilupp.github.io/PromptingTools.jl/dev/examples/working_with_ollama)
 
 ### Mobile
Repository: denoland/deno
Pull request: test: prevent Claude from running entire spec suite

I can't make Claude stop doing this, so I'm gonna punish it with a panic.

Changed files:
filename: tests/specs/mod.rs
patch: @@ -264,6 +264,18 @@ struct StepMetaData {
 }
 
 pub fn main() {
+  // When running from Claude Code, require a test filter (additional arg)
+  // to prevent accidentally running the entire spec test suite.
+  if std::env::var_os("CLAUDE_CODE_ENTRYPOINT").is_some() {
+    let has_arg = std::env::args().skip(1).len() > 0;
+    if !has_arg {
+      panic!(
+        "Running the entire spec test suite from Claude Code is not allowed. \
+         Please provide a test filter, e.g.: ./x test-spec my_test_name"
+      );
+    }
+  }
+
   let ci_hash = test_util::hash::check_ci_hash("specs", |hasher| {
     let tests = test_util::tests_path();
     hasher
Repository: ollama/ollama
Pull request: fix typo


Changed files:
filename: llm/server.go
patch: @@ -218,7 +218,7 @@ func NewLlamaServer(gpus gpu.GpuInfoList, model string, ggml *GGML, adapters, pr
 		if dir == "" {
 			// Shouldn't happen
 			finalErr = fmt.Errorf("[%d] server %s not listed in available servers %v", i, servers[i], availableServers)
-			slog.Error("sever list inconsistent", "error", finalErr)
+			slog.Error("server list inconsistent", "error", finalErr)
 			continue
 		}
Repository: vercel/next.js
Pull request: fix: process.env.TURBOPACK maybe undefined

<!-- Thanks for opening a PR! Your contribution is much appreciated.
To make sure your PR is handled as smoothly as possible we request that you follow the checklist sections below.
Choose the right checklist for the change(s) that you're making:

## For Contributors

### Improving Documentation

- Run `pnpm prettier-fix` to fix formatting issues before opening the PR.
- Read the Docs Contribution Guide to ensure your contribution follows the docs guidelines: https://nextjs.org/docs/community/contribution-guide

### Fixing a bug

- Related issues linked using `fixes #number`
- Tests added. See: https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs
- Errors have a helpful link attached, see https://github.com/vercel/next.js/blob/canary/contributing.md

### Adding a feature

- Implements an existing feature request or RFC. Make sure the feature request has been accepted for implementation before opening a PR. (A discussion must be opened, see https://github.com/vercel/next.js/discussions/new?category=ideas)
- Related issues/discussions are linked using `fixes #number`
- e2e tests added (https://github.com/vercel/next.js/blob/canary/contributing/core/testing.md#writing-tests-for-nextjs)
- Documentation added
- Telemetry added. In case of a feature if it's used or not.
- Errors have a helpful link attached, see https://github.com/vercel/next.js/blob/canary/contributing.md


## For Maintainers

- Minimal description (aim for explaining to someone not on the team to understand the PR)
- When linking to a Slack thread, you might want to share details of the conclusion
- Link both the Linear (Fixes NEXT-xxx) and the GitHub issues
- Add review comments if necessary to explain to the reviewer the logic behind a change

### What?

### Why?

### How?

Closes NEXT-
Fixes #

-->


Changed files:
filename: packages/next-rspack/index.js
patch: @@ -4,7 +4,7 @@ module.exports = function withRspack(config) {
     // we have already been called.  This can happen when using build workers.
     return config
   }
-  if (process.env.TURBOPACK === 'auto') {
+  if (!process.env.TURBOPACK || process.env.TURBOPACK === 'auto') {
     delete process.env.TURBOPACK
     process.env.RSPACK_CONFIG_VALIDATE = 'loose-silent'
     process.env.NEXT_RSPACK = 'true'
Repository: electron/electron
Pull request: build: update codespace `on-create-command`

Backport of #47810

See that PR for details.


Notes: none

Changed files:
filename: .devcontainer/on-create-command.sh
patch: @@ -58,13 +58,13 @@ if [ ! -f $buildtools/configs/evm.testing.json ]; then
             },
             \"\$schema\": \"file:///home/builduser/.electron_build_tools/evm-config.schema.json\",
             \"configValidationLevel\": \"strict\",
-            \"reclient\": \"$1\",
-            \"preserveXcode\": 5
+            \"remoteBuild\": \"reclient\",
+            \"preserveSDK\": 5
         }
     " >$buildtools/configs/evm.testing.json
   }
 
-  write_config remote_exec
+  write_config
 
   e use testing 
 else
Repository: facebook/react
Pull request: [compiler][eslint] Report bailout diagnostics with correct column #

Compiler bailout diagnostics should now highlight only the first line of the source location span.

(Resubmission of #30423 which was reverted due to invalid column number.)

Changed files:
filename: compiler/packages/eslint-plugin-react-compiler/src/rules/ReactCompilerRule.ts
patch: @@ -166,9 +166,33 @@ const rule: Rule.RuleModule = {
               detail.loc != null && typeof detail.loc !== 'symbol'
                 ? ` (@:${detail.loc.start.line}:${detail.loc.start.column})`
                 : '';
+            /**
+             * Report bailouts with a smaller span (just the first line).
+             * Compiler bailout lints only serve to flag that a react function
+             * has not been optimized by the compiler for codebases which depend
+             * on compiler memo heavily for perf. These lints are also often not
+             * actionable.
+             */
+            let endLoc;
+            if (event.fnLoc.end.line === event.fnLoc.start.line) {
+              endLoc = event.fnLoc.end;
+            } else {
+              endLoc = {
+                line: event.fnLoc.start.line,
+                // Babel loc line numbers are 1-indexed
+                column: sourceCode.split(
+                  /\r?\n|\r|\n/g,
+                  event.fnLoc.start.line,
+                )[event.fnLoc.start.line - 1].length,
+              };
+            }
+            const firstLineLoc = {
+              start: event.fnLoc.start,
+              end: endLoc,
+            };
             context.report({
               message: `[ReactCompilerBailout] ${detail.reason}${locStr}`,
-              loc: event.fnLoc,
+              loc: firstLineLoc,
               suggest,
             });
           }
Repository: ollama/ollama
Pull request: Prune partial downloads


Changed files:
filename: server/images.go
patch: @@ -565,7 +565,7 @@ func CreateModel(ctx context.Context, name, modelFileDir, quantization string, m
 	}
 
 	if !envconfig.NoPrune {
-		if err := deleteUnusedLayers(nil, unref, false); err != nil {
+		if err := deleteUnusedLayers(nil, unref); err != nil {
 			return err
 		}
 	}
@@ -613,7 +613,7 @@ func CopyModel(src, dst model.Name) error {
 	return err
 }
 
-func deleteUnusedLayers(skipModelPath *ModelPath, deleteMap map[string]struct{}, dryRun bool) error {
+func deleteUnusedLayers(skipModelPath *ModelPath, deleteMap map[string]struct{}) error {
 	fp, err := GetManifestPath()
 	if err != nil {
 		return err
@@ -660,13 +660,9 @@ func deleteUnusedLayers(skipModelPath *ModelPath, deleteMap map[string]struct{},
 			slog.Info(fmt.Sprintf("couldn't get file path for '%s': %v", k, err))
 			continue
 		}
-		if !dryRun {
-			if err := os.Remove(fp); err != nil {
-				slog.Info(fmt.Sprintf("couldn't remove file '%s': %v", fp, err))
-				continue
-			}
-		} else {
-			slog.Info(fmt.Sprintf("wanted to remove: %s", fp))
+		if err := os.Remove(fp); err != nil {
+			slog.Info(fmt.Sprintf("couldn't remove file '%s': %v", fp, err))
+			continue
 		}
 	}
 
@@ -689,14 +685,25 @@ func PruneLayers() error {
 	for _, blob := range blobs {
 		name := blob.Name()
 		name = strings.ReplaceAll(name, "-", ":")
-		if strings.HasPrefix(name, "sha256:") {
-			deleteMap[name] = struct{}{}
+
+		_, err := GetBlobsPath(name)
+		if err != nil {
+			if errors.Is(err, ErrInvalidDigestFormat) {
+				// remove invalid blobs (e.g. partial downloads)
+				if err := os.Remove(filepath.Join(p, blob.Name())); err != nil {
+					slog.Error("couldn't remove blob", "blob", blob.Name(), "error", err)
+				}
+			}
+
+			continue
 		}
+
+		deleteMap[name] = struct{}{}
 	}
 
 	slog.Info(fmt.Sprintf("total blobs: %d", len(deleteMap)))
 
-	err = deleteUnusedLayers(nil, deleteMap, false)
+	err = deleteUnusedLayers(nil, deleteMap)
 	if err != nil {
 		return err
 	}
@@ -752,7 +759,7 @@ func DeleteModel(name string) error {
 	}
 	deleteMap[manifest.Config.Digest] = struct{}{}
 
-	err = deleteUnusedLayers(&mp, deleteMap, false)
+	err = deleteUnusedLayers(&mp, deleteMap)
 	if err != nil {
 		return err
 	}
@@ -912,7 +919,7 @@ func PullModel(ctx context.Context, name string, regOpts *registryOptions, fn fu
 
 	if noprune == "" {
 		fn(api.ProgressResponse{Status: "removing any unused layers"})
-		err = deleteUnusedLayers(nil, deleteMap, false)
+		err = deleteUnusedLayers(nil, deleteMap)
 		if err != nil {
 			return err
 		}

filename: server/modelpath.go
patch: @@ -154,9 +154,6 @@ func GetBlobsPath(digest string) (string, error) {
 	// only accept actual sha256 digests
 	pattern := "^sha256[:-][0-9a-fA-F]{64}$"
 	re := regexp.MustCompile(pattern)
-	if err != nil {
-		return "", err
-	}
 
 	if digest != "" && !re.MatchString(digest) {
 		return "", ErrInvalidDigestFormat
Repository: facebook/react
Pull request: Remove execution context check from shouldProfile

I don't know why this is here since all these callsites are within the CommitWork/CommitEffects helpers.

This should help with inlining.


Changed files:
filename: packages/react-reconciler/src/ReactFiberCommitEffects.js
patch: @@ -46,9 +46,6 @@ import {getPublicInstance} from './ReactFiberConfig';
 import {
   captureCommitPhaseError,
   setIsRunningInsertionEffect,
-  getExecutionContext,
-  CommitContext,
-  NoContext,
 } from './ReactFiberWorkLoop';
 import {
   NoFlags as NoHookEffect,
@@ -81,8 +78,7 @@ function shouldProfile(current: Fiber): boolean {
   return (
     enableProfilerTimer &&
     enableProfilerCommitHooks &&
-    (current.mode & ProfileMode) !== NoMode &&
-    (getExecutionContext() & CommitContext) !== NoContext
+    (current.mode & ProfileMode) !== NoMode
   );
 }
 
@@ -919,7 +915,7 @@ export function commitProfilerUpdate(
   commitTime: number,
   effectDuration: number,
 ) {
-  if (enableProfilerTimer && getExecutionContext() & CommitContext) {
+  if (enableProfilerTimer) {
     try {
       if (__DEV__) {
         runWithFiberInDEV(

filename: packages/react-reconciler/src/ReactFiberCommitWork.js
patch: @@ -145,9 +145,6 @@ import {
   addMarkerProgressCallbackToPendingTransition,
   addMarkerIncompleteCallbackToPendingTransition,
   addMarkerCompleteCallbackToPendingTransition,
-  getExecutionContext,
-  CommitContext,
-  NoContext,
   setIsRunningInsertionEffect,
 } from './ReactFiberWorkLoop';
 import {
@@ -233,8 +230,7 @@ function shouldProfile(current: Fiber): boolean {
   return (
     enableProfilerTimer &&
     enableProfilerCommitHooks &&
-    (current.mode & ProfileMode) !== NoMode &&
-    (getExecutionContext() & CommitContext) !== NoContext
+    (current.mode & ProfileMode) !== NoMode
   );
 }
 
@@ -2817,11 +2813,7 @@ function commitPassiveMountOnFiber(
 
       // Only Profilers with work in their subtree will have a Passive effect scheduled.
       if (flags & Passive) {
-        if (
-          enableProfilerTimer &&
-          enableProfilerCommitHooks &&
-          getExecutionContext() & CommitContext
-        ) {
+        if (enableProfilerTimer && enableProfilerCommitHooks) {
           const {passiveEffectDuration} = finishedWork.stateNode;
 
           commitProfilerPostCommit(
Repository: ggml-org/llama.cpp
Pull request: mtmd: clarify that we no longer accept AI-generated PRs

I demand other maintainers to either accept this or https://github.com/ggml-org/llama.cpp/pull/18388

AI-generated PRs in mtmd are often, if not always, lead to sub-optimal, low-quality code. These PRs are usually huge, take me too much time to review / optimize, adding more mental strain and make the productivity goes negative.

Therefore, I would like to explicitly reject PRs that are fully or predominantly AI-generated. Using AI as an assistive tool is always welcomed.

> [!IMPORTANT]
> **This message does not prevent contributors to push such PRs in the future, but serves as an explicit statement in case someone asks**

Some examples:
- https://github.com/ggml-org/llama.cpp/pull/18404
- https://github.com/ggml-org/llama.cpp/pull/18256
- https://github.com/ggml-org/llama.cpp/pull/17998
- https://github.com/ggml-org/llama.cpp/pull/17360

Changed files:
filename: tools/mtmd/models/models.h
patch: @@ -2,6 +2,11 @@
 
 #include "../clip-graph.h"
 
+/*
+ * IMPORTANT: The mtmd module does NOT accept pull requests that are fully or predominantly AI-generated.
+ * We encourage human contributors to ensure the quality and reliability of the codebase.
+ */
+
 struct clip_graph_siglip : clip_graph {
     clip_graph_siglip(clip_ctx * ctx, const clip_image_f32 & img) : clip_graph(ctx, img) {}
     ggml_cgraph * build() override;

filename: tools/mtmd/mtmd.h
patch: @@ -27,6 +27,9 @@
  * - Make sure the C API is aligned with the libllama C API (as in llama.h)
  * - Do not include model name (e.g., qwen, gemma) in the API, use generic terms instead
  * - Keep the API minimal, do not expose internal details unless necessary
+ *
+ * IMPORTANT: The mtmd module does NOT accept pull requests that are fully or predominantly AI-generated.
+ * We encourage human contributors to ensure the quality and reliability of the codebase.
  */
 
 #ifdef LLAMA_SHARED