Skip to content

fix: Resolve custom tool edit not working#5811

Open
danielalanbates wants to merge 1 commit intoFlowiseAI:mainfrom
danielalanbates:fix/issue-5761
Open

fix: Resolve custom tool edit not working#5811
danielalanbates wants to merge 1 commit intoFlowiseAI:mainfrom
danielalanbates:fix/issue-5761

Conversation

@danielalanbates
Copy link

Fixes #5761

Summary

The onRowUpdate, deleteItem, and addNewRow handlers in ToolDialog.jsx wrapped their state updates in setTimeout, causing a race condition: when a user edits a schema cell and clicks Save before the deferred state update fires, the save serializes stale schema data. This removes the unnecessary setTimeout wrappers so state updates happen synchronously, matching the pattern used in the working DataGrid.jsx component.

Test plan

  • Create a custom tool with input schema properties
  • Edit a property (rename, change type, toggle required) and immediately click Save
  • Reopen the tool and verify edits persisted
  • Test adding/deleting schema rows still works

This PR was created with the assistance of Claude by Anthropic. Happy to make any adjustments!

Remove setTimeout wrappers from schema state update handlers (onRowUpdate,
deleteItem, addNewRow) in ToolDialog. The setTimeout caused a race condition
where clicking Save while a cell edit was still committing would serialize
stale schema state, resulting in edits appearing to save but not persisting.
This matches the synchronous pattern used in the working DataGrid component.

Fixes FlowiseAI#5761

Co-Authored-By: Claude sonnet-4-6 <noreply@anthropic.com>
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @danielalanbates, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request addresses a critical bug preventing custom tool schema modifications from persisting correctly. By removing unnecessary setTimeout calls from state update functions, the changes ensure that schema data is updated synchronously, eliminating a race condition and improving the reliability of the tool editing experience.

Highlights

  • Race Condition Fix: Resolved a race condition in ToolDialog.jsx where custom tool schema edits were not reliably saved due to setTimeout wrappers around state updates.
  • Synchronous State Updates: Modified onRowUpdate, deleteItem, and addNewRow functions to update state synchronously, ensuring data consistency upon saving.
Changelog
  • packages/ui/src/views/tools/ToolDialog.jsx
    • Removed setTimeout wrappers from deleteItem, addNewRow, and onRowUpdate functions to ensure synchronous state updates.
Activity
  • No activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

The pull request effectively addresses the race condition by removing unnecessary setTimeout wrappers from state updates in ToolDialog.jsx. This change ensures synchronous state updates, aligning with the pattern used in DataGrid.jsx and resolving the bug where schema edits were not persisted upon immediate saving. The removal of setTimeout is a correct and necessary fix for the described issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Custom tool edit does not work

1 participant