{
  "interval": {
    "intervalStart": "2025-05-16T00:00:00.000Z",
    "intervalEnd": "2025-05-17T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-05-16 to 2025-05-17, elizaos/eliza had 7 new PRs (5 merged), 1 new issues, and 12 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs622zWA",
      "title": "Multiple issues - Not responding to mentions, not analyzing images, npx elizaos plugins commands not working",
      "author": "AlteredCode",
      "number": 4607,
      "repository": "elizaos/eliza",
      "body": "Hello guys, i've just checked out what i believe to be the most recent version (correct me if i'm wrong) 1.0.0-beta.51\n\nThat being said i'm unable to have the agent reply to any mentions, both in new posts or under agent generated posts/replies.\n\nI can also see part of the MENTION_RECEIVED event has been commented out i don't know if that's why is not replying...\n\nAlso i see it's not analyzing the images anymore and i also can't find the plugin-image in the src aswell. Has it been removed? I am setting imageVisionModelProvider in my character file.\n\nLast i'm unable to run the npx elizaos plugins commands as per documentation...\n\nCan you help me figure this out?",
      "createdAt": "2025-05-16T03:11:48Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs6xx4Eg",
      "title": "I want to enable tweet with media on platform X. Can anyone guide me how to do it?",
      "author": "MehmoodSheikh",
      "number": 4241,
      "repository": "elizaos/eliza",
      "body": "### **THIS IS MY .env FILE:**\n\n> ##### Media Generation Settings\n> MEDIA_GENERATION_ENABLED=true\n> IMAGE_GENERATION_ENABLED=true\n> TWEET_WITH_MEDIA_ENABLED=true\n> TWEET_WITH_MEDIA_FREQUENCY=1.0\n> ##### Debug Settings\n> DEBUG_TWITTER_MEDIA=true\n> TWITTER_LOG_LEVEL=debug\n> DEBUG_MEDIA_GENERATION=true\n> DEBUG_TWITTER_CLIENT=true\n> ##### Force media with every tweet\n> TWEET_ALWAYS_INCLUDE_MEDIA=true\n> ##### Image Generation Settings\n> IMAGE_GENERATION_PATH=agent/generatedImages\n> IMAGE_STORAGE_TYPE=local\n> IMAGE_BASE_URL=file://agent/generatedImages\n> ##### Image Description Service Configuration\n> IMAGE_DESCRIPTION_SERVICE_ENABLED=true\n> IMAGE_DESCRIPTION_PROVIDER=openai\n> IMAGE_DESCRIPTION_MODEL=gpt-4o-mini\n> ##### Debug Settings\n> DEBUG_IMAGE_SERVICE=true\n> DEBUG_SERVICE_REGISTRATION=true\n> \n> ##### Twitter/X Configuration\n> TWITTER_DRY_RUN=false\n> TWITTER_USERNAME=#########\n> TWITTER_PASSWORD=#########\n> TWITTER_EMAIL=#########\n> TWITTER_2FA_SECRET=\n> \n> ##### Authentication cookies for Twitter session (this is for login using cookies and is optional)\n> TWITTER_COOKIES_AUTH_TOKEN=\"#########\"\n> TWITTER_COOKIES_CT0=\"#########\"\n> TWITTER_COOKIES_GUEST_ID=\"#########\"\n> \n> TWITTER_POLL_INTERVAL=60   # How often (in seconds) the bot should check for interactions\n> TWITTER_SEARCH_ENABLE=TRUE # Enable timeline search, WARNING this greatly increases your chance of getting banned\n> TWITTER_TARGET_USERS=      # Comma separated list of Twitter user names to interact with\n> TWITTER_RETRY_LIMIT=3        # Maximum retry attempts for Twitter login\n> TWITTER_SPACES_ENABLE=false # Enable or disable Twitter Spaces logic\n> ENABLE_TWITTER_POST_GENERATION=true # Set to true to enable automatic tweet generation. If false, the bot will not generate or post tweets.\n> ##### Post Interval Settings (in minutes)\n> POST_INTERVAL_MIN=1 # Default: 90\n> POST_INTERVAL_MAX=2 # Default: 180\n> POST_IMMEDIATELY=false  # Default: false\n> ##### Twitter action processing configuration\n> ACTION_INTERVAL=2               # Interval in minutes between action processing runs (default: 5 minutes)\n> ENABLE_ACTION_PROCESSING=true # Set to true to enable the action processing loop\n> MAX_ACTIONS_PROCESSING=12       # Maximum number of actions (e.g., retweets, likes) to process in a single cycle. Helps prevent excessive or uncontrolled actions.\n> ACTION_TIMELINE_TYPE=foryou    # Type of timeline to interact with. Options: \"foryou\" or \"following\". Default: \"foryou\"\n> TWITTER_APPROVAL_CHECK_INTERVAL=60000 # Default: 60 seconds\n\n### **FOLLOWING IS CLIENT TWITTER PLUGIN FILE \"post.ts\" :**\n\n> const twitterPostTemplate = `\n> ##### Areas of Expertise\n> {{knowledge}}\n> \n> ##### About {{agentName}} (@{{twitterUserName}}):\n> {{bio}}\n> {{lore}}\n> {{topics}}\n> \n> {{providers}}\n> \n> {{characterPostExamples}}\n> \n> {{postDirections}}\n> \n> ##### Task: Generate a post with image in the voice and style and perspective of {{agentName}} @{{twitterUserName}}.\n> Write a post that is {{adjective}} about {{topic}} (without mentioning {{topic}} directly), from the perspective of {{agentName}}. \n> Your response should be 1, 2, or 3 sentences (choose the length at random).\n> Your response should not contain any questions. Brief, concise statements only. The total character count MUST be less than {{maxTweetLength}}. No emojis. Use \\\\n\\\\n (double spaces) between statements if there are multiple statements in your response.\n> \n> MANDATORY: You MUST include a detailed image description. Every tweet MUST have an image.\n> \n> Return your response in this EXACT JSON format with no deviations:\n> {\n>   \"text\": \"your tweet here\",\n>   \"attachments\": [\n>     {\n>       \"type\": \"image\",\n>       \"url\": \"agent/generatedImages/generated_{{timestamp}}_[counter].png\",\n>       \"contentType\": \"image/png\",\n>       \"description\": \"detailed visual description that perfectly complements the tweet, focused on blockchain, AI, or tech themes\"\n>     }\n>   ]\n> }\n> \n> Note: The [counter] in the URL will be automatically replaced with the next available number (0,1,2,3).\n> DO NOT include any commentary, just the JSON.`;\n> \n> export const twitterActionTemplate =\n>     `\n> ##### INSTRUCTIONS: Determine actions for {{agentName}} (@{{twitterUserName}}) based on:\n> {{bio}}\n> {{postDirections}}\n> \n> Guidelines:\n> - AGGRESSIVELY engage with content related to: blockchain, AI, crypto, decentralization, data privacy\n> - ALWAYS engage with direct mentions and replies\n> - MUST engage with those whose followers are more than 10,000\n> - ALWAYS replies to those post that have more than 1000 likes \n> - For any blockchain/AI/crypto/web3 content: 90% chance to engage\n> - Skip content that is:\n>   - Completely off-topic\n>   - Political/controversial unless directly blockchain-related\n>   - Low-quality/spam/promotional without substance\n> \n> Actions (respond with tags):\n> [LIKE] - Relevant content that aligns with character's interests (7/10+)\n> [RETWEET] - High-quality content matching character's expertise (8/10+)\n> [QUOTE] - Can add substantial domain expertise or sarcastic insight (8/10+)\n> [REPLY] - Can contribute meaningful, expert-level insight or witty response (8/10+)\n> \n> Tweet:\n> {{currentTweet}}\n> \n> ##### Analyze the tweet's relevance to blockchain, AI, decentralization or data privacy. Respond with action tags that make sense. Be more generous with engagement for on-topic content.` +\n>     postActionResponseFooter;`\n\n### **FOLLOWING IS PLUGIN-TWITTER FILE \"template.ts\":**\n\n> `export const tweetTemplate = \n> ##### Context\n> {{recentMessages}}\n> \n> ##### Topics\n> {{topics}}\n> \n> ##### Post Directions\n> {{postDirections}}\n> \n> ##### Recent interactions between {{agentName}} and other users:\n> {{recentPostInteractions}}\n> \n> ##### Task\n> Generate a tweet that:\n> 1. Relates to the recent conversation or requested topic\n> 2. Matches the character's style and voice\n> 3. Is concise and engaging\n> 4. Must be UNDER 180 characters (this is a strict requirement)\n> 5. Speaks from the perspective of {{agentName}}\n> 6. MUST include an image description for visual generation\n> \n> Your response MUST be in this exact JSON format:\n> {\n>   \"text\": \"your tweet here\",\n>   \"attachments\": [\n>     {\n>       \"type\": \"image\",\n>       \"url\": \"agent/generatedImages/generated_{{timestamp}}_[counter].png\",\n>       \"contentType\": \"image/png\",\n>       \"description\": \"detailed description for image generation that matches the tweet topic\"\n>     }\n>   ]\n> }\n> \n> Note: The [counter] in the URL will be automatically replaced with the next available number (0,1,2,3).\n> DO NOT include any commentary, just the JSON.;`\n> \n\n### **FOLLOWING IS MY PART OF \"CHARACTER\" FILE CODE:**\n\n> \"name\": \"Mehmood Sheikh\",\n>     \"username\": \"Mehmood_Sheikh_\",\n>     \"plugins\": [\n>         \"@elizaos/plugin-image-generation\",\n>         \"@elizaos/plugin-video-generation\",\n>         \"@elizaos-plugins/client-twitter\",\n>         \"@elizaos-plugins/plugin-twitter\"\n>     ],\n>     \"clients\": [\"twitter\"],\n>     \"modelProvider\": \"openai\",\n>     \"settings\": {\n>         \"services\": {\n>             \"image_description\": {\n>                 \"enabled\": true,\n>                 \"provider\": \"openai\"\n>             }\n>         },\n>         \"secrets\": {\n>             \"IMAGE_GENERATION_ENABLED\": \"true\",\n>             \"IMAGE_GENERATION_PROVIDER\": \"openai\",\n>             \"IMAGE_GENERATION_API_KEY\": \"########\"\n>         },\n>         \"voice\": {\n>             \"model\": \"en_US-hfc_female-medium\"\n>         },\n>         \"media\": {\n>             \"imageGeneration\": {\n>                 \"enabled\": true,\n>                 \"frequency\": 0.9,\n>                 \"style\": \"professional, tech-focused, blockchain-themed\",\n>                 \"outputPath\": \"agent/generatedImages\",\n>                 \"format\": \"png\"\n>             }\n>         },\n>         \"twitter\": {\n>             \"engagement\": {\n>                 \"enabled\": true,\n>                 \"replyFrequency\": 0.9,\n>                 \"retweetFrequency\": 0.8,\n>                 \"likeFrequency\": 0.8,\n>                 \"searchEnabled\": true,\n>                 \"searchTerms\": [\"blockchain\", \"crypto\", \"AI ethics\", \"decentralization\", \"web3\"],\n>                 \"searchFrequency\": 6,\n>                 \"interactionTopics\": [\n>                     \"Blockchain technology\",\n>                     \"Decentralized systems\",\n>                     \"AI ethics\",\n>                     \"Data privacy\",\n>                     \"Cryptocurrency\"\n>                 ],\n>                 \"avoidTopics\": [\n>                     \"Politics\",\n>                     \"Religion\",\n>                     \"Controversial social issues\"\n>                 ]\n>             }\n>         }\n>     },\n>   .\n>   .\n>   .\n\nI HAVE ATTACHED PART F CODE THAT I CHANGED IN ORDER TO ENABLE TWEET WITH MEDIA BUT STILL NOT ACHIEVE ANY FRUITFUL RESULTS. IF SOMEONE HELP IT MIGHT BE ALOT HELPFUL AND APPRECIATE YOUR GUIDANCE. CURRENTLY MY AGENT PERFECTLY POST TEXTUAL TWEETS , LIKES TWEETS AND ALSO RESPOTING.",
      "createdAt": "2025-04-09T12:17:09Z",
      "closedAt": "2025-05-16T18:34:51Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs6xo9Zj",
      "title": "Provider Data Not Used When Posting to Twitter",
      "author": "levsagiv",
      "number": 4224,
      "repository": "elizaos/eliza",
      "body": "Hi,\nI’m having trouble using my provider data when posting to Twitter. While I can see that the provider is running correctly, the data it provides doesn’t seem to be used during the Twitter post.\n\nIn regular chat scenarios, the provider data is used as expected. However, when I try to post to Twitter, it’s ignored.\n\nIs there something I’m missing, or a specific way to ensure provider data is utilized when posting to Twitter?\nAny help would be appreciated. Thanks!\n",
      "createdAt": "2025-04-08T16:19:29Z",
      "closedAt": "2025-05-16T18:34:52Z",
      "state": "CLOSED",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6Wawfd",
      "title": "Merge Spartan changes",
      "author": "lalalune",
      "number": 4609,
      "body": "This PR merges changes for Spartan and updates everything to latest v2",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-16T04:59:24Z",
      "mergedAt": null,
      "additions": 24857,
      "deletions": 5685
    },
    {
      "id": "PR_kwDOMT5cIs6Wh29n",
      "title": "feat: add plugin-rag",
      "author": "0xbbjoker",
      "number": 4614,
      "body": "\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- **New Features**\n  - Introduced a Retrieval-Augmented Generation (RAG) plugin, enabling advanced document ingestion and retrieval capabilities.\n  - Added support for uploading and processing various document types, including PDFs and DOCX, with asynchronous handling and per-file status reporting.\n  - Integrated AI-powered text embedding and completion features using OpenAI and Anthropic models.\n\n- **Bug Fixes**\n  - Improved handling of nullable fields in agent and task data to ensure consistent string values.\n\n- **Documentation**\n  - Added comprehensive documentation for the RAG plugin, including usage instructions, image requirements, and publishing guidelines.\n\n- **Chores**\n  - Updated dependencies and configuration files to support the new plugin.\n  - Enhanced logging and error reporting for document processing and plugin operations.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-16T23:32:49Z",
      "mergedAt": null,
      "additions": 4177,
      "deletions": 248
    },
    {
      "id": "PR_kwDOMT5cIs6S4GU2",
      "title": "Added: Llm instrumentation",
      "author": "Samarthsinghal28",
      "number": 4304,
      "body": "# Relates to\r\n\r\nAdds instrumentation support to LLM plugins for better observability and debugging.\r\n\r\n# Risks\r\n\r\n**Medium** — Changes involve instrumentation code across plugin logic. Potential risks include:\r\n- Performance overhead if not handled properly.\r\n- Incorrect spans/tags leading to confusing traces.\r\n- Integration issues with existing telemetry systems.\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nThis PR adds OpenTelemetry-based instrumentation to the LLM plugin modules. It introduces tracing for key functions to capture span data like plugin execution time, plugin name, and error logs if any failures occur.\r\n\r\n## What kind of change is this?\r\n\r\n- Improvements (misc. changes to existing features)\r\n- Features (non-breaking change which adds functionality)\r\n\r\n# Documentation changes needed?\r\n\r\nMy changes do not require a change to the project documentation.\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\n\r\nStart with the `instrumentation/` directory and review the changes to the plugin execution paths where spans have been added.\r\n\r\n## Detailed testing steps\r\n\r\n- Run the system with the environment variable to enable tracing.\r\n- Execute multiple LLM plugin calls (successful and failing).\r\n- Verify the traces are correctly emitted and visible in the backend (e.g., Jaeger, Zipkin).\r\n- Confirm trace tags and span names are descriptive and accurate.\r\n\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-04-16T17:45:12Z",
      "mergedAt": null,
      "additions": 648,
      "deletions": 235
    },
    {
      "id": "PR_kwDOMT5cIs6WfptU",
      "title": "chore: add local ai ci test",
      "author": "wtfsayo",
      "number": 4613,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-16T16:07:48Z",
      "mergedAt": null,
      "additions": 471,
      "deletions": 56
    },
    {
      "id": "PR_kwDOMT5cIs6WclzX",
      "title": "Eliza290/cli command env",
      "author": "yungalgo",
      "number": 4610,
      "body": "**elizaos env list:**\r\n\r\nAdded warning when no local .env file exists, with guidance to create one from .env.example if available\r\nAdded --system flag to show only system information, consistent with existing --global and --local flags\r\n\r\n**elizaos env reset:**\r\nTransformed from a simple deletion command to an interactive selection interface\r\nImplemented proper reset functionality that preserves keys but clears values\r\nAdded support for both global and local environment files\r\nAdded database handling with special consideration for PostgreSQL vs PGLite\r\n\r\n**Path handling improvements:**\r\nFixed env set-path to properly handle tilde (~) expansion for home directories\r\nAdded better error handling and messages for invalid paths\r\n\r\n**elizaos env interactive:**\r\nMade \"Set custom environment path\" option in interactive mode work properly\r\nEnsured consistent UI styling and user experience across commands\r\n\r\n+ Updated documentation\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- **New Features**\n  - Improved environment variable management in the CLI, including enhanced listing, resetting, and setting of environment variables.\n  - Added interactive reset functionality, allowing users to select which items to reset with clear descriptions and warnings.\n  - The `list` command now offers a `--system` option to display system information.\n\n- **Bug Fixes**\n  - Enhanced error handling and user feedback when managing environment variables and related files.\n\n- **Documentation**\n  - Updated CLI documentation to clarify new options, interactive reset behavior, and provide improved usage examples.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-16T09:31:45Z",
      "mergedAt": "2025-05-16T13:49:33Z",
      "additions": 383,
      "deletions": 81
    }
  ],
  "codeChanges": {
    "additions": 716,
    "deletions": 399,
    "files": 13,
    "commitCount": 35
  },
  "completedItems": [
    {
      "title": "fix: hallucination in reply",
      "prNumber": 4603,
      "type": "bugfix",
      "body": "Agent hallucinates if we use `OBJECT_SMALL`\r\n\r\nJSON responses are made up and causes many troubles.\r\n\r\nExample issue on the scr shoot:\r\n\r\n<img width=\"844\" alt=\"image\" src=\"https://github.com/user-attachments/assets/21d34d4d-c76d-4a1a-bebb-7"
    },
    {
      "title": "docs: fix broken link to ELIZA demo (ai16z → elizaos)",
      "prNumber": 4597,
      "type": "bugfix",
      "body": "Hey team—noticed a dead link, replaced it with a working URL. Thanks!\r\n\r\nhttps://ai16z.github.io/eliza/ -- old link\r\nhttps://elizaos.github.io/eliza/ -- new link"
    },
    {
      "title": "Eliza290/cli merge update cli into update command",
      "prNumber": 4592,
      "type": "other",
      "body": "# Consolidate `update-cli` command into `update` command\r\n\r\n## Problem\r\n- CLI update functionality was split between two commands (`update` and `update-cli`)\r\n- Installation instructions suggested incorrect command without the `@beta` tag\r\n"
    },
    {
      "title": "Eliza290/cli command env",
      "prNumber": 4610,
      "type": "other",
      "body": "**elizaos env list:**\r\n\r\nAdded warning when no local .env file exists, with guidance to create one from .env.example if available\r\nAdded --system flag to show only system information, consistent with existing --global and --local flags\r\n\r\n*"
    },
    {
      "title": "fix: reply action to skip LLM call if existing REPLY response is found",
      "prNumber": 4608,
      "type": "bugfix",
      "body": "Previously, the REPLY action was designed to skip the LLM call if an existing response with a REPLY action was found. However, recent changes to the message handler's template prompt caused the LLM to return the response with the `text` fie"
    }
  ],
  "topContributors": [
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 38.7537738965761,
      "prScore": 33.7537738965761,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 36.54103740558736,
      "prScore": 36.34103740558736,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 35.98119440894374,
      "prScore": 35.54319440894374,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "tcm390",
      "avatarUrl": "https://avatars.githubusercontent.com/u/60634884?u=c6c41679b8322eaa0c81f72e0b4ed95e80f0ac16&v=4",
      "totalScore": 23.512073800855028,
      "prScore": 23.512073800855028,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 19.546500299229322,
      "prScore": 19.546500299229322,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "monilpat",
      "avatarUrl": "https://avatars.githubusercontent.com/u/15067321?v=4",
      "totalScore": 11,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 11,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "HarshModi2005",
      "avatarUrl": "https://avatars.githubusercontent.com/u/142230924?u=64e337bbdb6b3aded5943b7e297759e7a3cfc0f0&v=4",
      "totalScore": 4.5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 4.5,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "AlteredCode",
      "avatarUrl": "https://avatars.githubusercontent.com/u/63291609?v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    }
  ],
  "newPRs": 7,
  "mergedPRs": 5,
  "newIssues": 1,
  "closedIssues": 2,
  "activeContributors": 12
}