Skip to content

Fix flow editor slowness due to many instances of monaco #5621

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 27 commits into from
Apr 17, 2025

Conversation

diegoimbert
Copy link
Contributor

@diegoimbert diegoimbert commented Apr 15, 2025

  • Makes flow editor feel much more reactive to the click

Important

Optimizes flow editor performance by introducing asynchronous loading for Monaco editor instances and adding a placeholder component for improved responsiveness.

  • Behavior:
    • Introduces loadAsync prop in Editor.svelte, SimpleEditor.svelte, TemplateEditor.svelte, and JsonEditor.svelte to load Monaco editor asynchronously.
    • Adds FakeMonacoPlaceHolder.svelte to display a placeholder while Monaco editor loads.
    • Updates FlowModuleComponent.svelte to use asynchronous loading for editors.
  • Components:
    • Modifies Editor.svelte, SimpleEditor.svelte, TemplateEditor.svelte, and JsonEditor.svelte to support asynchronous loading with loadAsync.
    • Adds FakeMonacoPlaceHolder.svelte for placeholder rendering.
  • Graph Renderers:
    • Updates various node components like BranchAllStart.svelte, BranchOneStart.svelte, ForLoopStartNode.svelte, etc., to use getStateHoverColor for hover effects.
  • Utilities:
    • Adds getStateHoverColor function in util.ts for consistent hover color logic.
    • Adds getOS function in utils.ts to detect the operating system.

This description was created by Ellipsis for 3f896cc. It will automatically update as commits are pushed.

Copy link
Contributor


Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.


I have read the CLA Document and I hereby sign the CLA


Diego Imbert seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.
You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot.

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.

👍 Looks good to me! Reviewed everything up to ae256e6 in 1 minute and 13 seconds

More details
  • Looked at 262 lines of code in 8 files
  • Skipped 0 files when reviewing.
  • Skipped posting 22 drafted comments based on config settings.
1. frontend/src/lib/components/Editor.svelte:1375
  • Draft comment:
    Wrapping loadMonaco() in setTimeout(0) defers initialization and helps avoid flash. Confirm that this scheduling doesn’t introduce race conditions on slower devices.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
2. frontend/src/lib/components/Editor.svelte:1411
  • Draft comment:
    The conditional rendering of when editor is not yet available looks appropriate to prevent layout jitter.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
3. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:1
  • Draft comment:
    The new placeholder component is simple and effective at avoiding height jitter while loading Monaco asynchronously.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
4. frontend/src/lib/components/SimpleEditor.svelte:509
  • Draft comment:
    Wrapping the loadMonaco call in setTimeout in onMount is consistent with the Editor component. Ensure that deferring initialization does not delay user interactions.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
5. frontend/src/lib/components/TemplateEditor.svelte:592
  • Draft comment:
    Using setTimeout to defer loadMonaco() maintains consistency across editors; verify the 0-delay is sufficient and doesn’t affect timing on slower systems.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
6. frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte:203
  • Draft comment:
    Replaced on:click with on:pointerdown (with preventDefault and stopPropagation) to improve responsiveness. Ensure the pointer event behaves properly on touch devices.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
7. frontend/src/lib/components/flows/map/MapItem.svelte:122
  • Draft comment:
    Changed on:click to on:pointerdown for quick selection. Confirm that this change does not impact accessibility or expected user behavior across all input devices.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
8. frontend/src/lib/components/flows/map/MapItem.svelte:148
  • Draft comment:
    Consistent update: using on:pointerdown over on:click for selecting module items. Double-check that event propagation is handled as expected.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
9. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:27
  • Draft comment:
    Updated on:click to on:pointerdown for virtual item selection. This should boost responsiveness, but testing on various devices is recommended.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
10. frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte:28
  • Draft comment:
    Replaced on:click with on:pointerdown to ensure faster trigger selection. Verify that this change maintains accessibility considerations.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
11. frontend/src/lib/components/Editor.svelte:1379
  • Draft comment:
    Wrapping the loadMonaco() call in a setTimeout(…, 0) helps delay the heavy initialization and avoid a flash. Consider adding a brief comment to document its purpose.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
12. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:10
  • Draft comment:
    The placeholder component appears well‑implemented to smooth out editor loading; no issues noted.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
13. frontend/src/lib/components/SimpleEditor.svelte:513
  • Draft comment:
    Similar setTimeout wrapping for loadMonaco() improves asynchronous loading. Ensure that user interactions while loading are properly handled by the placeholder.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
14. frontend/src/lib/components/TemplateEditor.svelte:592
  • Draft comment:
    The asynchronous loading pattern with setTimeout and the introduction of the FakeMonacoPlaceHolder help avoid layout shifts. This is a good approach; ensure behaviors are consistent across languages.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
15. frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte:203
  • Draft comment:
    Replacing on:click with on:pointerdown (with preventDefault and stopPropagation) should improve responsiveness. Verify that the immediate firing of pointerdown (before pointerup) does not cause issues with drag interactions or accidental triggers.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
16. frontend/src/lib/components/flows/map/MapItem.svelte:148
  • Draft comment:
    Switching from on:click to on:pointerdown across multiple event handlers improves interaction responsiveness, but please confirm that this change doesn’t introduce issues (e.g. premature action triggering during drag events) on all target devices.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
17. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:28
  • Draft comment:
    The on:click event has been replaced with on:pointerdown, which is consistent with other components. Also, the expression 'label || label || ''' in the dispatch call is redundant; consider simplifying it to 'label || '''.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
18. frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte:28
  • Draft comment:
    Replacing on:click with on:pointerdown for triggering selection dispatch is appropriate. Confirm that the new event handling is consistent with other interactive elements in the flow.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
19. frontend/src/lib/components/Editor.svelte:512
  • Draft comment:
    Typo: The function name 'disposeGaphqlService' appears to be misspelled. Consider renaming it to 'disposeGraphqlService' for clarity and consistency.
  • 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.
20. frontend/src/lib/components/TemplateEditor.svelte:260
  • Draft comment:
    Typographical error: In the comment on line 260 (and similarly on line 261), the word 'non-teminated' should be corrected to 'non-terminated' for clarity.
  • 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.
21. frontend/src/lib/components/TemplateEditor.svelte:586
  • Draft comment:
    Typographical error: In the console.error message on line 586, 'javascipt worker' should be corrected to 'javascript worker'.
  • 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.
22. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:41
  • Draft comment:
    There's a redundancy in the fallback logic on line 41: 'dispatch('select', label || label || '')'. It appears that 'label' is repeated. Consider removing the duplicate 'label' to avoid confusion.
  • 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_aYJT8OFWACYoZnxs


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

Copy link

cloudflare-workers-and-pages bot commented Apr 15, 2025

Deploying windmill with  Cloudflare Pages  Cloudflare Pages

Latest commit: 3f896cc
Status: ✅  Deploy successful!
Preview URL: https://708e0c51.windmill.pages.dev
Branch Preview URL: https://di-fix-flow-slowness.windmill.pages.dev

View logs

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.

❌ Changes requested. Incremental review on 9ea976c in 1 minute and 56 seconds

More details
  • Looked at 15 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 5 drafted comments based on config settings.
1. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:18
  • Draft comment:
    Ensure proper positioning context for the absolute element.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the author to ensure something, which violates the rule against asking the author to ensure behavior. It doesn't provide a specific suggestion or point out a specific issue with the code.
2. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:19
  • Draft comment:
    Consider using theme variables or computed values for height and background.
  • 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 comment is about UI styling values. While using theme variables is generally good practice, this is a very specific placeholder component meant to match Monaco editor's appearance. The exact values are likely chosen to precisely match Monaco's styling. Making these configurable might actually defeat the purpose of the component.
    The suggestion could improve maintainability if Monaco's theme changes. Having these values in theme variables would make updates easier.
    Since this is a fake placeholder specifically designed to match Monaco, these values should probably match Monaco's exact values rather than being themeable. The component's purpose is to prevent layout jitter, so exact matching is more important than maintainability here.
    Delete the comment. While using theme variables is generally good practice, in this specific case the hardcoded values serve a purpose in matching Monaco editor exactly.
3. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:20
  • Draft comment:
    Verify if applying margin-left on both container and inner element is necessary.
  • 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 if a certain CSS styling choice is necessary. This falls under asking the author to confirm their intention, which is against the rules. The comment does not provide a specific suggestion or point out a clear issue, so it should be removed.
4. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:18
  • Draft comment:
    If the placeholder div is purely decorative, consider adding aria-hidden="true" or role="presentation" for better accessibility.
  • 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%
    The div in question is indeed purely decorative - it appears to be a background color layer with a blend mode, likely to match Monaco's styling. The accessibility suggestion is technically correct and would be a best practice. However, this feels like a minor enhancement that doesn't materially impact functionality or accessibility since screen readers would likely just skip this empty div anyway.
    The comment is technically correct from an accessibility best practices standpoint. Not adding these attributes could theoretically cause screen readers to announce an empty div.
    While technically correct, this feels like an overly pedantic suggestion for a temporary placeholder component that exists only during loading. The impact on actual accessibility is minimal.
    This comment should be deleted as it suggests a minor enhancement that doesn't materially impact accessibility or functionality.
5. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:1
  • Draft comment:
    Minor nit: The component name 'FakeMonacoPlaceHolder' could be revised to 'FakeMonacoPlaceholder' to follow conventional spelling. This is just a cosmetic suggestion.
  • 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_LwbeBsMRt1lSl9lx


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

</script>

<div
class={'w-full pr-14 z-9 mt-[-1px] mb-[1px] leading-5 overflow-x-auto mycontainer ' + className}
Copy link
Contributor

Choose a reason for hiding this comment

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

The new absolute-positioned placeholder div requires a positioned (e.g., relative) parent. Consider adding a 'relative' class to the container div to ensure proper positioning.

Suggested change
class={'w-full pr-14 z-9 mt-[-1px] mb-[1px] leading-5 overflow-x-auto mycontainer ' + className}
class={'relative w-full pr-14 z-9 mt-[-1px] mb-[1px] leading-5 overflow-x-auto mycontainer ' + className}

@diegoimbert diegoimbert force-pushed the di/fix-flow-slowness branch from fbd6497 to a0ba938 Compare April 16, 2025 13:27
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.

👍 Looks good to me! Incremental review on a0ba938 in 1 minute and 19 seconds

More details
  • Looked at 73 lines of code in 4 files
  • Skipped 0 files when reviewing.
  • Skipped posting 10 drafted comments based on config settings.
1. frontend/src/lib/components/Editor.svelte:1419
  • Draft comment:
    Changed FakeMonacoPlaceHolder marginLeft from '3.19em' to '51px'. Please confirm the new absolute value is desired and consistent with the layout.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
2. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:15
  • Draft comment:
    Updated CSS margins, height, and font-size units from em to px. Ensure these hard-coded pixel values scale properly across different displays.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
3. frontend/src/lib/components/SimpleEditor.svelte:561
  • Draft comment:
    MarginLeft for FakeMonacoPlaceHolder changed from '1.44em' to '23px'. Verify that the conversion maintains design consistency.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
4. frontend/src/lib/components/TemplateEditor.svelte:630
  • Draft comment:
    MarginLeft for FakeMonacoPlaceHolder updated from '1.6em' to '25px'. Please confirm that these absolute values work well with the rest of the template layout.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
5. frontend/src/lib/components/Editor.svelte:1420
  • Draft comment:
    Margin is now set to a fixed '51px' (was 3.19em). Consider adding a brief comment on why this specific pixel value is needed to ensure layout consistency.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
6. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:15
  • Draft comment:
    Multiple style adjustments (e.g., mt-[-1px], mb-[1px], leading-[20px], h-[59px] and font-size in px) use fixed pixel values. Please document the rationale behind these magic numbers to aid future maintenance and ensure responsiveness.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
7. frontend/src/lib/components/SimpleEditor.svelte:562
  • Draft comment:
    FakeMonacoPlaceHolder now uses marginLeft="23px" instead of an em value. Verify this fixed pixel value works well in all contexts and consider adding a comment for clarity.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
8. frontend/src/lib/components/TemplateEditor.svelte:632
  • Draft comment:
    MarginLeft changed to '25px' (was 1.6em). Ensure this fixed value is aligned with overall design expectations, and document its purpose.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
9. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:1
  • Draft comment:
    Consider renaming 'FakeMonacoPlaceHolder' to 'FakeMonacoPlaceholder' to use the standard spelling of 'placeholder' as one word. This is a minor typographical correction.
  • 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.
10. frontend/src/lib/components/TemplateEditor.svelte:586
  • Draft comment:
    Typographical error: The error message on line 586 uses 'javascipt worker'. It should be corrected to 'javascript worker'.
  • 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_xcI7cLZobVZKAurk


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

@diegoimbert diegoimbert force-pushed the di/fix-flow-slowness branch from a0ba938 to 07779c4 Compare April 16, 2025 13:42
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.

👍 Looks good to me! Incremental review on 07779c4 in 1 minute and 47 seconds

More details
  • Looked at 86 lines of code in 5 files
  • Skipped 0 files when reviewing.
  • Skipped posting 13 drafted comments based on config settings.
1. frontend/src/lib/components/Editor.svelte:1419
  • Draft comment:
    Changed marginLeft from '3.19em' to '51px'. Ensure this absolute pixel value is consistent with design and with similar components that use relative units elsewhere.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 20% <= threshold 50%
    The comment is asking the author to ensure consistency with design and other components, which is not allowed. It doesn't provide a specific suggestion or point out a clear issue with the code change.
2. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:15
  • Draft comment:
    Updated margin and font styling: negative margin and font size units switched from em-based values to pixel-based ('-1px', '1px', 'leading-[20px]', 'h-[22px]', and font-size now in px). Confirm these changes scale correctly with different font sizes/resolutions.
  • 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 confirm that the changes scale correctly with different font sizes and resolutions. This falls under the rule of not asking the author to confirm or ensure behavior, which is not allowed. Therefore, this comment should be removed.
3. frontend/src/lib/components/ResourcePicker.svelte:138
  • Draft comment:
    Added 'min-h-9' to the wrapping div. Verify that this minimum height meets layout requirements and does not conflict with other responsive styles.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
4. frontend/src/lib/components/SimpleEditor.svelte:559
  • Draft comment:
    MarginLeft for FakeMonacoPlaceHolder updated from '1.44em' to '23px'. Check consistency with other usage (e.g. Editor.svelte) and responsiveness of the placeholder width.
  • Reason this comment was not posted:
    Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 0% vs. threshold = 50%
    The rules explicitly state "Do NOT comment on any pure frontend UI or styling changes, only logic. Assume that if the author changed the UI, they did it correctly." This is clearly just a styling change, changing a margin value from em to px units. There's no logic change here.
    Could this margin change affect the functionality of the editor in some way? Could there be accessibility implications?
    No - this is purely cosmetic. The FakeMonacoPlaceHolder is just a visual placeholder component, and the rules tell us to trust UI changes made by the author.
    This comment should be deleted as it violates the rule about not commenting on pure UI/styling changes.
5. frontend/src/lib/components/TemplateEditor.svelte:630
  • Draft comment:
    Placeholder marginLeft changed to '25px' and a border class 'border-[2px]' was added. Confirm that these styling changes are intentional and consistent with overall design.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 30% <= threshold 50%
    The comment is asking the PR author to confirm their intention regarding styling changes. This violates the rule against asking for confirmation of intention. However, it does point out specific changes that might need attention, which could be useful if rephrased to suggest checking consistency with design guidelines.
6. frontend/src/lib/components/Editor.svelte:1419
  • Draft comment:
    Changed the marginLeft from '3.19em' to '51px'. Please verify that using an absolute pixel value (51px) yields a consistent layout compared with a relative unit. Ensure this value scales properly with different font sizes.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
7. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:14
  • Draft comment:
    The updated styling (negative margins of -1px/1px, leading set to 20px, and inner height of 22px, scrollbar height 12px) appears intended to stabilize the placeholder's size. Please double-check that these hardcoded pixel values align with Monaco's actual dimensions across themes and don’t cause layout shifts.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
8. frontend/src/lib/components/ResourcePicker.svelte:138
  • Draft comment:
    The container div now includes a 'min-h-9' class to enforce a minimum height. Confirm that the Tailwind configuration defines 'min-h-9' as intended so that layout issues are resolved without unexpected side effects.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
9. frontend/src/lib/components/SimpleEditor.svelte:561
  • Draft comment:
    The marginLeft prop for FakeMonacoPlaceHolder changed from '1.44em' to '23px'. Please verify that this conversion from an 'em' value to pixels produces the desired layout consistency across different display densities.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
10. frontend/src/lib/components/TemplateEditor.svelte:630
  • Draft comment:
    TemplateEditor now passes marginLeft as '25px' and adds a 'border-[2px]' class to the FakeMonacoPlaceHolder. Ensure these visual adjustments conform to design expectations and that the new border does not cause undesired layout shifts.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
11. frontend/src/lib/components/SimpleEditor.svelte:311
  • Draft comment:
    Consider revising the log message at line 311. Instead of "model already existed", you might consider "model already exists" or "model already created" to improve clarity.
  • 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.
12. frontend/src/lib/components/TemplateEditor.svelte:197
  • Draft comment:
    Typographical error: The regex for hexdigits has an extra '['. It should be /[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/ instead of /[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/.
  • 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.
13. frontend/src/lib/components/TemplateEditor.svelte:586
  • Draft comment:
    Typographical error: In the console.error message, 'javascipt' should be corrected to 'javascript'.
  • 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_7hVrsQcZfv5DFsQS


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

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.

👍 Looks good to me! Incremental review on 82dd084 in 1 minute and 7 seconds

More details
  • Looked at 57 lines of code in 2 files
  • Skipped 0 files when reviewing.
  • Skipped posting 9 drafted comments based on config settings.
1. frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte:207
  • Draft comment:
    Consider using an explicit delay (e.g., 0) with setTimeout for clarity. Also, review if dispatch('pointerdown') called asynchronously is safe here.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
2. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:39
  • Draft comment:
    Using setTimeout to defer dispatch on pointerdown avoids UI freeze, but ensure this pattern is consistent throughout and check for potential race issues.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
3. frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte:200
  • Draft comment:
    Added hover/active classes for visual feedback; ensure these classes match the overall design and are consistent with other interactive elements.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
4. frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte:207
  • Draft comment:
    The pointerdown dispatch is now wrapped in setTimeout to avoid UI freeze. Consider evaluating if requestAnimationFrame may offer more predictable UI timing.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
5. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:31
  • Draft comment:
    Enhanced the selectable item style by adding hover and active classes for improved interactivity. Confirm consistency with similar UI components.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
6. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:35
  • Draft comment:
    Removed '!important' from the background-color style. Verify that the new styling behaves correctly under various specificity conditions.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
7. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:36
  • Draft comment:
    Wraps the pointerdown dispatch in setTimeout to optimize responsiveness. Check if omitting preventDefault/stopPropagation modifiers here (unlike in FlowModuleSchemaItem) is intentional.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
8. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:52
  • Draft comment:
    It appears that the id attribute is constructed using encodeURIComponent(label || label || ''). The repeated label || label is redundant. Consider removing the duplicate to improve clarity, e.g., use encodeURIComponent(label || '') instead.
  • 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.
9. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:52
  • Draft comment:
    There seems to be a typographical issue with the closing of the div element. The line containing <slot {hover} /></div is left hanging and then a > appears on the next line (line 53). For clarity and proper HTML structure, consider moving the final > to line 52 so that the div tag is correctly closed as <div ...><slot {hover} /></div>. This will help avoid any confusion in the markup.
  • 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_lxIybEqxgQ8an65q


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

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.

👍 Looks good to me! Incremental review on 80dd6e4 in 1 minute and 44 seconds

More details
  • Looked at 235 lines of code in 12 files
  • Skipped 0 files when reviewing.
  • Skipped posting 26 drafted comments based on config settings.
1. frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte:207
  • Draft comment:
    Directly dispatching 'pointerdown' instead of wrapping in setTimeout. Ensure this change doesn't affect any timing-dependent logic.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the author to ensure that the change doesn't affect timing-dependent logic. This falls under the rule of not asking the author to ensure behavior is intended or tested. Therefore, this comment should be removed.
2. frontend/src/lib/components/flows/map/MapItem.svelte:125
  • Draft comment:
    Using setTimeout on pointerdown for dispatching 'select' to improve responsiveness; please verify that the delay is acceptable for user experience.
  • 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 if the delay introduced by using setTimeout is acceptable for user experience. This falls under asking the author to ensure the behavior is intended or to double-check things, which is against the rules. Therefore, this comment should be removed.
3. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:36
  • Draft comment:
    Removed setTimeout wrapper from pointerdown event. Confirm that immediate dispatch doesn't cause UI thread blocking.
  • Reason this comment was not posted:
    Comment looked like it was already resolved.
4. frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte:40
  • Draft comment:
    setTimeout wrapping event handler on 'select' maintains consistency; ensure this async break is documented if needed.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment suggests ensuring documentation for an async break, which is similar to asking the author to ensure behavior is intended or tested. This violates the rules.
5. frontend/src/lib/components/graph/renderers/nodes/BranchOneStart.svelte:40
  • Draft comment:
    Using setTimeout with optional chaining for 'select' is consistent; check that data event handlers are always available.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the author to check something, which violates the rule against asking the author to double-check things. It doesn't provide a specific suggestion or point out a specific issue with the code.
6. frontend/src/lib/components/graph/renderers/nodes/ForLoopEndNode.svelte:29
  • Draft comment:
    setTimeout wrapping the 'select' event handler is applied here; ensure that using e.detail is correct under all scenarios.
  • 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 using e.detail is correct under all scenarios. This falls under the rule of not asking the author to ensure behavior is intended or correct in all scenarios. The comment does not provide a specific suggestion or point out a specific issue.
7. frontend/src/lib/components/graph/renderers/nodes/ForLoopStartNode.svelte:84
  • Draft comment:
    setTimeout used on 'select' event here; ensure the async execution does not interfere with dependent UI updates.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the author to ensure that the async execution does not interfere with dependent UI updates. This falls under the category of asking the author to ensure behavior, which is against the rules. The comment does not provide a specific suggestion or point out a specific issue.
8. frontend/src/lib/components/graph/renderers/nodes/InputNode.svelte:77
  • Draft comment:
    setTimeout wrapping for both insert and select events maintains consistency; verify that these delays don't disrupt expected interactions.
  • 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 that a change doesn't disrupt expected interactions. This falls under the rule of not asking the author to ensure behavior is intended or to double-check things. Therefore, this comment should be removed.
9. frontend/src/lib/components/graph/renderers/nodes/NoBranchNode.svelte:36
  • Draft comment:
    Consistent use of setTimeout in the on:select event. Confirm that immediate UI updates remain smooth.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is purely informative and asks the author to confirm something, which violates the rules. It doesn't provide a specific code suggestion or ask for a specific test to be written.
10. frontend/src/lib/components/graph/renderers/nodes/ResultNode.svelte:33
  • Draft comment:
    setTimeout wrapping the select event ensures asynchronous handling; no concerns noted.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is purely informative and does not provide any actionable feedback or suggestions for improvement. It simply states that there are no concerns noted, which is not useful for the PR author.
11. frontend/src/lib/components/graph/renderers/nodes/SubflowBound.svelte:33
  • Draft comment:
    setTimeout usage on select is consistent; check that event handler availability is maintained with optional chaining where appropriate.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the author to check the availability of event handlers, which is similar to asking them to ensure behavior is intended or to double-check things. This violates the rules against asking the author to confirm or ensure things. The comment does not provide a specific suggestion or point out a clear issue with the code.
12. frontend/src/lib/components/graph/renderers/nodes/branchOneEndNode.svelte:26
  • Draft comment:
    setTimeout wrapping the 'select' event handler is consistent; ensure that e.detail is correctly forwarded.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the author to ensure that a specific behavior is correct, which violates the rule against asking the author to ensure behavior. It doesn't provide a specific suggestion or ask for a test to be written. Therefore, it should be removed.
13. frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte:207
  • Draft comment:
    Removed the setTimeout wrapper for the pointerdown event dispatch. Please confirm that immediate dispatch does not reintroduce UI responsiveness issues noted previously.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment asks the PR author to confirm that a change does not reintroduce previously noted issues, which violates the rule against asking for confirmation of intended behavior or testing. It does not provide a specific code suggestion or ask for a specific test to be written.
14. frontend/src/lib/components/flows/map/MapItem.svelte:125
  • Draft comment:
    The pointerdown handler now wraps the dispatch call in setTimeout. There is an inconsistency with FlowModuleSchemaItem which no longer uses setTimeout. Please verify if the delay is still required for all components.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 40% <= threshold 50%
    The comment is asking the author to verify if the delay is still required for all components, which violates the rule against asking the author to confirm their intention or ensure behavior. However, it does point out an inconsistency which could be useful for the author to consider. The comment could be rephrased to suggest checking the necessity of the delay without asking for verification.
15. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:36
  • Draft comment:
    The setTimeout wrapper has been removed from the pointerdown event. Confirm that removing this delay does not cause UI freezing or responsiveness issues under high load.
  • 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 confirm that removing the setTimeout wrapper does not cause UI issues. This is a request for confirmation about the behavior, which violates the rule against asking the author to confirm their intention or ensure behavior is intended.
16. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:48
  • Draft comment:
    The id attribute uses 'label || label || ''' which is redundant. Please simplify it to 'label || ''' to improve code clarity.
  • 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.
17. frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte:40
  • Draft comment:
    The pointerdown related event handler wraps the select handler in setTimeout. Ensure that deferring execution here is necessary and consistent with overall UI behavior.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
18. frontend/src/lib/components/graph/renderers/nodes/BranchOneStart.svelte:40
  • Draft comment:
    Similar to other components, the setTimeout is used in the pointerdown handler. Consider unifying the approach across components to maintain consistency unless differing behavior is intended.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
19. frontend/src/lib/components/graph/renderers/nodes/ForLoopStartNode.svelte:84
  • Draft comment:
    The pointerdown event handler uses setTimeout to defer the call to data.eventHandlers.select. Please double-check if this deferral is necessary, especially since other similar components (e.g., FlowModuleSchemaItem) dispatch immediately.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment asks the PR author to double-check if the deferral using setTimeout is necessary. This violates the rule against asking the author to double-check things. The comment does not provide a specific suggestion or ask for a test to be written, which would have been acceptable.
20. frontend/src/lib/components/graph/renderers/nodes/InputNode.svelte:79
  • Draft comment:
    The pointerdown event for the select action is wrapped in setTimeout. Confirm if the deferral is required here, as similar pointer events in other parts of the app have varied implementations.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
21. frontend/src/lib/components/graph/renderers/nodes/NoBranchNode.svelte:36
  • Draft comment:
    The pointerdown (select) handler uses setTimeout before calling eventHandlers.select. Please verify this pattern is consistent with intended immediate interactions for branch selection.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
22. frontend/src/lib/components/graph/renderers/nodes/ResultNode.svelte:33
  • Draft comment:
    Ensure that wrapping the select event in setTimeout here does not introduce any unintended delays in result node selection, given the mixed approaches across components.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
23. frontend/src/lib/components/graph/renderers/nodes/SubflowBound.svelte:33
  • Draft comment:
    The select handler for the subflow node is wrapped in setTimeout. As with similar components, consider if a uniform approach to deferring pointer events is warranted for consistency.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
24. frontend/src/lib/components/graph/renderers/nodes/branchOneEndNode.svelte:26
  • Draft comment:
    The select event handler uses setTimeout when dispatching the select event. Verify that this delay is necessary and consistent with other node end handlers.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
25. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:48
  • Draft comment:
    It looks like there's a typo in the id attribute on line 48. The expression encodeURIComponent(label || label || '') uses 'label' twice. This is likely meant to be encodeURIComponent(id || label || '') so that the id is used as the first fallback. Please update this to avoid unintended behavior.
  • 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.
26. frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte:23
  • Draft comment:
    The string literal 'branchall' in the call to computeBorderStatus might be a typographical error. Confirm whether this is the intended naming or if it should be, for example, 'branchAll' (using camel case) or 'branch-all'.
  • 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_sx1d9uxVMQdeT5jb


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

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.

👍 Looks good to me! Incremental review on 7d8c31f in 1 minute and 47 seconds

More details
  • Looked at 107 lines of code in 5 files
  • Skipped 0 files when reviewing.
  • Skipped posting 13 drafted comments based on config settings.
1. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:15
  • Draft comment:
    Changed container class: Removed 'leading-[20px]'. Confirm that this is intentional as it may affect vertical alignment.
  • Reason this comment was not posted:
    Comment looked like it was already resolved.
2. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:24
  • Draft comment:
    Changed whitespace utility: 'whitespace-pre-wrap' to 'whitespace-pre'. Verify that fixed wrapping behavior is desired.
  • 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 their intention, which is against the rules. It does not provide a specific suggestion or point out a clear issue with the code change. Therefore, it should be removed.
3. frontend/src/lib/components/InputTransformForm.svelte:497
  • Draft comment:
    Added 'leading-[20px]' styling to the editor container. Ensure this does not conflict with other layout elements.
  • 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 the new styling does not conflict with other layout elements. This falls under the rule of not asking the author to double-check or ensure behavior is intended. The comment does not provide a specific suggestion or point out a specific issue.
4. frontend/src/lib/components/JsonEditor.svelte:42
  • Draft comment:
    Added {loadAsync} property forwarding to SimpleEditor. Confirm it triggers async loading correctly to avoid size flash.
  • 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 confirm that the async loading is triggered correctly, which violates the rule against asking for confirmation of intended behavior. It doesn't provide a specific suggestion or point out a clear issue with the code.
5. frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte:76
  • Draft comment:
    Introduced loadAsync and lambda binding for code. Verify that using lambda binding for two-way code binding is consistent and doesn't break reactivity.
  • 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 that the use of lambda binding is consistent and doesn't break reactivity. This falls under asking the author to ensure behavior is intended, which is against the rules.
6. frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte:106
  • Draft comment:
    Added leading-[16px] on container div. Confirm that the adjusted line height matches the editor's styling in other contexts.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the author to confirm that a specific style adjustment matches the editor's styling in other contexts. This is asking for confirmation, which is against the rules.
7. frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte:237
  • Draft comment:
    Added loadAsync on JsonEditor usage. Confirm that async loading is working as expected to prevent UI flash.
  • 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 confirm that async loading is working as expected, which violates the rule against asking the author to confirm or ensure behavior. It does not provide a specific code suggestion or ask for a specific test to be written.
8. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:14
  • Draft comment:
    The container’s class changed from including 'leading-[20px]' to using 'py-0', and the element now uses 'whitespace-pre' instead of 'whitespace-pre-wrap'. Please verify that these styling changes (especially the text wrapping and vertical spacing) are intentional and work well with various code content.
  • 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 if the styling changes are intentional and work well with various code content. This falls under asking the author to confirm their intention and ensure the behavior is intended, which violates the rules.
9. frontend/src/lib/components/InputTransformForm.svelte:494
  • Draft comment:
    A 'leading-[20px]' class was added to the 'min-w-0 grow' div. Ensure that this change in vertical alignment does not adversely affect the layout in different contexts.
  • 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 the change does not adversely affect the layout, which is against the rules. It does not provide a specific suggestion or ask for a specific test to be written.
10. frontend/src/lib/components/JsonEditor.svelte:12
  • Draft comment:
    A 'loadAsync' property has been added to support asynchronous loading of Monaco. Please confirm that the SimpleEditor component handles this prop correctly and that the placeholder prevents any unwanted size flashes.
  • 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 confirm the behavior of the SimpleEditor component, which violates the rule against asking for confirmation of intended behavior. It does not provide a specific suggestion or point out a clear issue.
11. frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte:74
  • Draft comment:
    The SimpleEditor instances now receive the 'loadAsync' prop and use a getter/setter arrow function for two‐way binding of 'code'. Verify that this binding correctly updates 'componentInput.expr' and that the asynchronous loading behavior functions as expected.
  • 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 behavior of the code, which is against the rules. It does not provide a specific suggestion or point out a specific issue with the code. Therefore, it should be removed.
12. frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte:237
  • Draft comment:
    The JsonEditor here now receives the 'loadAsync' prop and the container div has 'leading-[16px]'. This should help with performance improvements, but please ensure that the formatting (especially JSON stringification) and vertical spacing remain user-friendly.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is asking the author to ensure that the formatting and spacing remain user-friendly after certain changes. It is not making a specific suggestion or pointing out a specific issue, but rather asking for a general check. This violates the rule against asking the author to ensure behavior is intended or tested.
13. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:1
  • Draft comment:
    Consider renaming 'FakeMonacoPlaceHolder.svelte' to 'FakeMonacoPlaceholder.svelte' to maintain conventional spelling and consistency. This is a trivial lexicographical adjustment and does not affect functionality.
  • 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_yboKhW08Av4fWVrx


You can customize Ellipsis with :+1: / :-1: feedback, review rules, user-specific overrides, quiet mode, and more.

@diegoimbert diegoimbert force-pushed the di/fix-flow-slowness branch from 7d8c31f to 712ed88 Compare April 16, 2025 15:08
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.

👍 Looks good to me! Incremental review on 712ed88 in 2 minutes and 9 seconds

More details
  • Looked at 120 lines of code in 6 files
  • Skipped 0 files when reviewing.
  • Skipped posting 12 drafted comments based on config settings.
1. frontend/src/lib/components/Editor.svelte:1421
  • Draft comment:
    Added a 'leading-[20px]' class to the editor container. Ensure that this new line-height is consistent with design guidelines, especially across different font sizes (small vs. normal).
  • 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 consistency with design guidelines, which is not allowed. It doesn't provide a specific suggestion or point out a clear issue with the code.
2. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:23
  • Draft comment:
    Changed code element class from 'whitespace-pre-wrap' to 'whitespace-pre'. Verify that the removal of wrapping behavior does not adversely affect readability when code overflows its container.
  • 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 impact of a change on readability, which is against the rules. It does not provide a specific suggestion or ask for a test to be written. Therefore, it should be removed.
3. frontend/src/lib/components/InputTransformForm.svelte:497
  • Draft comment:
    Added 'leading-[20px]' to the min-width container. Check that increasing line-height here does not affect vertical spacing adversely in forms.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the author to check if increasing line-height affects vertical spacing adversely. This falls under asking the author to ensure behavior is intended or to double-check things, which is against the rules.
4. frontend/src/lib/components/JsonEditor.svelte:12
  • Draft comment:
    New prop 'loadAsync' added. Ensure that SimpleEditor correctly handles asynchronous Monaco loading without impacting JSON editing performance, especially on large documents.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is asking the author to ensure that a new prop loadAsync does not impact performance, which is a form of asking the author to double-check their work. This violates the rule against asking the author to ensure behavior is intended or tested.
5. frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte:73
  • Draft comment:
    Load monaco async by passing the 'loadAsync' prop to SimpleEditor. Also, binding of code now uses an arrow function to update componentInput.expr reliably. Double-check that the new two-way binding syntax functions correctly in all usage scenarios.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is informative and asks the PR author to double-check the new two-way binding syntax. This violates the rule against asking the author to confirm or double-check things. The first part of the comment is purely informative, explaining what changes were made, which is also against the rules.
6. frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/StaticInputEditor.svelte:237
  • Draft comment:
    Added the 'loadAsync' prop to the JsonEditor component to avoid layout flash. Confirm that async loading integrates smoothly with the rest of the static input UI.
  • 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 confirm that the async loading integrates smoothly, which is against the rules. It doesn't provide a specific suggestion or point out a specific issue with the code.
7. frontend/src/lib/components/Editor.svelte:1424
  • Draft comment:
    Added 'leading-[20px]' to the editor container to enforce a consistent line height. Confirm that this styling aligns with the overall design and doesn’t conflict with other custom styles.
  • 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 confirm that the styling change aligns with the overall design and doesn't conflict with other styles. This falls under asking the author to confirm their intention or ensure behavior, which is against the rules.
8. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:24
  • Draft comment:
    Switched from 'whitespace-pre-wrap' to 'whitespace-pre' (with overflow-clip) in the element to prevent wrapping. Verify that long lines do not cause unintended horizontal scrolling.
  • 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 behavior of the change, which is against the rules. It does not provide a specific suggestion or ask for a test to be written. Therefore, it should be removed.
9. frontend/src/lib/components/InputTransformForm.svelte:495
  • Draft comment:
    Added 'leading-[20px]' to the container div (min-w-0 grow) to ensure consistent vertical alignment with the editor placeholder. Please verify that this maintains the intended visual layout.
  • 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 visual layout, which is against the rules. It does not provide a specific suggestion or point out a clear issue with the code.
10. frontend/src/lib/components/apps/editor/settingsPanel/inputEditor/EvalV2InputEditor.svelte:75
  • Draft comment:
    Refactored the SimpleEditor binding to use function-based getter/setter (bind:code={() => componentInput.expr ?? '', (e) => (componentInput.expr = e)}) and added the 'loadAsync' prop for asynchronous loading of Monaco. Make sure this custom binding reliably maintains two‐way data flow and updates componentInput.expr as expected.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    The comment is purely informative, describing what was done in the code. It does not provide a suggestion, ask for confirmation of intent, or request a test. It violates the rule against making purely informative comments.
11. frontend/src/lib/components/Editor.svelte:513
  • Draft comment:
    The function name 'disposeGaphqlService' appears to have a typographical error; it should likely be 'disposeGraphqlService' for clarity.
  • 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.
12. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:1
  • Draft comment:
    The component file is named 'FakeMonacoPlaceHolder.svelte'. Typically, the word 'placeholder' is written as one word without capitalizing the 'H' (i.e., 'FakeMonacoPlaceholder.svelte'). Consider renaming for consistency and clarity.
  • 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_DSXPNgMCTYEU7zjs


You can customize Ellipsis with :+1: / :-1: feedback, review rules, user-specific overrides, quiet mode, and more.

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.

👍 Looks good to me! Incremental review on 37ae655 in 55 seconds

More details
  • Looked at 22 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 4 drafted comments based on config settings.
1. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:5
  • Draft comment:
    Consider providing a default value for 'code' (e.g., empty string) to avoid potential rendering of 'undefined'.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
2. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:28
  • Draft comment:
    Using optional chaining is good, but if 'code' is undefined consider ensuring it defaults to an empty string for rendering consistency.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
3. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:5
  • Draft comment:
    Consider providing a default value for 'code' (e.g., code = '') in the destructuring assignment to avoid potential undefined output.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
4. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:28
  • Draft comment:
    Optional chaining on 'code' ensures safety, but with a default value in destructuring the check could be simplified.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None

Workflow ID: wflow_1KSgUnNGNI9GK8Mb


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

@diegoimbert diegoimbert force-pushed the di/fix-flow-slowness branch from 29cd37e to e0f9edc Compare April 16, 2025 16:24
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.

❌ Changes requested. Incremental review on e0f9edc in 2 minutes and 23 seconds

More details
  • Looked at 208 lines of code in 8 files
  • Skipped 0 files when reviewing.
  • Skipped posting 16 drafted comments based on config settings.
1. frontend/src/lib/components/flows/map/FlowConstantsItem.svelte:11
  • Draft comment:
    Nice addition of hover and active classes to improve visual feedback. Ensure consistency with similar components.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
2. frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte:56
  • Draft comment:
    Good addition of bgHoverColor prop for hover styling. The inline style switching based on 'hover' state is clear.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
3. frontend/src/lib/components/flows/map/FlowSettingsItem.svelte:15
  • Draft comment:
    Consistent hover and active classes added here match the pattern used in other items. Looks good.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
4. frontend/src/lib/components/flows/map/MapItem.svelte:130
  • Draft comment:
    Propagating bgHoverColor to FlowModuleSchemaItem across different module types ensures consistent hover effects.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
5. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:49
  • Draft comment:
    Redundant use of 'label || label || ''' in the id attribute; consider simplifying to 'label || '''.
  • 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.
6. frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte:75
  • Draft comment:
    Using getStateHoverColor together with getStateColor ensures hover styles remain in sync with state colors.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
7. frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte:24
  • Draft comment:
    Removing the !important flag from the background-color style is cleaner if CSS specificity is managed appropriately.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
8. frontend/src/lib/components/graph/util.ts:56
  • Draft comment:
    In the default branch of getStateHoverColor, both conditions return the same value. Consider simplifying this logic.
  • Reason this comment was not posted:
    Marked as duplicate.
9. frontend/src/lib/components/flows/map/FlowConstantsItem.svelte:18
  • Draft comment:
    Consider using on:pointerdown instead of on:click for faster interaction and consistency with other flow items.
  • 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.
10. frontend/src/lib/components/flows/map/FlowSettingsItem.svelte:19
  • Draft comment:
    For uniform responsiveness, consider replacing the on:click event with on:pointerdown, as done in other components.
  • 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.
11. frontend/src/lib/components/flows/map/FlowModuleSchemaItem.svelte:204
  • Draft comment:
    Refactor the inline ternary in the style attribute into a computed property to improve readability and maintainability.
  • 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 ternary is quite simple and readable as-is. It's only 3 lines long and uses clear variable names. Moving it to a computed property would add more code and complexity without significant benefit. In Svelte, inline expressions like this are quite common and idiomatic. The suggestion seems like over-optimization.
    The comment could be valid if this was part of a larger pattern of complex inline expressions. Maybe there are style guide requirements I'm not aware of.
    Even considering style guides, this expression is simple enough that moving it would likely reduce rather than improve readability. The current form is clear and maintainable.
    The comment should be deleted as the suggested refactor would not meaningfully improve code quality and the current implementation is clear and idiomatic Svelte.
12. frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte:24
  • Draft comment:
    The removal of '!important' from the background-color style may affect specificity. Verify that this change does not introduce unwanted style conflicts.
  • 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 that the change does not introduce unwanted style conflicts, which is against the rules. It does not provide a specific suggestion or ask for a specific test to be written. Therefore, it should be removed.
13. frontend/src/lib/components/flows/map/FlowSettingsItem.svelte:13
  • Draft comment:
    Minor typographical issue: There appears to be extra whitespace in the class string on line 13 ('border-1 border-slate-800'). Consider removing the extra space for consistency.
  • Reason this comment was not posted:
    Comment was on unchanged code.
14. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:49
  • Draft comment:
    There is a duplicate use of 'label' in the expression encodeURIComponent(label || label || ''). It might be intended to check another variable, such as id. Please review this to ensure the correct fallback ordering.
  • 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.
15. frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte:41
  • Draft comment:
    There's an inconsistency in the naming: the property is named 'selectedForloopIndex' (with a lowercase 'l') but 'selectedForLoopSetManually' uses an uppercase 'F' in 'ForLoop'. Consider aligning the capitalization for clarity and consistency.
  • Reason this comment was not posted:
    Comment was on unchanged code.
16. frontend/src/lib/components/graph/util.ts:26
  • Draft comment:
    Typographical error: In the Failure case of getStateColor, the RGB value is written as 'rgb(248 113 113)'. For consistency with other cases and proper formatting, please change it to 'rgb(248, 113, 113)'.
  • 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_En2eEesrIIoB9MmM


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

return getStateColor(state, isDark, nonVirtualItem, isSkipped)

default:
if (nonVirtualItem) {
Copy link
Contributor

Choose a reason for hiding this comment

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

In getStateHoverColor, the default branch returns the same value regardless of nonVirtualItem. Consider simplifying this logic to a single return statement.

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.

❌ Changes requested. Incremental review on 40792a5 in 2 minutes and 10 seconds

More details
  • Looked at 53 lines of code in 2 files
  • Skipped 0 files when reviewing.
  • Skipped posting 6 drafted comments based on config settings.
1. frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte:97
  • Draft comment:
    Using setTimeout in the on:select handler may introduce unexpected delays. Ensure this was intended and is consistent with other event behaviors.
  • 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%
    The comment is about a real code change. The setTimeout does look unusual compared to other event handlers in the file. However, the comment is phrased as a request to "ensure" something, which violates our rules. It's asking the author to verify their intention rather than pointing out a clear issue.
    Maybe there's a good reason for the setTimeout that would be clear if we had more context about the select handler's behavior or race conditions it might be preventing.
    While there might be valid reasons for the setTimeout, our rules explicitly state not to ask authors to verify their intentions or ensure behaviors. The comment should make a clear case for why the setTimeout is wrong, or not exist at all.
    The comment should be removed because it's phrased as a verification request rather than pointing out a clear issue, which violates our rules about not asking authors to confirm their intentions.
2. frontend/src/lib/components/flows/map/MapItem.svelte:126
  • Draft comment:
    BUG: The pointerdown handler now returns a function instead of dispatching the event. Use () => dispatch('select', mod.id) instead of () => () => dispatch('select', mod.id).
  • Reason this comment was not posted:
    Marked as duplicate.
3. frontend/src/lib/components/flows/map/MapItem.svelte:153
  • Draft comment:
    BUG: The pointerdown handler returns a function rather than invoking dispatch. It should be () => dispatch('select', mod.id).
  • Reason this comment was not posted:
    Marked as duplicate.
4. frontend/src/lib/components/flows/map/MapItem.svelte:171
  • Draft comment:
    BUG: The pointerdown event handler incorrectly returns a function. It should directly dispatch: () => dispatch('select', mod.id).
  • Reason this comment was not posted:
    Marked as duplicate.
5. frontend/src/lib/components/flows/map/MapItem.svelte:187
  • Draft comment:
    BUG: The pointerdown handler again returns a function instead of dispatching the event. Replace with: () => dispatch('select', mod.id).
  • Reason this comment was not posted:
    Marked as duplicate.
6. frontend/src/lib/components/graph/renderers/nodes/ModuleNode.svelte:97
  • Draft comment:
    STYLE: The on:select handler now uses a setTimeout without an explicit delay. For clarity and to avoid potential issues, specify a delay (e.g., 0): setTimeout(() => data.eventHandlers.select(e.detail), 0).
  • 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 technically correct that setTimeout defaults to 0ms, making it explicit is a minor stylistic preference. The behavior is identical either way. The comment doesn't point out any actual issues or bugs. This seems like an overly pedantic suggestion that doesn't meaningfully improve the code.
    The explicit 0ms could make the code slightly more readable for developers not familiar with setTimeout's default behavior. There might be a specific reason the author needs the 0ms to be explicit here.
    The default behavior of setTimeout is well-documented and commonly used. The comment doesn't explain why being explicit would help here, and there's no evidence of any actual problems.
    Delete this comment as it suggests a minor stylistic change without clear benefits or evidence of issues.

Workflow ID: wflow_alHrYdw89VrWRVj6


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

@@ -122,13 +123,14 @@
on:changeId
on:move={() => dispatch('move')}
on:delete={onDelete}
on:pointerdown={() => dispatch('select', mod.id)}
on:pointerdown={() => () => dispatch('select', mod.id)}
Copy link
Contributor

Choose a reason for hiding this comment

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

The new on:pointerdown handler now returns a function (i.e. () => () => dispatch(...)) instead of calling dispatch. It likely should be directly invoking dispatch, e.g. on:pointerdown={() => dispatch('select', mod.id)}.

Suggested change
on:pointerdown={() => () => dispatch('select', mod.id)}
on:pointerdown={() => dispatch('select', mod.id)}

@diegoimbert diegoimbert force-pushed the di/fix-flow-slowness branch from 40792a5 to 84a7530 Compare April 17, 2025 09:22
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.

👍 Looks good to me! Incremental review on 84a7530 in 1 minute and 22 seconds

More details
  • Looked at 299 lines of code in 14 files
  • Skipped 0 files when reviewing.
  • Skipped posting 22 drafted comments based on config settings.
1. frontend/src/lib/components/flows/map/VirtualItem.svelte:16
  • Draft comment:
    New export 'bgHoverColor' is added and passed to the wrapper. Ensure that parent components supply a meaningful hover color when needed.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
2. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:37
  • Draft comment:
    The inline style for background color uses a ternary based on a 'hover' state; consider refactoring to use a computed reactive style or CSS classes for clarity if complexity increases.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
3. frontend/src/lib/components/graph/renderers/nodes/BranchAllStart.svelte:35
  • Draft comment:
    Passing bgHoverColor from getStateHoverColor enhances hover styling; ensure design consistency with other node renderers.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
4. frontend/src/lib/components/graph/renderers/nodes/BranchOneStart.svelte:36
  • Draft comment:
    Consistent update: bgHoverColor is now provided. Verify that getStateHoverColor returns the correct color for branch nodes.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
5. frontend/src/lib/components/graph/renderers/nodes/ForLoopStartNode.svelte:82
  • Draft comment:
    bgHoverColor is set via getStateHoverColor; ensure that this meets the intended visual feedback for loop nodes.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
6. frontend/src/lib/components/graph/renderers/nodes/InputNode.svelte:75
  • Draft comment:
    InputNode now passes bgHoverColor. Confirm that Input node hover behavior remains consistent with other node types.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
7. frontend/src/lib/components/graph/renderers/nodes/NoBranchNode.svelte:34
  • Draft comment:
    NoBranchNode now receives bgHoverColor; ensure that its subtle hover effects align with the design system.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
8. frontend/src/lib/components/graph/renderers/nodes/ResultNode.svelte:32
  • Draft comment:
    ResultNode applies bgHoverColor for success/failure; verify the new hover color (#d5dee8 when not dark) matches intended UX.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
9. frontend/src/lib/components/graph/renderers/nodes/SubflowBound.svelte:31
  • Draft comment:
    SubflowBound properly incorporates bgHoverColor. Consider verifying hover behavior align with other similar nodes.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
10. frontend/src/lib/components/graph/renderers/nodes/TriggersNode.svelte:39
  • Draft comment:
    TriggersNode now passes bgHoverColor; ensure this integrates correctly with trigger-specific hover states.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
11. frontend/src/lib/components/graph/renderers/nodes/branchAllEndNode.svelte:26
  • Draft comment:
    branchAllEndNode applies bgHoverColor via getStateHoverColor, maintaining consistency with other node renderers.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
12. frontend/src/lib/components/graph/renderers/nodes/branchOneEndNode.svelte:24
  • Draft comment:
    branchOneEndNode properly uses bgHoverColor. The hover behavior for branch endpoints now aligns with other node types.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
13. frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte:27
  • Draft comment:
    TriggersWrapper updated its inline style to use bgHoverColor on hover. Inline style is acceptable here but consider using CSS classes if component styles grow.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
14. frontend/src/lib/components/graph/util.ts:58
  • Draft comment:
    The default light hover color for non-virtual items changed from '#f6f6f6' to '#d5dee8'. Confirm that this visual change is intentional and update documentation if necessary.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
15. frontend/src/lib/components/flows/map/VirtualItem.svelte:16
  • Draft comment:
    Good addition of bgHoverColor prop. Note: borderColor is defined in the component but isn’t forwarded to VirtualItemWrapper. Confirm if this is intentional.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
16. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:52
  • Draft comment:
    The id attribute uses 'label || label || ""'. Consider simplifying to 'label || ""' to avoid redundancy.
  • 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.
17. frontend/src/lib/components/graph/util.ts:57
  • Draft comment:
    The default hover color for non-virtual items changed to '#d5dee8'. Verify that this aligns with your design/theme requirements.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
18. Multiple node renderer files (e.g., BranchOneStart.svelte, ForLoopStartNode.svelte, InputNode.svelte):40
  • Draft comment:
    The use of setTimeout in event handlers is consistent. Ensure that the implicit 0ms delay meets the intended UI update behavior.
  • Reason this comment was not posted:
    Confidence changes required: 30% <= threshold 50%
    None
19. frontend/src/lib/components/graph/renderers/triggers/TriggersWrapper.svelte:27
  • Draft comment:
    The inline style correctly picks bgHoverColor on hover. Confirm that this hover behavior is consistent across all trigger components.
  • Reason this comment was not posted:
    Confidence changes required: 20% <= threshold 50%
    None
20. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:52
  • Draft comment:
    There is a redundancy in the expression label || label || '' used inside encodeURIComponent. It looks like a typo—using label || label is redundant. Consider using label || '' instead.
  • 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.
21. frontend/src/lib/components/graph/renderers/nodes/branchAllEndNode.svelte:21
  • Draft comment:
    Consider revising the label text on line 21 from 'Collect result from all branches' to 'Collect results from all branches' to improve grammatical clarity.
  • 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.
22. frontend/src/lib/components/graph/util.ts:26
  • Draft comment:
    Typographical inconsistency: In the 'Failure' case of getStateColor, the RGB value for the light theme is written as 'rgb(248 113 113)', using spaces instead of commas. For consistency with the other RGB values (e.g., 'rgb(191, 219, 254)' and 'rgb(193, 255, 216)'), please update this to 'rgb(248, 113, 113)'.
  • 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_p9gtTiGTxY35OG1W


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

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.

👍 Looks good to me! Incremental review on c3a37c9 in 3 minutes and 7 seconds

More details
  • Looked at 1148 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 11 drafted comments based on config settings.
1. backend/Cargo.lock:227
  • Draft comment:
    Ensure that the update for 'anyhow' from 1.0.97 to 1.0.98 is intentional and compatible with the codebase.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
2. backend/Cargo.lock:4090
  • Draft comment:
    The 'deranged' package version is downgraded from 0.4.1 to 0.4.0. Confirm if this rollback is intentional.
  • Reason this comment was not posted:
    Comment looked like it was already resolved.
3. backend/Cargo.lock:422
  • Draft comment:
    Indexmap is updated consistently from 2.8.0 to 2.9.0. Please verify that all dependent libraries are compatible.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
4. backend/Cargo.lock:14590
  • Draft comment:
    The removal of older 'windows' and 'windows-core' package entries in favor of updated versions (0.56.0) seems deliberate. Confirm that any API changes are handled.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
5. backend/Cargo.lock:13920
  • Draft comment:
    Several dependencies (e.g. base64, itertools, tower) have been updated. Make sure these bumps are tested thoroughly to avoid runtime issues.
  • Reason this comment was not posted:
    Confidence changes required: 33% <= threshold 50%
    None
6. backend/Cargo.lock:4089
  • Draft comment:
    The 'deranged' package is downgraded from 0.4.1 to 0.4.0. Confirm if this downgrade is intentional as it may cause compatibility issues.
  • 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 confirm if the downgrade of the 'deranged' package is intentional, which violates the rule against asking for confirmation of intention. Additionally, it mentions potential compatibility issues, which is similar to asking the author to ensure the change is tested or verified. Therefore, this comment should be removed.
7. backend/Cargo.lock:421
  • Draft comment:
    Multiple occurrences update 'indexmap' from 2.8.0 to 2.9.0. Verify that no dependent code relies on behavior from the older version.
  • 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 verify that no dependent code relies on behavior from the older version of a dependency. This falls under the rule of not asking the author to ensure compatibility or verify behavior, which is not allowed.
8. backend/Cargo.lock:13916
  • Draft comment:
    The 'base64' dependency jumps from 0.13.1 to 0.22.1; such a large version increase could introduce API changes. Ensure all usages are compatible.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is about a dependency version change, which is not allowed according to the rules. The comment suggests ensuring compatibility, which is also not allowed.
9. backend/Cargo.lock:14130
  • Draft comment:
    The 'itertools' version update from 0.10.5 to 0.14.0 is a significant jump. Verify that no breaking changes affect the code using it.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is about a dependency version change, which is not allowed according to the rules. It asks the author to verify for breaking changes, which is also not allowed.
10. backend/Cargo.lock:14043
  • Draft comment:
    The 'tower' dependency is updated from 0.4.13 to 0.5.2. This may include breaking changes; ensure related integration points are tested.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is about a dependency change and suggests ensuring that integration points are tested. According to the rules, comments on dependency changes and requests to ensure testing are not allowed.
11. backend/Cargo.lock:14555
  • Draft comment:
    Old 'windows' and 'windows-core' packages (v0.52.0) are removed and replaced with updated versions (v0.56.0). Ensure Windows-specific builds and integrations are verified.
  • Reason this comment was not posted:
    Comment did not seem useful. Confidence is useful = 0% <= threshold 50%
    This comment is about dependency changes, specifically the update of windows and windows-core packages. The comment suggests ensuring that Windows-specific builds and integrations are verified, which falls under asking the PR author to ensure something is tested or verified. This violates the rules.

Workflow ID: wflow_FgcdHlk3Qax5ZDc6


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

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.

👍 Looks good to me! Incremental review on 5bf1540 in 1 minute and 7 seconds

More details
  • Looked at 20 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 5 drafted comments based on config settings.
1. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:32
  • Draft comment:
    Consider potential double outline when an item is both selectable and selected.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
2. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:37
  • Draft comment:
    Verify that restricting hover background change to selectable items is intended.
  • Reason this comment was not posted:
    Confidence changes required: 30% <= threshold 50%
    None
3. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:32
  • Draft comment:
    Changed active outline class logic: now 'active:outline active:outline-2' is applied only when selectable is true. Confirm that non-selectable items should no longer get an active outline on interaction.
  • Reason this comment was not posted:
    Comment looked like it was already resolved.
4. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:37
  • Draft comment:
    Updated background-color condition now checks for selectable. Verify if hover-induced background change should be disabled for non-selectable items.
  • 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 if a behavior (hover-induced background change) should be disabled for non-selectable items. This falls under asking the author to confirm their intention, which is against the rules.
5. frontend/src/lib/components/flows/map/VirtualItemWrapper.svelte:52
  • Draft comment:
    It appears that the id attribute is constructed using 'label || label || '''. This is redundant. Consider simplifying it to 'label || ''' or, if intended, perhaps 'id || label || ''' to more accurately reflect the logic used elsewhere (e.g., in the select dispatch).
  • 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_opPEm0f2czzx6oob


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

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.

👍 Looks good to me! Incremental review on ba28323 in 1 minute and 13 seconds

More details
  • Looked at 84 lines of code in 2 files
  • Skipped 0 files when reviewing.
  • Skipped posting 10 drafted comments based on config settings.
1. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:10
  • Draft comment:
    Good addition of a fontSize prop with default value. Consider documenting why 14 is chosen.
  • Reason this comment was not posted:
    Confidence changes required: 0% <= threshold 50%
    None
2. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:25
  • Draft comment:
    Using fontSize * 1.5 for lineHeight is neat; ensure rounding is handled if needed.
  • Reason this comment was not posted:
    Confidence changes required: 20% <= threshold 50%
    None
3. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:60
  • Draft comment:
    Updated style now uses dynamic fontSize. Consider consolidating repeated style definitions to avoid duplication.
  • Reason this comment was not posted:
    Confidence changes required: 20% <= threshold 50%
    None
4. frontend/src/lib/components/SimpleEditor.svelte:285
  • Draft comment:
    Deriving fontSize from 'small' is clear. The computed lineNumbersWidth and lineNumbersOffset in the FakeMonacoPlaceHolder instantiation use magic numbers; consider adding inline comments explaining these constants.
  • Reason this comment was not posted:
    Confidence changes required: 30% <= threshold 50%
    None
5. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:10
  • Draft comment:
    New prop 'fontSize' has been added. Consider adding a brief comment detailing its purpose and acceptable values.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
6. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:25
  • Draft comment:
    Line height is now computed as fontSize * 1.5. Ensure this multiplier fits all use cases or consider making it configurable.
  • Reason this comment was not posted:
    Confidence changes required: 30% <= threshold 50%
    None
7. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:60
  • Draft comment:
    Inline styles are updated to use {fontSize}px instead of hardcoded 14px. Verify that these dynamic styles integrate well with the layout.
  • Reason this comment was not posted:
    Confidence changes required: 30% <= threshold 50%
    None
8. frontend/src/lib/components/SimpleEditor.svelte:285
  • Draft comment:
    Deriving 'fontSize' from the 'small' prop helps maintain consistency between the editor and placeholder. Ensure this value is used uniformly in all configurations.
  • Reason this comment was not posted:
    Confidence changes required: 30% <= threshold 50%
    None
9. frontend/src/lib/components/SimpleEditor.svelte:570
  • Draft comment:
    Passing computed 'fontSize' to FakeMonacoPlaceHolder with scaled lineNumbersWidth and conditional offset is clear. Consider using strict equality (===) instead of == for the offset condition.
  • Reason this comment was not posted:
    Confidence changes required: 30% <= threshold 50%
    None
10. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:79
  • Draft comment:
    The style attribute of the div with class 'view-lines' contains duplicate 'line-height: {lineHeight}px;' declarations. Removing the duplicate will help keep the code clean and clear.
  • Reason this comment was not posted:
    Comment was on unchanged code.

Workflow ID: wflow_oI6Z86knYjey53Cd


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

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.

❌ Changes requested. Incremental review on c20fca1 in 1 minute and 51 seconds

More details
  • Looked at 13 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 2 drafted comments based on config settings.
1. frontend/src/lib/components/Editor.svelte:1382
  • Draft comment:
    Commenting out the setTimeout call means that when loadAsync is true, loadMonaco() is never invoked. If this is intentional to avoid multiple instances of Monaco, consider either removing the entire branch or calling loadMonaco() directly. Leaving dead code can confuse future maintainers.
  • Reason this comment was not posted:
    Marked as duplicate.
2. frontend/src/lib/components/Editor.svelte:513
  • Draft comment:
    Typo: The function name 'disposeGaphqlService' appears to be misspelled. Consider renaming it to 'disposeGraphqlService' for clarity and consistency.
  • 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_jS9XJLtf4bHrHswX


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

if (BROWSER) {
loadMonaco().then((x) => (disposeMethod = x))
if (loadAsync) {
// setTimeout(() => loadMonaco().then((x) => (disposeMethod = x)), 0)
Copy link
Contributor

Choose a reason for hiding this comment

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

Commenting out the setTimeout means that when loadAsync is true, loadMonaco is never called. This may break the async loading behavior. Consider either removing the loadAsync branch entirely or calling loadMonaco directly (without setTimeout) so that the loading strategy is consistent. Also, avoid leaving dead/commented code in the repository.

Suggested change
// setTimeout(() => loadMonaco().then((x) => (disposeMethod = x)), 0)
loadMonaco().then((x) => (disposeMethod = x))

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.

❌ Changes requested. Incremental review on 2183c15 in 1 minute and 50 seconds

More details
  • Looked at 97 lines of code in 2 files
  • Skipped 0 files when reviewing.
  • Skipped posting 5 drafted comments based on config settings.
1. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:25
  • Draft comment:
    Consider caching the result of getOS() into a constant to avoid calling it multiple times for fontFamily and GOLDEN_LINE_HEIGHT_RATIO.
  • Reason this comment was not posted:
    Marked as duplicate.
2. frontend/src/lib/components/FakeMonacoPlaceHolder.svelte:78
  • Draft comment:
    Hard-coded height values (e.g., 4893px) may lead to layout inflexibility; consider a dynamic calculation or CSS variable if content size changes.
  • Reason this comment was not posted:
    Comment was on unchanged code.
3. frontend/src/lib/utils.ts:1230
  • Draft comment:
    Good implementation of getOS(), but consider normalization or caching if used frequently across the app.
  • Reason this comment was not posted:
    Confidence changes required: 50% <= threshold 50%
    None
4. frontend/src/lib/utils.ts:1230
  • Draft comment:
    Consider adding a guard for server-side rendering; check if 'window' is defined before accessing window.navigator properties in getOS().
  • 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 frontend utility file (frontend/src/lib/utils.ts). The comment raises a valid concern - if this code runs during server-side rendering when window is not defined, it would cause errors. However, looking at the full file context, this appears to be a purely frontend utility file with many other browser-specific functions. The file path and contents strongly suggest this code only runs client-side.
    I could be wrong about the execution context - there could be cases where this utility file is imported during SSR. The file path alone doesn't guarantee client-only usage.
    While SSR is possible, the overwhelming evidence from the full file context shows this is a frontend-only utility file with many browser-specific functions. Adding SSR checks everywhere would add unnecessary complexity.
    The comment should be deleted. While technically correct, adding SSR checks in a clearly frontend-only utility file would be unnecessary defensive programming.
5. frontend/src/lib/utils.ts:614
  • Draft comment:
    Typo: In the pluralize function, when a customPlural is provided, the template literal contains an extra closing brace (}) at the end (return ${quantity} ${customPlural}}). This should be removed so that it reads `return `${quantity} ${customPlural}.
  • 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_cl5Uitw1aAsboLxM


Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

const DEFAULT_WINDOWS_FONT_FAMILY = "Consolas, 'Courier New', monospace"
const DEFAULT_MAC_FONT_FAMILY = "Menlo, Monaco, 'Courier New', monospace"
const DEFAULT_LINUX_FONT_FAMILY = "'Droid Sans Mono', 'monospace', monospace"
const fontFamily =
Copy link
Contributor

Choose a reason for hiding this comment

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

Avoid redundant getOS() calls: cache the result in a variable (e.g. const os = getOS();) to reuse it for both fontFamily and GOLDEN_LINE_HEIGHT_RATIO. This improves efficiency and keeps the code DRY.

: DEFAULT_LINUX_FONT_FAMILY

// https://github.com/microsoft/vscode/blob/baa2dad3cdacd97ac02eff0604984faf1167ff1e/src/vs/editor/common/config/fontInfo.ts#L14
const GOLDEN_LINE_HEIGHT_RATIO = getOS() == 'macOS' ? 1.5 : 1.35
Copy link
Contributor

Choose a reason for hiding this comment

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

Use strict equality (===) instead of == when comparing getOS() result for consistency.

Suggested change
const GOLDEN_LINE_HEIGHT_RATIO = getOS() == 'macOS' ? 1.5 : 1.35
const GOLDEN_LINE_HEIGHT_RATIO = getOS() === 'macOS' ? 1.5 : 1.35

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.

👍 Looks good to me! Incremental review on 3f896cc in 3 minutes and 33 seconds

More details
  • Looked at 13 lines of code in 1 files
  • Skipped 0 files when reviewing.
  • Skipped posting 3 drafted comments based on config settings.
1. frontend/src/lib/components/Editor.svelte:1381
  • Draft comment:
    Consider handling errors in the loadMonaco promise (e.g., by adding a catch) to avoid silent failures.
  • 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%
    Error handling for editor initialization is important since it's a critical component. However, looking at the full context, loadMonaco() already has try-catch blocks internally for handling initialization errors. The outer promise chain is part of component lifecycle management where unhandled errors would be caught by Svelte's error boundaries anyway. The comment seems overly cautious without strong evidence of an actual issue.
    I could be wrong about Svelte's error handling - maybe there are edge cases where errors could be silently swallowed. The initialization is complex enough that additional error handling could provide value.
    While additional error handling is rarely harmful, in this case it would add noise without clear benefit since errors are already handled appropriately at the right levels. The initialization code already has proper error handling internally.
    The comment should be removed since it suggests adding redundant error handling without evidence of an actual issue. The code already handles errors appropriately through internal try-catch blocks and framework error boundaries.
2. frontend/src/lib/components/Editor.svelte:1382
  • Draft comment:
    Uncommenting the setTimeout defers loading of Monaco, which should improve responsiveness. Consider storing the timer ID and clearing it on destroy to prevent any stray callbacks. Also, add a short comment explaining this deferred loading rationale for future maintainers.
  • 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 comment makes three suggestions: 1) Keep the setTimeout (which is what the diff already does), 2) Store the timer ID for cleanup, 3) Add documentation. The first point is redundant since the code already does this. The second point about cleanup is valid but not critical since this is a one-time initialization timeout of 0ms. The third point about documentation is a minor nice-to-have.
    The comment is mostly stating what's already being done or suggesting minor improvements. The cleanup suggestion, while technically correct, may be overkill for a 0ms timeout that runs once on mount.
    While the suggestions are technically valid, they don't identify any real issues that need fixing. The code as changed works fine and the suggested improvements are minor optimizations at best.
    The comment should be deleted as it is mostly redundant with what's already being done and the suggested improvements are not significant enough to warrant changes.
3. frontend/src/lib/components/Editor.svelte:513
  • Draft comment:
    Typo: The function 'disposeGaphqlService' appears to contain a misspelling of 'graphql'. Consider renaming it to 'disposeGraphqlService' for clarity.
  • 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_XKRBcZiqglGOy0oL


You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

@rubenfiszel rubenfiszel merged commit 58fa4c8 into main Apr 17, 2025
3 of 4 checks passed
@rubenfiszel rubenfiszel deleted the di/fix-flow-slowness branch April 17, 2025 13:41
@github-actions github-actions bot locked and limited conversation to collaborators Apr 17, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants