🔧 fix(AdminPage/index.tsx): fix incorrect assignment of filtered user list in getUsersPage response
🔧 fix(AdminPage/index.tsx): fix incorrect assignment of total rows count in getUsersPage response
🐛 fix(auth.py): add validation for inactive users and users waiting for approval in authenticate_user function
✨ feat(login.py): remove unnecessary blank line
📦 feat(catchAllRoutes): add CatchAllRoute component to redirect to the root ("/") when the catch-all route is matched
🔧 refactor(api.tsx): remove console.log statement
🔧 refactor(AdminPage): remove disabled prop from Checkbox components
🔧 refactor(loginPage): change Link to="/signup" to Link to="/signup" to fix incorrect link
🔧 refactor(routes.tsx): remove import statement for ProtectedRoute component and add import statements for CatchAllRoute and ProtectedAdminRoute components
🔒 chore(auth.py): add support for creating user tokens with user id
🔒 chore(auth.py): add support for updating last_login_at when creating user tokens
🔒 chore(auth.py): add support for updating user information
🔒 chore(login.py): add support for retrieving current active user in login route
🐛 fix(users.py): fix import order and remove unused imports to improve code readability
✨ feat(users.py): add support for pagination in read_all_users endpoint to retrieve a list of users with pagination
🔧 refactor(users.py): rename update_user function to patch_user for better semantics and consistency
🔧 refactor(users.py): refactor update_user function to use update_user function from models module for better code organization and reusability
✨ feat(users.py): add support for creating a superuser for testing purposes in add_super_user_for_testing_purposes_delete_me_before_merge_into_dev endpoint
ℹ️ The code was modified to handle a case where the `template` attribute is not present in the `PromptVertex` class. If the `template` attribute is not found, the code checks if the `prompt` attribute is present and uses its `template` attribute instead. This change ensures that the code does not break when the `template` attribute is missing.
✨ feat(base.py): add `get_result` method to `Vertex` to retrieve the result of a built vertex
🐛 fix(types.py): pass `is_task=True` to `super().__init__` in `CustomComponentVertex` constructor
✨ feat(worker.py): add `build_vertex` task to build a vertex asynchronously
🔧 chore(manager.py): add try-except block to handle ImportError and provide clear error message when redis-py package is not installed
🔧 chore(manager.py): add import statement for redis module in the is_connected method to avoid NameError
✨ feat(manager.py): add upsert method to InMemoryCache and RedisCache to support inserting or updating cache items
🐛 fix(manager.py): fix client_id generation in handle_websocket method to avoid overwriting existing cache items
🔨 chore(manager.py): refactor handle_websocket method to use upsert method and improve readability
✨ feat(manager.py): add result_dict to cache instead of directly setting langchain_object to improve cache semantics
🐛 fix(manager.py): handle case when langchain_object is not found in cache and raise ValueError
🔒 chore(pyproject.toml): update celery, redis, and flower versions and make them optional dependencies
🔀 chore(pyproject.toml): add celery, redis, and flower to the deploy extra dependencies
🔧 fix(docker-compose.celery.yml): update uvicorn command to include debug log level
🔧 fix(docker-compose.celery.yml): update flower command to include redis broker URL
🔧 fix(docker-compose.celery.yml): add dependencies and environment variables for redis cache and queue in frontend service
✨ feat(manager.py): add support for chat cache and attach it to the chat manager for better chat history management
🔧 chore(manager.py): change client_id format in set_cache method to avoid conflicts with existing cache keys
🔧 chore(celeryconfig.py): update broker_url and result_backend to use LANGFLOW_REDIS_HOST and LANGFLOW_REDIS_PORT environment variables if available, fallback to default values if not
✨ feat(chat.py): add support for cache_manager to handle chat history and cache langchain_object
🆕 feat(chat/manager.py): add ChatManager class to handle websocket connections and chat history
🆕 feat(chat/manager.py): add ChatHistory class to manage chat history for each client
🆕 feat(chat/manager.py): add methods to handle websocket connections, send messages, and process chat messages
🆕 feat(chat/manager.py): add method to set cache for a client and handle websocket communication
🔄 refactor(cache): rename BaseCache class to BaseCacheManager for better clarity and consistency
🔄 refactor(cache): remove cache_manager from __all__ in cache module
🔄 refactor(cache): remove unused import of Service in BaseCacheManager class
🔄 refactor(cache): rename cache_manager to BaseCacheManager in factory module
🔄 refactor(cache): remove unused import of InMemoryCache in factory module
🔄 refactor(cache): remove flow module and its related code as it is no longer used
🔧 fix(manager.py): fix import statements and class inheritance in cache manager module
✨ feat(manager.py): add InMemoryCache class to implement a simple in-memory cache using an OrderedDict
✨ feat(manager.py): add RedisCache class to implement a Redis-based cache using the redis-py library
🔧 fix(endpoints.py): add error handling for processing tweaks and log the error message
✨ feat(endpoints.py): use 'process_graph_cached_worker' to process graph data asynchronously and return the result in 'ProcessResponse'
✨ feat(celery_app.py): add Celery app configuration for langflow with Redis as broker and backend
✨ feat(celeryconfig.py): add Celery configuration file with environment variable support for broker URL and result backend URL