{
  "interval": {
    "intervalStart": "2025-06-07T00:00:00.000Z",
    "intervalEnd": "2025-06-08T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-06-07 to 2025-06-08, elizaos/eliza had 22 new PRs (16 merged), 2 new issues, and 8 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs66aIKS",
      "title": "CLI does not load/register dependencies from plugins",
      "author": "lalalune",
      "number": 4997,
      "repository": "elizaos/eliza",
      "body": "Plugins now define dependencies. These dependencies are loaded automatically when we load the plugin.\n\nTests and startup should make sure these dependencies are loaded\n\nhttps://github.com/elizaOS/eliza/pull/4994\n\nI made this and it works for tests but I suspect many edge case issues\n\nOne major change is we should consider testDependencies as separate from regular required dependnecies\n\nWe should also make sure that deps are deduplicated through, so we don't load the same dep from different plugins for example",
      "createdAt": "2025-06-07T19:25:07Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs66aH0R",
      "title": "When testing default plugins (bootstrap, sql, etc) get \"unable to register again\" error",
      "author": "lalalune",
      "number": 4996,
      "repository": "elizaos/eliza",
      "body": "When testing default plugins (bootstrap, sql, etc) get \"unable to register again\" error\n\nTo test: run 'bun run test' in any of these repos\n\nThis would be harmless but can be annoying with race condition on build for testing while developing",
      "createdAt": "2025-06-07T19:23:01Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6ZfHqb",
      "title": "feat: add cursor rules",
      "author": "lalalune",
      "number": 4982,
      "body": "Adds .cursor project rules",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-07T06:03:29Z",
      "mergedAt": "2025-06-07T16:48:52Z",
      "additions": 13696,
      "deletions": 0
    },
    {
      "id": "PR_kwDOMT5cIs6ZiFGc",
      "title": "feat: Split types.ts into granular files",
      "author": "lalalune",
      "number": 4999,
      "body": "This PR splits the gigantic types.ts into logical and granular sections\r\n\r\nNice for agentic search etc",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-07T19:31:43Z",
      "mergedAt": "2025-06-08T10:14:45Z",
      "additions": 5075,
      "deletions": 12729
    },
    {
      "id": "PR_kwDOMT5cIs6ZiSMZ",
      "title": "New types 2",
      "author": "lalalune",
      "number": 5001,
      "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/ai16z 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-06-07T20:31:47Z",
      "mergedAt": "2025-06-07T20:34:21Z",
      "additions": 2869,
      "deletions": 10160
    },
    {
      "id": "PR_kwDOMT5cIs6Zh6ua",
      "title": "feat: Load dependencies when loading plugins",
      "author": "lalalune",
      "number": 4994,
      "body": "This PR loads dependencies from the 'dependencies' list in the Plugin\r\n\r\nThis enables plugins to import other plugins and for tests to pass when running them\r\n\r\nWe need to verify that this will work correctly with a variety of plugins and edge cases on main when actually running plugins",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-07T18:44:42Z",
      "mergedAt": null,
      "additions": 946,
      "deletions": 272
    },
    {
      "id": "PR_kwDOMT5cIs6ZiIS0",
      "title": "feat(client): Add split button component and improve character form UI",
      "author": "wtfsayo",
      "number": 5000,
      "body": "## 🚀 Features\n\n### New Split Button Component\n- **Reusable SplitButton component** with dropdown functionality for grouping related actions\n- **Configurable options** with labels, descriptions, and individual click handlers\n- **Variant support** for default and destructive styling (red for dangerous actions)\n- **Controlled/uncontrolled** value management with proper state handling\n- **Accessibility features** with ARIA labels and keyboard navigation support\n\n### Character Form UI Improvements\n- **Replaced individual import/export buttons** with a clean split button interface\n- **Replaced individual stop/delete buttons** with a destructive split button for dangerous actions\n- **Better organization** of related actions in intuitive dropdown menus\n- **Improved mobile responsiveness** with better section label truncation (8 chars instead of 3-4)\n- **Cleaner layout** with reduced button clutter and better visual hierarchy\n\n### Component Updates\n- **Updated Button component** to latest design system with improved focus states, shadows, and variants\n- **Updated DropdownMenu component** to latest Radix UI version (v2.1.15) with enhanced styling and behavior\n- **Enhanced focus management** and pointer event handling for better accessibility\n- **Consistent styling** across all UI components\n\n### UX Enhancements\n- **Fixed toast auto-dismiss timing** from 1000 seconds to 3 seconds for proper user feedback\n- **Descriptive dropdown options** with labels and helpful descriptions\n- **Maintained all existing functionality** while improving organization and discoverability\n- **Better visual feedback** for destructive actions with appropriate color coding\n\n## 🎯 Benefits\n\n1. **Improved User Experience**: Related actions are now logically grouped, reducing cognitive load\n2. **Cleaner Interface**: Significant reduction in button clutter while maintaining full functionality\n3. **Better Mobile Support**: Enhanced responsive behavior with improved label handling\n4. **Enhanced Accessibility**: Proper ARIA labels, focus management, and keyboard navigation\n5. **Consistent Design Language**: All components now follow the latest design system standards\n6. **Better Feedback**: Toast notifications now behave as expected with proper auto-dismiss\n\n## 🧪 Testing Verified\n\n- ✅ All existing import/export functionality preserved and working\n- ✅ Stop/Delete agent actions work as expected with proper confirmation\n- ✅ Split button dropdown interactions work smoothly\n- ✅ Mobile responsiveness improved across different screen sizes\n- ✅ Toast notifications auto-dismiss after 3 seconds\n- ✅ Keyboard navigation and accessibility features functional\n- ✅ No breaking changes to existing workflows\n\n## 📱 UI/UX Improvements\n\n### Before:\n- Multiple scattered buttons for related actions\n- Inconsistent styling across components\n- Poor mobile label truncation (3-4 chars)\n- Toast notifications never auto-dismissed (1000s timeout)\n\n### After:\n- Clean split buttons grouping related actions\n- Consistent modern design system\n- Better mobile labels (8 chars with better truncation)\n- Proper toast auto-dismiss (3s timeout)\n- Descriptive dropdown options with helpful context\n\n## 🔧 Technical Details\n\n### New Files:\n- `packages/client/src/components/split-button.tsx` - Main split button component\n\n### Modified Files:\n- `packages/client/src/components/character-form.tsx` - Integrated split buttons\n- `packages/client/src/components/ui/button.tsx` - Updated to latest design system\n- `packages/client/src/components/ui/dropdown-menu.tsx` - Updated to latest Radix UI\n- `packages/client/src/hooks/use-toast.ts` - Fixed auto-dismiss timing\n- `packages/client/package.json` - Updated Radix UI dependency\n\n### Dependencies:\n- Updated `@radix-ui/react-dropdown-menu` from v2.1.6 to v2.1.15\n\nThis enhancement significantly improves the user experience while maintaining full backward compatibility and adding no breaking changes to existing functionality. ",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-07T19:49:01Z",
      "mergedAt": "2025-06-07T19:55:53Z",
      "additions": 578,
      "deletions": 311
    }
  ],
  "codeChanges": {
    "additions": 17894,
    "deletions": 10743,
    "files": 58,
    "commitCount": 73
  },
  "completedItems": [
    {
      "title": "New types 2",
      "prNumber": 5001,
      "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": "feat(client): Add split button component and improve character form UI",
      "prNumber": 5000,
      "type": "feature",
      "body": "## 🚀 Features\n\n### New Split Button Component\n- **Reusable SplitButton component** with dropdown functionality for grouping related actions\n- **Configurable options** with labels, descriptions, and individual click handlers\n- **Variant sup"
    },
    {
      "title": "feat: Add scenario test to bootstrap to check for \"hello world\"",
      "prNumber": 4998,
      "type": "feature",
      "body": "This demonstrates a live interaction between a test and an agent to verify that the agent said what we expected. We can build on this to validate that actions, providers, etc are giving us the correct information and performing as expected,"
    },
    {
      "title": "minor docstring fixups",
      "prNumber": 4995,
      "type": "bugfix",
      "body": "packages/docs/versioned_docs/version-0.25.9/changelog.md\r\n`promisses` - `promises`\r\n`formating` - `formatting`\r\n`evaulators` - `evaluators`"
    },
    {
      "title": "chore: matrix run on all three platforms",
      "prNumber": 4993,
      "type": "other",
      "body": ""
    },
    {
      "title": "chore: remove obsolete step from integration test CI",
      "prNumber": 4992,
      "type": "tests",
      "body": ""
    },
    {
      "title": "chore: remove cache from cli-test that causes flaky tests",
      "prNumber": 4990,
      "type": "tests",
      "body": ""
    },
    {
      "title": "feat(client): add responsive horizontal scrolling for character form …",
      "prNumber": 4988,
      "type": "feature",
      "body": "# Relates to\r\n\r\nImproves user experience for character form navigation on mobile and smaller screen devices.\r\n\r\n# Risks\r\n\r\n**Low Risk** - UI/UX improvement that enhances responsive behavior without affecting core functionality.\r\n\r\n# Backgro"
    },
    {
      "title": "fix: resolve env command interactive mode and flag inconsistencies",
      "prNumber": 4987,
      "type": "bugfix",
      "body": "### Problem\r\n\r\nThree critical issues in `elizaos env` command causing unreliable environment management:\r\n\r\n1. **Infinite Loop**: `elizaos env interactive -y` loops forever, requiring Ctrl+C to exit\r\n2. **Flag Logic Bug**: `elizaos env list"
    },
    {
      "title": "fix: Port Validation, Character File Handling Fix",
      "prNumber": 4985,
      "type": "bugfix",
      "body": "# CLI Port Validation & Character File Handling Fix\r\n\r\n## Problem\r\n\r\nTwo CLI issues were identified and fixed in this PR:\r\n\r\n1. **Port validation** was happening at runtime instead of immediately during CLI argument parsing\r\n2. **Character "
    },
    {
      "title": "Fix/plugins command empty string validation and help clarity",
      "prNumber": 4984,
      "type": "bugfix",
      "body": "## Problem\r\n- Empty strings in `elizaos plugins add \"\"` would trigger fuzzy search matching, installing random plugins (e.g., \"plugin-0g\")\r\n- Help text for `plugins list` didn't clearly indicate that v1.x plugins are shown by default\r\n\r\n## "
    },
    {
      "title": "feat:  push version back to main and make a pr to develop on release",
      "prNumber": 4983,
      "type": "feature",
      "body": "When we tag a release, it doesnt save the version back to our code\r\n\r\nThis PR fixes our release (or should at least) so that versions are saved to the tag, pushed back to the main branch and a version update PR is made to develop. Or that's"
    },
    {
      "title": "feat: add cursor rules",
      "prNumber": 4982,
      "type": "feature",
      "body": "Adds .cursor project rules"
    },
    {
      "title": "feat: simplify monorepo command and update documentation/tests",
      "prNumber": 4981,
      "type": "feature",
      "body": "# Simplify Monorepo Command and Update Docs & Tests\r\n\r\n## Branch Name\r\n\r\n```\r\nfeat/simplify-monorepo-command-and-update-docs-tests\r\n```\r\n\r\n## PR Title\r\n\r\n```\r\nfeat: simplify monorepo command and update documentation/tests\r\n```\r\n\r\n## Problem"
    },
    {
      "title": "fix: incorrect API URL used for message server when SERVER_PORT is not 3000",
      "prNumber": 4980,
      "type": "bugfix",
      "body": "Currently, the GUI displays the following error message:\r\n\r\n```\r\nAgent not a participant in channel xxxx, ignoring message\r\n```\r\n\r\nThis occurs when the app is **not** running on port 3000 because the `SERVER_PORT` environment variable has b"
    },
    {
      "title": "Fix CLI update from npm 1.0.5 to bun 1.0.6 by auto-migrating installations",
      "prNumber": 4979,
      "type": "bugfix",
      "body": "# Fix CLI update from npm <1.0.5 to bun 1.0.6 by auto-migrating installations\r\n\r\n## Problem\r\n\r\nUsers with npm-installed CLI version <1.0.5 cannot update to version 1.0.6+ because ElizaOS switched from npm to bun as the primary package manag"
    }
  ],
  "topContributors": [
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 222.94118339109184,
      "prScore": 222.50318339109185,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "yungalgo: Merged 5 PRs, including significant bug fixes and enhancements such as #4987 (+13789/-63 lines) and #4985 (+13852/-97 lines), while also opening 1 new PR (#4986). Focused primarily on code modifications with 29 files changed (+572/-330 lines) and maintained a consistent activity pattern with 23 commits."
    },
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 221.9865178285515,
      "prScore": 217.6465178285515,
      "issueScore": 4,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": "lalalune: Merged 5 PRs, including significant contributions like #4999 \"feat: Split types.ts into granular files\" (+5790/-12932 lines) and #4982 \"feat: add cursor rules\" (+13696/-0 lines), while also opening 2 new issues. Active with 14 commits, focusing primarily on feature work and modifying 98 files (+22646/-23502 lines)."
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 128.7384981362147,
      "prScore": 123.39849813621471,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.33999999999999997,
      "summary": "wtfsayo: Merged 4 PRs, including a significant addition of a split button component in PR #5000 (+583/-316 lines), while also focusing on bug fixes (37%) and tests (32%) across 223 modified files (+62662/-3870 lines). Actively contributed with 19 commits and maintained a consistent work pattern."
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 90.7440650913382,
      "prScore": 36.2440650913382,
      "issueScore": 0,
      "reviewScore": 54.5,
      "commentScore": 0,
      "summary": "ChristopherTrimboli: Opened 1 PR (#4989 \"chore: HMR client dev\") and made significant code changes, modifying 94 files with a total of +5855/-3211 lines across 10 commits, demonstrating a strong focus on other work. Actively engaged with the project, maintaining a consistent work pattern."
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 40.69814095347574,
      "prScore": 35.69814095347574,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": "0xbbjoker: Merged 2 PRs (#4988 with +107/-18 lines and #5003 with +48/-11 lines), focusing entirely on feature work with a total of +155/-29 lines modified across 5 files. Maintained a consistent activity pattern, actively contributing to the codebase today."
    },
    {
      "username": "tcm390",
      "avatarUrl": "https://avatars.githubusercontent.com/u/60634884?u=c6c41679b8322eaa0c81f72e0b4ed95e80f0ac16&v=4",
      "totalScore": 26.107025100551105,
      "prScore": 25.767025100551106,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": "tcm390: Merged 1 PR (#4980) addressing an incorrect API URL for the message server, resulting in significant code changes of +5791/-2833 lines across 78 modified files. Actively engaged with the community by commenting on 1 issue and providing feedback on 1 PR, demonstrating consistent work patterns."
    },
    {
      "username": "davidjsonn",
      "avatarUrl": "https://avatars.githubusercontent.com/u/155117116?u=c0d37dc63f2fa62f48b5c54342917b17460af966&v=4",
      "totalScore": 21.221718956217053,
      "prScore": 21.221718956217053,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "davidjsonn: Merged 1 PR (#4995) with minor docstring fixups (+2/-2 lines) and made code changes in documentation, focusing entirely on bugfix work. Active today, maintaining a consistent contribution pattern."
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": "standujar: Contributed with 1 review, providing 1 approval, and demonstrated sporadic activity, being active on 0 out of 1 days."
    }
  ],
  "newPRs": 22,
  "mergedPRs": 16,
  "newIssues": 2,
  "closedIssues": 0,
  "activeContributors": 8
}