356 Commits

Author SHA1 Message Date
Akarshan Biswas
510c70bdf7
feat: Add model compatibility check and memory estimation (#6243)
* feat: Add model compatibility check and memory estimation

This commit introduces a new feature to check if a given model is supported based on available device memory.

The change includes:
- A new `estimateKVCache` method that calculates the required memory for the model's KV cache. It uses GGUF metadata such as `block_count`, `head_count`, `key_length`, and `value_length` to perform the calculation.
- An `isModelSupported` method that combines the model file size and the estimated KV cache size to determine the total memory required. It then checks if any available device has sufficient free memory to load the model.
- An updated error message for the `version_backend` check to be more user-friendly, suggesting a stable internet connection as a potential solution for backend setup failures.

This functionality helps prevent the application from attempting to load models that would exceed the device's memory capacity, leading to more stable and predictable behavior.

fixes: #5505

* Update extensions/llamacpp-extension/src/index.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update extensions/llamacpp-extension/src/index.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Extend this to available system RAM if GGML device is not available

* fix: Improve model metadata and memory checks

This commit refactors the logic for checking if a model is supported by a system's available memory.

**Key changes:**
- **Remote model support**: The `read_gguf_metadata` function can now fetch metadata from a remote URL by reading the file in chunks.
- **Improved KV cache size calculation**: The KV cache size is now estimated more accurately by using `attention.key_length` and `attention.value_length` from the GGUF metadata, with a fallback to `embedding_length`.
- **Granular memory check statuses**: The `isModelSupported` function now returns a more specific status (`'RED'`, `'YELLOW'`, `'GREEN'`) to indicate whether the model weights or the KV cache are too large for the available memory.
- **Consolidated logic**: The logic for checking local and remote models has been consolidated into a single `isModelSupported` function, improving code clarity and maintainability.

These changes provide more robust and informative model compatibility checks, especially for models hosted on remote servers.

* Update extensions/llamacpp-extension/src/index.ts

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Make ctx_size optional and use sum free memory across ggml devices

* feat: hub and dropdown model selection handle model compatibility

* feat: update bage model info color

* chore: enable detail page to get compatibility model

* chore: update copy

* chore: update shrink indicator UI

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: Faisal Amir <urmauur@gmail.com>
2025-08-21 16:13:50 +05:30
Louis
5c4deff215
Merge pull request #6260 from menloresearch/fix/bring-back-manual-model-capability-edit
fix: bring back manual model capability edit modal
2025-08-21 16:31:17 +07:00
Dinh Long Nguyen
32a2ca95b6
feat: gguf file size + hash validation (#5266) (#6259)
* feat: gguf file size + hash validation

* fix tests fe

* update cargo tests

* handle asyn download for both models and mmproj

* move progress tracker to models

* handle file download cancelled

* add cancellation mid hash run
2025-08-21 16:17:58 +07:00
Louis
9bc243c3f7
Merge branch 'dev' into fix/enable-back-app-language-setting 2025-08-21 12:53:21 +07:00
Louis
8e7378b70f
Merge pull request #6255 from menloresearch/fix/remove-experimental-toggle
fix: remove experimental toggle
2025-08-21 12:51:25 +07:00
Faisal Amir
7b9e752301
Merge pull request #6250 from menloresearch/feat/local-api-server
feat: run on startup setting for local api server
2025-08-21 12:43:13 +07:00
Louis
65cb473d25
fix: enable back app language setting 2025-08-21 12:30:30 +07:00
Louis
8de5c1709b
fix: test 2025-08-21 12:01:45 +07:00
Louis
cfbc6b9150
fix: remove experimental toggle 2025-08-21 11:54:34 +07:00
Louis
bf3e9c5b1e
Merge pull request #6252 from menloresearch/feat/mcp-error-handling
feat: MCP server error handling
2025-08-21 09:32:41 +07:00
Louis
6850dda108
feat: MCP server error handling 2025-08-20 23:42:12 +07:00
Faisal Amir
39df7b22b9 chore: rename key runOnStartup from hooks useLocalApiServer 2025-08-20 22:37:45 +07:00
Faisal Amir
68f8c2d3f8 enhancement: change icon vision 2025-08-20 22:21:42 +07:00
Faisal Amir
cfa68c5500 feat: run on startup settin for local api server 2025-08-20 21:56:53 +07:00
Faisal Amir
c2cdb48ff3 enhancement: vision icon on model hub 2025-08-20 21:01:38 +07:00
Faisal Amir
43ab6dfc65
Merge pull request #6246 from menloresearch/fix/sort-filter-hub
fix: hidden sort filter when searching model
2025-08-20 14:36:15 +07:00
Faisal Amir
1ad29077e3 fix: hiden sort filter when searching model 2025-08-20 14:16:45 +07:00
Dinh Long Nguyen
6519327244
fix: local api server log (#6244) 2025-08-20 14:13:27 +07:00
Faisal Amir
ee0b29d9f0
Merge pull request #6242 from menloresearch/enhancement/remove-validate-extension
enhancement: remove validate file extension from select file when import gguf
2025-08-20 13:30:59 +07:00
Faisal Amir
f96ff52506 enhancement: remove validate file extension from select file 2025-08-20 12:54:08 +07:00
Louis
ecc9020452 fix: prevent scroll position jump when AI completes response while user reading
- Add userIntendedPositionRef to track user's deliberate scroll position during streaming
- Add wasStreamingRef to detect when streaming finishes
- Preserve user's reading position when they scroll away from bottom during AI response
- Restore intended position with smooth scroll when streaming completes
- Reset position tracking on thread changes and component initialization

Fixes #5939

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-20 10:24:37 +07:00
Faisal Amir
5481ee9e35
Merge pull request #6134 from menloresearch/feat/attachment-ui
feat: attachment UI
2025-08-20 10:04:32 +07:00
Faisal Amir
6203a93325
Merge pull request #6233 from menloresearch/fix/import-model
fix: improve ux import model
2025-08-20 09:03:33 +07:00
Faisal Amir
b828d3f84f chore: handle toaster failed import model 2025-08-19 22:07:30 +07:00
Faisal Amir
6c612d8eba chore: seperate function handle import model 2025-08-19 22:01:14 +07:00
Faisal Amir
9e3237da38 fix: downloaded model hub screen should from variant level instead of the model level 2025-08-19 21:55:57 +07:00
Faisal Amir
6ee044d106 fix: validation import model 2025-08-19 21:29:18 +07:00
Faisal Amir
00674ec0d5 chore: update test case model service 2025-08-19 19:51:33 +07:00
Faisal Amir
050d38c0ab fix: convert search hgf repo include mmproj models 2025-08-19 19:51:32 +07:00
Faisal Amir
e04bb86171 chore: prevent drag image to replace the window, and enable shortcut copy and paste image 2025-08-19 19:51:02 +07:00
Faisal Amir
872284b770 enhancement: offload model when provider not active 2025-08-19 14:18:39 +07:00
Louis
d7cf258a40
fix: tool indicator in hub 2025-08-19 10:40:11 +07:00
Louis
bfe671d7b4
feat: #5917 - model tool use capability should be auto detected 2025-08-19 09:51:36 +07:00
Louis
362324cb87
Merge pull request #6188 from menloresearch/feat/mcp-enhancement
feat: mcp enhancement
2025-08-18 09:55:44 +07:00
Faisal Amir
b1b2ca1987
Merge pull request #6006 from menloresearch/feat/fav-model
🚀feat: allow user mark model as favorite
2025-08-17 23:14:26 +07:00
Louis
c8d9592ab8
chore: mcp group server, action and import json 2025-08-15 11:37:21 +07:00
Minh141120
aa8fb0464c Merge branch 'dev' into fix/feature-toggle-auto-updater 2025-08-14 13:42:27 +07:00
Faisal Amir
a66d83c598
Merge pull request #6172 from menloresearch/fix/model-id-special-char
fix: handle modelId special char
2025-08-14 12:33:58 +07:00
Louis
16bfd6eafb
fix: full url search 2025-08-14 11:33:03 +07:00
Louis
8c28f9b6a6
fix: should normalize model ID from source instead of frontend 2025-08-14 10:54:40 +07:00
Louis
526e532e2d
fix: normalize model id from source preparation 2025-08-14 10:50:50 +07:00
Faisal Amir
5657b6d917 chore: fix sanitaize 2025-08-14 10:28:11 +07:00
Faisal Amir
dd5b9e23f5 chore: update progress bar variant model 2025-08-14 10:22:57 +07:00
Louis
da08becd93
fix: duplicate HF search results 2025-08-14 10:15:33 +07:00
Louis
4350d4c9a0
fix: feature toggle for auto updater 2025-08-14 09:58:46 +07:00
Faisal Amir
ace8214d4d chore: make utils sanitize modelId 2025-08-14 09:42:47 +07:00
Faisal Amir
1f0e79e934 chore: update handle download variant 2025-08-14 09:26:54 +07:00
Faisal Amir
b338849952 fix: handle modelId special char 2025-08-14 09:18:03 +07:00
Faisal Amir
5266583e5b
enhancement: Add support for mmproj models (#6150) 2025-08-13 10:05:25 +07:00
Louis
7b2d0432e6
fix: weird HF readme accessibility 2025-08-12 12:46:57 +07:00