🐛 fix(user.py): make last_login_at field nullable to handle cases where user has not logged in yet
🐛 fix(user.py): set default values for optional fields in UserUpdate model to None to avoid unexpected behavior
🐛 fix(test_user.py): update error message and details for invalid UUID input in test_patch_user_wrong_id and test_delete_user_wrong_id to provide more specific information
The export functionality was removed from the ExtraSidebar component as it was not being used. The tooltip content for the button was also updated to "Import" to accurately reflect its purpose.
fix(ConfirmationModal): add top margin to the confirmation button in the ConfirmationModal component to improve spacing
fix(extraSidebarComponent): change the size prop value of the ShareFlowButton component to "small-h-full" for better visual alignment
fix(extraSidebarComponent): add cursor pointer and click event to the text indicating the sharing status in the ShareFlowButton component to toggle the sharePublic state
fix(extraSidebarComponent): reduce the gap between elements in the ConfirmationModal content for better visual alignment
fix(extraSidebarComponent): change the className of the ExportModal button to "extra-side-bar-buttons" and add an onClick event to trigger the uploadFlow function
fix(extraSidebarComponent): change the className of the ExportModal button to "extra-side-bar-buttons" and add an onClick event to trigger the uploadFlow function
fix(extraSidebarComponent): change the className of the Save button in the ExtraSidebar component to "extra-side-bar-buttons" and add an onClick event to trigger the saveFlow function
fix(StorePage): remove console.log statement in the StorePage component
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
fix(applies.css): remove unnecessary padding-bottom from the .main-page-flows-display class
✨ feat(plugins/base.py): add BasePlugin class with initialize, teardown, and get methods to serve as base class for plugins
✨ feat(plugins/factory.py): add PluginServiceFactory class to create PluginService instance and load plugins
✨ feat(plugins/langfuse.py): add LangfusePlugin class with initialize, teardown, and get methods to serve as a plugin for Langfuse
✨ feat(plugins/service.py): add PluginService class to manage plugins, load plugins, register plugins, get plugins, and teardown plugins
✨ feat(schema.py): add PLUGIN_SERVICE to ServiceType enum to support plugin service
🔧 fix(settings/base.py): add PLUGIN_DIR optional setting to support specifying plugin directory
🔧 fix(utils.py): add import statement for plugins_factory in utils.py to fix import error
🔧 fix(service.py): update import statement for SettingsService to match new file structure
🔧 fix(__init__.py): update import statement for service module to match new file structure
🔧 fix(factory.py): update import statement for SettingsService to match new file structure
🔧 fix(factory.py): update import statement for TaskService to match new file structure
🔧 fix(conftest.py): update import statement for DatabaseService to match new file structure
🔧 fix(chat.py): update import statements for ChatService and BaseCacheService in chat.py to match new file structure
🔧 fix(__init__.py): update import statement for InMemoryCache in __init__.py to match new file structure
🔧 fix(factory.py): update import statement for InMemoryCache, RedisCache, and BaseCacheService in factory.py to match new file structure
🔧 fix(service.py): create new file service.py and move InMemoryCache class from base.py to service.py
✨ feat(service.py): add InMemoryCache class to provide a simple in-memory cache implementation
✨ feat(service.py): add RedisCache class to provide a Redis-based cache implementation
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py): update import statements to reflect changes in file structure
🔨 refactor(factory.py):
📦 chore(service.py): add new file `service.py` to implement DatabaseService class
📦 chore(utils.py): add import statement for DatabaseService in `utils.py`
📦 chore(getters.py): add import statement for DatabaseService in `getters.py`
📦 chore(factory.py): add import statement for SessionService in `factory.py`
📦 chore(service.py): add new file `service.py` to implement SessionService class
📦 chore(service.py): add SettingsService and TaskService classes to handle settings and tasks respectively
🔧 refactor(service.py): refactor load_settings_from_yaml method to load settings from a YAML file and convert keys to uppercase for consistency
🔧 refactor(service.py): refactor get_backend method to return the appropriate backend based on USE_CELERY flag
🔧 refactor(service.py): refactor launch_and_await_task method to handle launching and awaiting tasks based on USE_CELERY flag
🔧 refactor(service.py): refactor launch_task method to handle launching tasks based on USE_CELERY flag
🔧 refactor(service.py): refactor get_task method to get a task based on USE_CELERY flag
🔧 refactor(service.py): refactor check_celery_availability method to check if Celery is available and return its status
🔧 refactor(service.py): refactor USE_CELERY flag to check if Celery is available and set it accordingly
fix(StorePage/index.tsx): fix useEffect dependencies and add missing handleChangeTab function
fix(API/index.ts): rename getNumberOfComponents function to getCountComponents to improve semantics
🐛 fix(EditNodeModal): rename import of TabsState to FlowsState to improve semantics
🐛 fix(formModal): rename import of TabsState to FlowsState to improve semantics
🐛 fix(PageComponent): rename import of TabsState to FlowsState to improve semantics
🐛 fix(reactflowUtils): rename import of TabsState to FlowsState to improve semantics
🐛 fix(utils): rename import of TabsState to FlowsState to improve semantics
🚚 chore(server.ts): change port variable case from lowercase port to uppercase PORT to improve semantics
✨ feat(server.ts): add support for process.env.PORT environment variable to be able to run app on a configurable port
🔧 chore(service.py): include 'last_tested_version' field in the list of fields to retrieve from the store API for better tracking of component versions
🐛 fix(FileLoader.py): fix type annotation for loader_import variable to improve code readability and maintainability
🐛 fix(FileLoader.py): handle case when selected_loader_info is not a dict to prevent potential errors
🐛 fix(UrlLoader.py): fix type annotation for build method return value to improve code readability and maintainability
🐛 fix(UrlLoader.py): fix type annotation for loader_instance variables to improve code readability and maintainability
The logic for updating the `likes_count` and `liked_by_user` state variables in the `handleLike` function was incorrect. This commit fixes the logic to correctly update the state variables based on the previous values. Additionally, it adds error handling for the `postLikeComponent` API call and sets the `likes_count` and `liked_by_user` state variables to their previous values in case of an error.
🐛 fix(service.py): fix incorrect variable name in get_component_likes_count method
🐛 fix(service.py): convert likes count to integer to handle unexpected string values
🐛 fix(service.py): convert component_id to string before sending it in the request payload
The changes were made to fix a bug where the likes count and user like status were not being displayed correctly on the market card component in the StorePage. The previous code was using the wrong variable to set the likes count and user like status. The fix updates the code to use the correct response values from the API call to set the likes count and user like status.
✨ feat(schema.py): update UsersLikesResponse model to include likes_count and liked_by_user fields
✨ feat(service.py): add get_component_likes_count method to retrieve the number of likes for a component