{
  "interval": {
    "intervalStart": "2025-05-20T00:00:00.000Z",
    "intervalEnd": "2025-05-21T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-05-20 to 2025-05-21, elizaos/eliza had 31 new PRs (24 merged), 0 new issues, and 12 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs61qUx2",
      "title": "Agent Hangs After Core Init / REST API Bind (Anthropic + Twitter Config)",
      "author": "kunleulysses",
      "number": 4486,
      "repository": "elizaos/eliza",
      "body": "Environment:\nOS: Ubuntu 22.04.5 LTS (on VPS)\nNode.js Version: v23.11.0 (installed via NVM)\npnpm Version: v9.15.0\nElizaOS Installation Method: Manual Monorepo Clone (git clone https://github.com/elizaos/eliza.git)\nElizaOS Version: Checked out to latest tag (Likely v0.25.9 based on agent package version in logs)\n\nKey Packages:\n@elizaos/agent: v0.25.9\n@elizaos/core: Likely v0.25.9 (based on agent)\n@elizaos/plugin-twitter: 0.25.6-alpha.1 (or version installed via @latest)\n@elizaos/plugin-anthropic: 1.0.0-alpha.0 (or version installed via @latest)\nHardware: VPS with 3GB RAM\n\nProblem Description:\nThe ElizaOS agent process successfully initializes its core components but hangs indefinitely immediately after the Direct Client REST API binds to its port (e.g., 3000). This occurs when configured to use a custom character (flappy.character.json) located in a root characters/ directory, with the goal of using the Anthropic model provider (@elizaos/plugin-anthropic) and the Twitter client (@elizaos/plugin-twitter) with auto-interactions enabled.\nThe logs show successful character loading, correct plugin identification (@elizaos/plugin-twitter, @elizaos/plugin-anthropic), selection of \"anthropic\" as the model provider, database connection, and REST API binding. However, the process never proceeds to the expected Twitter client initialization logs (Creating default Twitter client..., Successfully logged in., Start Hanldeling Twitter Timeline, etc.) or any Anthropic-related activity. The process does not crash or exit; it simply stalls.\n\nSteps to Reproduce:\n(Based on troubleshooting sequence followed)\nClean VPS environment.\nInstall prerequisites: Node v23.11.0 (via NVM), pnpm v9.15.0, git, build-essential.\nClone the main eliza monorepo: git clone https://github.com/elizaos/eliza.git && cd eliza.\nCheck out the latest stable tag: git checkout $(git describe --tags --abbrev=0).\nCreate and configure ~/eliza/.env with valid Twitter API credentials (Key, Secret, Access Token, Secret) and a valid Anthropic API Key. Ensure ENABLE_TWITTER_POST_GENERATION=true and ENABLE_ACTION_PROCESSING=true. Ensure conflicting AI providers (USE_LOCAL_AI, USE_OLLAMA_TEXT_MODELS, OPENAI_API_KEY, etc.) are explicitly set to false or commented out.\nCreate a ~/eliza/characters/ directory.\nCreate ~/eliza/characters/flappy.character.json configured with \"clients\": [\"twitter\"], \"plugins\": [\"@elizaos/plugin-twitter\", \"@elizaos/plugin-anthropic\"], \"modelProvider\": \"anthropic\", and a specific \"model\": \"claude-3-haiku-20240307\". Include Twitter interaction settings under settings.twitter.\nCreate ~/eliza/characters/flappy.agent.json pointing to the character file.\nInstall dependencies: pnpm install.\nEnsure correct plugins are installed and linked to the agent package:\npnpm remove @elizaos/plugin-local-ai (if present)\npnpm add @elizaos/plugin-anthropic@latest -F @elizaos/agent\npnpm add @elizaos/plugin-twitter@latest -F @elizaos/agent\npnpm install\nBuild the project: pnpm build.\nStart the agent: pnpm start --characters=\"characters/flappy.character.json\".\n\nExpected Result:\nThe agent starts fully, logs confirm Twitter login and timeline handling begins, and subsequent AI tasks utilize the Anthropic API via the loaded plugin. The process remains active and responsive.\n\nActual Result:\nThe agent process hangs indefinitely after the SUCCESS: REST API bound to... log message. No further logs related to Twitter client initialization, AI provider interaction, or timeline handling appear. The process doesn't exit or crash.\n\n\n``` Relevant Logs:\n\n[2025-05-08 01:16:54] SUCCESS: REST API bound to 0.0.0.0:3000. If running locally, access it at http://localhost:3000.\n# <-- HANGS HERE -->\n\nLog\nConfiguration:\n.env (Relevant Sections):\n# --- Twitter/X Configuration ---\nTWITTER_USERNAME=featherweightai\n# TWITTER_PASSWORD=********* # Masked\n# TWITTER_EMAIL=********* # Masked\n# TWITTER_API_KEY=********* # Masked\n# TWITTER_API_SECRET=********* # Masked\n# TWITTER_ACCESS_TOKEN=********* # Masked\n# TWITTER_ACCESS_SECRET=********* # Masked\nENABLE_TWITTER_POST_GENERATION=true\nENABLE_ACTION_PROCESSING=true\n\n# --- Anthropic Configuration ---\nANTHROPIC_API_KEY=sk-ant-...#### # <<< IMPORTANT: Make sure this is correct\n# ANTHROPIC_API_URL=\n\n# --- Disabled Providers ---\nUSE_LOCAL_AI=false\nUSE_OLLAMA_TEXT_MODELS=false\n# OPENAI_API_KEY=\n# GAIA_API_KEY=\n# ... etc other providers blank/commented ...\nUse code [with caution](https://support.google.com/legal/answer/13505487).\nDotenv\ncharacters/flappy.character.json (Relevant Sections):\n{\n  \"name\": \"Flappy\",\n  // ... Bio/Lore/Examples/Style ...\n  \"clients\": [\n    \"twitter\"\n  ],\n  \"plugins\": [\n    \"@elizaos/plugin-twitter\",\n    \"@elizaos/plugin-anthropic\"\n  ],\n  \"modelProvider\": \"anthropic\", // Lowercase\n  \"model\": \"claude-3-haiku-20240307\",\n  \"settings\": {\n    \"secrets\": {},\n    \"twitter\": {\n      \"enable_replies\": true,\n      \"enable_timeline_search\": false,\n      \"enable_follow_thanks\": true,\n      \"enable_auto_retweet\": false\n    }\n  }\n  // ...\n}\n\nAdditional Context / Troubleshooting Steps Taken:\nIssue persists even after regenerating Twitter API keys/tokens and confirming \"Read, Write and access Direct Messages\" permissions are set correctly in the Twitter Dev Portal (OAuth 1.0a).\nIssue occurred similarly when trying to configure GAIA via Ollama settings (using plugin-local-ai, modelProvider: \"OLLAMA\"), hanging at the same point.\nRemoving both Twitter and AI plugins allowed the agent core to start without hanging (in previous testing phases), suggesting the issue occurs during plugin/client initialization after the core runtime is up.\nNetwork connectivity to api.anthropic.com was verified via curl from the VPS (connection succeeded, though curl syntax errors prevented full request validation).\nVPS has 3GB RAM, eliminating the previous RAM constraint issue encountered with local models.\nExplicitly adding the required plugins (plugin-twitter, plugin-anthropic) as dependencies to the @elizaos/agent package using pnpm add -F @elizaos/agent ... successfully resolved earlier \"Cannot find package\" errors during plugin loading.",
      "createdAt": "2025-05-08T04:30:57Z",
      "closedAt": "2025-05-20T09:40:07Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs6qCQvW",
      "title": "Suggestion: Add platform interface to core package for eliza v2",
      "author": "roninjin10",
      "number": 3491,
      "repository": "elizaos/eliza",
      "body": "**Is your feature request related to a problem? Please describe.**\n\nThis is a problem in that I'm trying to build a platform agnostic core package but eliza has no way of injecting specific platforms into it. It also seems like I will have to pollyfill some node.js libraries to use elizav2 core package\n\n**Describe the solution you'd like**\n\nV2 is super clean but it really needs a platform abstraction. \n\n```typescript\ninterface Platform {\n  name: string\n  readFile?: typeof fs.readFile\n  ...etc\n}\n\nclass NodePlatform implements Platform {\n  name: 'NODEJS'\n  readFile fs.readFile\n  ..etc\n} \n```\n\nSuch that now \n- the entire core package has no platform specific logic in it. Less complexity\n- no imports (except typescript types)  in core package reference a node.js module. No need to polyfill\n- Flexible to provide our own platform for say bun if bun has a node incompatability causing issue in eliza or being in the browser but emulating a file system, etc.\n\nThis is a common pattern in other libraries such as [effect.ts](https://github.com/Effect-TS/effect/tree/main/packages/platform)\n**Describe alternatives you've considered**\n\n<!-- A clear and concise description of any alternative solutions or features you've considered. -->\nAnother option would be to create seperate packages core-web, core-node. But this leads to a lot of code duplication.\n",
      "createdAt": "2025-02-14T05:30:55Z",
      "closedAt": "2025-05-20T18:34:59Z",
      "state": "CLOSED",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6W77ot",
      "title": "Fix/not defined echochambersplugin",
      "author": "crypto-cooker",
      "number": 4672,
      "body": "Fixed below plugin not defined issue.\r\n![image](https://github.com/user-attachments/assets/4c271e9c-ff8e-4529-9d34-638c270d5a11)",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-20T18:15:15Z",
      "mergedAt": null,
      "additions": 5344,
      "deletions": 77806
    },
    {
      "id": "PR_kwDOMT5cIs6WxRpB",
      "title": "Eliza290/update docs readme and tests for all cli commands",
      "author": "yungalgo",
      "number": 4646,
      "body": "this is a complimentary PR to update docs, readme, and tests for all the changes related to ELIZA290, cli testing + polish.\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- **New Features**\n  - The CLI now supports creating \"agent\" character files alongside projects and plugins.\n  - The `dev` and `start` commands accept multiple character files or URLs in various formats, with improved error handling and fallback behavior.\n  - The `update` command introduces `--check` and `--skip-build` flags for safer and more flexible updates.\n  - The environment management command (`env`) now includes expanded interactive and non-interactive options, with clearer feedback and support for PGLite databases.\n  - The `setup-monorepo` command and documentation clarify support for custom branches and directories.\n\n- **Documentation**\n  - CLI documentation was extensively updated for agent, project, plugin, environment, dev, start, update, and setup-monorepo commands, with new examples, option clarifications, and usage notes.\n  - A new \"Developing Agents\" section and expanded lifecycle and interactive mode explanations were added.\n\n- **Bug Fixes**\n  - Improved error handling and logging for character loading and environment resets.\n\n- **Tests**\n  - Comprehensive new and enhanced tests for agent, plugin, create, dev, env, start, update, and setup-monorepo commands, increasing coverage and robustness.\n  - Refactored and expanded plugin command tests, including alias and GitHub installation scenarios.\n\n- **Chores**\n  - Test scripts and helper functions were updated for consistency, reliability, and better output validation.\n  - Package scripts were updated to include new test commands and ensure all relevant tests are run.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-19T18:34:27Z",
      "mergedAt": "2025-05-20T06:30:21Z",
      "additions": 2306,
      "deletions": 574
    },
    {
      "id": "PR_kwDOMT5cIs6W1pow",
      "title": "cleaner readable test files",
      "author": "wtfsayo",
      "number": 4660,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-20T07:34:54Z",
      "mergedAt": "2025-05-20T10:10:48Z",
      "additions": 1549,
      "deletions": 1161
    },
    {
      "id": "PR_kwDOMT5cIs6W3oxl",
      "title": "fixed agent tests",
      "author": "wtfsayo",
      "number": 4661,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-20T10:56:07Z",
      "mergedAt": "2025-05-20T11:31:17Z",
      "additions": 544,
      "deletions": 147
    },
    {
      "id": "PR_kwDOMT5cIs6WzMP-",
      "title": "Add sentry logging to core logger errors.",
      "author": "ChristopherTrimboli",
      "number": 4650,
      "body": "![image](https://github.com/user-attachments/assets/036e4f1c-bc4b-4271-a9fc-d707f1ce6ecf)\r\n\r\nInitial Sentry hookup into core logger errors.\r\n\r\nHas envs for custom Sentry setups, but defaults to ours.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-20T00:06:01Z",
      "mergedAt": "2025-05-20T04:35:45Z",
      "additions": 328,
      "deletions": 610
    }
  ],
  "codeChanges": {
    "additions": 5677,
    "deletions": 24910,
    "files": 164,
    "commitCount": 115
  },
  "completedItems": [
    {
      "title": "feat: API endpoint for creating new rooms",
      "prNumber": 4647,
      "type": "feature",
      "body": "Currently we dont have API endpoint to create new rooms, so I added this feature in PR. \r\n\r\nDid some tests, rooms are created and IDs returned. Adding screenshots from tests\r\n\r\n<img width=\"845\" alt=\"image\" src=\"https://github.com/user-attac"
    },
    {
      "title": "Eliza290/update docs readme and tests for all cli commands",
      "prNumber": 4646,
      "type": "tests",
      "body": "this is a complimentary PR to update docs, readme, and tests for all the changes related to ELIZA290, cli testing + polish.\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- **New Featu"
    },
    {
      "title": "add 30s timeout to registry parsing",
      "prNumber": 4678,
      "type": "feature",
      "body": ""
    },
    {
      "title": "bring back local ai test",
      "prNumber": 4676,
      "type": "tests",
      "body": ""
    },
    {
      "title": "remove mock tests for cli",
      "prNumber": 4674,
      "type": "tests",
      "body": ""
    },
    {
      "title": "chore: update project starter character & fix path for core pckg",
      "prNumber": 4671,
      "type": "bugfix",
      "body": "\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- **New Features**\n\t- Eliza now responds helpfully and conversationally to a broader range of topics, including technology, business, cr"
    },
    {
      "title": "fix: shortcut reply only if no dynamic provider is present",
      "prNumber": 4670,
      "type": "bugfix",
      "body": "This PR updates the reply logic to only shortcut (reuse existing replies) when no dynamic providers are involved. It also fixes a bug where providers were incorrectly taken from the message instead of the response content."
    },
    {
      "title": "remove plugin twitter",
      "prNumber": 4669,
      "type": "other",
      "body": "removes plugin twitter from mono repo has been moved to: https://github.com/elizaos-plugins/plugin-twitter"
    },
    {
      "title": "remove discord plugin",
      "prNumber": 4668,
      "type": "other",
      "body": "has been moved out to: https://github.com/elizaos-plugins/plugin-discord"
    },
    {
      "title": "feat: Create world api endpoints",
      "prNumber": 4667,
      "type": "feature",
      "body": " I wanted to create World with API endpoints, so I can have a consistent usage of a world.\r\n There wasnt any endpoints for this so I am adding them here. \r\n-To create new world\r\n-To update current one with new info\r\n-To get all rooms in cur"
    },
    {
      "title": "Remove global env support",
      "prNumber": 4666,
      "type": "other",
      "body": "## Summary\n- drop global env logic from CLI and server\n- update UI to only manage local envs\n- rewrite docs about environment variables\n- tweak plugin messages and runtime warnings\n\n## Testing\n- `bun test` *(fails: Cannot find package 'dote"
    },
    {
      "title": "add CHANNEL_IDS to discord_plugin",
      "prNumber": 4665,
      "type": "feature",
      "body": "adds ENVs for CHANNEL_IDS so can limit the responses to certain channels"
    },
    {
      "title": "attempt dev command tear down",
      "prNumber": 4664,
      "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\n\r\n<!-- This risks section must be filled out before the final review "
    },
    {
      "title": "Fix bats test flakiness",
      "prNumber": 4663,
      "type": "bugfix",
      "body": "## Summary\n- guard port cleanup in bats tests\n- improve timing in dev-command tests\n- use `seq` for loops for broader shell compatibility\n\n## Testing\n- `./run_all_bats.sh` *(fails: 'bats' not found)*"
    },
    {
      "title": "fixed agent tests",
      "prNumber": 4661,
      "type": "bugfix",
      "body": ""
    },
    {
      "title": "cleaner readable test files",
      "prNumber": 4660,
      "type": "refactor",
      "body": ""
    },
    {
      "title": "Add chat clear and delete message features",
      "prNumber": 4659,
      "type": "feature",
      "body": "## Summary\n- add routes in the CLI test server for deleting individual/group memories\n- expose client API helpers for deleting and clearing group messages\n- support group memory deletion in query hooks\n- add clear chat button and delete mes"
    },
    {
      "title": "attempt: change pglite default dir",
      "prNumber": 4656,
      "type": "other",
      "body": ""
    },
    {
      "title": "default sentry better",
      "prNumber": 4655,
      "type": "other",
      "body": "Since requires new ENV added, usually would always be not true, this turns off sentry only if user sets false. Even if env not added."
    },
    {
      "title": "fix sharp install in CI, integration tests failing",
      "prNumber": 4654,
      "type": "bugfix",
      "body": "Add libvips-dev install to linux in CI, to fix error in integration tests:\n\n```\ngyp info spawn make\ngyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]\n../src/common.cc:13:10: fatal error: vips/vips8: No such file or directory\n13 | #"
    },
    {
      "title": "generalized eliza agent character",
      "prNumber": 4653,
      "type": "other",
      "body": "Reduces lock in on default eliza character, removes IGNORES from message examples, goal is should be a good 1 on 1 chat that always responds for first time users."
    },
    {
      "title": "flyio docker deploy action for dev agent",
      "prNumber": 4652,
      "type": "other",
      "body": ""
    },
    {
      "title": "fix: reply action skipping dynamic providers",
      "prNumber": 4651,
      "type": "bugfix",
      "body": "This PR removes the skipping logic in the reply action. Previously, if a dynamic provider was added, it wouldn't be processed because the reply action would skip it.\r\n\r\nI think we might still need that shortcut if there's no dynamic provide"
    },
    {
      "title": "Add sentry logging to core logger errors.",
      "prNumber": 4650,
      "type": "feature",
      "body": "![image](https://github.com/user-attachments/assets/036e4f1c-bc4b-4271-a9fc-d707f1ce6ecf)\r\n\r\nInitial Sentry hookup into core logger errors.\r\n\r\nHas envs for custom Sentry setups, but defaults to ours."
    }
  ],
  "topContributors": [
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 347.45905336877047,
      "prScore": 342.0210533687705,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 281.4679115343121,
      "prScore": 251.2679115343121,
      "issueScore": 0,
      "reviewScore": 30,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 79.91572767414081,
      "prScore": 79.91572767414081,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 74.61888210570757,
      "prScore": 69.18088210570757,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "tcm390",
      "avatarUrl": "https://avatars.githubusercontent.com/u/60634884?u=c6c41679b8322eaa0c81f72e0b4ed95e80f0ac16&v=4",
      "totalScore": 45.21684631185576,
      "prScore": 45.21684631185576,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "0xCardiE",
      "avatarUrl": "https://avatars.githubusercontent.com/u/8969767?u=8b05509ceb96fd63a6246dfbf0860fd1df586e59&v=4",
      "totalScore": 42.468729759418494,
      "prScore": 42.468729759418494,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "crypto-cooker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16945788?u=819d567b766cb43113f89fb60ba0fac4c5137cf5&v=4",
      "totalScore": 33.9277738965761,
      "prScore": 33.9277738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "HashWarlock",
      "avatarUrl": "https://avatars.githubusercontent.com/u/64296537?u=1d8228a93c06c603e08d438677b3f736d6b1ab22&v=4",
      "totalScore": 5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": null
    }
  ],
  "newPRs": 31,
  "mergedPRs": 24,
  "newIssues": 0,
  "closedIssues": 2,
  "activeContributors": 12
}