🔨 refactor(LanguageRecursiveTextSplitter.py): change type hints for the 'documents' parameter from Document to list[Document] and change return type from Document to list[Document] to improve clarity and consistency
🔨 refactor(LanguageRecursiveTextSplitter.py): change type hints for the 'chunk_overlap' parameter from Optional[int] to Optional[str] and handle conversion to int to improve flexibility and error handling
🔨 refactor(LanguageRecursiveTextSplitter.py): change type hints for the 'chunk_size' parameter from Optional[int] to Optional[str] and handle conversion to int to improve flexibility and error handling
🔨 refactor(RecursiveCharacterTextSplitter.py): change type hints for the 'documents' parameter from Document to list[Document] and change return type from Document to list[Document] to improve clarity and consistency
🔨 refactor(RecursiveCharacterTextSplitter.py): change type hints for the 'separators' parameter from Optional[str] to Optional[list[str]] and handle conversion to list of escaped characters to improve flexibility and error handling
🔨 refactor(RecursiveCharacterTextSplitter.py): change type hints for the 'chunk_overlap' parameter from Optional[int] to Optional[str] and handle conversion to int to improve flexibility and error handling
🔨 refactor(RecursiveCharacterTextSplitter.py): change type hints for the 'chunk_size' parameter from Optional[int] to Optional[str] and handle conversion to int to improve flexibility and error handling
🐛 fix(types.py): fix logic in add_new_custom_field function to correctly set is_list flag when field_type contains "list" keyword
✨ feat(types.py): add field_contains_list variable to check if field_type contains "list" keyword to improve semantics in add_new_custom_field function
📝 docs(LanguageRecursiveTextSplitter.py): add documentation link for LanguageRecursiveTextSplitter component
🔧 refactor(LanguageRecursiveTextSplitter.py): refactor build_config method to use options from Language enum for separator_type
🔧 refactor(LanguageRecursiveTextSplitter.py): refactor build method to split text into chunks based on specified length and overlap
🔧 refactor(LanguageRecursiveTextSplitter.py): refactor build method to handle chunk_size and chunk_overlap as integers
🔧 refactor(LanguageRecursiveTextSplitter.py): refactor build method to use RecursiveCharacterTextSplitter from langchain.text_splitter
🔧 refactor(LanguageRecursiveTextSplitter.py): refactor build method to split documents using RecursiveCharacterTextSplitter and return the chunks
🔧 chore(util.py): add missing type hint for 'documents' parameter in build_loader_repr_from_documents function
🔧 chore(util.py): add logic to calculate average document length and display summary information in build_loader_repr_from_documents function
The error handling in the tabs provider has been improved to display a more meaningful error message when there is an error while saving changes. Instead of directly assigning the error to the `setErrorData` state variable, the error message is now wrapped in an object with a title and a list of error messages. This change ensures that the error message is displayed consistently and provides better context to the user.
✨ feat(alembic): add support for creating apikey and user tables in the database
🔥 chore(alembic): remove flowstyle and component tables from the database schema
🔄 chore(__init__.py): add users_router and api_key_router to the __all__ list to include the new routes for users and api keys
🆕 feat(api_key.py): add new routes for retrieving, creating, and deleting API keys
🆕 feat(login.py): add new routes for user login, auto login, and token refresh
🆕 feat(schemas.py): add new schemas for API key response and users response
🆕 feat(users.py): add new routes for adding, reading, updating, and deleting users
🗑️ chore(health.py): remove health router as it is no longer needed
🔄 chore(utils.py): update import statements for User model and update_user_last_login_at function
📦 feat(component): add Component model and related classes for database operations
📦 feat(flow): add Flow model and related classes for database operations
📦 feat(token): add Token model for authentication
📦 feat(user): add User model and related classes for database operations
📦 feat(user): add utility functions for user operations
🔧 fix(models/__init__.py): add ApiKey to __all__ list to fix missing import error
✨ feat(models/api_key.py): add ApiKey model and its related classes to support API key functionality
feat(App.tsx): add support for displaying fetch error message and description in FetchErrorComponent
feat(fetchErrorComponent): create FetchErrorComponent to display fetch error message and description
fix(genericIconComponent): add stroke-width property to ensure consistent icon stroke width
feat(loadingComponent): import LoadingComponentProps from types/components to improve type safety
feat(constants): add FETCH_ERROR_MESSAGE and FETCH_ERROR_DESCRIPTION constants for fetch error handling
fix(typesContext): remove console.log statement and set fetchError to true when an error occurs during fetching types
feat(typesContext): add error handling for fetching types and set fetchError to true when an error occurs
feat(typesContext): import fetchErrorComponentType from types/components to improve type safety
feat(types/components): create fetchErrorComponentType and LoadingComponentProps interfaces for type safety
fix(styleUtils): import Unplug icon from lucide-react to fix missing icon issue
feat(App.tsx): add support for displaying fetch error message when there is an error in the backend API call
fix(typesContext.tsx): add error handling for API call and set fetchError state accordingly
feat(typesContext.tsx): add fetchError state and setFetchError function to the typesContext
🔧 chore(manager.py): log the error message when decoding JSON payload fails to provide more information for debugging
🔧 chore(manager.py): log the full exception stack trace when handling websocket fails to provide more information for debugging
✨ feat(callback.py): send an empty message with the prompt to the frontend when "Prompt after formatting" is in the text
🐛 fix(schemas.py): make the prompt field optional in the ChatResponse schema
✨ feat(tabsContext.tsx): add success alert when changes are saved successfully in TabsProvider component
🔧 fix(flowSettingsModal/index.tsx): remove setSuccessData from useContext to fix missing function error
🔧 fix(AdminPage/index.tsx): remove console.log statement
✨ feat(AdminPage/index.tsx): add success alert when user is edited successfully
🔧 fix(extraSidebarComponent/index.tsx): remove setSuccessData from useContext to fix missing function error
✨ feat(App.tsx): set isAdmin state based on user's is_superuser value to conditionally render admin-related components
🐛 fix(headerComponent/index.tsx): fix conditional rendering of Sign out, Home, and Admin page buttons based on autoLogin and isAdmin values
🐛 fix(authContext.tsx): remove unnecessary useEffect to update isAdmin state when accessToken or isAdmin changes
🔥 chore(api.tsx): remove unused sleep function
✨ feat(AdminPage/index.tsx): update text in AdminPage to provide a better description of the page's purpose
🐛 fix(routes.tsx): wrap AdminPage and ApiKeysPage components with ProtectedAdminRoute component to restrict access to admin-only routes
The ZepMemory component is added to handle interactions with the Zep API. It provides a build method that takes in configuration parameters such as zep_api_url, api_key, session_id, memory_key, and return_messages. These parameters are used to initialize an instance of the ZepMemory class, which is a subclass of BaseMemory. The ZepMemory class handles the communication with the Zep API and provides methods for storing and retrieving data from the Zep memory.