{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":600596928,"defaultBranch":"main","name":"LibreChat","ownerLogin":"danny-avila","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-02-12T01:06:52.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/110412045?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1717713379.0","currentOid":""},"activityList":{"items":[{"before":"e1237b94ae70e3ca27be83e62b6582788fa48417","after":"c851b856e9cba7e3c8f3d05782b49d47179788f9","ref":"refs/heads/proxy-all-endpoints","pushedAt":"2024-06-07T03:19:46.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"refactor: Add limiters for email verification and password reset","shortMessageHtmlLink":"refactor: Add limiters for email verification and password reset"}},{"before":"eeab1d9a09c0909b85a05d66ba5b4bc2d3e60d11","after":"e1237b94ae70e3ca27be83e62b6582788fa48417","ref":"refs/heads/proxy-all-endpoints","pushedAt":"2024-06-07T02:28:34.000Z","pushType":"push","commitsCount":13,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"refactor: Add emailVerified field to Discord and Facebook profile details","shortMessageHtmlLink":"refactor: Add emailVerified field to Discord and Facebook profile det…"}},{"before":null,"after":"e9b8ad62649c346d6d101c1c1755116cd76fce5c","ref":"refs/heads/azure-speech","pushedAt":"2024-06-06T22:36:19.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"berry-13","name":"Marco Beretta","path":"/berry-13","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/81851188?s=80&v=4"},"commit":{"message":"feat: Azure TTS","shortMessageHtmlLink":"feat: Azure TTS"}},{"before":"f10833c5c195d1f9887653843f596904e59b6d7b","after":"eeab1d9a09c0909b85a05d66ba5b4bc2d3e60d11","ref":"refs/heads/proxy-all-endpoints","pushedAt":"2024-06-06T17:30:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"chore: remove console log","shortMessageHtmlLink":"chore: remove console log"}},{"before":"bc2142199358b4d96956476adf34c1d8ddc76e0d","after":"f10833c5c195d1f9887653843f596904e59b6d7b","ref":"refs/heads/proxy-all-endpoints","pushedAt":"2024-06-06T17:24:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"chore: jsdoc","shortMessageHtmlLink":"chore: jsdoc"}},{"before":"5a258441a101a60a6a86d1925204c4522912b153","after":null,"ref":"refs/heads/social-refactor","pushedAt":"2024-06-06T17:23:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"}},{"before":"5452d4c20c805c1a647a8030f7e1ce0245f1c6b0","after":"b7fef6958b329f52e8c9ff2331f13f8c78264ae4","ref":"refs/heads/main","pushedAt":"2024-06-06T17:23:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"🔒refactor: social login and remove direct user model access in strategies (#2946)\n\n* refactor: checking `ALLOW_SOCIAL_REGISTRATION` with `isEnabled`\r\n\r\n* feat: Add findUserByEmail function to UserService\r\n\r\nThis commit adds a new function, , to the module. This function retrieves a user document from the database based on the provided email. It returns the user document if found, otherwise it returns null. If there is a problem during user retrieval, an error is thrown.\r\n\r\n* refactor: add socialLogin to remove repetitive code","shortMessageHtmlLink":"🔒refactor: social login and remove direct user model access in strate…"}},{"before":"3b117f9b449589b5244b5f55dc25cd88761ce953","after":"bc2142199358b4d96956476adf34c1d8ddc76e0d","ref":"refs/heads/proxy-all-endpoints","pushedAt":"2024-06-06T17:22:25.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"chore: jsdoc","shortMessageHtmlLink":"chore: jsdoc"}},{"before":"ab722408326c4440b5d3e1154da36a807acab298","after":"3b117f9b449589b5244b5f55dc25cd88761ce953","ref":"refs/heads/proxy-all-endpoints","pushedAt":"2024-06-06T16:05:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"refactor: move checkEmailConfig to server/utils","shortMessageHtmlLink":"refactor: move checkEmailConfig to server/utils"}},{"before":"5cab29f1a700abc1fcf7ee80cae85eceb8c2739b","after":"ab722408326c4440b5d3e1154da36a807acab298","ref":"refs/heads/proxy-all-endpoints","pushedAt":"2024-06-06T15:44:11.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"Merge branch 'main' into proxy-all-endpoints","shortMessageHtmlLink":"Merge branch 'main' into proxy-all-endpoints"}},{"before":"9b9ca4abedd30a0effafe94190e273e9b9e5dc03","after":null,"ref":"refs/heads/password-reset","pushedAt":"2024-06-06T15:39:37.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"}},{"before":"a7f5b5727254c54a76e5e625c62e19058408058c","after":"5452d4c20c805c1a647a8030f7e1ce0245f1c6b0","ref":"refs/heads/main","pushedAt":"2024-06-06T15:39:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"🔒 feat: password reset disable option; fix: account email error message (#2327)\n\n* feat: password reset disable option; fix: account email leak\r\n\r\n* fix(LoginSpec): typo\r\n\r\n* test: fixed LoginForm test\r\n\r\n* fix: disable password reset when undefined\r\n\r\n* refactor: use a helper function\r\n\r\n* fix: tests\r\n\r\n* feat: Remove unused error message in password reset process\r\n\r\n* chore: Update password reset email message\r\n\r\n* refactor: only allow password reset if explicitly allowed\r\n\r\n* feat: Add password reset email service configuration check\r\n\r\nThe code changes in `checks.js` add a new function `checkPasswordReset()` that checks if the email service is configured when password reset is enabled. If the email service is not configured, a warning message is logged. This change ensures secure password reset functionality by prompting the user to configure the email service.\r\n\r\nCo-authored-by: Berry-13 \r\nCo-authored-by: Danny Avila \r\nCo-authored-by: Danny Avila \r\n\r\n* chore: remove import order rules\r\n\r\n* refactor: simplify password reset logic and align against Observable Response Discrepancy\r\n\r\n* chore: make password reset warning more prominent\r\n\r\n* chore(AuthService): better logging for password resets, refactor requestPasswordReset to use req object, fix sendEmail error when email config is not present\r\n\r\n* refactor: fix styling of password reset email message\r\n\r\n* chore: add missing type for passwordResetEnabled, TStartupConfig\r\n\r\n* fix(LoginForm): prevent login form flickering\r\n\r\n* fix(ci): Update login form to use mocked startupConfig for rendering correctly\r\n\r\n* refactor: Improve password reset UI, applies DRY\r\n\r\n* chore: Add logging to password reset validation middleware\r\n\r\n* chore(CONTRIBUTING): Update import order conventions\r\n\r\n---------\r\n\r\nCo-authored-by: Danny Avila \r\nCo-authored-by: Berry-13 \r\nCo-authored-by: Danny Avila ","shortMessageHtmlLink":"🔒 feat: password reset disable option; fix: account email error messa…"}},{"before":"21d644fbaa99d5799774b9d337e887481a5a6e58","after":"9b9ca4abedd30a0effafe94190e273e9b9e5dc03","ref":"refs/heads/password-reset","pushedAt":"2024-06-06T15:24:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"chore(CONTRIBUTING): Update import order conventions","shortMessageHtmlLink":"chore(CONTRIBUTING): Update import order conventions"}},{"before":"8041226fd8885566eb0666014d19c6e3a259257f","after":"21d644fbaa99d5799774b9d337e887481a5a6e58","ref":"refs/heads/password-reset","pushedAt":"2024-06-06T15:17:30.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"chore: Add logging to password reset validation middleware","shortMessageHtmlLink":"chore: Add logging to password reset validation middleware"}},{"before":"cef94585e43ab1120e19264d50fc1dbfa31a949c","after":"8041226fd8885566eb0666014d19c6e3a259257f","ref":"refs/heads/password-reset","pushedAt":"2024-06-06T15:07:52.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"fix(ci): Update login form to use mocked startupConfig for rendering correctly","shortMessageHtmlLink":"fix(ci): Update login form to use mocked startupConfig for rendering …"}},{"before":"23c5b24d721731b7c1cb703d110d9dd6d3da922a","after":"cef94585e43ab1120e19264d50fc1dbfa31a949c","ref":"refs/heads/password-reset","pushedAt":"2024-06-06T14:56:01.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"fix(LoginForm): prevent login form flickering","shortMessageHtmlLink":"fix(LoginForm): prevent login form flickering"}},{"before":"fd244717e5cf5bb13455da6b097d912830a8ce25","after":"23c5b24d721731b7c1cb703d110d9dd6d3da922a","ref":"refs/heads/password-reset","pushedAt":"2024-06-06T14:32:04.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"refactor: fix styling of password reset email message","shortMessageHtmlLink":"refactor: fix styling of password reset email message"}},{"before":"c9ea8a4995abf7b549d45c2fd2f571bd8d2da734","after":"fd244717e5cf5bb13455da6b097d912830a8ce25","ref":"refs/heads/password-reset","pushedAt":"2024-06-06T01:52:55.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"Merge branch 'main' into password-reset","shortMessageHtmlLink":"Merge branch 'main' into password-reset"}},{"before":"1a752049ac48384896d5747857a390b226833e2d","after":null,"ref":"refs/heads/delete-user","pushedAt":"2024-06-05T23:35:12.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"}},{"before":"f69b31717199930f629c12066ebb3a4627b54194","after":"a7f5b5727254c54a76e5e625c62e19058408058c","ref":"refs/heads/main","pushedAt":"2024-06-05T23:35:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"🚫👤feat: delete user from UI (#1526)\n\n* initial commit\r\n\r\n* fix: UserController bugs; fix: lint errors\r\n\r\n* fix: delete files\r\n\r\n* language support\r\n\r\n* style(DeleteAccount): update to the latest style\r\n\r\n* style: fix after merge main\r\n\r\n* chore: Add canDeleteAccount middleware for user deletion endpoint\r\n\r\n* chore: renamed to ALLOW_ACCOUNT_DELETION\r\n\r\n* fix(canDeleteAccount): use uppercase admin role\r\n\r\n* chore: imports order\r\n\r\n* chore: Enable account deletion by default if omitted/commented out\r\n\r\n* chore: Add logging for user account deletion\r\n\r\n* chore: Bump data-provider package version to 0.6.6\r\n\r\n* chore: Import Transaction model in UserController\r\n\r\n* chore: Update CONFIG_VERSION to 1.1.4\r\n\r\n* chore: Update user account deletion logging\r\n\r\n* chore: Refactor user account deletion logic\r\n\r\n---------\r\n\r\nCo-authored-by: Berry-13 \r\nCo-authored-by: Danny Avila \r\nCo-authored-by: Danny Avila ","shortMessageHtmlLink":"🚫👤feat: delete user from UI (#1526)"}},{"before":"a4dfac0bec16d41a99f9a824977b48b3efa1e96e","after":"1a752049ac48384896d5747857a390b226833e2d","ref":"refs/heads/delete-user","pushedAt":"2024-06-05T22:48:28.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"chore: Refactor user account deletion logic","shortMessageHtmlLink":"chore: Refactor user account deletion logic"}},{"before":"60e10e33a44228dac10da90696531a03df7a8e6a","after":"a4dfac0bec16d41a99f9a824977b48b3efa1e96e","ref":"refs/heads/delete-user","pushedAt":"2024-06-05T21:49:34.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"chore: Bump data-provider package version to 0.6.6","shortMessageHtmlLink":"chore: Bump data-provider package version to 0.6.6"}},{"before":"98bb1d82848db2b1818a0cb1ae33fc7fede3ef9f","after":"60e10e33a44228dac10da90696531a03df7a8e6a","ref":"refs/heads/delete-user","pushedAt":"2024-06-05T21:41:06.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"chore: Add logging for user account deletion","shortMessageHtmlLink":"chore: Add logging for user account deletion"}},{"before":"c1bd4bee658ca5384dd7bd658a625abe096eadb2","after":"98bb1d82848db2b1818a0cb1ae33fc7fede3ef9f","ref":"refs/heads/delete-user","pushedAt":"2024-06-05T21:21:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"fix(canDeleteAccount): use uppercase admin role","shortMessageHtmlLink":"fix(canDeleteAccount): use uppercase admin role"}},{"before":"4469ba72fccf4835f0bdc73af6c66fd085ced98b","after":"f69b31717199930f629c12066ebb3a4627b54194","ref":"refs/heads/main","pushedAt":"2024-06-05T18:56:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"🔧 fix(useMentions): handle empty assistant lists (#2966)\n\nThe useMentions hook in the client/src/hooks/Input/useMentions.ts file has been updated to handle cases where the assistant lists for the endpoints 'assistants' and 'azureAssistants' are empty. This change ensures that the hook does not throw an error when attempting to access assistantListMap[EModelEndpoint.assistants] or assistantListMap[EModelEndpoint.azureAssistants]. Instead, it defaults to an empty array for these cases.","shortMessageHtmlLink":"🔧 fix(useMentions): handle empty assistant lists (#2966)"}},{"before":"fc8cd7be42c8b727c07494bdd962487611f4bc89","after":null,"ref":"refs/heads/fix-@","pushedAt":"2024-06-05T18:56:15.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"}},{"before":"0e3e45e77dd80a18a358007a2601a03be1084208","after":"4469ba72fccf4835f0bdc73af6c66fd085ced98b","ref":"refs/heads/main","pushedAt":"2024-06-05T18:55:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"🧹 chore(.eslintrc.js): Update Import Order of The React Types (#2964)","shortMessageHtmlLink":"🧹 chore(.eslintrc.js): Update Import Order of The React Types (#2964)"}},{"before":null,"after":"fc8cd7be42c8b727c07494bdd962487611f4bc89","ref":"refs/heads/fix-@","pushedAt":"2024-06-05T13:14:03.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"berry-13","name":"Marco Beretta","path":"/berry-13","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/81851188?s=80&v=4"},"commit":{"message":"refactor: Update useMentions hook to handle empty assistant lists\n\nThe useMentions hook in the client/src/hooks/Input/useMentions.ts file has been updated to handle cases where the assistant lists for the endpoints 'assistants' and 'azureAssistants' are empty. This change ensures that the hook does not throw an error when attempting to access assistantListMap[EModelEndpoint.assistants] or assistantListMap[EModelEndpoint.azureAssistants]. Instead, it defaults to an empty array for these cases.","shortMessageHtmlLink":"refactor: Update useMentions hook to handle empty assistant lists"}},{"before":"9f0c1914a512d366dba24c827dddacf4c4093a85","after":"0e3e45e77dd80a18a358007a2601a03be1084208","ref":"refs/heads/main","pushedAt":"2024-06-04T12:56:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"🔧 chore: Add `import/order` Eslint Rule (#2928)\n\n* chore: add import order eslint rule\r\n\r\n* refactor: apply 'import/order' rule","shortMessageHtmlLink":"🔧 chore: Add import/order Eslint Rule (#2928)"}},{"before":"37ae484fbc5f71ea3109296ab2ca88321b0e4acc","after":"9f0c1914a512d366dba24c827dddacf4c4093a85","ref":"refs/heads/main","pushedAt":"2024-06-04T12:55:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"danny-avila","name":"Danny Avila","path":"/danny-avila","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/110412045?s=80&v=4"},"commit":{"message":"🎂 fix: birthday icon (#2950)\n\n* fix: tooltip and birthday icon\r\n\r\n* chore: update conditional render\r\n\r\n---------\r\n\r\nCo-authored-by: Danny Avila ","shortMessageHtmlLink":"🎂 fix: birthday icon (#2950)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEXs3ImwA","startCursor":null,"endCursor":null}},"title":"Activity · danny-avila/LibreChat"}