Skip to content

Conversation

@qnixsynapse
Copy link
Contributor

@qnixsynapse qnixsynapse commented Jul 24, 2025

This commit introduces significant improvements to how the Llama.cpp extension manages and updates its backend installations, focusing on user preference persistence and smarter auto-updates.

Key changes include:

  • Persistent Backend Type Preference: The extension now stores the user's preferred backend type (e.g., cuda, cpu, metal) in localStorage. This ensures that even after updates or restarts, the system attempts to use the user's previously selected backend type, if available.
  • Intelligent Auto-Update: The auto-update mechanism has been refined to prioritize updating to the latest version of the currently selected backend type rather than always defaulting to the "best available" backend (which might change). This respects user choice while keeping the chosen backend type up-to-date.
  • Improved Initial Installation/Configuration: For fresh installations or cases where the version_backend setting is invalid, the system now intelligently determines and installs the best available backend, then persists its type.
  • Refined Old Backend Cleanup: The removeOldBackends function has been renamed to removeOldBackend and modified to specifically clean up older versions of the currently selected backend type, preventing the accumulation of unnecessary files while preserving other backend types the user might switch to.
  • Robust Local Storage Handling: New private methods (getStoredBackendType, setStoredBackendType, clearStoredBackendType) are introduced to safely interact with localStorage, including error handling for potential localStorage access issues.
  • Version Filtering Utility: A new utility findLatestVersionForBackend helps in identifying the latest available version for a specific backend type from a list of supported backends.

These changes provide a more stable, user-friendly, and maintainable backend management experience for the Llama.cpp extension.

Fixes: #5883


Important

Enhances Llama.cpp extension with persistent backend preferences, smarter updates, and improved installation.

  • Behavior:
    • Stores user's preferred backend type in localStorage for persistence across updates/restarts in index.ts.
    • Refines auto-update to prioritize the latest version of the selected backend type in index.ts.
    • Improves initial installation to determine and install the best available backend if version_backend is invalid in index.ts.
  • Functions:
    • Renames removeOldBackends to removeOldBackend and modifies it to clean up older versions of the selected backend type in index.ts.
    • Adds getStoredBackendType, setStoredBackendType, and clearStoredBackendType for localStorage interactions in index.ts.
    • Introduces findLatestVersionForBackend to identify the latest version for a specific backend type in index.ts.
  • Misc:
    • Renames context_shift to ctx_shift in settings.json and useChat.ts.
    • Removes n_gpu_layers and ctx_size settings from settings.json.
    • Adds @tanstack/react-virtual dependency in package.json.

This description was created by Ellipsis for e6e29f0. You can customize this summary. It will automatically update as commits are pushed.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed everything up to d773b52 in 2 minutes and 36 seconds. Click for details.
  • Reviewed 400 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 5 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. extensions/llamacpp-extension/src/index.ts:217
  • Draft comment:
    Using localeCompare to sort version strings may lead to incorrect ordering for semantic versions (e.g. '1.10.0' vs '1.2.0'). Consider using a proper semver parser or comparator.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 30% vs. threshold = 50% This is a valid technical concern - localeCompare() does lexicographical comparison which can give incorrect results for semantic versions. For example, '1.10.0' would be considered less than '1.2.0' because '1' is compared to '1', then '1' is compared to '2'. However, looking at the broader context, this is used for comparing backend versions which may not follow semver format. The comment is speculative ("may lead to") and doesn't provide evidence that this is actually causing problems. The comment identifies a real technical issue with string comparison of version numbers. If the versions do follow semver format, this could cause the wrong version to be selected as "latest". While technically correct, the comment is speculative and there's no evidence that the backend versions follow semver format or that this is causing actual problems. The current code may be intentionally using lexicographical comparison. The comment should be deleted because it is speculative and makes assumptions about the version format without evidence. If version comparison becomes a real issue, it can be addressed when there is concrete evidence of problems.
2. extensions/llamacpp-extension/src/index.ts:312
  • Draft comment:
    When splitting the saved backend setting, ensure the string contains '/' to avoid undefined values. Consider adding a format check before calling split.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50% The suggestion is technically correct - splitting a string that doesn't contain '/' could lead to undefined values. However, the code already handles this safely by checking if backendType exists before using it. Additionally, savedBackendSetting comes from a controlled source (the settings) where the format is enforced. The suggestion would add defensive programming but doesn't fix any actual issue. I could be wrong about the source of savedBackendSetting - maybe it could come from user input or storage where the format isn't guaranteed. The current code would still handle it safely but might be less clear about the intent. Looking at the code more carefully, savedBackendSetting comes from the settings system where the format is strictly controlled. The value can only be selected from a predefined list of options that all follow the version/backend format. The existing null check is sufficient. Delete the comment. While technically correct, the suggestion is unnecessary since the code already handles the case safely and the input format is guaranteed by the settings system.
3. extensions/llamacpp-extension/src/index.ts:719
  • Draft comment:
    In onSettingUpdate, the asynchronous closure calling ensureBackendReady is not awaited, meaning any errors will be lost. Consider handling promise rejections.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
4. extensions/llamacpp-extension/src/index.ts:619
  • Draft comment:
    The removeOldBackend cleanup relies on directory naming conventions. Ensure that version names and backend directory structures are strictly controlled to avoid accidental deletions.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50% This comment is asking the PR author to ensure that version names and directory structures are controlled, which is similar to asking them to double-check or verify something. This violates the rule against asking the author to ensure behavior is intended or to double-check things.
5. extensions/llamacpp-extension/src/index.ts:180
  • Draft comment:
    The localStorage access in get/set/clearStoredBackendType is wrapped in try/catch. Ensure that localStorage is available in the runtime environment (e.g. if running in non-browser contexts).
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50% None

Workflow ID: wflow_NOzXxB6d41g6V8pM

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@github-actions
Copy link
Contributor

github-actions bot commented Jul 24, 2025

Barecheck - Code coverage report

Total: 37.42%

Your code coverage diff: -0.11% ▾

Uncovered files and lines
FileLines
web-app/src/containers/ModelSetting.tsx25-30, 33-35, 37-41, 44-56, 59, 61, 63, 66, 69-71, 74-78, 80-87, 89-125, 127-130, 132
web-app/src/hooks/useChat.ts94-106, 120-126, 136-158, 161, 163, 165, 168, 171-176, 178-179, 184-186, 189-193, 196, 199-201, 203-211, 222, 252-253, 255, 269-280, 297-308, 310-317, 319-335, 338-353, 355-366, 368-373, 375-384, 386-390, 392-394, 397-403, 405-411, 428
web-app/src/hooks/useModelProvider.ts31-36, 38-39, 42-52, 54-56, 58-115, 117-128, 138-140, 142, 144-146, 149-152, 154-155, 157, 159-161, 163-176, 178-181, 183-188
web-app/src/routes/hub/index.tsx2-7, 15-24, 30, 36-40, 48, 50-55, 57-58, 60-83, 85-86, 89-90, 92-95, 98, 100-104, 107, 109-114, 116-128, 130-135, 137-140, 142-143, 145-150, 152-160, 163-170, 172-174, 177-178, 180-194, 196-204, 206-216, 219-223, 225-227, 229-232, 234-236, 238-242, 244-245, 247-252, 255-263, 265-266, 268-278, 280, 282-285, 287-301, 303-304, 306-317, 319-320, 322, 324-340, 342, 344-346, 348-353, 355-361, 363-367, 369-370, 372-377, 379-380, 382, 384-394, 396-397, 400-409, 411-412, 414-430, 432-436, 439-440, 443-444, 446-463, 466, 468-473, 475-476, 478-488, 490-504, 506, 508-541, 543-546, 548-573, 575-584, 586-602, 604-618, 621-627, 630-639, 641-646, 649-659, 661-665, 667-705, 707-711, 713-717, 719-753, 755-761, 763-767, 769-771, 773, 775-779, 781-787, 790-792, 794, 796-808, 810-814, 816-817, 819, 821-822, 824-828, 830-834, 836
web-app/src/routes/settings/providers/$providerName.tsx2-8, 15, 22-42, 45-47, 49-53, 55-86, 89-97, 99, 101, 104-106, 108-109, 112-113, 115, 117-122, 125-126, 128-131, 134-140, 142-147, 149-150, 152-157, 159-165, 167-169, 172-178, 181-184, 186, 188-192, 194-218, 220, 222-232, 234-236, 238-248, 250-287, 289-295, 298-299, 301-308, 310-320, 324-326, 329, 332-334, 336-347, 350-354, 356-359, 362-363, 366-371, 373-380, 382-385, 387, 390-399, 401-405, 407-417, 419-421, 423-424, 426-427, 429, 431-432, 435-452, 454-459, 461-464, 466-472, 474-475, 477-492, 494-497, 499-507, 509-519, 521-530, 532-533, 536-546, 548-551, 553-563, 565-577, 579-580, 582-587, 589-595, 597, 599, 601, 603, 605, 607, 609-616, 618-620, 622-628, 630
web-app/src/routes/threads/$threadId.tsx1-2, 4-8, 10-15, 17-26, 29-31, 33-46, 48-52, 55-58, 61-63, 65-67, 69-71, 73-80, 83, 85-87, 89-91, 93, 95-96, 98-99, 101, 104-106, 109-117, 120-126, 129, 132, 134-135, 137, 139-144, 146-153, 155-157, 159-160, 163-169, 172-174, 176-177, 180-186, 188-206, 209, 211-217, 219, 222-227, 229, 231, 233-235, 237-250, 252-257, 259-260, 262-268, 270-279, 282-285, 287-299, 301-309, 311-317, 319-321, 323-326, 328-330, 332-336, 338

@urmauur
Copy link
Member

urmauur commented Jul 24, 2025

LGTM

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Changes requested ❌

Reviewed d62006b in 1 minute and 42 seconds. Click for details.
  • Reviewed 22 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 1 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. extensions/llamacpp-extension/src/index.ts:889
  • Draft comment:
    Consider using a consistent, namespaced key (e.g., 'llamacpp_models_migrated') instead of 'cortex_models_migrated' to avoid confusion.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 20% vs. threshold = 50% While consistent namespacing is generally good practice, this is a one-time migration flag that will be set once and never used again. The actual name of the key doesn't impact functionality. The comment is suggesting a style improvement rather than fixing a bug or serious issue. Given the temporary nature of this migration flag, the naming is not critically important. I could be undervaluing the importance of consistent namespacing. Poor naming conventions could lead to key collisions or confusion for other developers. The risk of key collision is very low since this is a one-time migration flag. The temporary nature of the flag makes extensive namespacing unnecessary overhead. The comment should be deleted as it suggests a minor style improvement for a temporary migration flag that doesn't meaningfully impact the code's functionality or maintainability.

Workflow ID: wflow_Z3jmGJPVYjGaSRby

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@qnixsynapse qnixsynapse force-pushed the fix/update_version_only branch from d62006b to cb68f41 Compare July 24, 2025 08:14
Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed cb68f41 in 1 minute and 27 seconds. Click for details.
  • Reviewed 104 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 3 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. extensions/llamacpp-extension/src/index.ts:312
  • Draft comment:
    Good improvement: the change checks the current stored backend value before updating it, which avoids unnecessary writes. Consider extracting this repeated conditional update into a helper function to reduce code duplication.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50% None
2. extensions/llamacpp-extension/src/index.ts:365
  • Draft comment:
    Nice addition: updating the UI settings immediately to reflect the new backend configuration improves clarity. The logging clearly communicates the effective backend.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50% None
3. extensions/llamacpp-extension/src/index.ts:719
  • Draft comment:
    Consistent conditional update: the onSettingUpdate handler now only updates the localStorage if the backend differs. This aligns well with the previous changes and helps preserve user preferences. Great job resolving the bug!
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50% None

Workflow ID: wflow_3PaVNlpxlh7Ou1A4

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed 5603794 in 1 minute and 16 seconds. Click for details.
  • Reviewed 62 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 3 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. web-app/src/routes/settings/providers/$providerName.tsx:39
  • Draft comment:
    Removed EngineManager import is fine if it's no longer needed. Ensure that any engine-specific settings for llamacpp get handled elsewhere.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50% None
2. web-app/src/routes/settings/providers/$providerName.tsx:82
  • Draft comment:
    Local state for settings and its useEffect were removed. This simplifies the component, but confirm that provider.settings always contains up-to-date data, especially for llamacpp.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50% None
3. web-app/src/routes/settings/providers/$providerName.tsx:274
  • Draft comment:
    Mapping directly over provider?.settings is concise. Consider defaulting to an empty array (e.g., (provider?.settings || [])) to avoid runtime errors if settings is undefined.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50% None

Workflow ID: wflow_FZmYHSbaYLfQM1DW

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed 01ada08 in 1 minute and 55 seconds. Click for details.
  • Reviewed 273 lines of code in 2 files
  • Skipped 0 files when reviewing.
  • Skipped posting 6 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. extensions/llamacpp-extension/settings.json:59
  • Draft comment:
    Removed 'Context Size' (ctx_size) setting. Ensure that any legacy configurations or references in the code are updated/migrated accordingly.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50% The comment is asking the PR author to ensure that legacy configurations or references are updated, which violates the rule against asking the author to ensure things are tested or reviewed. It doesn't provide a specific suggestion or point out a specific issue.
2. extensions/llamacpp-extension/settings.json:116
  • Draft comment:
    Removed 'GPU Layers' (n_gpu_layers) setting. Confirm that this removal doesn’t affect any backend logic relying on GPU layer configuration.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
3. web-app/src/routes/settings/providers/$providerName.tsx:88
  • Draft comment:
    The 'needsBackendConfig' check is effective in determining if backend configuration is missing. Review if additional falsy values should be handled for 'version_backend'.
  • Reason this comment was not posted:
    Comment looked like it was already resolved.
4. web-app/src/routes/settings/providers/$providerName.tsx:124
  • Draft comment:
    Auto-refresh useEffect for backend configuration (every 3 seconds) is implemented correctly. Verify that this polling frequency is optimal without overloading the system.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50% The comment is asking the PR author to verify the polling frequency, which is against the rules. It doesn't provide a specific suggestion or point out a clear issue with the code. Therefore, it should be removed.
5. web-app/src/routes/settings/providers/$providerName.tsx:323
  • Draft comment:
    The inline onChange handler for DynamicControllerSetting properly updates settings and resets related fields when 'version_backend' changes. Consider refactoring this callback into a separate helper for better readability if the logic expands.
  • Reason this comment was not posted:
    Comment was on unchanged code.
6. web-app/src/routes/settings/providers/$providerName.tsx:1
  • Draft comment:
    Disabling 'react-hooks/exhaustive-deps' at the top may mask dependency issues in hooks. Ensure all dependencies are correctly managed and consider re-enabling the lint rule once confirmed.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 20% vs. threshold = 50% While the comment identifies a real issue (missing dependencies in hooks), it's not specific enough about what needs to be fixed. It's more of a general warning without actionable guidance. The comment suggests "consider re-enabling once confirmed" but doesn't explain what needs to be confirmed or how to fix the dependency issues. The comment points to a real code quality issue that could cause bugs. Missing dependencies in useEffect hooks can lead to stale closures and unexpected behavior. However, the comment doesn't provide specific guidance on which hooks need fixing or how to fix them. It's more of a general warning that doesn't help the developer take action. Delete the comment. While it points to a real issue, it's not specific or actionable enough. A better comment would point out specific hooks that need fixing and suggest how to fix them.

Workflow ID: wflow_L5V0QxqS4pf6Qd3P

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed a601434 in 1 minute and 48 seconds. Click for details.
  • Reviewed 26 lines of code in 2 files
  • Skipped 0 files when reviewing.
  • Skipped posting 2 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. extensions/llamacpp-extension/settings.json:60
  • Draft comment:
    Changing the key from 'context_shift' to 'ctx_shift' is consistent with the UI code. Consider adding migration logic or documentation for users with existing settings to avoid losing their configuration.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 20% vs. threshold = 50% This is a valid concern - renaming a configuration key could break existing user settings. However, this falls into the category of speculative comments ("If users have existing settings..."). We don't know if this is actually a problem or if migration logic already exists elsewhere. The comment is making assumptions about the codebase without strong evidence. I might be underestimating the impact of breaking changes on user configuration. Configuration migration is an important consideration. While configuration migration is important, without seeing the full context of how settings are loaded and migrated, this comment is speculative and could be incorrect if migration logic already exists elsewhere. The comment should be deleted as it makes assumptions without strong evidence and is speculative about potential issues rather than pointing out a definite problem.
2. web-app/src/hooks/useChat.ts:185
  • Draft comment:
    The toggleOnContextShifting function directly accesses the setting using the new key without checking if it exists. Add a check for a valid index and verify that the property name ('controller_props') matches the setting object structure (which in JSON uses 'controllerProps').
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.

Workflow ID: wflow_078RI9k50rGU04o2

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

qnixsynapse and others added 7 commits July 24, 2025 17:03
This commit introduces significant improvements to how the Llama.cpp extension manages and updates its backend installations, focusing on user preference persistence and smarter auto-updates.

Key changes include:

* **Persistent Backend Type Preference:** The extension now stores the user's preferred backend type (e.g., `cuda`, `cpu`, `metal`) in `localStorage`. This ensures that even after updates or restarts, the system attempts to use the user's previously selected backend type, if available.
* **Intelligent Auto-Update:** The auto-update mechanism has been refined to prioritize updating to the **latest version of the *currently selected backend type*** rather than always defaulting to the "best available" backend (which might change). This respects user choice while keeping the chosen backend type up-to-date.
* **Improved Initial Installation/Configuration:** For fresh installations or cases where the `version_backend` setting is invalid, the system now intelligently determines and installs the best available backend, then persists its type.
* **Refined Old Backend Cleanup:** The `removeOldBackends` function has been renamed to `removeOldBackend` and modified to specifically clean up *older versions of the currently selected backend type*, preventing the accumulation of unnecessary files while preserving other backend types the user might switch to.
* **Robust Local Storage Handling:** New private methods (`getStoredBackendType`, `setStoredBackendType`, `clearStoredBackendType`) are introduced to safely interact with `localStorage`, including error handling for potential `localStorage` access issues.
* **Version Filtering Utility:** A new utility `findLatestVersionForBackend` helps in identifying the latest available version for a specific backend type from a list of supported backends.

These changes provide a more stable, user-friendly, and maintainable backend management experience for the Llama.cpp extension.

Fixes: #5883
This commit refines the Llama.cpp extension's backend management by:

* **Optimizing `localStorage` Writes:** The system now only writes the backend type preference to `localStorage` if the new value is different from the currently stored one. This reduces unnecessary `localStorage` operations.
* **Ensuring UI Consistency on Initial Setup:** When a fresh installation or an invalid backend configuration is detected, the UI settings are now explicitly updated to reflect the newly determined `effectiveBackendString`, ensuring the displayed setting matches the active configuration.

These changes improve performance by reducing redundant storage operations and enhance user experience by maintaining UI synchronization with the backend state.
@louis-jan louis-jan force-pushed the fix/update_version_only branch from 93ebca8 to 8daf0fa Compare July 24, 2025 10:03
Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed 93ebca8 in 2 minutes and 30 seconds. Click for details.
  • Reviewed 85 lines of code in 4 files
  • Skipped 0 files when reviewing.
  • Skipped posting 4 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. web-app/src/containers/ModelSetting.tsx:71
  • Draft comment:
    Removal of updateModel: Ensure that relying solely on updateProvider for state persistence is intended. The conversion logic for settings values (to number) is no longer applied, so verify that this behavior is acceptable.
  • Reason this comment was not posted:
    Comment looked like it was already resolved.
2. web-app/src/hooks/useModelProvider.ts:77
  • Draft comment:
    When mapping provider.models to compute updatedModels, consider defaulting to an empty array if provider.models is undefined to avoid potential errors.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50% The code already handles undefined provider.models safely through optional chaining. If provider.models is undefined, the ?. operator will return undefined and no mapping will occur. The suggestion would change the behavior to map over an empty array instead, but this isn't necessarily better or required for safety. The current code's behavior is intentional and safe. The suggestion could make the code more explicit about handling undefined cases. There might be places elsewhere in the codebase expecting an array rather than undefined. The current code is already safe and the change in behavior isn't clearly beneficial. The code's context suggests undefined is an acceptable return value, as seen in the ternary on line 87 where either updatedModels or mergedModels is used. The comment should be deleted as it suggests a change that isn't necessary for correctness or safety, and the current code already handles the undefined case appropriately.
3. web-app/src/routes/threads/$threadId.tsx:209
  • Draft comment:
    debouncedScroll is created without a delay parameter. Specify an explicit debounce delay to ensure proper throttling of scroll events.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
4. web-app/src/routes/threads/$threadId.tsx:245
  • Draft comment:
    Both an onScroll prop and an addEventListener for scroll (using debouncedScroll) are attached. Confirm that having duplicate scroll event handlers is intentional to avoid redundant updates.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.

Workflow ID: wflow_Cjk3u6sWZasDckEp

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Changes requested ❌

Reviewed ffd3b21 in 2 minutes and 43 seconds. Click for details.
  • Reviewed 531 lines of code in 2 files
  • Skipped 0 files when reviewing.
  • Skipped posting 4 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. web-app/src/routes/hub/index.tsx:587
  • Draft comment:
    Each virtualized item container should be absolutely positioned using virtualItem.start (e.g. style={{ position: 'absolute', top: virtualItem.start, left: 0, width: '100%' }}) to correctly position items within the relative wrapper.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 20% <= threshold 50% This comment is purely informative, providing guidance on how to position virtualized item containers. It doesn't suggest a change, ask for confirmation, or point out a potential issue. It seems to be more of a best practice or guideline rather than a specific actionable comment.
2. web-app/src/routes/hub/index.tsx:411
  • Draft comment:
    Define helper variables (e.g. isDownloading and isLastStep) before they are used inside handleJoyrideCallback to improve clarity and avoid potential temporal dead zone issues.
  • Reason this comment was not posted:
    Comment was not on a location in the diff, so it can't be submitted as a review comment.
3. web-app/src/routes/hub/index.tsx:222
  • Draft comment:
    Review the estimated size value (35) used in useVirtualizer. Ensure it accurately reflects the actual rendered card height to prevent layout discrepancies during scrolling.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50% None
4. web-app/src/routes/hub/index.tsx:609
  • Draft comment:
    There appears to be an extra space in the className string ('capitalize sm:max-w-none'). Consider removing the additional space for consistency.
  • Reason this comment was not posted:
    Comment was on unchanged code.

Workflow ID: wflow_7GuGB8cwLEkjoCW3

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed 81ce2dc in 51 seconds. Click for details.
  • Reviewed 14 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 1 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. web-app/src/routes/hub/index.tsx:591
  • Draft comment:
    Good removal of the debug console.log. Keeping production code clean improves performance and security.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50% None

Workflow ID: wflow_EKEU3xWdQ3kewBHx

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

Copy link
Contributor

@ellipsis-dev ellipsis-dev bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

Looks good to me! 👍

Reviewed e6e29f0 in 1 minute and 2 seconds. Click for details.
  • Reviewed 12 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 1 draft comments. View those below.
  • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
1. web-app/src/routes/settings/providers/$providerName.tsx:391
  • Draft comment:
    The added className hides the 'device' setting. Consider conditionally rendering the CardItem (or filtering it out) if it's not needed to avoid mounting hidden elements. Also, since similar logic exists in DynamicControllerSetting (line 316), it might be beneficial to refactor this logic for clarity and consistency.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50% None

Workflow ID: wflow_nkAqvcwThWLuQFfU

You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

@louis-jan louis-jan merged commit a1af70f into release/v0.6.6 Jul 24, 2025
32 of 34 checks passed
@louis-jan louis-jan deleted the fix/update_version_only branch July 24, 2025 11:33
@github-project-automation github-project-automation bot moved this to QA in Jan Jul 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

4 participants