✨ feat(authContext): add getAuthentication() function to check if user is authenticated using cookies
🔧 chore(index.tsx): reorganize context providers to wrap AuthProvider around other providers
🆕 feat(headerComponent): add logout functionality and redirect to login page on sign out
🔧 fix(constants): add missing URL to the list of excluded error retries
🔧 fix(authContext): add refreshToken state and update login and logout functions to handle refresh token
🆕 feat(api): add interceptor to handle access token expiration and refresh
🔧 fix(api): add missing request interceptor to add access token to every request
🔧 fix(API/index.ts): import missing LoginAuthType and LoginType from types/api/index to resolve compilation error
✨ feat(API/index.ts): add onLogin function to handle user login and authentication
✨ feat(API/index.ts): add renewAccessToken function to handle token renewal
🔧 fix(loginPage/index.tsx): import missing onLogin function from controllers/API to resolve compilation error
✨ feat(loginPage/index.tsx): add signIn function to handle user sign in and authentication
🔧 fix(routes.tsx): import ProtectedRoute component from components/authGuard to resolve compilation error
✨ feat(routes.tsx): add protected routes for HomePage, FlowPage, AdminPage, and DeleteAccountPage to enforce authentication
🔧 fix(api/index.ts): add missing grant_type, scope, client_id, and client_secret properties to LoginType to match API requirements
✨ feat(api/index.ts): add LoginAuthType to represent the authentication response from the server
🔧 fix(contexts/auth.ts): add refreshToken property to AuthContextType to store the refresh token
✨ feat(users.py): add docstrings to API endpoints for better documentation
🔥 chore(users.py): remove unnecessary code and comments
🐛 fix(users.py): fix return type hints in API endpoints
🔧 fix(auth.py): change SECRET_KEY comment from "TODO" to "JUST FOR TEST" for clarity
🔧 fix(auth.py): change create_access_token function name to create_token for consistency
🔧 fix(auth.py): change create_refresh_token function to accept refresh_token parameter instead of data dictionary
🔧 fix(auth.py): change create_refresh_token function to decode and validate refresh_token before creating new user tokens
🔧 fix(auth.py): change authenticate_user function to use get_user_by_username instead of get_user
🔧 fix(auth.py): change get_current_user function to use get_user_by_username instead of get_user
🔧 fix(auth.py): change get_user function name to get_user_by_username for clarity
🔧 fix(users.py): change get_password_hash function to be inside the router scope for better encapsulation
🔧 fix(users.py): change add_user function to return UserListModel instead of User
🔧 fix(users.py): change update_user function to update user data based on UserPatchModel fields
🔧 fix(users.py): change update_user function to handle username conflicts and update user's updated_at field
🔧 fix(users.py): change delete_user function to delete user based on user_id
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh_token function to create new user tokens based on refresh token
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh_token function to create new user tokens based on refresh token
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh_token function to create new user tokens based on refresh token
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh_token function to create new user tokens based on refresh token
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh_token function to create new user tokens based on refresh token
✨ feat(login.py): add refresh_token endpoint to refresh access token using refresh token
✨ feat(login.py): add refresh
🔒 chore(auth.py): add refresh token functionality with expiration time of 180 minutes
🔒 chore(login.py): change token endpoint URL from /token to /login for better semantics
🔒 chore(login.py): add refresh token creation to login endpoint to provide a refresh token along with the access token
🐛 fix(base.py): change the error message when _built_object is None to provide more specific information and handle the case when _built_object is an instance of UnbuiltObject
🐛 fix(directory_reader.py): return False if code is not valid Python to prevent false positives
🐛 fix(directory_reader.py): fix method name from is_type_hint_used_but_not_imported to _is_type_hint_used_in_args for consistency
🐛 fix(directory_reader.py): fix method name from is_type_hint_imported to _is_type_hint_imported for consistency
🐛 fix(directory_reader.py): fix return value of _is_type_hint_used_in_args method to return False if type hint is used but not imported
✨ feat(OpenAIConversationalAgent.py): add support for return_intermediate_steps parameter in AgentExecutor constructor to enable returning intermediate steps during conversation