{
  "interval": {
    "intervalStart": "2025-11-20T00:00:00.000Z",
    "intervalEnd": "2025-11-21T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-11-20 to 2025-11-21, elizaos/eliza had 1 new PRs (2 merged), 2 new issues, and 8 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7NzHXv",
      "title": "Migrate All Dependencies and Plugins to Zod v4",
      "author": "borisudovicic",
      "number": 5999,
      "repository": "elizaos/eliza",
      "body": "We need to migrate the Eliza monorepo and all plugins from Zod v3 to Zod v4.\n\n* Stan has already initiated \\~20–25 PRs across referenced plugins to bump dependencies (core, bootstrap, langchain/ai/vercel, etc.) to the latest compatible Zod v4 versions.\n* Some plugins currently have mismatched peer dependencies; migration only works if all packages are upgraded consistently.\n* Newer versions of the AI SDK also rely on Zod v4, so all LLM plugins must be updated to the latest ai-sdk.\n\nThis migration is a blocking dependency upgrade: partial migration causes runtime and type errors. We need a coordinated effort to upgrade and test the full set of \\~40 plugins.\n\nAcceptance Criteria:\n\n* Update package.json in all monorepo packages to depend on zod@^4.\n* Update all plugins (bootstrap, sql, LLM plugins, etc.) to use Zod v4 schemas.\n* Resolve peer dependency mismatches across packages.\n* Upgrade all AI SDK–based packages to versions that use Zod v4.",
      "createdAt": "2025-09-25T09:15:09Z",
      "closedAt": "2025-11-20T17:14:17Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7V2FT1",
      "title": "Container Billing Logic",
      "author": "borisudovicic",
      "number": 6124,
      "repository": "elizaos/eliza",
      "body": "* Add **monthly cron** to deduct container costs (\\~$25–35 per user).\n* If cron fails → **pause container**, retain for one week, send email → delete after grace period.",
      "createdAt": "2025-11-04T18:13:32Z",
      "closedAt": "2025-11-20T17:14:21Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7YJ3C6",
      "title": "Figma UI implementation on cloud",
      "author": "samarth30",
      "number": 6153,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2025-11-14T17:13:07Z",
      "closedAt": "2025-11-20T17:14:31Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7Y_Y8y",
      "title": "Snapshot Eligibility Issue + Tangem Wallet Connection Not Supported (Discord Support Compromised)",
      "author": "TommyVeit",
      "number": 6158,
      "repository": "elizaos/eliza",
      "body": "Hi ElizaOS team,\n\nI’m trying to complete the AI16Z → ElizaOS migration, but I’m running into two major issues and Discord support has become unreliable due to impersonators. I need help from the real development team to determine the correct path.\n\nMy situation:\n\n• I purchased AI16Z tokens on Oct 26 using my Phantom wallet.  \n• I then moved them to my Tangem wallet for safety.  \n• On Nov 11 (snapshot date), the tokens were held inside my Tangem wallet.  \n• The migration portal shows my Phantom wallet as “0 eligible” (expected since Phantom didn’t hold them during snapshot).  \n• I cannot connect my Tangem wallet to the migration portal because WalletConnect does not support Tangem.  \n• My Tangem wallet was created using key cards only, so I do not have a seed phrase to export into Phantom.\n\nThe Discord server is currently compromised — multiple impersonators posing as support are entering tickets and attempting to direct users to send tokens manually. Because of this, I cannot rely on Discord support or email responses that appear to be spoofed.\n\nWhat I need from the real team:\n\n1. Confirmation of whether Tangem-held tokens during the snapshot are eligible for migration.  \n2. Whether a manual backend whitelist update is possible so my Phantom wallet can perform migration safely.  \n3. If not, what the official and safe method is for users whose eligible snapshot wallet cannot connect to the portal (Tangem case).  \n4. Any announcements regarding potential whitelist updates or support for non-exportable wallets.\n\nI have NOT sent my tokens anywhere and I have NOT interacted with any unofficial links. My tokens are safe. I’m only seeking official guidance from the verifiable team here on GitHub.\n\nThank you — I appreciate your time. I prefer to resolve this safely through GitHub to avoid Discord impersonation issues.",
      "createdAt": "2025-11-19T00:20:30Z",
      "closedAt": "2025-11-20T12:36:52Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7ZfVzc",
      "title": "PnL Cards",
      "author": "borisudovicic",
      "number": 6163,
      "repository": "elizaos/eliza",
      "body": "Example:<br>\n\n![image.png](https://uploads.linear.app/186bdefa-3633-464a-80cd-6e86fe765a5c/7e4a5785-30ea-4d5f-864e-ac079d3f01d1/d07719e3-e1ce-420a-8dee-0f0e32adbc01?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiLzE4NmJkZWZhLTM2MzMtNDY0YS04MGNkLTZlODZmZTc2NWE1Yy83ZTRhNTc4NS0zMGVhLTRkNWYtODY0ZS1hYzA3OWQzZjAxZDEvZDA3NzE5ZTMtZTFjZS00MjBhLThkZWUtMGYwZTMyYWRiYzAxIiwiaWF0IjoxNzYzNjY5MTM0LCJleHAiOjE3OTUyMzk2OTR9.WHmhRWwFozujyDrKftT697A6gyD1GxFCCj4XFr9Iq1Q \"=302.09999999999997x\")",
      "createdAt": "2025-11-20T20:05:09Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6xzKBP",
      "title": "fix: align server tests with ElizaOS API changes",
      "author": "odilitime",
      "number": 6135,
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Aligns server tests and routers with new ElizaOS interfaces, clarifies plugin auto-injection behavior, and deflakes/modernizes middleware, loader, socket, and utility tests.\n> \n> - **Server/API alignment**:\n>   - Update `agentExistsMiddleware`, Socket.IO router, Jobs and Agent Runs routers to use `ElizaOS` getters instead of agent maps.\n>   - Adjust message flow and log streaming tests to new event/filter semantics.\n> - **Plugin loading behavior**:\n>   - Clarify that server auto-injects `sql` plugin; bootstrap injection handled at character level; ensure deduping and order expectations.\n> - **Test refactors/deflakes**:\n>   - Replace heavy `mock.module` with spies and lightweight mocks; remove brittle fs mocks.\n>   - Skip flaky/integration suites causing interference (version, DB ops, message bus, agent runs, some jobs tests).\n> - **Utilities and middleware**:\n>   - Update tests for `authMiddleware`, validation, security headers, rate limits.\n>   - Adjust `sanitizeFilename` expectations and `resolvePgliteDir` behavior; strengthen path handling assertions.\n> - **Misc**:\n>   - Minor type/interface tweaks (e.g., runtime methods) and improved express server boot/teardown in tests.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit a988400e95a3efe7e9366332d18e83a99429c2f2. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n* **Bug Fixes**\n  * Improved plugin loading flexibility: server now recognizes both short and full bootstrap plugin identifiers during initialization.\n  * Enhanced SQL plugin auto-injection and plugin deduplication logic.\n\n* **Refactor**\n  * Removed internal loader APIs: `tryLoadFile` and `loadCharacterTryPath` functions are no longer available.\n  * Updated core routing infrastructure for improved agent management.\n  * Simplified test infrastructure by reducing mock dependencies and improving test reliability across environments.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-11-06T04:07:48Z",
      "mergedAt": "2025-11-20T23:02:50Z",
      "additions": 4294,
      "deletions": 4383
    },
    {
      "id": "PR_kwDOMT5cIs60tivJ",
      "title": "feat: improve accepted formats for plugin names in plugin dependencies",
      "author": "odilitime",
      "number": 6164,
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Adds name normalization and enhanced dependency resolution to handle both scoped package names and short names, with deduped queuing and comprehensive tests.\n> \n> - **Core (`packages/core/src/plugin.ts`)**\n>   - Add `normalizePluginName` to extract short names from scoped packages.\n>   - Enhance `resolvePluginDependencies` with a lookup map supporting both scoped (`@scope/plugin-x`) and short (`x`) names; use canonical names for cycle tracking and final ordering.\n>   - Add `queueDependency` and update `resolvePluginsImpl` to queue normalized dependencies and avoid duplicates.\n>   - Minor log message tweak in browser warning.\n> - **Tests (`packages/core/src/__tests__/plugin.test.ts`)**\n>   - Add tests for `normalizePluginName` and resolving dependencies using scoped, short, and mixed names, including testDependencies and complex chains.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5ea3546d4aa38128a1d5825ec8138012a7c72796. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n* **New Features**\n  * Added `normalizePluginName()` utility to standardize plugin identifiers across scoped and non-scoped naming conventions.\n  * Added `resolvePluginDependencies()` function to resolve plugin dependencies with improved ordering and support for mixed naming conventions.\n\n* **Tests**\n  * Expanded test coverage for new plugin utilities, including scoped/non-scoped packages, complex dependency chains, and missing dependency handling.\n\n<sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub>\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-11-20T23:01:34Z",
      "mergedAt": "2025-11-21T03:35:46Z",
      "additions": 614,
      "deletions": 73
    },
    {
      "id": "PR_kwDOMT5cIs6yxEIL",
      "title": "fix: Add openrouter embedding option in CLI",
      "author": "Neysixx",
      "number": 6142,
      "body": "# Relates to\r\n\r\nImproves OpenRouter integration in ElizaOS CLI by adding native embedding support, eliminating the need for users to configure a separate embedding provider when using OpenRouter.\r\n\r\n# Risks\r\n\r\n**Low Risk** - Well-contained changes following existing patterns\r\n\r\n- **User Impact**: No breaking changes. Existing OpenRouter configurations continue to work unchanged.\r\n- **Test Coverage**: Unit tests updated to reflect new behavior (embedding support enabled for OpenRouter)\r\n- **Configuration**: Follows the same pattern as existing providers (OpenAI, Google, Ollama) for both interactive and non-interactive modes\r\n- **Validation**: Uses existing `isValidOpenRouterKey` function to validate API key format (`sk-or-` prefix)\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nThis PR adds comprehensive OpenRouter support for embeddings in the ElizaOS CLI:\r\n\r\n1. **Updates `hasEmbeddingSupport`** to include `'openrouter'` as a model with built-in embedding support\r\n2. **Adds OpenRouter to `getAvailableEmbeddingModels`** as a fallback option when the primary AI model doesn't support embeddings (e.g., Claude)\r\n3. **Implements setup configuration** in both `setupAIModelConfig` and `setupEmbeddingModelConfig` to handle:\r\n   - Interactive mode: Prompts users for OpenRouter API key\r\n   - Non-interactive mode: Writes placeholder configuration with helpful comments\r\n4. **Updates unit tests** to reflect that OpenRouter now has embedding support\r\n\r\n**Technical Details:**\r\n- Adds OpenRouter configuration with `OPENROUTER_API_KEY`, `OPENROUTER_EMBEDDING_MODEL`, and `OPENROUTER_EMBEDDING_DIMENSIONS`\r\n- Leverages OpenRouter's unified API access to multiple embedding models (including OpenAI's text-embedding-3-small)\r\n- Reuses existing `promptAndStoreOpenRouterKey` helper function from `get-config.ts`\r\n\r\n## What kind of change is this?\r\n\r\n- [x] Features (non-breaking change which adds functionality)\r\n- [x] Improvements (misc. changes to existing features)\r\n- [x] Updates (test updates to reflect new behavior)\r\n\r\n## Why are we doing this? Any context or related work?\r\n\r\n**Problem:**\r\n- ElizaOS requires embeddings for agent memory, semantic search, and knowledge base functionality\r\n- OpenRouter was only available as an AI text generation provider, not for embeddings\r\n- Users selecting OpenRouter for AI had to configure a second provider (OpenAI, Google, or Ollama) solely for embeddings\r\n\r\n**Solution:**\r\n- OpenRouter provides access to multiple embedding models through its unified API\r\n- This PR enables users to use a single OpenRouter API key for both text generation and embeddings\r\n- Reduces configuration complexity and API key management overhead\r\n\r\n# Documentation changes needed?\r\n\r\n- [x] My changes require a change to the project documentation.\r\n- [x] Documentation partially exists: The `.env` template in `packages/cli/src/utils/get-config.ts` already includes OpenRouter environment variables (lines 79-82)\r\n\r\n**Recommended documentation updates:**\r\n1. Add OpenRouter to the list of recommended providers supporting both AI + embeddings in README\r\n2. Document the three OpenRouter environment variables with example values:\r\n   - `OPENROUTER_API_KEY=sk-or-v1-...`\r\n   - `OPENROUTER_EMBEDDING_MODEL=openai/text-embedding-3-small`\r\n   - `OPENROUTER_EMBEDDING_DIMENSIONS=1536`\r\n3. Optional: Add migration note for existing users who can now simplify their configuration\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\n\r\n**Review Priority:**\r\n\r\n1. **Core logic changes** - `packages/cli/src/commands/create/utils/selection.ts`\r\n   - Line 50: `hasEmbeddingSupport` now includes `'openrouter'`\r\n   - Lines 140-144: OpenRouter added to `getAvailableEmbeddingModels`\r\n\r\n2. **Configuration setup** - `packages/cli/src/commands/create/actions/setup.ts`\r\n   - Lines 113-136: `setupAIModelConfig` OpenRouter case\r\n   - Lines 288-362: `setupEmbeddingModelConfig` OpenRouter case\r\n\r\n3. **Test updates** - `packages/cli/tests/unit/utils/selection.test.ts`\r\n   - Line 20: OpenRouter added to models with embedding support\r\n   - Lines 71-72: Correctly categorizes OpenRouter as having embeddings\r\n\r\n## Detailed testing steps\r\n\r\n### 1. Unit Tests ✅\r\n\r\n```bash\r\ncd packages/cli\r\nbun run test tests/unit/utils/selection.test.ts\r\n```\r\n\r\n**Expected:** All tests pass\r\n- ✅ `hasEmbeddingSupport('openrouter')` returns `true`\r\n- ✅ OpenRouter correctly identified as model with embedding support\r\n\r\n### 2. Interactive Mode - OpenRouter as Primary AI\r\n\r\n```bash\r\nelizaos create test-openrouter-primary\r\n# Select: OpenRouter as AI model\r\n# Expected: Should NOT be prompted for embedding model\r\n```\r\n\r\n**Verify:**\r\n- `.env` contains `OPENROUTER_API_KEY=`\r\n- User is prompted for OpenRouter API key interactively\r\n- No separate embedding model configuration is added\r\n\r\n### 3. Interactive Mode - OpenRouter as Embedding Fallback\r\n\r\n```bash\r\nelizaos create test-claude-openrouter\r\n# Select: Claude as AI model\r\n# Select: OpenRouter as embedding model\r\n```\r\n\r\n**Verify:**\r\n- `.env` contains `ANTHROPIC_API_KEY=`\r\n- `.env` contains `OPENROUTER_API_KEY=`\r\n- `.env` contains `OPENROUTER_EMBEDDING_MODEL=` and `OPENROUTER_EMBEDDING_DIMENSIONS=`\r\n\r\n### 4. Non-Interactive Mode\r\n\r\n```bash\r\nelizaos create test-noninteractive --ai-model openrouter --non-interactive\r\n```\r\n\r\n**Verify:**\r\n- `.env` created with placeholder: `OPENROUTER_API_KEY=your_openrouter_api_key_here`\r\n- Comment included: `# Get your API key from: https://openrouter.ai/keys`\r\n- Default embedding model and dimensions added\r\n\r\n### 5. Regression Testing - Other Providers\r\n\r\n```bash\r\n# Verify other providers still work correctly\r\nelizaos create test-openai --ai-model openai --non-interactive\r\nelizaos create test-ollama --ai-model local --non-interactive\r\nelizaos create test-google --ai-model google --non-interactive\r\n```\r\n\r\n**Expected:** All providers create projects successfully with correct `.env` configurations\r\n\r\n### 6. Optional: E2E Testing with Real API Key\r\n\r\n```bash\r\n# With a real OpenRouter API key\r\nexport OPENROUTER_API_KEY=sk-or-v1-xxx...\r\nexport OPENROUTER_EMBEDDING_MODEL=openai/text-embedding-3-small\r\nexport OPENROUTER_EMBEDDING_DIMENSIONS=1536\r\ncd packages/cli\r\nbun run test:e2e\r\n```\r\n\r\n## Discord username\r\n\r\n<!-- If applicable, add your Discord username here for contributor role -->\r\nneysixx",
      "repository": "elizaos/eliza",
      "createdAt": "2025-11-11T14:06:17Z",
      "mergedAt": "2025-11-20T14:56:52Z",
      "additions": 79,
      "deletions": 4
    },
    {
      "id": "PR_kwDOMT5cIs6zH89E",
      "title": "feat: Socketio server add auth token",
      "author": "nguyennk92",
      "number": 6144,
      "body": "# Risks\r\n\r\nLow\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nAdd env ELIZA_SOCKETIO_AUTH_TOKEN behave similar to ELIZA_SERVER_AUTH_TOKEN\r\n\r\n## What kind of change is this?\r\nImprovements (misc. changes to existing features)\r\n\r\n## Why are we doing this? Any context or related work?\r\nAdd a layer of security\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-11-13T03:41:16Z",
      "mergedAt": null,
      "additions": 38,
      "deletions": 1
    }
  ],
  "codeChanges": {
    "additions": 3489,
    "deletions": 4441,
    "files": 63,
    "commitCount": 44
  },
  "completedItems": [
    {
      "title": "fix: align server tests with ElizaOS API changes",
      "prNumber": 6135,
      "type": "bugfix",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Aligns server tests and routers with new ElizaOS interfaces, clarifies plugin auto-injection behavior, and deflakes/modernizes middleware, loader, socket, and utility tests.\n> \n> - **Server/API alignment*",
      "files": [
        "bun.lock",
        "packages/server/src/__tests__/agent-plugin-reload.test.ts",
        "packages/server/src/__tests__/agent-server-database.test.ts",
        "packages/server/src/__tests__/agent-server-errors.test.ts",
        "packages/server/src/__tests__/agent-server-initialization.test.ts",
        "packages/server/src/__tests__/agent-server-management.test.ts",
        "packages/server/src/__tests__/agent-server-middleware.test.ts",
        "packages/server/src/__tests__/agents-runs.test.ts",
        "packages/server/src/__tests__/api.test.ts",
        "packages/server/src/__tests__/authMiddleware.test.ts",
        "packages/server/src/__tests__/basic-functionality.test.ts",
        "packages/server/src/__tests__/bootstrap-autoload.test.ts",
        "packages/server/src/__tests__/file-utils.test.ts",
        "packages/server/src/__tests__/integration/database-operations.test.ts",
        "packages/server/src/__tests__/integration/jobs-message-flow.test.ts",
        "packages/server/src/__tests__/loader.test.ts",
        "packages/server/src/__tests__/message-bus.test.ts",
        "packages/server/src/__tests__/middleware.test.ts",
        "packages/server/src/__tests__/simple-validation.test.ts",
        "packages/server/src/__tests__/socketio-router.test.ts",
        "packages/server/src/__tests__/ui-disable-feature.test.ts",
        "packages/server/src/__tests__/utils.test.ts",
        "packages/server/src/__tests__/validation.test.ts",
        "packages/server/src/api/system/__tests__/version.test.ts",
        ".github/workflows/core-package-tests.yaml",
        "package.json",
        "packages/core/src/__tests__/secrets.test.ts",
        "packages/core/src/__tests__/settings.test.ts",
        "packages/core/src/elizaos.ts",
        "packages/core/src/secrets.ts",
        "packages/server/README.md",
        "packages/server/package.json",
        "packages/server/scripts/run-integration-tests.sh",
        "packages/server/src/__tests__/EventEmitter-Compatibility-README.md",
        "packages/server/src/__tests__/README.md",
        "packages/server/src/__tests__/agent-server-lifecycle.test.ts",
        "packages/server/src/__tests__/builders/channel.builder.ts",
        "packages/server/src/__tests__/builders/character.builder.ts",
        "packages/server/src/__tests__/builders/message.builder.ts",
        "packages/server/src/__tests__/compatibility/cli-compatibility.test.ts",
        "packages/server/src/__tests__/compatibility/cli-patterns.test.ts",
        "packages/server/src/__tests__/features/bootstrap-autoload.test.ts",
        "packages/server/src/__tests__/features/character-file-size-regression.test.ts",
        "packages/server/src/__tests__/features/server-core.test.ts",
        "packages/server/src/__tests__/features/socketio-router.test.ts",
        "packages/server/src/__tests__/features/ui-toggle.test.ts",
        "packages/server/src/__tests__/fixtures/agent.fixture.ts",
        "packages/server/src/__tests__/fixtures/database.fixture.ts",
        "packages/server/src/__tests__/fixtures/server.fixture.ts",
        "packages/server/src/__tests__/helpers/networking.ts",
        "packages/server/src/__tests__/helpers/retry.ts",
        "packages/server/src/__tests__/helpers/wait.ts",
        "packages/server/src/__tests__/index.ts",
        "packages/server/src/__tests__/integration/agent-server-interaction.test.ts",
        "packages/server/src/__tests__/integration/message-bus-service.test.ts",
        "packages/server/src/__tests__/integration/socketio-message-flow.test.ts",
        "packages/server/src/__tests__/run-working-tests.sh",
        "packages/server/src/__tests__/security/rls-server.test.ts",
        "packages/server/src/__tests__/spa-routing-fix.test.ts"
      ]
    },
    {
      "title": "fix: Add openrouter embedding option in CLI",
      "prNumber": 6142,
      "type": "bugfix",
      "body": "# Relates to\r\n\r\nImproves OpenRouter integration in ElizaOS CLI by adding native embedding support, eliminating the need for users to configure a separate embedding provider when using OpenRouter.\r\n\r\n# Risks\r\n\r\n**Low Risk** - Well-contained ",
      "files": [
        "packages/cli/src/commands/create/actions/setup.ts",
        "packages/cli/src/commands/create/utils/selection.ts",
        "packages/cli/src/utils/get-config.ts",
        "packages/cli/tests/unit/utils/selection.test.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 30.323865973825313,
      "prScore": 20.623865973825314,
      "issueScore": 0,
      "reviewScore": 9.5,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 14.5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 14.5,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4",
      "totalScore": 4,
      "prScore": 0,
      "issueScore": 4,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 0.43799999999999994,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "nguyennk92",
      "avatarUrl": "https://avatars.githubusercontent.com/u/30664183?u=d6e579cd25d50bc8e9ec4928d95909d759b841db&v=4",
      "totalScore": 0.2,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "LinuxIsCool",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31582215?u=b8eb5d3849bf877a3a0b686cf1632aca92e744ae&v=4",
      "totalScore": 0.2,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    }
  ],
  "newPRs": 1,
  "mergedPRs": 2,
  "newIssues": 2,
  "closedIssues": 4,
  "activeContributors": 8
}