{
  "interval": {
    "intervalStart": "2025-10-17T00:00:00.000Z",
    "intervalEnd": "2025-10-18T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-10-17 to 2025-10-18, elizaos/eliza had 2 new PRs (6 merged), 2 new issues, and 7 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7SLVfk",
      "title": "The documentation for plugins isn't correct.",
      "author": "ryanmstokes",
      "number": 6070,
      "repository": "elizaos/eliza",
      "body": "Seriously how are you even letting anyone use this right now? This is one of the worst documented frameworks I've ever seen despite having so much documentation. You can't even scaffold a plugin following your documentation without it throwing errors.",
      "createdAt": "2025-10-17T13:28:03Z",
      "closedAt": "2025-10-17T13:47:33Z",
      "state": "CLOSED",
      "commentCount": 3
    },
    {
      "id": "I_kwDOMT5cIs7DFLKl",
      "title": "Classified game - plugin-autocoder",
      "author": "samarth30",
      "number": 5685,
      "repository": "elizaos/eliza",
      "body": "working on enhancing plugin autocoder to enhance classified game.<br>following things are in progress\n\n* working on creating workflows\n* working on improving prompt engineerings \n* enhancing loops \n* test validation improvements ",
      "createdAt": "2025-07-29T09:39:05Z",
      "closedAt": "2025-10-17T11:25:27Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7KjCk6",
      "title": "Consistency & Stability",
      "author": "borisudovicic",
      "number": 5934,
      "repository": "elizaos/eliza",
      "body": "* Check that CLI and server respect ElizaOS defaults (no divergent configs).\n* Consolidate duplicated helpers (config parsing, environment loading).\n* Enforce consistent logging across CLI, server, and core.",
      "createdAt": "2025-09-09T12:19:24Z",
      "closedAt": "2025-10-17T18:40:24Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7Mbnm9",
      "title": "Add Eigen TEE Deployment Option",
      "author": "borisudovicic",
      "number": 5986,
      "repository": "elizaos/eliza",
      "body": "Extend Eliza’s TEE deployment support by integrating **Eigen TEE** alongside the existing **Phala TEE** option. This enables users to choose between multiple TEE vendors when deploying their agents securely.\n\n**Background**\n\n* Eigen offers TEE infrastructure, which can be leveraged as an additional backend.\n* Supporting multiple TEE vendors enhances flexibility for developers and opens partnership opportunities with Eigen.",
      "createdAt": "2025-09-18T10:51:46Z",
      "closedAt": "2025-10-17T11:25:07Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7QQx-S",
      "title": "Cloud API Plugin for Framework LLMs",
      "author": "borisudovicic",
      "number": 6049,
      "repository": "elizaos/eliza",
      "body": "**Summary:**\n\nImplement a unified Cloud API plugin that uses the platform’s managed API key for framework-level LLM access. This plugin will replace the current per-service plugins (e.g., OpenAI, Anthropic) to centralize key management and billing within Eliza Cloud.\n\n**Details & Context:**\n\n* Current implementation of plugin services was started but requires a full refactor.\n* The new plugin will abstract away individual API keys, letting agents and developers use a single Cloud-provisioned key for all supported LLMs.",
      "createdAt": "2025-10-08T06:33:13Z",
      "closedAt": "2025-10-17T11:25:05Z",
      "state": "CLOSED",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6sMtSD",
      "title": "feat: migrate to UUID-only agent identification",
      "author": "0xbbjoker",
      "number": 6036,
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Agents now use randomly generated UUIDs (not names) for identity; duplicate names are allowed, with loader/runtime/server/DB updated plus migrations and tests.\n> \n> - **Core/runtime (`packages/core`)**:\n>   - Generate `agentId` via `uuidv4()` (no name-derived IDs).\n>   - `ensureAgentExists` now requires `agent.id`, updates/creates strictly by UUID.\n>   - Logs/messages reference `agent.id`.\n> - **Server (`packages/server`)**:\n>   - Loader `jsonToCharacter` assigns `id` if missing and supports env prefixes by `name` and `id`.\n>   - Agent CRUD create path uses provided `character.id` (no name-to-UUID), and updates active runtimes in-place.\n>   - Added tests for loader UUID generation and CRUD behavior with duplicate names.\n> - **SQL Plugin (`packages/plugin-sql`)**:\n>   - Schema: drop unique constraint on `agents.name`.\n>   - `createAgent` checks duplicate `id` only; allows duplicate `name`.\n>   - Integration and migration tests verifying duplicate-name support, UUID-based CRUD, and constraint removal.\n> - **CLI (`packages/cli`)**:\n>   - Scenario factory assigns random `id` to test character (no name-based ID).\n> - **Project starter**:\n>   - Character docs note auto-generated `id` and option to set a fixed UUID.\n> - **Tests**:\n>   - Extensive suites across core/server/sql to ensure UUID independence from names and proper migrations.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 93f269089b99832050651406cf7047f4a9392463. 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  - Agents/characters now use randomly generated UUIDs for identity; multiple agents can share the same name.\n  - Loader auto-assigns an ID when missing; explicit IDs are preserved.\n  - Environment variable prefixing now derives from the agent ID for consistent configuration.\n- Documentation\n  - Starter character docs updated to explain ID generation and how to set a fixed ID.\n- Chores\n  - Database schema updated to remove the unique constraint on agent names, enabling duplicate names while keeping ID-based operations.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-06T06:52:46Z",
      "mergedAt": "2025-10-17T11:57:29Z",
      "additions": 1824,
      "deletions": 124
    },
    {
      "id": "PR_kwDOMT5cIs6uKQsE",
      "title": "refactor(tests): Move character builder logic to core",
      "author": "standujar",
      "number": 6069,
      "body": "\n- Move buildCharacterPlugins() to core (business logic)\n\n- Keep Eliza character to cli\n\n- Remove duplicate code from server\n\n- Add 27 tests on core",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-16T19:42:50Z",
      "mergedAt": "2025-10-17T15:37:44Z",
      "additions": 706,
      "deletions": 789
    },
    {
      "id": "PR_kwDOMT5cIs6uVghK",
      "title": "fix: plugin documentation and scaffolding issues",
      "author": "standujar",
      "number": 6071,
      "body": "- Fix template lookup paths to include monorepo package directories as fallback\r\n- Fix incorrect CLI command syntax in documentation across multiple README files\r\n- Support both —type and —t\r\n- Update agent lifecycle and help messages with correct command syntax\r\n- Add tests !\r\n\r\nFixes #6070\r\n\r\n<!-- 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-10-17T15:39:40Z",
      "mergedAt": "2025-10-17T16:01:23Z",
      "additions": 355,
      "deletions": 8
    },
    {
      "id": "PR_kwDOMT5cIs6uDX_q",
      "title": "feat: make evaluators run asynchronously in background",
      "author": "0xbbjoker",
      "number": 6066,
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Evaluators now run asynchronously with robust error handling/logging, and the bootstrap message flow triggers evaluator execution non-blockingly with streamlined logging.\n> \n> - **Core (`packages/core/src/runtime.ts`)**:\n>   - **Evaluator execution hardening**: Wrap `evaluate` in try/catch; add per-evaluator try/catch for `validate` and `handler`, logging errors with `evaluator.name`; safely return `[]` on failures; compose state once before handler execution.\n> - **Bootstrap (`packages/plugin-bootstrap/src/index.ts`)**:\n>   - **Background evaluators**: Invoke `runtime.evaluate(...)` without awaiting; attach `.catch` to log errors, keeping message handling non-blocking.\n>   - **Logging/cleanup**: More concise debug logs and minor formatting; no behavioral changes beyond async evaluator run.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit e8028b9e3c9de09173707edb7f26a666ff55fc06. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-16T10:23:14Z",
      "mergedAt": "2025-10-17T11:58:32Z",
      "additions": 116,
      "deletions": 69
    },
    {
      "id": "PR_kwDOMT5cIs6uFDTB",
      "title": "fix: current chat and user messages filters in memory viewer",
      "author": "0xbbjoker",
      "number": 6067,
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Convert channelId to agent-unique roomId in room memories endpoint and add/use entityId in memory types/mapping to correctly distinguish user vs agent messages.\n> \n> - **Backend**:\n>   - **Room Memories Endpoint**: `GET /api/memory/:agentId/rooms/:roomId/memories` now treats `roomId` as `channelId`, converts via `createUniqueUuid(runtime, channelId)`, and updates validation/logging.\n> - **Client/Types**:\n>   - **Memory Type**: Add `entityId?: UUID` to `packages/api-client/src/types/memory.ts`.\n>   - **Type Mapper**: `mapApiMemoryToClient` now reads `apiMemory.entityId` (with metadata fallbacks) to set `entityId`.\n> - **Tests**:\n>   - Update `MemoryService` tests to use full memory/room shapes (UUIDs, timestamps, `entityId`, `metadata`) and new room params.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 419049736da4385e656cfb13f814c363d42cc2c6. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->\n\n\r\n\r\nFixed two filtering issues in the agent memory viewer:\r\n\r\n1. Current Chat Filter: Backend endpoint now converts channelId to agent-specific roomId\r\n   - Updated /api/memory/:agentId/rooms/:roomId/memories endpoint to use createUniqueUuid()\r\n   - Memories are stored with agent-unique roomIds, not global channelIds\r\n\r\n2. User Messages Filter: Fixed entityId mapping to distinguish user vs agent messages\r\n   - Added entityId field to API Memory type definition\r\n   - Updated mapApiMemoryToClient to use apiMemory.entityId directly\r\n   - Removed incorrect fallback to agentId that was causing all messages to appear as agent messages\r\n\r\nChanges:\r\n- packages/server/src/api/memory/agents.ts\r\n- packages/api-client/src/types/memory.ts\r\n- packages/client/src/lib/api-type-mappers.ts",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-16T12:44:29Z",
      "mergedAt": "2025-10-17T11:58:00Z",
      "additions": 88,
      "deletions": 16
    }
  ],
  "codeChanges": {
    "additions": 3213,
    "deletions": 1130,
    "files": 39,
    "commitCount": 21
  },
  "completedItems": [
    {
      "title": "feat: migrate to UUID-only agent identification",
      "prNumber": 6036,
      "type": "feature",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Agents now use randomly generated UUIDs (not names) for identity; duplicate names are allowed, with loader/runtime/server/DB updated plus migrations and tests.\n> \n> - **Core/runtime (`packages/core`)**:\n>",
      "files": [
        "packages/cli/src/commands/scenario/src/runtime-factory.ts",
        "packages/core/src/__tests__/agent-uuid.test.ts",
        "packages/core/src/runtime.ts",
        "packages/plugin-sql/src/__tests__/integration/agent.test.ts",
        "packages/plugin-sql/src/__tests__/migration/schema-evolution-tests/08-agent-name-constraint-removal.test.ts",
        "packages/plugin-sql/src/base.ts",
        "packages/plugin-sql/src/schema/agent.ts",
        "packages/project-starter/src/character.ts",
        "packages/server/src/__tests__/loader-uuid.test.ts",
        "packages/server/src/api/agents/__tests__/crud-uuid.test.ts",
        "packages/server/src/api/agents/crud.ts",
        "packages/server/src/loader.ts"
      ]
    },
    {
      "title": "refactor(tests): Move character builder logic to core",
      "prNumber": 6069,
      "type": "refactor",
      "body": "\n- Move buildCharacterPlugins() to core (business logic)\n\n- Keep Eliza character to cli\n\n- Remove duplicate code from server\n\n- Add 27 tests on core",
      "files": [
        "bun.lock",
        "packages/cli/src/characters/eliza.ts",
        "packages/cli/src/commands/create/actions/creators.ts",
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/src/project.ts",
        "packages/cli/tests/unit/characters/character-plugin-ordering.test.ts",
        "packages/core/src/__tests__/character-builder.test.ts",
        "packages/core/src/character.ts",
        "packages/core/src/index.ts",
        "packages/server/src/__tests__/bootstrap-autoload.test.ts",
        "packages/server/src/characters/default.ts"
      ]
    },
    {
      "title": "fix: current chat and user messages filters in memory viewer",
      "prNumber": 6067,
      "type": "bugfix",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Convert channelId to agent-unique roomId in room memories endpoint and add/use entityId in memory types/mapping to correctly distinguish user vs agent messages.\n> \n> - **Backend**:\n>   - **Room Memories E",
      "files": [
        "packages/api-client/src/__tests__/services/memory.test.ts",
        "packages/api-client/src/types/memory.ts",
        "packages/client/src/lib/api-type-mappers.ts",
        "packages/server/src/api/memory/agents.ts"
      ]
    },
    {
      "title": "feat: make evaluators run asynchronously in background",
      "prNumber": 6066,
      "type": "feature",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Evaluators now run asynchronously with robust error handling/logging, and the bootstrap message flow triggers evaluator execution non-blockingly with streamlined logging.\n> \n> - **Core (`packages/core/src",
      "files": [
        "packages/core/src/runtime.ts",
        "packages/plugin-bootstrap/src/index.ts"
      ]
    },
    {
      "title": "fix(docs) misleading comment in MessageBusService callback",
      "prNumber": 6072,
      "type": "bugfix",
      "body": "",
      "files": [
        "packages/server/src/services/message.ts"
      ]
    },
    {
      "title": "fix: plugin documentation and scaffolding issues",
      "prNumber": 6071,
      "type": "bugfix",
      "body": "- Fix template lookup paths to include monorepo package directories as fallback\r\n- Fix incorrect CLI command syntax in documentation across multiple README files\r\n- Support both —type and —t\r\n- Update agent lifecycle and help messages with ",
      "files": [
        "packages/cli/README.md",
        "packages/cli/src/commands/agent/actions/lifecycle.ts",
        "packages/cli/src/commands/agent/index.ts",
        "packages/cli/src/commands/create/index.ts",
        "packages/cli/src/utils/copy-template.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/utils/copy-template.test.ts",
        "packages/plugin-starter/README.md",
        "packages/project-starter/README.md",
        "packages/test-utils/README.md"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 83.06048829440076,
      "prScore": 83.06048829440076,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "standujar: Focused on documentation and scaffolding improvements, merging two PRs including a significant update to plugin documentation and scaffolding issues in elizaos/eliza#6071 (+1098/-834 lines), alongside a fix for a misleading comment in elizaos/eliza#6072. This work primarily involved bug fixes, documentation, and tests."
    },
    {
      "username": "madjin",
      "avatarUrl": "https://avatars.githubusercontent.com/u/32600939?u=cdcf89f44c7a50906c7a80d889efa85023af2049&v=4",
      "totalScore": 68.04746482760808,
      "prScore": 51.409464827608076,
      "issueScore": 16.2,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "madjin: Focused on documentation and configuration improvements, merging two PRs including a deployment guide for forks (elizaos/elizaos.github.io#158) and dynamically copying stats for tracked repositories (elizaos/elizaos.github.io#157), while also creating and closing several issues related to enhancements and bug fixes. Their primary focus was on bugfix work, with contributions split between documentation and configuration files."
    },
    {
      "username": "ryanmstokes",
      "avatarUrl": "https://avatars.githubusercontent.com/u/4103619?u=fc6560a14f83b275fdc9442d884182000fb818e1&v=4",
      "totalScore": 4.2,
      "prScore": 0,
      "issueScore": 4.2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "ryanmstokes: Focused on documentation accuracy, creating and closing an issue in elizaos/eliza (#6070) to address incorrect plugin documentation."
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "borisudovicic: Focused on strategic planning and foundational improvements, creating four issues including \"Consistency & Stability\" (elizaos/eliza#5934), \"Add Eigen TEE Deployment Option\" (elizaos/eliza#5986), and \"Cloud API Plugin for Framework LLMs\" (elizaos/eliza#6049), all of which were subsequently closed, alongside an open issue to \"Standardize Logging Across Core, CLI, and Server\" (elizaos/eliza#6073)."
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 0.2,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "wtfsayo: Today, wtfsayo engaged in substantial code modifications across 172 files, adding over 10,000 lines and removing nearly 5,000 lines through 10 commits, primarily focusing on other work, bug fixes, and refactoring, and also contributed to an issue discussion."
    }
  ],
  "newPRs": 2,
  "mergedPRs": 6,
  "newIssues": 2,
  "closedIssues": 5,
  "activeContributors": 7
}