{
  "interval": {
    "intervalStart": "2025-06-06T00:00:00.000Z",
    "intervalEnd": "2025-06-07T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-06-06 to 2025-06-07, elizaos/eliza had 17 new PRs (15 merged), 1 new issues, and 11 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs60Iplc",
      "title": "What is required in token swap using evm plugin?",
      "author": "0xopsdev",
      "number": 4368,
      "repository": "elizaos/eliza",
      "body": "I have installed evm plugin for transfer / swap / bridge tokens and I can transfer token but can't swap\nIt need some rpc\nWhat kinda rpc does it need and where to input on .env file?",
      "createdAt": "2025-04-26T17:43:12Z",
      "closedAt": "2025-06-06T20:26:06Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs653RbT",
      "title": "Add retry command to previous chats from the user",
      "author": "scottrepreneur",
      "number": 4926,
      "repository": "elizaos/eliza",
      "body": "**Is your feature request related to a problem? Please describe.**\n\nIt's frustrating when you load up a chat after a reboot (or other downtime) and having to type out the previous chat again.\n\n**Describe the solution you'd like**\n\nAdd a resend chat button to the context of previous chats from the user (near the delete button). This would allow the user to easily resend the same message again.\n\n**Describe alternatives you've considered**\n\nCopying and pasting the previous text works, but is slow and tedious.\n\n**Additional context**\n\nelizaos: `v1.0.4`\n",
      "createdAt": "2025-06-04T15:38:09Z",
      "closedAt": "2025-06-06T13:19:07Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs66PtlW",
      "title": "MessageBusService: Agent not a participant in channel {channelId}, ignoring message",
      "author": "exitsimulation",
      "number": 4972,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\nI am trying to send messages through the API using postman. The message goes through\n\nPOST /messages\n```\n{\n  \"entityId\": \"b8af647b-f617-0ae3-ab07-acb81861d7e2\",\n  \"roomId\": \"46bf60b4-cfa4-4ec4-a9f3-db1ec9ab0aa1\",\n  \"channelId\": \"89591c0f-7b20-45a0-9266-56a6ce68de13\",\n  \"serverId\": \"00000000-0000-0000-0000-000000000000\",\n  \"text\": \"Test Message!\",\n  \"source\": \"postman\"\n}\n```\n\nResponse:\n```\n{\n    \"success\": true,\n    \"data\": {\n        \"message\": \"Message submitted to central store. Target agent b8af647b-f617-0ae3-ab07-acb81861d7e2 will process it.\",\n        \"messageId\": \"11346cd8-46f2-4a7e-ae71-b6e72ee865ee\",\n        \"targetAgentId\": \"b8af647b-f617-0ae3-ab07-acb81861d7e2\",\n        \"submittedChannelId\": \"89591c0f-7b20-45a0-9266-56a6ce68de13\"\n    }\n}\n```\n\nHowever in the logs it says `[test-agent] MessageBusService: Agent not a participant in channel 89591c0f-7b20-45a0-9266-56a6ce68de13, ignoring message`\n\nThe strange thing is that I am already running a setup routine through a custom plugin to set a channel, room and add the agent as participant on this channel. See here:\n\n![Image](https://github.com/user-attachments/assets/fe11e37b-0925-4498-a3a2-0985c70151ab)\n\n\nAfter running this I am inspecting the live database and the channel_participants relation is there:\n\n![Image](https://github.com/user-attachments/assets/d5524f18-31e9-46bb-983e-3973c7140c44)\n\n![Image](https://github.com/user-attachments/assets/18921312-949d-47b2-83e3-73cc663fce73)\n\n**Theory**: \nMessageBusService seems to access stale data in regards to channel participants.\n\nIs there any way to fix this?\n",
      "createdAt": "2025-06-06T12:44:57Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6ZaXkk",
      "title": "chore: update messages api docs",
      "author": "0xbbjoker",
      "number": 4976,
      "body": "# What does this PR do?\n\nUpdates documentation for the messages API to provide complete and accurate information.\n\n## What kind of change is this?\n\nDocumentation changes\n\n## Documentation changes needed?\n\n✅ I have updated the documentation accordingly.\n\n## Testing\n\n**None:** Documentation-only changes.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-06T15:45:50Z",
      "mergedAt": "2025-06-06T18:35:49Z",
      "additions": 2672,
      "deletions": 0
    },
    {
      "id": "PR_kwDOMT5cIs6Zb0Yo",
      "title": "chore: Migrate CLI tests from Bats to Bun TypeScript",
      "author": "wtfsayo",
      "number": 4978,
      "body": "## Summary\n- Migrated all CLI tests from Bats shell scripts to TypeScript using Bun test runner\n- Removed legacy `__test_scripts__/` directory and obsolete Bats-based tests\n- Updated GitHub workflow to use new Bun TypeScript test suite\n- Improved test organization and maintainability with shared utilities\n\n## Test Results\n✅ 97 tests passing across all CLI commands\n- Start commands: 8/8 ✅\n- Publish commands: 18/18 ✅  \n- Environment commands: 5/5 ✅\n- Plugin commands: 13+ tests ✅\n- Create commands: Multiple tests ✅\n- Update commands: Multiple tests ✅\n- Agent commands: Multiple tests ✅\n- Setup-monorepo commands: Multiple tests ✅\n\n🤖 Generated with [Claude Code](https://claude.ai/code)",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-06T18:42:43Z",
      "mergedAt": "2025-06-06T19:31:22Z",
      "additions": 2122,
      "deletions": 1996
    },
    {
      "id": "PR_kwDOMT5cIs6ZXv11",
      "title": "Fix/realtime-message-deletion",
      "author": "standujar",
      "number": 4967,
      "body": "# Risks\n\n**Medium** - Changes to SocketIO event handling and API routing\n- Could affect message synchronization across clients\n- Routing changes might impact plugin functionality\n- Client-side state management modifications\n\n# Background\n\n## What does this PR do?\n\n- Add messageDeleted and channelCleared SocketIO events\n- Implement client-side handlers for real-time UI updates  \n- Fix routing to exclude /api/messages/ from plugin handler\n- Add DELETE /central-channels/:channelId endpoint\n- Clean up debug logs and improve TypeScript types\n- Prevent 404 errors when deleting channels\n\nFixes message deletion requiring page refresh\n\n## What kind of change is this?\n\n**Bug fixes** (non-breaking change which fixes an issue)\n**Improvements** (misc. changes to existing features)\n\n## Why are we doing this? Any context or related work?\n\nUsers experienced poor UX where deleted messages remained visible in the chat interface until manually refreshing the page. The DELETE API worked correctly but the UI wasn't receiving real-time updates via SocketIO events.\n\n# Documentation changes needed?\n\nMy changes do not require a change to the project documentation.\n\n# Testing\n\n## Where should a reviewer start?\n\n1. Review SocketIO event handling in `socketio-manager.ts` and `use-socket-chat.ts`\n2. Check routing exclusion logic in `eliza/packages/cli/src/server/api/index.ts`\n3. Verify new DELETE endpoint in `messages.ts`\n\n## Detailed testing steps\n\n- Start an agent and open the chat interface\n- Send several messages in a DM or group chat\n- Delete a message using the delete button\n  - Verify message disappears immediately without page refresh\n  - Verify SocketIO `messageDeleted` event is received\n- Clear entire channel using clear button\n  - Verify all messages disappear immediately\n  - Verify SocketIO `channelCleared` event is received\n- Delete a DM channel entirely\n  - Verify no 404 errors occur\n  - Verify proper API response\n\n## Screenshots\n\n### Before\n- Messages remained visible after deletion until page refresh\n- 404 errors when deleting channels\n- Verbose debug logs with emojis\n\n### After  \n- Messages disappear instantly upon deletion\n- Clean channel deletion without errors\n- Cleaner log output\n- Real-time UI updates via SocketIO events\n\n# Deploy Notes\n\n## Database changes\nNone - only UI and API routing changes\n\n## Deployment instructions\nStandard build and restart required:\n```bash\ncd eliza\nbun run build:client && bun run build:cli\n```\nThen restart the agent process.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-06T10:39:49Z",
      "mergedAt": null,
      "additions": 790,
      "deletions": 563
    },
    {
      "id": "PR_kwDOMT5cIs6ZW8DO",
      "title": "refactor: Enhance create command with TEE support and improved logic",
      "author": "yungalgo",
      "number": 4964,
      "body": "**Problem**\r\n\r\nThe elizaos create command was becoming cluttered and lacked a unified structure for handling different types of project creation (projects, plugins, agents). Also I found it unintuitive to pass -tee as a flag for project to clone the tee project instead of just having tee as a type. Also, there is stuff that is passing an ignore file in a string but it is already cloned over from the project starter and plugin starter and project tee starter templates.\r\n\r\n**Solution**\r\n\r\nUnified Type Selection: Instead of separate flags like --tee, the command now uses a single -t, --type option to select the creation type (project, plugin, agent, or tee). This simplifies the command's public API.\r\nTEE Project Scaffolding: Adds a new project-tee-starter template and the logic required to create a new TEE-enabled project.\r\nRefactored Logic: The internal logic has been broken down into smaller, single-responsibility functions (e.g., createProject, createPlugin, createAgent, createTEEProject), making the code easier to read, test, and maintain.\r\nImproved Validation: Centralized and improved validation for project names and target directories to provide clearer error messages to the user.\r\nDocumentation Update: The CLI README.md and docs have been updated to reflect the new command structure and options.\r\n\r\n**Details**\r\n\r\npackages/cli/src/commands/create.ts: Completely overhauled to support the new type-based creation flow.\r\npackages/project-tee-starter/: A new template package has been added for TEE projects.\r\npackages/cli/README.md & packages/docs/docs/cli/create.md: Updated to document the new functionality.\r\n\r\nDependency Bumps: Updated @vitest/coverage-v8 in starter templates for consistency and removing of warning flash during creation\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- **New Features**\n  - Added support for creating TEE (Trusted Execution Environment) projects via the CLI, with dedicated prompts, templates, and instructions.\n\n- **Documentation**\n  - Updated CLI documentation to reflect the new TEE project type and revised usage examples.\n  - Improved clarity and formatting in CLI and project creation documentation.\n\n- **Chores**\n  - Updated the @vitest/coverage-v8 development dependency to version 3.1.4 in project templates.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-06T09:08:18Z",
      "mergedAt": "2025-06-06T18:26:45Z",
      "additions": 407,
      "deletions": 320
    },
    {
      "id": "PR_kwDOMT5cIs6ZZB29",
      "title": "feat: 🎨 UI/UX Improvements: Responsive Character Form + Chat Interface Enhancements",
      "author": "wtfsayo",
      "number": 4974,
      "body": "## 🎨 UI/UX Improvements: Responsive Character Form + Chat Interface Enhancements\n\n### 📝 Summary\nThis PR introduces comprehensive responsive design improvements and UI enhancements across multiple client components, focusing on better space utilization, improved user experience, and consistent design patterns.\n\n### 🚀 Key Features\n\n#### 1. **Responsive Character Form Buttons** ✨\n- **Container-aware responsiveness**: Replaced viewport-based breakpoints with actual container width detection\n- **Dynamic button labels**: Button text shows/hides based on available space (640px threshold)\n- **ResizeObserver integration**: Uses modern browser API for real-time container width monitoring\n- **Comprehensive tooltips**: All form buttons now include helpful tooltips for better accessibility\n- **Improved UX**: Buttons adapt to their actual context rather than just viewport size\n\n#### 2. **Chat Interface Redesign** 💬\n- **Floating online status**: Moved agent status indicator to bottom-right corner of profile picture\n- **Consistent status styling**: Unified online/offline indicators across chat and sidebar (10px, white border, green/muted colors)\n- **Improved header layout**: Info button moved next to agent name for better accessibility\n- **Enhanced button styling**: Added responsive text labels that show/hide on larger screens\n- **Retry functionality**: Added retry button for user messages\n\n#### 3. **Component-wide Improvements** 🔧\n- **Agent sidebar**: Updated styling and layout consistency\n- **Memory viewer**: Minor UI refinements\n- **Stop agent button**: Optimized text for space efficiency\n\n### 📊 Technical Details\n\n**Files Modified:**\n- `packages/client/src/components/character-form.tsx` (+211/-66 lines)\n- `packages/client/src/components/chat.tsx` (+95/-61 lines)  \n- `packages/client/src/components/agent-sidebar.tsx` (+44/-27 lines)\n- `packages/client/src/components/agent-memory-viewer.tsx` (+11/-8 lines)\n- `packages/client/src/components/stop-agent-button.tsx` (+2/-1 lines)\n\n**New Features:**\n- `useContainerWidth()`: Custom ResizeObserver-based hook for container-aware responsive design\n- Comprehensive tooltip system for all form buttons\n- Enhanced chat header with floating status indicators\n- Consistent online/offline status styling across components\n\n### 🎯 Benefits\n- ✅ **Better space utilization**: Components adapt to actual available space\n- ✅ **Consistent design language**: Unified styling across components\n- ✅ **Improved accessibility**: Better button placement, visibility, and tooltip descriptions\n- ✅ **Modern responsive patterns**: Container queries approach vs viewport-only breakpoints\n- ✅ **Enhanced UX**: More intuitive interface interactions and visual feedback\n\n### 🔧 Technical Implementation\n\n#### Character Form Enhancements:\n- **Dynamic responsiveness**: `useContainerWidth` hook with 640px threshold\n- **Tooltip integration**: All buttons wrapped with informative tooltips\n- **Icon-first design**: Graceful degradation to icon-only on smaller screens\n\n#### Chat Interface Updates:\n- **Status indicators**: Repositioned to float on profile pictures\n- **Unified styling**: Consistent 10px indicators with white borders\n- **Better layout**: Info button placement next to agent names\n\n### 🎨 Visual Changes\n- Online status indicators now float on profile pictures with consistent styling\n- Info buttons positioned next to agent names for easier access\n- Character form buttons dynamically show/hide labels based on container width\n- Comprehensive tooltips provide context for all actions\n- Improved overall visual hierarchy and spacing\n\n### 🧪 Testing\n- ✅ Tested across different container sizes and layouts\n- ✅ Verified responsive behavior in various screen dimensions\n- ✅ Confirmed consistent online status indicators between chat and sidebar\n- ✅ Validated button label visibility logic and tooltip functionality\n- ✅ Ensured proper ResizeObserver cleanup\n\n### 📱 Responsive Behavior\n\n**Character Form Buttons:**\n- **Wide containers (≥640px)**: Show full button labels with tooltips\n- **Narrow containers (<640px)**: Show icons only with descriptive tooltips\n- **Dynamic**: Smooth transitions as space changes\n\n**Chat Interface:**\n- **Consistent indicators**: Unified online status across all views\n- **Better accessibility**: Info buttons positioned logically\n- **Enhanced feedback**: Clear visual states for all interactions\n\n### 🔄 Migration Notes\n\n- ✅ No breaking changes\n- ✅ Existing functionality preserved\n- ✅ Progressive enhancement approach\n- ✅ Backward compatible implementations\n\n---\n\n**Type:** `feat` - New responsive features and comprehensive UI improvements  \n**Scope:** `client/ui` - Frontend user interface components  \n**Breaking Changes:** None\n\nThis enhancement provides a significantly better user experience by making components truly responsive to their environment while maintaining consistency and accessibility across the entire interface. The implementation is performant, follows React best practices, and provides comprehensive user guidance through tooltips and improved visual feedback.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-06T13:19:21Z",
      "mergedAt": "2025-06-06T14:14:33Z",
      "additions": 248,
      "deletions": 124
    }
  ],
  "codeChanges": {
    "additions": 6403,
    "deletions": 3233,
    "files": 88,
    "commitCount": 87
  },
  "completedItems": [
    {
      "title": "fix errors cosmos.md",
      "prNumber": 4941,
      "type": "bugfix",
      "body": "Hey team! Fixed errors\r\n\r\n`Successfuly` - `Successfully` x2"
    },
    {
      "title": "chore: Migrate CLI tests from Bats to Bun TypeScript",
      "prNumber": 4978,
      "type": "tests",
      "body": "## Summary\n- Migrated all CLI tests from Bats shell scripts to TypeScript using Bun test runner\n- Removed legacy `__test_scripts__/` directory and obsolete Bats-based tests\n- Updated GitHub workflow to use new Bun TypeScript test suite\n- Im"
    },
    {
      "title": "fix: sidebar scroll behavior + add groups to sidebar",
      "prNumber": 4977,
      "type": "feature",
      "body": ""
    },
    {
      "title": "chore: update messages api docs",
      "prNumber": 4976,
      "type": "other",
      "body": "# What does this PR do?\n\nUpdates documentation for the messages API to provide complete and accurate information.\n\n## What kind of change is this?\n\nDocumentation changes\n\n## Documentation changes needed?\n\n✅ I have updated the documentation "
    },
    {
      "title": "chore: nuke duplicate & update docs for api",
      "prNumber": 4975,
      "type": "other",
      "body": "# Relates to\n\nCode cleanup and documentation improvements for API components.\n\n# Risks\n\n**Low** - Documentation and cleanup changes with minimal impact on functionality.\n\n# Background\n\n## What does this PR do?\n\nThis PR performs two main tas"
    },
    {
      "title": "feat: 🎨 UI/UX Improvements: Responsive Character Form + Chat Interface Enhancements",
      "prNumber": 4974,
      "type": "feature",
      "body": "## 🎨 UI/UX Improvements: Responsive Character Form + Chat Interface Enhancements\n\n### 📝 Summary\nThis PR introduces comprehensive responsive design improvements and UI enhancements across multiple client components, focusing on better spac"
    },
    {
      "title": "feat: Add retry button for user messages in chat",
      "prNumber": 4973,
      "type": "feature",
      "body": "## 🔄 Add Retry Button for User Messages in Chat\n\n### 📝 Description\nAdds a retry button to user messages in chat bubbles, allowing users to easily resend previous messages without manually copying and pasting text. This addresses the frust"
    },
    {
      "title": "feat: enhance UI/UX with responsive buttons, universal export system, and quick profile access",
      "prNumber": 4971,
      "type": "feature",
      "body": "## 🎨 Enhanced UI/UX: Responsive Buttons, Export Functionality & Profile Access\n\nThis PR significantly improves the user experience across the ElizaOS client with responsive design enhancements, comprehensive export capabilities, and stream"
    },
    {
      "title": "feat: update agent configuration on restart and move ensureAgentExist…",
      "prNumber": 4970,
      "type": "feature",
      "body": "## What does this PR do?\n\nMoves `ensureAgentExists` method from plugin-sql to runtime level where it belongs. The method was incorrectly placed in plugin-sql when it should be in runtime based on its operations and purpose.\n\n## What kind of"
    },
    {
      "title": "fix: Plugin Starter Template TypeScript Declarations, Standardize Git Ignores, Update READMEs",
      "prNumber": 4966,
      "type": "bugfix",
      "body": "# Fix Plugin Starter Template TypeScript Declarations, Standardize Git Ignores, Update READMEs\r\n\r\n## Problem\r\n\r\n**Missing TypeScript Declaration Files in Published Plugins**\r\n\r\n- Plugins created from the `plugin-starter` template were missi"
    },
    {
      "title": "fix: clean command",
      "prNumber": 4965,
      "type": "bugfix",
      "body": "This pull request includes a minor update to the `clean` script in the `package.json` file. The order of operations in the script was adjusted to ensure that cleaning individual packages occurs before removing and reinstalling dependencies."
    },
    {
      "title": "refactor: Enhance create command with TEE support and improved logic",
      "prNumber": 4964,
      "type": "refactor",
      "body": "**Problem**\r\n\r\nThe elizaos create command was becoming cluttered and lacked a unified structure for handling different types of project creation (projects, plugins, agents). Also I found it unintuitive to pass -tee as a flag for project to "
    },
    {
      "title": "Fix/agent cli json and error handling",
      "prNumber": 4963,
      "type": "bugfix",
      "body": "- tiny pr to cleanup agent command with an unecessary --json option on the agent start subcommand.\r\n- updated agent.md doc\r\n- updated cli doc to not include this option\r\n\r\nunaffected:\r\n\r\nelizaos agent get --json\r\nelizaos agent list --json"
    },
    {
      "title": "dependencies cleanup",
      "prNumber": 4962,
      "type": "refactor",
      "body": "# Dependencies Cleanup\r\n\r\n## Summary\r\nThis PR addresses critical dependency management issues in the monorepo that were causing build failures and CLI functionality problems.\r\n\r\n## Problem\r\n- Unnecessary dependencies in the monorepo were ca"
    },
    {
      "title": "fix: remove logs",
      "prNumber": 4961,
      "type": "bugfix",
      "body": "Removing logs."
    }
  ],
  "topContributors": [
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 224.610938200816,
      "prScore": 214.17293820081602,
      "issueScore": 0,
      "reviewScore": 10,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 221.9054006808977,
      "prScore": 201.70540068089772,
      "issueScore": 0,
      "reviewScore": 20,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 131.90193401218207,
      "prScore": 131.56193401218206,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": null
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 85.83523433424482,
      "prScore": 85.39723433424481,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 57.87087386417331,
      "prScore": 26.43287386417331,
      "issueScore": 0,
      "reviewScore": 31,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 5.2,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "exitsimulation",
      "avatarUrl": "https://avatars.githubusercontent.com/u/13287154?u=eaf07807399e16a2b75364f7588f1e6ca95011aa&v=4",
      "totalScore": 2.4379999999999997,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 0.2,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "davidjsonn",
      "avatarUrl": "https://avatars.githubusercontent.com/u/155117116?u=c0d37dc63f2fa62f48b5c54342917b17460af966&v=4",
      "totalScore": 0.2,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    }
  ],
  "newPRs": 17,
  "mergedPRs": 15,
  "newIssues": 1,
  "closedIssues": 2,
  "activeContributors": 11
}