{
  "interval": {
    "intervalStart": "2025-05-25T00:00:00.000Z",
    "intervalEnd": "2025-05-26T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-05-25 to 2025-05-26, elizaos/eliza had 7 new PRs (4 merged), 3 new issues, and 10 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs64JzeU",
      "title": "LOG_LEVEL not working",
      "author": "standujar",
      "number": 4772,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\nThe LOG_LEVEL variable is not working anymore. I have the same log level if I se LOG_LEVEL=debug ou DEBUG or INFO or info.",
      "createdAt": "2025-05-25T21:14:04Z",
      "closedAt": "2025-05-26T07:53:38Z",
      "state": "CLOSED",
      "commentCount": 2
    },
    {
      "id": "I_kwDOMT5cIs64JPkJ",
      "title": "Temporary messages not removed after failed send messages stay in UI even on error",
      "author": "0x-Tek",
      "number": 4769,
      "repository": "elizaos/eliza",
      "body": "When you send a message, two messages get added to the chat immediately: one from the user and a second from the \"system\" with a loading indicator. \nBut if the API call fails (like due to no internet), both fake messages stay in the chat as if nothing went wrong. There’s no rollback, no error handling on the UI so it looks like the message was sent when it actually wasn’t.\n\nTo Reproduce:\n\n1.Open the chat page (eliza/client/src/components/chat.tsx)\n\n2.Disconnect from the internet or block the request to the send message endpoint.\n\n3.Type a message and hit Enter.\n\n4.You’ll see your message and a “loading” message instantly.\n\n5.Even though the request fails, both messages stay on screen.\n\nExpected behavior\nIf the message fails to send, the temporary messages should be removed automatically. The user should also get feedback (like a toast or error icon) to let them know it didn’t work.\n\nAdditional context\nTo fix it, I added a tempId to identify and clean up fake messages properly. Now if the message fails, those temporary entries get removed from the cache.\n\n\nIn chat.tsx, update the type:\n```\ntype ExtraContentFields = {\n    user: string;\n    createdAt: number;\n    isLoading?: boolean;\n    tempId?: string; // ✅ for cleanup\n};\n\n```\nReplace handleSendMessage with:\n```\nconst handleSendMessage = (e: React.FormEvent<HTMLFormElement>) => {\n    e.preventDefault();\n    if (!input) return;\n\n    const tempId = `${Date.now()}-${Math.random()}`;\n    const attachments: IAttachment[] | undefined = selectedFile\n        ? [\n              {\n                  url: URL.createObjectURL(selectedFile),\n                  contentType: selectedFile.type,\n                  title: selectedFile.name,\n              },\n          ]\n        : undefined;\n\n    const tempMessages: ContentWithUser[] = [\n        {\n            text: input,\n            user: \"user\",\n            createdAt: Date.now(),\n            attachments,\n            isLoading: true,\n            tempId,\n        },\n        {\n            text: input,\n            user: \"system\",\n            createdAt: Date.now(),\n            isLoading: true,\n            tempId,\n        },\n    ];\n\n    queryClient.setQueryData(\n        [\"messages\", agentId],\n        (old: ContentWithUser[] = []) => [...old, ...tempMessages]\n    );\n\n    sendMessageMutation.mutate({\n        message: input,\n        selectedFile,\n        tempId,\n    });\n\n    setSelectedFile(null);\n    setInput(\"\");\n    formRef.current?.reset();\n};\n```\n\nAnd update the mutation like this:\n```\nconst sendMessageMutation = useMutation({\n    mutationKey: [\"send_message\", agentId],\n    mutationFn: ({\n        message,\n        selectedFile,\n    }: {\n        message: string;\n        selectedFile?: File | null;\n        tempId: string;\n    }) => apiClient.sendMessage(agentId, message, selectedFile),\n    onSuccess: (newMessages: ContentWithUser[], variables) => {\n        const { tempId } = variables;\n        queryClient.setQueryData(\n            [\"messages\", agentId],\n            (old: ContentWithUser[] = []) => [\n                ...old.filter((msg) => msg.tempId !== tempId),\n                ...newMessages.map((msg) => ({\n                    ...msg,\n                    createdAt: Date.now(),\n                })),\n            ]\n        );\n    },\n    onError: (error, variables) => {\n        const { tempId } = variables;\n        queryClient.setQueryData(\n            [\"messages\", agentId],\n            (old: ContentWithUser[] = []) =>\n                old.filter((msg) => msg.tempId !== tempId)\n        );\n\n        toast({\n            variant: \"destructive\",\n            title: \"Unable to send message\",\n            description: error.message,\n        });\n    },\n});\n```\n",
      "createdAt": "2025-05-25T16:53:00Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs64JQK6",
      "title": "Failed Fetch-News",
      "author": "K1mc4n",
      "number": 4770,
      "repository": "elizaos/eliza",
      "body": "fetch-news\n\nThe process '/usr/bin/git' failed with exit\n\ncode 1",
      "createdAt": "2025-05-25T16:57:08Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6Xjeuj",
      "title": "feat: Add Project TEE Starter Template",
      "author": "HashWarlock",
      "number": 4774,
      "body": "<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\r\n\r\n# Relates to\r\nAdds TEE Project Starter Template for a quickstart to launch in TEE Cloud provider. For the time being, Phala Cloud is the current available option for a customizable ElizaOS deployment.\r\n<!-- LINK TO ISSUE OR TICKET -->\r\n\r\n<!-- This risks section must be filled out before the final review and merge. -->\r\n\r\n# Risks\r\nLow\r\n<!--\r\nLow, medium, large. List what kind of risks and what could be affected.\r\n-->\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\nCreates a quick start to generate a TEE Agent project.\r\n## What kind of change is this?\r\nFeature\r\n<!--\r\nBug fixes (non-breaking change which fixes an issue)\r\nImprovements (misc. changes to existing features)\r\nFeatures (non-breaking change which adds functionality)\r\nUpdates (new versions of included code)\r\n-->\r\n\r\n<!-- This \"Why\" section is most relevant if there are no linked issues explaining why. If there is a related issue, it might make sense to skip this why section. -->\r\n<!--\r\n## Why are we doing this? Any context or related work?\r\n-->\r\n\r\n# Documentation changes needed?\r\n\r\n<!--\r\nMy changes do not require a change to the project documentation.\r\nMy changes require a change to the project documentation.\r\nIf documentation change is needed: I have updated the documentation accordingly.\r\n-->\r\n\r\n<!-- Please show how you tested the PR. This will really help if the PR needs to be retested and probably help the PR get merged quicker. -->\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\nA reviewer should start with getting a Phala Cloud Account to test the CVM deployment. Get an API Key and Install the Phala Cloud CLI for deployment. Check Docs [here]()\r\n### Detailed testing steps\r\nFirst clone the repo (I have not added the CLI command, yet. This could be easier with elizaos CLI.)\r\n```bash\r\n# Make sure you are in the `project-tee-starter` folder\r\nnpm install -g phala\r\n# Set TEE_MODE=PRODUCTION\r\n# Ensure you are also running docker\r\n\r\n# Step0: Set your API Key from Phala Cloud Dashboard\r\nphala auth login\r\n\r\n# Step1: Build Docker Image\r\nphala docker build\r\n\r\n# Step2: Publish Docker Image to DockerHub\r\nphala docker push\r\n\r\n# Step3: Update docker-compose.yaml file with your published Docker image and deploy CVM\r\nphala cvms create -c docker-compose.yaml -e .env\r\n\r\n# (Optional) Step4: Check attestation\r\nphala cvms attestation\r\n\r\n# (Optional) Step5: Upgrade CVM if updated changes\r\nphala cvms upgrade -c docker-compose.yaml\r\n```\r\n<!--\r\nNone: Automated tests are acceptable.\r\n-->\r\n\r\n<!--\r\n- As [anon/admin], go to [link]\r\n  - [do action]\r\n  - verify [result]\r\n-->\r\n\r\n<!-- If there is a UI change, please include before and after screenshots or videos. This will speed up PRs being merged. It is extra nice to annotate screenshots with arrows or boxes pointing out the differences. -->\r\n\r\n## Screenshots\r\nTest deployment: https://94068a91ffa0d8f97f2fb38941ee0139f533daab-3000.dstack-prod6.phala.network/chat/f1b8ef45-dab5-095e-90a8-87a35b16966e\r\n\r\n![image](https://github.com/user-attachments/assets/f0f09aa4-14f4-4523-b013-0d7af096dd99)\r\n\r\n![image](https://github.com/user-attachments/assets/0e0e8b5d-3e4a-4cb0-a06f-bfd932c3c746)\r\n\r\n\r\n<!-- If there is anything about the deployment, please make a note. -->\r\n<!--\r\n# Deploy Notes\r\n-->\r\n\r\n<!--  Copy and paste command line output. -->\r\n<!--\r\n## Database changes\r\n-->\r\n\r\n<!--  Please specify deploy instructions if there is something more than the automated steps. -->\r\n<!--\r\n## Deployment instructions\r\n-->\r\n\r\n<!-- If you are on Discord, please join https://discord.gg/elizaOS and state your Discord username here for the contributor role and join us in #development-feed -->\r\n<!--\r\n## Discord username\r\n\r\n-->\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-25T21:42:34Z",
      "mergedAt": "2025-05-27T07:53:37Z",
      "additions": 4168,
      "deletions": 0
    },
    {
      "id": "PR_kwDOMT5cIs6Xh8oU",
      "title": "feat: Migrate knowledge tab to plugin-knowledge, add graph view to memories",
      "author": "lalalune",
      "number": 4766,
      "body": "This PR makes some changes to enable the knowledge plugin\r\n\r\n- Some stuff could be moved out of the PR but is probably fine, like the package.json changes, and we should adopt the convention of .beta\" anyways\r\n\r\n- Removes knowledge APIs since they are in plugin-knowledge\r\n\r\n- Adds some PCA stuff to map embeddings to a 2D graph\r\n\r\n- Adds a graph view to memories and lib stuff for other views",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-25T06:57:28Z",
      "mergedAt": "2025-05-26T08:29:38Z",
      "additions": 1135,
      "deletions": 1236
    },
    {
      "id": "PR_kwDOMT5cIs6XjL5N",
      "title": "fixed: Undelegate Action",
      "author": "Samarthsinghal28",
      "number": 4771,
      "body": "<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\r\n\r\n# Relates to\r\n\r\n<!-- LINK TO ISSUE OR TICKET -->\r\n\r\n<!-- This risks section must be filled out before the final review and merge. -->\r\n\r\n# Risks\r\n\r\n<!--\r\nLow, medium, large. List what kind of risks and what could be affected.\r\n-->\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\n## What kind of change is this?\r\n\r\n<!--\r\nBug fixes (non-breaking change which fixes an issue)\r\nImprovements (misc. changes to existing features)\r\nFeatures (non-breaking change which adds functionality)\r\nUpdates (new versions of included code)\r\n-->\r\n\r\n<!-- This \"Why\" section is most relevant if there are no linked issues explaining why. If there is a related issue, it might make sense to skip this why section. -->\r\n<!--\r\n## Why are we doing this? Any context or related work?\r\n-->\r\n\r\n# Documentation changes needed?\r\n\r\n<!--\r\nMy changes do not require a change to the project documentation.\r\nMy changes require a change to the project documentation.\r\nIf documentation change is needed: I have updated the documentation accordingly.\r\n-->\r\n\r\n<!-- Please show how you tested the PR. This will really help if the PR needs to be retested and probably help the PR get merged quicker. -->\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\n\r\n## Detailed testing steps\r\n\r\n<!--\r\nNone: Automated tests are acceptable.\r\n-->\r\n\r\n<!--\r\n- As [anon/admin], go to [link]\r\n  - [do action]\r\n  - verify [result]\r\n-->\r\n\r\n<!-- If there is a UI change, please include before and after screenshots or videos. This will speed up PRs being merged. It is extra nice to annotate screenshots with arrows or boxes pointing out the differences. -->\r\n<!--\r\n## Screenshots\r\n### Before\r\n### After\r\n-->\r\n\r\n<!-- If there is anything about the deployment, please make a note. -->\r\n<!--\r\n# Deploy Notes\r\n-->\r\n\r\n<!--  Copy and paste command line output. -->\r\n<!--\r\n## Database changes\r\n-->\r\n\r\n<!--  Please specify deploy instructions if there is something more than the automated steps. -->\r\n<!--\r\n## Deployment instructions\r\n-->\r\n\r\n<!-- If you are on Discord, please join https://discord.gg/elizaOS and state your Discord username here for the contributor role and join us in #development-feed -->\r\n<!--\r\n## Discord username\r\n\r\n-->\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-25T18:46:25Z",
      "mergedAt": "2025-05-25T18:58:47Z",
      "additions": 568,
      "deletions": 1046
    },
    {
      "id": "PR_kwDOMT5cIs6Xjdku",
      "title": "feat: describe images WIP",
      "author": "0xbbjoker",
      "number": 4773,
      "body": "Draft describing works only for small images. \r\n\r\nNot complete. \r\n\r\nWe would need to do cleanup for the prompt. Right now url is being added in the prompt.\r\n\r\nig we need to test this a bit and see what's best approach for image description from the client side.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-25T21:31:21Z",
      "mergedAt": null,
      "additions": 353,
      "deletions": 30
    },
    {
      "id": "PR_kwDOMT5cIs6XV4vc",
      "title": "feat: Add graph view for memories and knowledge",
      "author": "lalalune",
      "number": 4737,
      "body": "## Summary\n- expose embeddings via API with `includeEmbedding` flag\n- add PCA implementation and simple force graph\n- integrate graph toggle for memory and knowledge views\n- add unit test for PCA\n\n## Testing\n- `bun test` *(fails: vi.resetAllMocks is not a function)*",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-23T07:43:24Z",
      "mergedAt": null,
      "additions": 184,
      "deletions": 20
    }
  ],
  "codeChanges": {
    "additions": 570,
    "deletions": 1102,
    "files": 15,
    "commitCount": 13
  },
  "completedItems": [
    {
      "title": "corrected path for defaultCharacter.ts",
      "prNumber": 4775,
      "type": "other",
      "body": "<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\r\n\r\n# Relates to\r\n\r\n<!-- LINK TO ISSUE OR TICKET -->\r\nI was just reading the README.md file and path to defaultCharacter.ts"
    },
    {
      "title": "fixed: Undelegate Action",
      "prNumber": 4771,
      "type": "bugfix",
      "body": "<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\r\n\r\n# Relates to\r\n\r\n<!-- LINK TO ISSUE OR TICKET -->\r\n\r\n<!-- This risks section must be filled out before the final review "
    },
    {
      "title": "Delete README_MY.md",
      "prNumber": 4768,
      "type": "other",
      "body": "because this file is already in the folder.\r\n\r\n<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\r\n\r\n# Relates to\r\n\r\n<!-- LINK TO ISSUE OR TICKET -->\r\n\r\n<!-- This risks sect"
    },
    {
      "title": "Update README.md",
      "prNumber": 4767,
      "type": "other",
      "body": "added Malaysian translation to main readme.\r\n\r\n<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\r\n\r\n# Relates to\r\n\r\n<!-- LINK TO ISSUE OR TICKET -->\r\n\r\n<!-- This risks sect"
    }
  ],
  "topContributors": [
    {
      "username": "Samarthsinghal28",
      "avatarUrl": "https://avatars.githubusercontent.com/u/120447590?v=4",
      "totalScore": 56.4317738965761,
      "prScore": 56.4317738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "Samarthsinghal28: Merged 1 pull request today, specifically PR #4771 \"fixed: Undelegate Action,\" which involved significant changes of +980/-2051 lines. Activity was sporadic, with no other contributions recorded."
    },
    {
      "username": "HashWarlock",
      "avatarUrl": "https://avatars.githubusercontent.com/u/64296537?u=1d8228a93c06c603e08d438677b3f736d6b1ab22&v=4",
      "totalScore": 43.5437738965761,
      "prScore": 43.5437738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "HashWarlock: Opened 1 PR (#4774) for the \"feat: Add Project TEE Starter Template\" and made significant code changes by modifying 41 files (+4202/-47 lines) across 4 commits, with a primary focus on other work (75%). Maintained a consistent activity pattern, being active every day."
    },
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 34.7227738965761,
      "prScore": 34.7227738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "lalalune: Opened 1 PR (#4766) focused on migrating the knowledge tab to plugin-knowledge and made significant code changes by modifying 28 files (+2936/-2199 lines), demonstrating consistent activity with a primary focus on other work."
    },
    {
      "username": "imholders",
      "avatarUrl": "https://avatars.githubusercontent.com/u/202005793?v=4",
      "totalScore": 24.61097273695029,
      "prScore": 24.61097273695029,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "imholders: Opened 2 pull requests (#4768 \"Delete README_MY.md\" and #4767 \"Update README.md\") and modified 2 files with a total of 55 lines removed. Maintained a consistent activity pattern, focusing entirely on documentation work today."
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 18.55265816258659,
      "prScore": 18.55265816258659,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "0xbbjoker: Opened 1 pull request (#4773) focused on describing images, contributing to feature work with modifications across 3 files (+308/-37 lines). Maintained a consistent activity pattern, being active every day."
    },
    {
      "username": "dotslashapaar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/161523898?u=f8b144a0258c983a9425c3d3608dbbf1478bd81f&v=4",
      "totalScore": 12.157306144334056,
      "prScore": 12.157306144334056,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "dotslashapaar: Opened 1 PR (#4775) to correct the path for `defaultCharacter.ts` and modified 1 file with a net change of +1/-1 lines, demonstrating consistent activity with a focus on documentation work."
    },
    {
      "username": "monilpat",
      "avatarUrl": "https://avatars.githubusercontent.com/u/15067321?v=4",
      "totalScore": 5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": "monilpat: Reviewed 1 pull request with 1 approval, showing sporadic activity today. No other contributions were made, as there were no merged or open pull requests, issues created or closed, or code changes."
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 2.638,
      "prScore": 0,
      "issueScore": 2.2,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "standujar: Created 1 issue (#4772 \"LOG_LEVEL not working\" (OPEN)) and commented on 4 issues, demonstrating sporadic activity today."
    },
    {
      "username": "K1mc4n",
      "avatarUrl": "https://avatars.githubusercontent.com/u/156217571?u=cc94e7743c591f36eaf958d88befa855348bba9d&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "K1mc4n: Created 1 issue today (#4770 \"Failed Fetch-News\" (OPEN)), showing sporadic activity with no merged pull requests or code changes."
    },
    {
      "username": "0x-Tek",
      "avatarUrl": "https://avatars.githubusercontent.com/u/213325917?u=537cc8d4735054e9559240efefb8c42c010768c7&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "0x-Tek: Created 1 issue today (#4769 \"Temporary messages not removed after failed send messages sta...\" (OPEN)), showing sporadic activity with no merged pull requests or code changes."
    }
  ],
  "newPRs": 7,
  "mergedPRs": 4,
  "newIssues": 3,
  "closedIssues": 0,
  "activeContributors": 10
}