{"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:1716225633.0","currentOid":""},"activityList":{"items":[{"before":"79840763e79ada7e744dd25665cff41c74e23742","after":"b4a3efbc4d4f6dc4e5dbb9224ee31e7547d36476","ref":"refs/heads/update-title-dynamic","pushedAt":"2024-05-20T17:20: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":"fix: Login/Registration Dynamic page titles based on `APP_TITLE`","shortMessageHtmlLink":"fix: Login/Registration Dynamic page titles based on APP_TITLE"}},{"before":null,"after":"79840763e79ada7e744dd25665cff41c74e23742","ref":"refs/heads/update-title-dynamic","pushedAt":"2024-05-20T17:20:33.000Z","pushType":"branch_creation","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":"πŸ”§ fix: Assistants App Error on Parameters Render (#2805)","shortMessageHtmlLink":"πŸ”§ fix: Assistants App Error on Parameters Render (#2805)"}},{"before":"d4a249557596386814fb6a00c443f39d61661c9b","after":null,"ref":"refs/heads/assistants-presets-app-error","pushedAt":"2024-05-20T15:10:39.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":"1a452121fa9b197e7af59d0fc7e7f709aa824f9c","after":"79840763e79ada7e744dd25665cff41c74e23742","ref":"refs/heads/main","pushedAt":"2024-05-20T15:10:38.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: Assistants App Error on Parameters Render (#2805)","shortMessageHtmlLink":"πŸ”§ fix: Assistants App Error on Parameters Render (#2805)"}},{"before":null,"after":"d4a249557596386814fb6a00c443f39d61661c9b","ref":"refs/heads/assistants-presets-app-error","pushedAt":"2024-05-20T15:01:17.000Z","pushType":"branch_creation","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":"πŸ”§ fix: Assistants App Error on Parameters Render","shortMessageHtmlLink":"πŸ”§ fix: Assistants App Error on Parameters Render"}},{"before":"57b66b3a9bdd8572a2ecab07950639650dd32639","after":"ef291c934e1c5f08378f9a5294601fa3f48ef171","ref":"refs/heads/stt/tts","pushedAt":"2024-05-20T14:47:17.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":"WIP tts routes rewrite","shortMessageHtmlLink":"WIP tts routes rewrite"}},{"before":"25b1048ce8f0c3337c1d8501c728c7cd39732830","after":"57b66b3a9bdd8572a2ecab07950639650dd32639","ref":"refs/heads/stt/tts","pushedAt":"2024-05-19T17:16:46.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"berry-13","name":"Marco Beretta","path":"/berry-13","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/81851188?s=80&v=4"},"commit":{"message":"fix: client build errors","shortMessageHtmlLink":"fix: client build errors"}},{"before":"1c5e827ce99498ceb519bb95ff6aadf1a5e91cf3","after":null,"ref":"refs/heads/v2-assistants","pushedAt":"2024-05-19T16:56:55.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":"af8bcb08d65d20425c5a28ab825d57cff725ebf0","after":"1a452121fa9b197e7af59d0fc7e7f709aa824f9c","ref":"refs/heads/main","pushedAt":"2024-05-19T16:56:55.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: OpenAI Assistants v2 (initial support) (#2781)\n\n* πŸ€– Assistants V2 Support: Part 1\r\n\r\n- Separated Azure Assistants to its own endpoint\r\n- File Search / Vector Store integration is incomplete, but can toggle and use storage from playground\r\n- Code Interpreter resource files can be added but not deleted\r\n- GPT-4o is supported\r\n- Many improvements to the Assistants Endpoint overall\r\n\r\ndata-provider v2 changes\r\n\r\ncopy existing route as v1\r\n\r\nchore: rename new endpoint to reduce comparison operations and add new azure filesource\r\n\r\napi: add azureAssistants part 1\r\n\r\nforce use of version for assistants/assistantsAzure\r\n\r\nchore: switch name back to azureAssistants\r\n\r\nrefactor type version: string | number\r\n\r\nEnsure assistants endpoints have version set\r\n\r\nfix: isArchived type issue in ConversationListParams\r\n\r\nrefactor: update assistants mutations/queries with endpoint/version definitions, update Assistants Map structure\r\n\r\nchore: FilePreview component ExtendedFile type assertion\r\n\r\nfeat: isAssistantsEndpoint helper\r\n\r\nchore: remove unused useGenerations\r\n\r\nchore(buildTree): type issue\r\n\r\nchore(Advanced): type issue (unused component, maybe in future)\r\n\r\nfirst pass for multi-assistant endpoint rewrite\r\n\r\nfix(listAssistants): pass params correctly\r\n\r\nfeat: list separate assistants by endpoint\r\n\r\nfix(useTextarea): access assistantMap correctly\r\n\r\nfix: assistant endpoint switching, resetting ID\r\n\r\nfix: broken during rewrite, selecting assistant mention\r\n\r\nfix: set/invalidate assistants endpoint query data correctly\r\n\r\nfeat: Fix issue with assistant ID not being reset correctly\r\n\r\ngetOpenAIClient helper function\r\n\r\nfeat: add toast for assistant deletion\r\n\r\nfix: assistants delete right after create issue for azure\r\n\r\nfix: assistant patching\r\n\r\nrefactor: actions to use getOpenAIClient\r\n\r\nrefactor: consolidate logic into helpers file\r\n\r\nfix: issue where conversation data was not initially available\r\n\r\nv1 chat support\r\n\r\nrefactor(spendTokens): only early return if completionTokens isNaN\r\n\r\nfix(OpenAIClient): ensure spendTokens has all necessary params\r\n\r\nrefactor: route/controller logic\r\n\r\nfix(assistants/initializeClient): use defaultHeaders field\r\n\r\nfix: sanitize default operation id\r\n\r\nchore: bump openai package\r\n\r\nfirst pass v2 action service\r\n\r\nfeat: retroactive domain parsing for actions added via v1\r\n\r\nfeat: delete db records of actions/assistants on openai assistant deletion\r\n\r\nchore: remove vision tools from v2 assistants\r\n\r\nfeat: v2 upload and delete assistant vision images\r\n\r\nWIP first pass, thread attachments\r\n\r\nfix: show assistant vision files (save local/firebase copy)\r\n\r\nv2 image continue\r\n\r\nfix: annotations\r\n\r\nfix: refine annotations\r\n\r\nshow analyze as error if is no longer submitting before progress reaches 1 and show file_search as retrieval tool\r\n\r\nfix: abort run, undefined endpoint issue\r\n\r\nrefactor: consolidate capabilities logic and anticipate versioning\r\n\r\nfrontend version 2 changes\r\n\r\nfix: query selection and filter\r\n\r\nadd endpoint to unknown filepath\r\n\r\nadd file ids to resource, deleting in progress\r\n\r\nenable/disable file search\r\n\r\nremove version log\r\n\r\n* πŸ€– Assistants V2 Support: Part 2\r\n\r\n🎹 fix: Autocompletion Chrome Bug on Action API Key Input\r\n\r\nchore: remove `useOriginNavigate`\r\n\r\nchore: set correct OpenAI Storage Source\r\n\r\nfix: azure file deletions, instantiate clients by source for deletion\r\n\r\nupdate code interpret files info\r\n\r\nfeat: deleteResourceFileId\r\n\r\nchore: increase poll interval as azure easily rate limits\r\n\r\nfix: openai file deletions, TODO: evaluate rejected deletion settled promises to determine which to delete from db records\r\n\r\nfile source icons\r\n\r\nupdate table file filters\r\n\r\nchore: file search info and versioning\r\n\r\nfix: retrieval update with necessary tool_resources if specified\r\n\r\nfix(useMentions): add optional chaining in case listMap value is undefined\r\n\r\nfix: force assistant avatar roundedness\r\n\r\nfix: azure assistants, check correct flag\r\n\r\nchore: bump data-provider\r\n\r\n* fix: merge conflict\r\n\r\n* ci: fix backend tests due to new updates\r\n\r\n* chore: update .env.example\r\n\r\n* meilisearch improvements\r\n\r\n* localization updates\r\n\r\n* chore: update comparisons\r\n\r\n* feat: add additional metadata: endpoint, author ID\r\n\r\n* chore: azureAssistants ENDPOINTS exclusion warning","shortMessageHtmlLink":"πŸ€– feat: OpenAI Assistants v2 (initial support) (#2781)"}},{"before":"fb6e87c36d1964aa746446eff30dc4b698eb6cf7","after":"1c5e827ce99498ceb519bb95ff6aadf1a5e91cf3","ref":"refs/heads/v2-assistants","pushedAt":"2024-05-19T16:49:07.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: azureAssistants ENDPOINTS exclusion warning","shortMessageHtmlLink":"chore: azureAssistants ENDPOINTS exclusion warning"}},{"before":"5c15b60601ba955bea74e24fdff3d7558da8ede3","after":"fb6e87c36d1964aa746446eff30dc4b698eb6cf7","ref":"refs/heads/v2-assistants","pushedAt":"2024-05-19T16:25: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":"chore: update comparisons","shortMessageHtmlLink":"chore: update comparisons"}},{"before":"e55a89270e155c585bcb77bfad12737023a2002d","after":"5c15b60601ba955bea74e24fdff3d7558da8ede3","ref":"refs/heads/v2-assistants","pushedAt":"2024-05-19T16:18: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":"meilisearch improvements","shortMessageHtmlLink":"meilisearch improvements"}},{"before":"3eabbd572e30573097774720ef662be2faf0db65","after":"e55a89270e155c585bcb77bfad12737023a2002d","ref":"refs/heads/v2-assistants","pushedAt":"2024-05-19T15:35:35.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: update .env.example","shortMessageHtmlLink":"chore: update .env.example"}},{"before":null,"after":"25b1048ce8f0c3337c1d8501c728c7cd39732830","ref":"refs/heads/stt/tts","pushedAt":"2024-05-19T08:50:06.000Z","pushType":"branch_creation","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":"input streaming implementation","shortMessageHtmlLink":"input streaming implementation"}},{"before":"f0e8cca5df818af3fa79534be4f2218431352f97","after":"af8bcb08d65d20425c5a28ab825d57cff725ebf0","ref":"refs/heads/main","pushedAt":"2024-05-19T06:44:14.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: recognize command+click on macos (#2786)\n\nFixes an issue where the \"command+click\" was not being recognized on\r\nMacOS. The desired behavior was working fine on Windows using\r\n\"ctrl+click\", but the MacOS equivalent was broken.\r\n\r\nThis was preventing new tabs from opening while holding \"command\" (meta\r\nkey) on MacOS and clicking.\r\n\r\nI verified this change fixes the issue by building locally and testing.","shortMessageHtmlLink":"πŸ‘¨β€πŸ”§ fix: recognize command+click on macos (#2786)"}},{"before":"6082e26716803f206933ea53ac4771ff2b8d1ac2","after":"3eabbd572e30573097774720ef662be2faf0db65","ref":"refs/heads/v2-assistants","pushedAt":"2024-05-18T19:44:31.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":"ci: fix backend tests due to new updates","shortMessageHtmlLink":"ci: fix backend tests due to new updates"}},{"before":"8fe30be91f462d9a2f2d2da3b54b01b4f3a73862","after":"6082e26716803f206933ea53ac4771ff2b8d1ac2","ref":"refs/heads/v2-assistants","pushedAt":"2024-05-18T19:29:54.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":"fix: merge conflict","shortMessageHtmlLink":"fix: merge conflict"}},{"before":"3c1a772e7faa325f0a197a55ad0cee3c49884b4a","after":"8fe30be91f462d9a2f2d2da3b54b01b4f3a73862","ref":"refs/heads/v2-assistants","pushedAt":"2024-05-18T19:17:35.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":"πŸ€– Assistants V2 Support: Part 2\n\n🎹 fix: Autocompletion Chrome Bug on Action API Key Input\n\nchore: remove `useOriginNavigate`\n\nchore: set correct OpenAI Storage Source\n\nfix: azure file deletions, instantiate clients by source for deletion\n\nupdate code interpret files info\n\nfeat: deleteResourceFileId\n\nchore: increase poll interval as azure easily rate limits\n\nfix: openai file deletions, TODO: evaluate rejected deletion settled promises to determine which to delete from db records\n\nfile source icons\n\nupdate table file filters\n\nchore: file search info and versioning\n\nfix: retrieval update with necessary tool_resources if specified\n\nfix(useMentions): add optional chaining in case listMap value is undefined\n\nfix: force assistant avatar roundedness\n\nfix: azure assistants, check correct flag\n\nchore: bump data-provider","shortMessageHtmlLink":"πŸ€– Assistants V2 Support: Part 2"}},{"before":"74a8ef5a212e0756a0c0e482997168072eac767f","after":"edc5c8e51de781303b68daa33f30c9aad93a33af","ref":"refs/heads/Speech-to-Text","pushedAt":"2024-05-17T23:54:07.000Z","pushType":"push","commitsCount":15,"pusher":{"login":"berry-13","name":"Marco Beretta","path":"/berry-13","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/81851188?s=80&v=4"},"commit":{"message":"foundations for websocket","shortMessageHtmlLink":"foundations for websocket"}},{"before":"3b937132c1248f58f56f8437bc6428eaea07350d","after":null,"ref":"refs/heads/ohneda-feature/shared-link","pushedAt":"2024-05-17T22:13:33.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":"38ad36c1c5f3b3d241fb4ccf42b9572fd23b7285","after":"f0e8cca5df818af3fa79534be4f2218431352f97","ref":"refs/heads/main","pushedAt":"2024-05-17T22:13:32.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: Shared Links (#2772)\n\n* ✨ feat(types): add necessary types for shared link feature\r\n\r\n* ✨ feat: add shared links functions to data service\r\n\r\nAdded functions for retrieving, creating, updating, and deleting shared links and shared messages.\r\n\r\n* ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId\r\n\r\nAdds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId.\r\n\r\n* ✨ feat: Add share schema and data access functions to API models\r\n\r\n* ✨ feat: Add share endpoint to API\r\n\r\nThe GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication.\r\n\r\n* ♻️ refactor(utils): generalize react-query cache manipulation functions\r\n\r\nIntroduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application.\r\n\r\n- Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions.\r\n- Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections.\r\n- Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities.\r\n\r\n* ✨ feat(shared-link): add functions to manipulate shared link cache list\r\n\r\nimplemented new utility functions to handle additions, updates, and deletions in the shared link cache list.\r\n\r\n* ✨ feat: Add mutations and queries for shared links\r\n\r\n* ✨ feat(shared-link): add `Share` button to conversation list\r\n\r\n- Added a share button in each conversation in the conversation list.\r\n- Implemented functionality where clicking the share button triggers a POST request to the API.\r\n- The API checks if a share link was already created for the conversation today; if so, it returns the existing link.\r\n- If no link was created for today, the API will create a new share link and return it.\r\n- Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature.\r\n\r\n* ♻️ refactor(hooks): generalize useNavScrolling for broader use\r\n\r\n- Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`.\r\n- Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`.\r\n\r\n* ✨ feat(settings): add shared links listing table with delete functionality in settings\r\n\r\n- Integrated a delete button for each shared link in the table, allowing users to remove links as needed.\r\n\r\n* ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use\r\n\r\n* ♻️ refactor: update useGetSharedMessages to return TSharedLink\r\n\r\n- Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself.\r\n- This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink.\r\n\r\n* ✨ feat(shared link): add UI for displaying shared conversations without authentication\r\n\r\n- Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication.\r\n- Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context.\r\n\r\n* πŸ”§ chore: Add translations\r\n\r\nTranslate labels only. Messages remain in English as they are possibly subject to change.\r\n\r\n* ♻️ refactor: add icon and tooltip props to EditMenuButton component\r\n\r\n* moved icon and popover to arguments so that EditMenuButton can be reused.\r\n* modified so that when a ShareButton is closed, the parent DropdownMenu is also closed.\r\n\r\n* ♻️irefactor: added DropdownMenu for Export and Share\r\n\r\n* ♻️ refactor: renamed component names more intuitive\r\n\r\n* More accurate naming of the dropdown menu.\r\n* When the export button is closed, the parent dropdown menu is also closed.\r\n\r\n* 🌍 chore: updated translations\r\n\r\n* 🐞 Fix: OpenID Profile Image Download (#2757)\r\n\r\n* Add fetch requirement\r\n\r\nFixes - error: [openidStrategy] downloadImage: Error downloading image at URL \"https://graph.microsoft.com/v1.0/me/photo/$value\": TypeError: response.buffer is not a function\r\n\r\n* Update openidStrategy.js\r\n\r\n---------\r\n\r\nCo-authored-by: Danny Avila \r\n\r\n* πŸš‘ fix(export): Issue exporting Conversation with Assistants (#2769)\r\n\r\n* πŸš‘ fix(export): use content as text if content is present in the message\r\n\r\nIf the endpoint is assistants, the text of the message goes into content, not message.text.\r\n\r\n* refactor(ExportModel): TypeScript, remove unused code\r\n\r\n---------\r\n\r\nCo-authored-by: Yuichi Ohneda \r\n\r\n* πŸ“€style: export button icon (#2752)\r\n\r\n* refactor(ShareDialog): logic and styling\r\n\r\n* refactor(ExportAndShareMenu): imports order and icon update\r\n\r\n* chore: imports\r\n\r\n* chore: imports/render logic\r\n\r\n* feat: message branching\r\n\r\n* refactor: add optional config to useGetStartupConfig\r\n\r\n* refactor: disable endpoints query\r\n\r\n* chore: fix search view styling gradient in light mode\r\n\r\n* style: ShareView gradient styling\r\n\r\n* refactor(Share): use select queries\r\n\r\n* style: shared link table buttons\r\n\r\n* localization and dark text styling\r\n\r\n* style: fix clipboard button layout shift app-wide and add localization for copy code\r\n\r\n* support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages\r\n\r\n* add localizations\r\n\r\n* comparisons\r\n\r\n---------\r\n\r\nCo-authored-by: Yuichi Ohneda \r\nCo-authored-by: bsu3338 \r\nCo-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>","shortMessageHtmlLink":"πŸš€ feat: Shared Links (#2772)"}},{"before":"da8e8263334c67d0de2c5bc6db5bfff87285df68","after":"3b937132c1248f58f56f8437bc6428eaea07350d","ref":"refs/heads/ohneda-feature/shared-link","pushedAt":"2024-05-17T22:04:28.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 'ohneda-feature/shared-link' of https://github.com/danny-avila/LibreChat into ohneda-feature/shared-link","shortMessageHtmlLink":"Merge branch 'ohneda-feature/shared-link' of https://github.com/danny…"}},{"before":"70ab33c93b735e30c35eddba19a5d153b575b7bf","after":"da8e8263334c67d0de2c5bc6db5bfff87285df68","ref":"refs/heads/ohneda-feature/shared-link","pushedAt":"2024-05-17T21:17:12.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":"Merge branch 'main' into ohneda-feature/shared-link","shortMessageHtmlLink":"Merge branch 'main' into ohneda-feature/shared-link"}},{"before":null,"after":"70ab33c93b735e30c35eddba19a5d153b575b7bf","ref":"refs/heads/ohneda-feature/shared-link","pushedAt":"2024-05-17T21:13:33.000Z","pushType":"branch_creation","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":"style: shared link table buttons","shortMessageHtmlLink":"style: shared link table buttons"}},{"before":"b2e508ac6d03e1df039ba3e0c7618ea6e51a9229","after":null,"ref":"refs/heads/export-btn","pushedAt":"2024-05-17T18:16:03.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":"53fe2f64530af925d51f530480cc5206c1809a6e","after":"38ad36c1c5f3b3d241fb4ccf42b9572fd23b7285","ref":"refs/heads/main","pushedAt":"2024-05-17T18:16:03.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":"πŸ“€style: export button icon (#2752)","shortMessageHtmlLink":"πŸ“€style: export button icon (#2752)"}},{"before":"30a24deeef8f142ccc0cc72a5dcad19e00b3a68e","after":null,"ref":"refs/heads/ohneda-fix/export-of-assistants","pushedAt":"2024-05-17T18:10:40.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":"31479d6a480ef5fb65bc572599dca8c9d02da1cb","after":"53fe2f64530af925d51f530480cc5206c1809a6e","ref":"refs/heads/main","pushedAt":"2024-05-17T18:10:40.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(export): Issue exporting Conversation with Assistants (#2769)\n\n* πŸš‘ fix(export): use content as text if content is present in the message\r\n\r\nIf the endpoint is assistants, the text of the message goes into content, not message.text.\r\n\r\n* refactor(ExportModel): TypeScript, remove unused code\r\n\r\n---------\r\n\r\nCo-authored-by: Yuichi Ohneda ","shortMessageHtmlLink":"πŸš‘ fix(export): Issue exporting Conversation with Assistants (#2769)"}},{"before":"612a58737db48e4d3c364c13a0b7203a7567948a","after":"31479d6a480ef5fb65bc572599dca8c9d02da1cb","ref":"refs/heads/main","pushedAt":"2024-05-17T18:03:31.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: OpenID Profile Image Download (#2757)\n\n* Add fetch requirement\r\n\r\nFixes - error: [openidStrategy] downloadImage: Error downloading image at URL \"https://graph.microsoft.com/v1.0/me/photo/$value\": TypeError: response.buffer is not a function\r\n\r\n* Update openidStrategy.js\r\n\r\n---------\r\n\r\nCo-authored-by: Danny Avila ","shortMessageHtmlLink":"🐞 Fix: OpenID Profile Image Download (#2757)"}},{"before":null,"after":"30a24deeef8f142ccc0cc72a5dcad19e00b3a68e","ref":"refs/heads/ohneda-fix/export-of-assistants","pushedAt":"2024-05-17T18:01:04.000Z","pushType":"branch_creation","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":"refactor(ExportModel): TypeScript, remove unused code","shortMessageHtmlLink":"refactor(ExportModel): TypeScript, remove unused code"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAETwcwdAA","startCursor":null,"endCursor":null}},"title":"Activity Β· danny-avila/LibreChat"}