{
  "interval": {
    "intervalStart": "2025-06-10T00:00:00.000Z",
    "intervalEnd": "2025-06-11T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-06-10 to 2025-06-11, elizaos/eliza had 25 new PRs (23 merged), 1 new issues, and 13 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs66yPsU",
      "title": "Unable to load custom characters after upgrading to 1.0.7",
      "author": "jonathanprozzi",
      "number": 5039,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\nAfter upgrading an existing project to use `@elizaos/core` version `1.0.7`, our custom character is no longer registered as an agent. Opening the chat interface/dev environment on `localhost` only shows Eliza as an agent and not our character. This previously worked with `1.0.6`. \n\nI tested with a newly scaffolded project and set up a character there as well and noticed the same behavior with only Eliza being shown as an agent.\n\n**To Reproduce**\n\n- Upgrade an existing project to use `\"@elizaos/core\": \"^1.0.7\"` or start a fresh one using this version\n- Create a new character file with character settings and load that as the agent in the `index.ts`\n- Start the server\n- Open `localhost` to view the chat/dev environment and check if custom character is there -- we only saw Eliza and not our agent\n\nCode snippets for characters:\n\n`herbert.ts` snippet:\n\n```typescript\nexport const herbert: Character = {\n  name: 'Herbert',\n  plugins: [\n    '@elizaos/plugin-sql',\n    ...(process.env.EVM_PRIVATE_KEY ? ['@elizaos/plugin-evm'] : []),\n    ...(process.env.ANTHROPIC_API_KEY ? ['@elizaos/plugin-anthropic'] : []),\n    ...(process.env.OPENAI_API_KEY ? ['@elizaos/plugin-openai'] : []),\n    ...(process.env.OPENAI_API_KEY ? ['@elizaos/plugin-knowledge'] : []),\n    ...(!process.env.OPENAI_API_KEY ? ['@elizaos/plugin-local-ai'] : []),\n    ...(process.env.DISCORD_API_TOKEN ? ['@elizaos/plugin-discord'] : []),\n    ...(process.env.TWITTER_USERNAME ? ['@elizaos/plugin-twitter'] : []),\n    ...(process.env.TELEGRAM_BOT_TOKEN ? ['@elizaos/plugin-telegram'] : []),\n    ...(!process.env.IGNORE_BOOTSTRAP ? ['@elizaos/plugin-bootstrap'] : []),\n  ],\n... (more settings)\n}\n```\n\n`index.ts`:\n```typescript\nconst herbertAgent: ProjectAgent = {\n  character: herbert,\n  init: async (runtime: IAgentRuntime) => initCharacter({ runtime }),\n};\nconst project: Project = {\n  agents: [herbertAgent],\n};\n```\n\n**Expected behavior**\n\n- Expected that Eliza would find the new character (Herbert) and register it as an agent (previous behavior in existing project)\n- We didn't change any config in the existing project but after upgrading versions we could no longer find/interact with Herbert\n\n**Additional context**\n\n- Tested this with both a newly scaffolded project as well as in an existing project. Our existing project had our custom agent/character loading but I then upgraded to `1.0.7` and Eliza is the only registered agent. Seems to possibly be using Eliza as a fallback and ignoring our custom character files, even though they're being detected when the server starts.\n",
      "createdAt": "2025-06-10T14:02:57Z",
      "closedAt": "2025-06-11T05:11:31Z",
      "state": "CLOSED",
      "commentCount": 5
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6Z8Ksx",
      "title": "chore: v1.0.8",
      "author": "ChristopherTrimboli",
      "number": 5051,
      "body": "includes PRs:\r\n\r\n- #5026\r\n- #5028\r\n- #5027\r\n- #5018\r\n- #5016\r\n- #5010\r\n- #5038\r\n- #5042\r\n- #5041\r\n- #5031\r\n- #5032\r\n- #5034\r\n- #5035\r\n- #4968\r\n- #5033\r\n- #5036\r\n- #5030\r\n- #5044\r\n- #5048\r\n- #5043\r\n- #5049\r\n- #5047\r\n- #5050 ",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-10T23:34:04Z",
      "mergedAt": "2025-06-11T01:04:51Z",
      "additions": 24253,
      "deletions": 20227
    },
    {
      "id": "PR_kwDOMT5cIs6Z7fmU",
      "title": "chore: Update docs",
      "author": "madjin",
      "number": 5046,
      "body": "Twitter plugin will be undergoing maintenance, updating docs to reflect that\r\n \r\n- ✅ Added deprecation notices to Twitter plugin and client documentation\r\n- ✅ Removed Twitter from main intro/README featured connectors lists\r\n- ✅ Removed entire Twitter troubleshooting section from FAQ\r\n- ✅ Marked Twitter environment variables as deprecated in .env.example\r\n- ✅ Updated quickstart guide\r\n- ✅ Replaced Twitter examples in migration tutorial with Telegram/Farcaster\r\n- ✅ Updated plugin examples in core documentation to use Farcaster instead\r\n- ✅ Removed Twitter from plugin showcase lists\r\n- ✅ Added \"Twitter/X integration undergoing maintenance\" to changelog\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-10T21:19:56Z",
      "mergedAt": "2025-06-12T20:41:55Z",
      "additions": 15515,
      "deletions": 17614
    },
    {
      "id": "PR_kwDOMT5cIs6ZvyIq",
      "title": "feat: Dynamic loading of database tables, rebuild plugin-sql, ",
      "author": "lalalune",
      "number": 5018,
      "body": "This is a big PR\r\n\r\n- Rewrite plugin-sql to dynamically migrate code\r\n- Rewrite CLI commands to load plugin dependencies, migrate db tables\r\n- Refactor types and add service types which can be inherited by dependent plugins\r\n\r\nOverall should not change a ton of functionality but should enable fully modular plugins. We can move konwledge / document table to the knowledge plugin, for example",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-09T20:43:10Z",
      "mergedAt": "2025-06-10T07:14:13Z",
      "additions": 12195,
      "deletions": 10105
    },
    {
      "id": "PR_kwDOMT5cIs6Z2CDP",
      "title": "refactor: reorganize cli commands into modular structure",
      "author": "wtfsayo",
      "number": 5036,
      "body": "## Summary\r\n\r\nComprehensive refactoring of ALL major CLI commands from monolithic architecture to modular structure for improved maintainability and scalability. This PR systematically transforms large single-file implementations into well-organized, reusable modules following a consistent architectural pattern.\r\n\r\n\r\n\r\n## Architecture Pattern\r\n\r\nEvery command now follows this consistent modular structure:\r\n\r\n```\r\ncommands/[command]/\r\n├── index.ts          # Command registration & main entry point\r\n├── types.ts          # TypeScript interfaces & type definitions  \r\n├── actions/          # Core business logic & operations\r\n│   ├── [feature].ts  # Specific action implementations\r\n│   └── index.ts      # Action exports\r\n└── utils/           # Helper functions & utilities\r\n    ├── [utility].ts  # Specific utility implementations\r\n    └── index.ts      # Utility exports\r\n```\r\n\r\n## Refactoring Strategy\r\n\r\n### **Complete Modularization**\r\n- **87 files** created/modified in commands directory\r\n- **10 major commands** fully refactored\r\n- **Consistent patterns** across all modules\r\n- **Zero breaking changes** - all imports continue to work\r\n\r\n## Key Benefits\r\n\r\n### **Separation of Concerns**\r\n- **Actions**: Business logic and core operations\r\n- **Utils**: Validation, display, and utility functions  \r\n- **Types**: TypeScript definitions and schemas\r\n- **Shared**: Common functionality across commands\r\n\r\n### **Improved Maintainability**\r\n- Individual files are focused and manageable (20-200 lines vs 300-800+ line monoliths)\r\n- Easier to locate and modify specific functionality\r\n- Clear boundaries between different concerns\r\n- Consistent patterns across ALL commands\r\n\r\n### **Enhanced Reusability**\r\n- Shared utilities prevent code duplication\r\n- Modular functions can be imported independently\r\n- Common patterns for server management, file watching, plugin handling\r\n- Centralized error handling and validation\r\n\r\n### **Better Testing & Development**\r\n- Individual functions can be unit tested in isolation\r\n- Mocking dependencies is simplified\r\n- Development workflows are now standardized\r\n- Plugin management is consistent across commands\r\n\r\n## Backward Compatibility\r\n\r\n✅ **Zero breaking changes** - All existing CLI commands, options, and workflows work exactly as before. The modular structure coexists with original interfaces through re-export proxies, ensuring full backward compatibility.\r\n\r\n## Technical Highlights\r\n\r\n- **Development Workflow**: Enhanced dev command with improved file watching and server management\r\n- **Plugin System**: Comprehensive plugin loading, installation, and dependency resolution\r\n- **Registry Integration**: Complete publishing pipeline for npm and GitHub\r\n- **Environment Management**: Interactive configuration with validation\r\n- **Testing Framework**: Unified component and E2E testing with auto-detection\r\n- **Build Orchestration**: Modular build utilities supporting projects, plugins, and monorepos\r\n- **Error Handling**: Consistent error handling patterns across all commands\r\n\r\n## Impact Statistics\r\n\r\n- **~4,000+ lines** of monolithic code refactored into focused modules\r\n- **87 files** changed in commands directory\r\n- **10 major commands** completely modularized\r\n- **0 breaking changes** - full backward compatibility maintained\r\n- **Consistent architecture** established for future development\r\n\r\nThis comprehensive refactoring transforms the entire ElizaOS CLI from a collection of monolithic commands into a well-organized, modular architecture with improved maintainability, consistency, and developer experience.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-10T11:48:28Z",
      "mergedAt": "2025-06-10T18:02:22Z",
      "additions": 6749,
      "deletions": 5221
    },
    {
      "id": "PR_kwDOMT5cIs6Zmx7d",
      "title": "feat: Reorganize API routes into logical domain-based structure",
      "author": "wtfsayo",
      "number": 5010,
      "body": "## Summary\n\nThis PR implements a comprehensive API domain reorganization and improves the client-side confirmation UX.\n\n### Major API Domain Reorganization 🏗️\n\n**Complete restructuring of the `/packages/cli/src/server/api/` directory:**\n\n- **Deleted monolithic files**: Removed large single-file modules (`agent.ts`, `world.ts`) \n- **Created domain-based structure** with organized subdirectories:\n\n#### `/api/agents/` - Agent Management Domain\n- `crud.ts` - Create, read, update, delete operations\n- `lifecycle.ts` - Start/stop/restart agent lifecycle management  \n- `logs.ts` - Agent logging and diagnostics\n- `panels.ts` - Agent panel/dashboard functionality\n- `worlds.ts` - World/environment management for agents\n- `index.ts` - Agent domain exports and routing\n\n#### `/api/audio/` - Audio Processing Domain  \n- `conversation.ts` - Conversational audio handling\n- `processing.ts` - Audio processing utilities\n- `synthesis.ts` - Text-to-speech and audio synthesis\n- `index.ts` - Audio domain exports\n\n#### `/api/media/` - Media Management Domain\n- `agents.ts` - Agent-specific media operations\n- `channels.ts` - Channel media management\n- `index.ts` - Media domain exports\n\n#### `/api/memory/` - Memory & State Management Domain\n- `agents.ts` - Agent memory operations\n- `groups.ts` - Group/collective memory management  \n- `rooms.ts` - Room-based memory handling\n- `index.ts` - Memory domain exports\n\n#### `/api/messaging/` - Communication Domain\n- `channels.ts` - Channel operations (moved from `messages.ts`)\n- `core.ts` - Core messaging functionality\n- `servers.ts` - Server-level messaging coordination\n- `index.ts` - Messaging domain exports\n\n#### `/api/runtime/` - Runtime Management Domain\n- `debug.ts` - Runtime debugging utilities\n- `health.ts` - Health checks and monitoring\n- `logging.ts` - System-wide logging management\n- `index.ts` - Runtime domain exports\n\n#### `/api/shared/` - Common Utilities Domain\n- `file-utils.ts` - File handling utilities\n- `middleware.ts` - Security middleware (Helmet, rate limiting)\n- `response-utils.ts` - Standardized API response helpers\n- `validation.ts` - Input validation utilities\n- `uploads/index.ts` - File upload handling\n- `index.ts` - Shared utilities exports\n\n#### `/api/system/` - System Configuration Domain\n- `environment.ts` - Environment configuration (moved from `env.ts`)\n- `index.ts` - System domain exports\n\n#### `/api/tee/` - TEE (Trusted Execution Environment) Domain\n- `tee.ts` - TEE operations (moved from `tee.ts`)\n- `index.ts` - TEE domain exports\n\n### Backend API Improvements\n- **Fix agent start/stop endpoints** to use proper REST patterns (`POST /agents/:id/start`, `POST /agents/:id/stop`)\n- **Add missing channel operations** - implemented `deleteChannel` and `updateChannel` methods\n- **Fix URL path mismatch** in frontend `deleteChannelMessage` API call (was using \"messaging\" instead of \"messages\")\n- **Add security middleware** with Helmet and rate limiting for production readiness\n- **Standardize response handling** with consistent error/success response utilities\n- **Remove legacy test files** and cleanup obsolete testing infrastructure\n\n### Frontend Confirmation System Improvements  \n- **Replace browser alerts with proper modal confirmations** using Radix UI AlertDialog\n- **Create reusable ConfirmationDialog component** to avoid code duplication\n- **Add useConfirmation hook** for consistent confirmation state management across components\n- **Update confirmation patterns in**:\n  - Agent deletion (agent-settings.tsx) \n  - Chat deletion and clearing (chat.tsx)\n  - Agent stopping (stop-agent-button.tsx)\n  - Group channel deletion (app-sidebar.tsx)\n- **Use direct JSX rendering** pattern with `<ConfirmationDialog>` components\n\n### Technical Details\n- **Backend**: Complete API domain reorganization, security middleware, missing endpoints, standardized utilities\n- **Frontend**: Eliminated window.confirm usage, implemented accessible modal dialogs\n- **Type Safety**: Proper TypeScript interfaces for all new components and hooks\n- **Architecture**: Modular, domain-driven API structure for better maintainability\n- **UX**: Consistent confirmation dialogs with proper destructive action styling\n\n### Test Plan\n- [x] Build passes successfully\n- [x] All confirmation dialogs work with proper modal UX\n- [x] Agent start/stop operations work correctly\n- [x] Channel operations (create/delete/update) function properly\n- [x] No remaining window.confirm browser alerts\n- [x] API domain reorganization maintains functionality\n\n## Breaking Changes\n- Agent API endpoints moved from `/agents` to `/api/agents` \n- Agent start/stop now use `POST /agents/:id/start` and `POST /agents/:id/stop` instead of PUT operations\n- API file structure completely reorganized (affects imports for custom extensions)\n\n## Files Changed\n- **Backend**: 47 API files reorganized, security middleware, missing endpoints\n- **Frontend**: Confirmation system, dialog components, hook utilities  \n- **Dependencies**: Added helmet, express-rate-limit, @types/helmet\n- **Structure**: Complete API domain reorganization from monolithic to modular architecture\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- **New Features**\n  - Introduced robust, modular API endpoints for agent, messaging, media, audio, memory, and system management with improved security, validation, and error handling.\n  - Added new endpoints for audio processing (transcription, text-to-speech, speech conversation) and secure media uploads for agents and channels.\n  - Enhanced confirmation dialogs in the user interface for destructive actions, providing a consistent and user-friendly experience.\n  - Improved documentation with new and updated API endpoint references.\n\n- **Bug Fixes**\n  - Addressed frontend loading issues by aligning API routes and improving chat context detection.\n\n- **Refactor**\n  - Reorganized API routing structure for clarity and scalability, replacing legacy endpoints and consolidating related routes.\n  - Enhanced file upload security and validation, including stricter filename sanitization and MIME type checks.\n\n- **Chores**\n  - Added security middleware and rate limiting for all API endpoints.\n  - Updated dependencies to include security and rate-limiting libraries.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-09T00:36:47Z",
      "mergedAt": "2025-06-10T09:10:17Z",
      "additions": 4896,
      "deletions": 3816
    }
  ],
  "codeChanges": {
    "additions": 23437,
    "deletions": 21489,
    "files": 208,
    "commitCount": 76
  },
  "completedItems": [
    {
      "title": "fix: implement real-time message deletion via SocketIO",
      "prNumber": 4968,
      "type": "bugfix",
      "body": "# Risks\r\n\r\n**Medium** - Changes to SocketIO event handling and API routing\r\n- Client-side state management modifications\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\n- Add messageDeleted and channelCleared SocketIO events\r\n- Implement cli"
    },
    {
      "title": "feat: refactor / split core types",
      "prNumber": 5020,
      "type": "feature",
      "body": "This PR splits up core types, cleans up some issues, adds new service interfaces for common service types\r\n\r\nThis shouldn't break or change anything. Everything should continue to work on merge."
    },
    {
      "title": "feat: Dynamic loading of database tables, rebuild plugin-sql, ",
      "prNumber": 5018,
      "type": "feature",
      "body": "This is a big PR\r\n\r\n- Rewrite plugin-sql to dynamically migrate code\r\n- Rewrite CLI commands to load plugin dependencies, migrate db tables\r\n- Refactor types and add service types which can be inherited by dependent plugins\r\n\r\nOverall shoul"
    },
    {
      "title": "feat: migrate CLI prompts from prompts library to @clack/prompts",
      "prNumber": 5016,
      "type": "feature",
      "body": "## Summary\nReplaces the legacy `prompts` library with modern `@clack/prompts` across all CLI commands for enhanced user experience and type safety.\n\n## Changes Made\n- ✅ **All CLI commands migrated**: create, env, publish, update, plugins\n- "
    },
    {
      "title": "feat: Reorganize API routes into logical domain-based structure",
      "prNumber": 5010,
      "type": "feature",
      "body": "## Summary\n\nThis PR implements a comprehensive API domain reorganization and improves the client-side confirmation UX.\n\n### Major API Domain Reorganization 🏗️\n\n**Complete restructuring of the `/packages/cli/src/server/api/` directory:**\n\n-"
    },
    {
      "title": "fix: load the env config before agent project is loaded",
      "prNumber": 5048,
      "type": "bugfix",
      "body": "Fixes project load as project is loaded without .env.\r\n\r\nSo we need to load the .env first and only then we can proceed to project load otherwise we would need dynamic project load. "
    },
    {
      "title": "chore: add comprehensive Postman collection for elizaOS APIs",
      "prNumber": 5047,
      "type": "feature",
      "body": "## Summary\n• Added complete Postman collection with 90+ REST API endpoints covering all Eliza framework APIs\n• Fixed URL paths and organized endpoints into logical categories (agents, messaging, memory, audio, etc.)\n• Includes collection va"
    },
    {
      "title": "Fix: Enable loading project agents when no character files specified",
      "prNumber": 5044,
      "type": "bugfix",
      "body": "## Summary\n- Enables automatic loading of project agents when no `--character` flag is provided to the start command\n- Adds support for `ProjectAgent` type with initialization functions and plugins\n- Improves agent discovery by checking pro"
    },
    {
      "title": "chore: migrate all generated files into .eliza",
      "prNumber": 5043,
      "type": "other",
      "body": "This pull request introduces a significant refactor to centralize and standardize the directory structure for CLI-generated data under a hidden `.eliza` folder in the project root. Additionally, it includes instrumentation enhancements and "
    },
    {
      "title": "chore: OpenTelemetry instrumentation while preserving Sentry",
      "prNumber": 5042,
      "type": "other",
      "body": "## Summary\n- Complete removal of OpenTelemetry instrumentation and dependencies from the Eliza codebase\n- Preserves all Sentry error tracking functionality as requested\n\n## Changes Made\n- ✅ Removed all 8 OpenTelemetry dependencies from pack"
    },
    {
      "title": "fix: (cli) resolve double update messaging and improve elizaos update instructions",
      "prNumber": 5041,
      "type": "bugfix",
      "body": "## Problem\r\n\r\nThe CLI had two messaging issues:\r\n\r\n1. **Double messaging**: When running `elizaos update`, the banner showed an update notification before the update command itself ran, creating redundant messaging\r\n2. **Incorrect update in"
    },
    {
      "title": "chore: remove model caching since its slower",
      "prNumber": 5038,
      "type": "other",
      "body": "its faster do download models than caching / un-compressing"
    },
    {
      "title": "refactor: reorganize cli commands into modular structure",
      "prNumber": 5036,
      "type": "refactor",
      "body": "## Summary\r\n\r\nComprehensive refactoring of ALL major CLI commands from monolithic architecture to modular structure for improved maintainability and scalability. This PR systematically transforms large single-file implementations into well-"
    },
    {
      "title": "fix: remove message from chat UI on delete",
      "prNumber": 5035,
      "type": "bugfix",
      "body": ""
    },
    {
      "title": "fix: chat history selector reloads",
      "prNumber": 5034,
      "type": "bugfix",
      "body": "Clicking the chat history did not reload the chats.\r\n\r\nThis pull request adds a safeguard to ensure that the current DM channel is cleared if it does not belong to the active agent, improving the handling of agent switching in the `Chat` co"
    },
    {
      "title": "fix: onboarding user settings error",
      "prNumber": 5033,
      "type": "bugfix",
      "body": "```\r\n[2025-06-10 10:32:52] ERROR: No world found for user during onboarding\r\n[2025-06-10 10:32:52] ERROR: Critical error in settings provider: Error: No server ownership found for onboarding\r\n```\r\n\r\nThis pull request introduces enhancements"
    },
    {
      "title": "fix: convert dates, fix agent create",
      "prNumber": 5032,
      "type": "bugfix",
      "body": "```\r\n[2025-06-10 10:22:37] ERROR: Error updating agent:\r\n    agentId: \"524873bf-6a97-050d-b70f-673063e0e163\"\r\n    agent: {\r\n      \"id\": \"524873bf-6a97-050d-b70f-673063e0e163\",\r\n      \"enabled\": true,\r\n      \"createdAt\": 1749550954067,\r\n    "
    },
    {
      "title": "chore: fix typos",
      "prNumber": 5031,
      "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": "feat: add dummy services",
      "prNumber": 5030,
      "type": "feature",
      "body": "This PR adds dummy services which can be depended on by other plugins\r\n\r\nAll shared service types should have a dummy implementation for use in testing"
    },
    {
      "title": "fix: remove truncate",
      "prNumber": 5028,
      "type": "bugfix",
      "body": "We don't need to truncate Twitter posts manually. I've already handled this in the Twitter plugin: if a post exceeds 280 characters and the account isn't premium, it falls back to truncateToCompleteSentence.\r\n\r\n\r\nhttps://github.com/elizaos-"
    },
    {
      "title": "fix: Ensure waitForServer uses SERVER_PORT env if provided",
      "prNumber": 5027,
      "type": "bugfix",
      "body": "I ran into this issue on a port other than 3000 (in my case, 3050). \r\nThis happened because the waitForServer() function was hardcoded to check http://localhost:3000/api/ping, ignoring the SERVER_PORT environment variable.\r\n\r\nThis PR update"
    },
    {
      "title": "feat: Add target to Content",
      "prNumber": 5026,
      "type": "feature",
      "body": "# Risks\r\n\r\nLow\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nadd an optional target to Content type\r\n\r\n## What kind of change is this?\r\n\r\nImprovements (misc. changes to existing features)\r\n\r\n## Why are we doing this? Any context or related"
    },
    {
      "title": "fix: dup chats",
      "prNumber": 5049,
      "type": "bugfix",
      "body": ""
    }
  ],
  "topContributors": [
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 216.0402540994463,
      "prScore": 180.70025409944628,
      "issueScore": 0,
      "reviewScore": 35,
      "commentScore": 0.33999999999999997,
      "summary": null
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 165.46907491538363,
      "prScore": 165.03107491538364,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 89.33304084196597,
      "prScore": 66.63304084196596,
      "issueScore": 0,
      "reviewScore": 22.5,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 76.73929417603627,
      "prScore": 76.30129417603627,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 44.70414718055994,
      "prScore": 22.004147180559944,
      "issueScore": 0,
      "reviewScore": 22.5,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "tcm390",
      "avatarUrl": "https://avatars.githubusercontent.com/u/60634884?u=c6c41679b8322eaa0c81f72e0b4ed95e80f0ac16&v=4",
      "totalScore": 44.18275946922806,
      "prScore": 44.18275946922806,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 36.549347423968605,
      "prScore": 36.1113474239686,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "madjin",
      "avatarUrl": "https://avatars.githubusercontent.com/u/32600939?u=cdcf89f44c7a50906c7a80d889efa85023af2049&v=4",
      "totalScore": 34.34414417230953,
      "prScore": 34.34414417230953,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "coderwander",
      "avatarUrl": "https://avatars.githubusercontent.com/u/166724773?u=2d717dae44015c39a79eb7a509a5d7d0912d59b6&v=4",
      "totalScore": 28.5304379124341,
      "prScore": 28.5304379124341,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 26.96260667202811,
      "prScore": 21.96260667202811,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "jonathanprozzi",
      "avatarUrl": "https://avatars.githubusercontent.com/u/9438776?u=25b5a5b22cfe26724ee1ebd869c378fc65196987&v=4",
      "totalScore": 2.54,
      "prScore": 0,
      "issueScore": 2.2,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": null
    }
  ],
  "newPRs": 25,
  "mergedPRs": 23,
  "newIssues": 1,
  "closedIssues": 0,
  "activeContributors": 13
}