{
  "interval": {
    "intervalStart": "2026-01-01T00:00:00.000Z",
    "intervalEnd": "2026-02-01T00:00:00.000Z",
    "intervalType": "month"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2026-01-01 to 2026-02-01, elizaos/eliza had 38 new PRs (22 merged), 100 new issues, and 31 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7lpxrW",
      "title": "Can not generate project",
      "author": "Abdulkader-Safi",
      "number": 6388,
      "repository": "elizaos/eliza",
      "body": "**Can not generate project**\n\nHello, I just found about this project and I followed the documention on getting started on the website https://docs.elizaos.ai/, but I am getting errors when I run elizaos create\n\n**To Reproduce**\n\nI run \n\n```bash\nbun i -g elizaos\n```\n\nafter that I run \n\n```bash\nelizaos create\n```\n\nwhat I get\n\n```bash\n❯ elizaos create\nnode:internal/modules/esm/resolve:313\n  return new ERR_PACKAGE_PATH_NOT_EXPORTED(\n         ^\n\nError [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './dist/index.js' is not defined by \"exports\" in /Users/safi/.bun/install/global/node_modules/@elizaos/cli/package.json imported from /Users/safi/.bun/install/global/node_modules/elizaos/bin/elizaos.js\n    at exportsNotFound (node:internal/modules/esm/resolve:313:10)\n    at packageExportsResolve (node:internal/modules/esm/resolve:660:9)\n    at packageResolve (node:internal/modules/esm/resolve:773:12)\n    at moduleResolve (node:internal/modules/esm/resolve:853:18)\n    at defaultResolve (node:internal/modules/esm/resolve:983:11)\n    at #cachedDefaultResolve (node:internal/modules/esm/loader:731:20)\n    at ModuleLoader.resolve (node:internal/modules/esm/loader:708:38)\n    at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:310:38)\n    at ModuleJob._link (node:internal/modules/esm/module_job:182:49) {\n  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'\n}\n\nNode.js v22.21.0\n```\n\n**Expected behavior**\n\nthe expected behavior to generate prject\n\n**Screenshots**\n\n<img width=\"1608\" height=\"1764\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/af7d141b-295e-4d54-ba78-d9455a1f61e1\" />",
      "createdAt": "2026-01-25T09:32:19Z",
      "closedAt": "2026-01-25T13:57:54Z",
      "state": "CLOSED",
      "commentCount": 6
    },
    {
      "id": "I_kwDOMT5cIs7jNLxv",
      "title": "\"Reflection evaluator fails with 'Entity not found' - UPDATE_CONTACT requires entity initialization\"",
      "author": "thewoweffect",
      "number": 6364,
      "repository": "elizaos/eliza",
      "body": "\nVersion: 1.7.1\nError: UPDATE_CONTACT fails with \"Entity not found\"\nCause: ensureConnection() is not called before saving facts\nLogs: afterSplice values + \"No ownership data found for world\"\nProposed fix: // V reflection.ts před UPDATE_CONTACT\nawait runtime.ensureConnection({\n  entityId, roomId, userName, name, worldId, source\n});\n",
      "createdAt": "2026-01-14T07:10:02Z",
      "closedAt": "2026-01-17T06:31:52Z",
      "state": "CLOSED",
      "commentCount": 2
    },
    {
      "id": "I_kwDOMT5cIs7mLk_h",
      "title": "[Plugin] Integrate N8N Workflow Engine",
      "author": "borisudovicic",
      "number": 6429,
      "repository": "elizaos/eliza",
      "body": "## Description\n\nIntegrate N8N workflow engine as the primary automation layer for Eliza App. N8N provides pre-built nodes for Gmail, Notion, Calendar, and hundreds of other services.\n\n## Acceptance Criteria\n\n- [ ] N8N plugin from V2 branch working in cloud\n- [ ] Agent can generate workflow JSONs via natural language\n- [ ] Workflows can be stored per user/tenant\n- [ ] Execution via [N8N.io](<http://N8N.io>) or self-hosted execution server\n- [ ] Query available nodes and expose to agent\n\n## Technical Notes\n\n**From today's meeting (Shaw):**\n\n* N8N plugin already exists in V2 branch - generates JSON workflows\n* \"We get every single thing\" - Gmail, Notion, Reddit, literally every connector exists\n* Two parts: (1) Generate JSON workflows (no sandbox needed), (2) Execute via N8N server\n* Can use [N8N.io](<http://N8N.io>) hosted execution initially, self-host later for cost optimization\n* Workflow generation is just JSON - can happen serverlessly\n* Also need to pull in pre-existing workflows from GitHub (many already exist)\n* \"I really think we could get this done today\" - Shaw\n\n## Architecture\n\n1. User says \"check my gmail every morning\"\n2. Agent generates N8N workflow JSON\n3. Agent requests OAuth credentials if needed\n4. Workflow submitted to N8N execution server\n5. Results returned to user\n\n## Priority\n\n**P0 - Core Architecture**",
      "createdAt": "2026-01-27T18:06:08Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 2
    },
    {
      "id": "I_kwDOMT5cIs7j4-a7",
      "title": "[Migration] Eligibility Mismatch & Snapshot Bug - Tangem Hardware Wallet",
      "author": "Zenobow",
      "number": 6369,
      "repository": "elizaos/eliza",
      "body": "Description: I am reporting a discrepancy in my $ai16z migration eligibility. My current $ai16z holdings are consolidated in my Tangem hardware wallet. During the official snapshot on Nov 11, 2025 (11:40 UTC), this wallet held the bulk of my tokens.\n\nThe Problem: When I connect to the migration portal (migrate.elizafoundation.ai), the system only recognizes a small fraction (710 tokens) which were held in a separate Solflare hot-wallet at the time. My Tangem wallet's snapshot balance is not being correctly identified or synced by the portal.\n\nVerified On-Chain Evidence (Tangem Wallet):\n\nHolding Address: 2SELmng3aKdrPKad41PEZA5XAt5Hex8TCpKrwY8AX8K8\n\nSnapshot Balance (Nov 11): 70,000 $ai16z\n\nSupporting Transaction Hashes:\n\n4gPGjNc31yPwJrSomHEgwGAWQyJcPmgYUKw8iu4NaMTQhTgEjvdd1TdwyEphg2qfhHvqmony5kHzJFhQa6syDNWb [43,000 ai16z]\n\n363QaEUbGTnDVK9Uvm9xqnDaphpdSY5YaQjgdC9xi3AcbNZJpW7H7gbEvaCLL5fcSoD1PeGqwddfgXbo6pC5Jfav [17,000 ai16z]\n\n5KDLm7qA71yrGfUW6SxzVTWY4KxBeYxuAPiWZWTAG4Y6xMex1JbjfzAYuDWTR86oKTXMcy2WDLAdnSgagKbR9x6q [8,000 ai16z]\n\n36UzzHTLVVN6xsi96YWZqCApkUfA8Z9T5AuXRuBi8ti1nvpQ6aS2tgcBYbRz497dAzAkdanefBZSGYm2Qyp9TSEi [2,000 ai16z]\n\nRequest: Please manually verify the snapshot data for address 2SELmng3aKdrPKad41PEZA5XAt5Hex8TCpKrwY8AX8K8 and whitelist the full eligible amount for the 1:6 $ELIZAOS swap. As Tangem does not support seed phrase export and has connection issues with the portal, I need this backend update to proceed before the February 4th deadline.\n\nThank you for your help!",
      "createdAt": "2026-01-16T19:31:32Z",
      "closedAt": "2026-01-22T17:10:29Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7luPUF",
      "title": "Opus - pro and Ultra - sonnet? Is this right?",
      "author": "borisudovicic",
      "number": 6390,
      "repository": "elizaos/eliza",
      "body": "<img src=\"https://uploads.linear.app/186bdefa-3633-464a-80cd-6e86fe765a5c/8d55523c-5687-4d33-874b-56ccc0a144a9/49d06c42-8a5c-47f2-8a51-bb35e4cd7402?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiLzE4NmJkZWZhLTM2MzMtNDY0YS04MGNkLTZlODZmZTc2NWE1Yy84ZDU1NTIzYy01Njg3LTRkMzMtODc0Yi01NmNjYzBhMTQ0YTkvNDlkMDZjNDItOGE1Yy00N2YyLThhNTEtYmIzNWU0Y2Q3NDAyIiwiaWF0IjoxNzY5Mzg3ODU0LCJleHAiOjE4MDA5NTg0MTR9.hqnbsSfTlg8vQwp8j7uxKFRy836mT0UGVVh0tpGHDaA \" alt=\"Screenshot 2026-01-26 at 00.36.55.png\" width=\"391\" data-linear-height=\"249\" />",
      "createdAt": "2026-01-26T00:37:35Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 1
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs68XpPS",
      "title": "V2.0.0",
      "author": "lalalune",
      "number": 6351,
      "body": "This is  a working branch of elizaOS v2.0.0\r\n\r\nCritically, this removes app, server, CLI and all non-essentials. Instead, we focus on runtime in Rust, Typescript, with critical plugins ported as well",
      "repository": "elizaos/eliza",
      "createdAt": "2026-01-09T17:06:10Z",
      "mergedAt": null,
      "additions": 1503011,
      "deletions": 295897
    },
    {
      "id": "PR_kwDOMT5cIs680DbX",
      "title": "fix(v2.0.0): Python example testing & fixes",
      "author": "odilitime",
      "number": 6358,
      "body": "- Add Python quickstart documentation (docs/python-quickstart.md)\r\n- Fix chat example to include inmemorydb plugin for database support\r\n- Add dotenv loading to chat example for .env file support\r\n- Fix inmemorydb plugin to use proper Plugin class instead of dict\r\n- Fix inmemorydb adapter to accept params dict in get_memories()\r\n- Fix inmemorydb adapter to handle Pydantic models in create_memory/update_memory\r\n- Fix character provider to use getattr for optional attributes\r\n- Add get_available_actions() method to AgentRuntime\r\n- Add get_entity() alias method to AgentRuntime\r\n- Update get_memories() to accept keyword arguments\r\n\r\nThe Python port had issues because:\r\nPlugin export - was a dict instead of Plugin object\r\nMethod signatures - expected dicts but got Pydantic models\r\nNo type enforcement - Python doesn't catch these at compile time\r\nThe Rust type system prevents these bugs automatically. The Python fixes we made bring it to parity with the working Rust implementation.\r\n\r\n# Risks\r\n\r\nMedium\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nFix examples/chat/python\r\n\r\n## What kind of change is this?\r\n\r\nBug fixes (non-breaking change which fixes an issue)\r\n\r\n## Why are we doing this? Any context or related work?\r\nReview\r\n\r\n# Documentation changes needed?\r\n\r\nmaybe\r\n\r\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Introduces true streaming and stabilizes Python runtime/plugins, plus major example and training additions.\n> \n> - Adds streaming text APIs: new `ModelType.TEXT_*_STREAM`, `AgentRuntime.use_model_stream()`/`register_streaming_model()`, and `DefaultMessageService.handle_message_stream()` with `StreamingMessageResult`\n> - OpenAI plugin implements streaming handlers; core exports updated to include streaming types\n> - Fixes `plugin-inmemorydb`: converted to proper `Plugin`, adapter now accepts `params`/kwargs, handles Pydantic models (camelCase keys), and corrects pagination/filters\n> - Hardens character provider to safely access optional fields via `getattr`\n> - AgentRuntime enhancements: `get_available_actions()`, `get_entity()` alias, `get_memories()` kwargs support\n> - A2A FastAPI server uses true token-by-token SSE streaming and includes `inmemorydb`; requirements updated\n> - Chat example loads `.env` and includes `inmemorydb` plugin\n> - ART Tic‑Tac‑Toe: adds heuristic agent, refines config (`opponent`, `ai_player`), winner/draw handling, and CLI updates\n> - New Atropos TextWorld package: environment/agents, trajectory + tokenizer tooling, offline data generation, BaseEnv factory, and CLI; README expanded\n> - Core Python README and example docs updated for setup and usage\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 21f8c31fc22b7778f998d85c754ee82a0a8e2253. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->\n\n\r\n\r\n<!-- greptile_comment -->\r\n\r\n<h2>Greptile Overview</h2>\r\n\r\n### Greptile Summary\r\n\r\nThis PR fixes the Python chat example and inmemorydb plugin to work together, adds Python quickstart documentation, and improves Character attribute handling. The changes include:\r\n\r\n**Key Improvements:**\r\n- Adds comprehensive Python quickstart documentation with examples\r\n- Fixes inmemorydb plugin to use proper Plugin class instead of dict\r\n- Enhances inmemorydb adapter to handle Pydantic models in create_memory/update_memory\r\n- Updates character provider to safely access optional attributes with getattr()\r\n- Adds dotenv support to chat example for .env file loading\r\n- Adds useful helper methods to AgentRuntime (get_available_actions, get_entity alias)\r\n- Enhances get_memories() to accept keyword arguments\r\n\r\n**Critical Issues Found:**\r\n1. **Bug in adapter.py line 329**: The update_memory() method references the wrong variable name (`memory` instead of `memory_dict`), which will cause AttributeError when processing Pydantic models\r\n2. **Bug in character.py lines 70-73**: Inconsistent attribute access - uses getattr() in function body but direct access in return data dict, causing AttributeError for optional attributes\r\n3. **Missing dependency in chat.py**: Imports python-dotenv but it's not in requirements.txt\r\n4. **Incomplete documentation**: Quickstart guide doesn't include inmemorydb plugin installation that the chat example now requires\r\n\r\n**Impact:**\r\nThe bugs in adapter.py and character.py are critical and will cause runtime errors. The missing dependencies will prevent users from running the example successfully.\r\n\r\n### Confidence Score: 1/5\r\n\r\n- This PR contains critical bugs that will cause runtime failures and prevent the chat example from working\r\n- Score reflects two critical logic errors (wrong variable reference in adapter.py:329 and inconsistent attribute access in character.py:70-73) plus missing dependencies that will cause import errors. These issues will break the example for users and cause AttributeErrors at runtime.\r\n- Pay close attention to plugins/plugin-inmemorydb/python/elizaos_plugin_inmemorydb/adapter.py (line 329 bug), packages/python/elizaos/bootstrap/providers/character.py (lines 70-73 inconsistency), and examples/chat/python/chat.py (missing python-dotenv dependency)\r\n\r\n<h3>Important Files Changed</h3>\r\n\r\n\r\n\r\nFile Analysis\r\n\r\n\r\n\r\n| Filename | Score | Overview |\r\n|----------|-------|----------|\r\n| docs/python-quickstart.md | 3/5 | New documentation file added. Missing plugin-inmemorydb installation instruction that the chat example now requires. |\r\n| examples/chat/python/chat.py | 2/5 | Added dotenv and inmemorydb support. Missing python-dotenv dependency in requirements, which will cause import errors. |\r\n| packages/python/elizaos/bootstrap/providers/character.py | 2/5 | Fixed to use getattr for optional character attributes. Critical bug: return data dict directly accesses attributes without getattr, causing AttributeError. |\r\n| plugins/plugin-inmemorydb/python/elizaos_plugin_inmemorydb/adapter.py | 1/5 | Enhanced get_memories(), create_memory(), and update_memory() to handle Pydantic models. Critical bug in update_memory line 329: uses wrong variable name. |\r\n\r\n</details>\r\n\r\n\r\n\r\n<h3>Sequence Diagram</h3>\r\n\r\n```mermaid\r\nsequenceDiagram\r\n    participant User\r\n    participant chat.py\r\n    participant dotenv\r\n    participant AgentRuntime\r\n    participant OpenAIPlugin\r\n    participant InMemoryDBPlugin\r\n    participant InMemoryAdapter\r\n    participant CharacterProvider\r\n\r\n    User->>chat.py: Run python chat.py\r\n    chat.py->>dotenv: load_dotenv(env_path)\r\n    dotenv-->>chat.py: Load .env from repo root\r\n    \r\n    chat.py->>AgentRuntime: Create with character and plugins\r\n    AgentRuntime->>OpenAIPlugin: Initialize OpenAI plugin\r\n    AgentRuntime->>InMemoryDBPlugin: Initialize InMemoryDB plugin\r\n    InMemoryDBPlugin->>InMemoryAdapter: create_database_adapter(agent_id)\r\n    InMemoryAdapter-->>InMemoryDBPlugin: Return adapter instance\r\n    InMemoryDBPlugin->>AgentRuntime: register_database_adapter(adapter)\r\n    \r\n    AgentRuntime->>CharacterProvider: get_character_context()\r\n    CharacterProvider->>CharacterProvider: Use getattr() for optional attributes\r\n    CharacterProvider-->>AgentRuntime: Return character context\r\n    \r\n    AgentRuntime-->>chat.py: Runtime initialized\r\n    \r\n    User->>chat.py: Type message\r\n    chat.py->>AgentRuntime: handle_message(runtime, memory)\r\n    AgentRuntime->>InMemoryAdapter: get_memories(params)\r\n    InMemoryAdapter-->>AgentRuntime: Return memories\r\n    AgentRuntime->>OpenAIPlugin: Generate response\r\n    OpenAIPlugin-->>AgentRuntime: Return response\r\n    AgentRuntime->>InMemoryAdapter: create_memory(memory_dict)\r\n    InMemoryAdapter-->>AgentRuntime: Memory stored\r\n    AgentRuntime-->>chat.py: Return result\r\n    chat.py-->>User: Display response\r\n```\r\n\r\n<!-- greptile_other_comments_section -->\r\n\r\n<!-- /greptile_comment -->\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n## Summary by CodeRabbit\n\n* **New Features**\n  * In-memory database plugin for agent memory.\n  * Token-by-token streaming for chat responses and streaming endpoints.\n  * Atropos data-generation, trajectory tooling, and TextWorld agent integrations.\n  * New Tic‑Tac‑Toe AI/player options and interactive configuration.\n\n* **Documentation**\n  * Expanded developer setup, examples, runnable chat walkthroughs, and new Atropos CLI flags.\n\n* **Other**\n  * Updated Python packaging/requirements and repository-root .env loading for examples.\n\n<sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub>\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2026-01-13T00:34:32Z",
      "mergedAt": "2026-01-22T01:20:54Z",
      "additions": 17483,
      "deletions": 8280
    },
    {
      "id": "PR_kwDOMT5cIs670Y6I",
      "title": "fix: plugin-bootstrap (+ sql minor) actions/providers for serverId => messageServerId change",
      "author": "odilitime",
      "number": 6333,
      "body": "# Risks\r\n\r\nLow\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\nBug fixes (non-breaking change which fixes an issue)\r\n\r\n## Why are we doing this? Any context or related work?\r\n\r\nUser reports of 1.7.0 not working with plugin-discord 1.3.3\r\n\r\n# Documentation changes needed?\r\n\r\nMy changes do not require a change to the project documentation.\r\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> **Adds onboarding and role management, refactors providers, and updates schema**\n> \n> - New `UPDATE_SETTINGS` action: extracts multiple settings, persists to `world.metadata.settings` with salting/unsalting, generates success/failure/error responses, and completes onboarding when required settings are done\n> - New/updated `SETTINGS` provider: reads/decrypts settings from world metadata, supports onboarding (DM) vs regular contexts, and outputs concise status with guidance\n> - New/updated `WORLD` provider: surfaces world/room/channel/participant summaries and structured channel categorization for prompts\n> - New `UPDATE_ROLE` action: parses XML for role assignments, enforces permission rules, updates `world.metadata.roles`, and persists via `updateWorld`\n> - Tests: comprehensive event lifecycle and reaction handling, entity join/leave, and platform-agnostic `shouldRespond` mention/reply logic\n> - SQL: `packages/plugin-sql/src/schema/room.ts` now defines `messageServerId` as `uuid('message_server_id')` (doc/comment cleanup)\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 25d98528e8c98217fbaa63a5e430202a575800e6. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->\n\n<!-- greptile_comment -->\n\n<h3>Greptile Summary</h3>\n\n\nCompletes the migration from deprecated `serverId` to `messageServerId` across plugin-bootstrap actions/providers and plugin-sql schema.\n\n**Key Changes:**\n- Updated `packages/plugin-bootstrap/src/actions/roles.ts` validate function to check `room.messageServerId` instead of accessing `message.content.serverId`\n- Updated logger metadata keys from `serverId` to `messageServerId` in actions/settings.ts, providers/settings.ts, and action return data in roles.ts\n- Updated provider output in providers/world.ts to use `messageServerId` field name\n- Updated JSDoc comment in plugin-sql schema to reflect the correct column name\n- Updated test mocks and fixtures to use `messageServerId`\n\nThis PR addresses user-reported compatibility issues between eliza v1.7.0 and plugin-discord v1.3.3 by ensuring consistent use of the new `messageServerId` field name throughout the codebase. The deprecated `serverId` field still exists in the core types for backward compatibility but is no longer referenced in plugin-bootstrap or plugin-sql.\n\n<h3>Confidence Score: 5/5</h3>\n\n\n- This PR is safe to merge with minimal risk\n- The changes are straightforward field name updates that align with an existing migration (commit 6d1b928c). All changes are consistent, the deprecated field remains in core types for backward compatibility, and the PR only updates references in plugin-bootstrap and plugin-sql to use the new field name. The changes fix reported compatibility issues without introducing breaking changes.\n- No files require special attention\n\n<h3>Important Files Changed</h3>\n\n\n\n\n| Filename | Overview |\n|----------|----------|\n| packages/plugin-sql/src/schema/room.ts | Updated JSDoc comment from `serverId` to `messageServerId` to match the column definition |\n| packages/plugin-bootstrap/src/actions/settings.ts | Updated logger metadata keys from `serverId` to `messageServerId` for consistency |\n| packages/plugin-bootstrap/src/providers/settings.ts | Updated logger metadata key from `serverId` to `messageServerId` for consistency |\n| packages/plugin-bootstrap/src/providers/world.ts | Updated provider output to use `messageServerId` instead of deprecated `serverId` field |\n| packages/plugin-bootstrap/src/actions/roles.ts | Refactored validation to check room.messageServerId and updated logger/return data to use `messageServerId` |\n\n</details>\n\n\n\n<h3>Sequence Diagram</h3>\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant Action as Action/Provider\n    participant Runtime\n    participant Database\n    \n    Note over User,Database: serverId → messageServerId Migration Flow\n    \n    User->>Action: Trigger action (e.g., UPDATE_ROLE)\n    Action->>Runtime: getRoom(roomId)\n    Runtime->>Database: Query room table\n    Database-->>Runtime: Return Room with messageServerId\n    Runtime-->>Action: Room object\n    \n    alt Validate messageServerId exists\n        Action->>Action: Check room.messageServerId\n        Action->>Runtime: getWorld(worldId)\n        Runtime->>Database: Query world\n        Database-->>Runtime: Return World with messageServerId\n        Runtime-->>Action: World object\n    end\n    \n    Action->>Action: Process with world.messageServerId\n    Action->>Runtime: updateWorld(world)\n    Runtime->>Database: Update world metadata\n    Database-->>Runtime: Success\n    \n    Action->>Action: Log with messageServerId key\n    Action-->>User: Return result with messageServerId\n    \n    Note over Action,Database: All references to deprecated serverId<br/>updated to messageServerId\n```\n\n<!-- greptile_other_comments_section -->\n\n<!-- /greptile_comment -->\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n* **Breaking Changes**\n  * Renamed field `serverId` to `messageServerId` across room and world data structures, affecting API responses and database schema. This impacts any code consuming room or world context data.\n\n* **Tests**\n  * Updated test utilities and fixtures to reflect the field name change for consistency with production code.\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": "2026-01-07T01:11:56Z",
      "mergedAt": "2026-01-07T10:46:02Z",
      "additions": 5363,
      "deletions": 23
    },
    {
      "id": "PR_kwDOMT5cIs6-HSpn",
      "title": "V2.0.0: dynamic execution engine (test if context is going to blown)",
      "author": "odilitime",
      "number": 6384,
      "body": "Redo #6113 for 2.0.0, first pass\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Introduces a validation-aware, schema-driven prompt execution path and applies it across runtimes and message flows.\n> \n> - Adds `dynamic_prompt_exec_from_state`/`dynamicPromptExecFromState` (TS/Python/Rust) with per-field/checkpoint UUID validation codes, required-field checks, and retry with backoff; supports XML/JSON\n> - Refactors message handling (should-respond, single-shot, multi-step decision, final summary) to use structured schemas instead of ad-hoc parsing\n> - Implements streaming support in TS with `ValidationStreamExtractor`, `MarkableExtractor`, and streaming context helpers; emits rich `StreamEvent`s\n> - Introduces shared types: `SchemaRow`, `RetryBackoffConfig`, `StreamEvent(Type)` in Python/Rust/TS type modules\n> - Adds XML parsing utilities (nested-safe) and normalizes structured responses; basic templating in Rust, Handlebars in TS\n> - Exposes validation level configuration (0–3) and model selection; defaults to large text models\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 1e447bbc005cbad715eb819aba27eb35b54aa5b8. 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 dynamic prompt execution with state injection and schema-driven validation.\n  * Enabled validation-aware streaming with configurable validation levels (0-3).\n  * Introduced built-in retry logic with exponential backoff for improved resilience.\n  * Support for structured output validation across JSON and XML formats.\n  * Per-field and checkpoint-level validation for enhanced data integrity.\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 -->\n\n<!-- greptile_comment -->\n\n<h3>Greptile Summary</h3>\n\n\nIntroduces `dynamicPromptExecFromState()` across Python, Rust, and TypeScript runtimes to provide schema-driven prompt execution with context validation via UUID codes. The implementation detects when LLMs truncate output due to limited context windows by injecting validation codes at strategic positions (start/middle/end or per-field). Supports four validation levels (0=trusted to 3=full), exponential backoff retries, and optional validation-aware streaming via `ValidationStreamExtractor`.\n\n**Key changes:**\n- Cross-language API consistency for dynamic prompt execution with state injection\n- Validation code system to detect context overflow (4 levels: trusted, progressive, checkpoint, full)\n- Streaming integration with progressive validation and retry support\n- Schema-based structured output parsing (XML/JSON) with required field validation\n- Performance metrics tracking per model+schema combination (TypeScript only)\n- Comprehensive type definitions (`SchemaRow`, `RetryBackoffConfig`, `StreamEvent`)\n\n**Critical issues in Python implementation:**\n- Callable prompt invocation wraps state incorrectly (`{\"state\": state}` vs direct state access)\n- Template substitution assumes `state.values` has dynamic attributes accessible via `dir()`, incompatible with protobuf State\n- XML parsing regex `\\w+` won't match validation field names with underscores like `code_text_start`\n\n**Minor issues:**\n- Rust template rendering uses basic string replacement instead of full Handlebars compiler\n- TypeScript `_smartRetryContext` deletion during retry loop prevents reuse on subsequent attempts\n- ValidationStreamExtractor abort handling may leave inconsistent state\n\n<h3>Confidence Score: 3/5</h3>\n\n\n- Python implementation has runtime errors that will break production usage; TypeScript and Rust implementations are safer but need testing\n- Score reflects critical logical errors in Python (3 bugs that will cause runtime failures), plus architecture differences across languages. TypeScript implementation is most complete with metrics and full Handlebars support. Python bugs must be fixed before merge to avoid breaking callers.\n- `packages/python/elizaos/runtime.py` requires immediate fixes for callable invocation, state.values access pattern, and XML regex. Test the Python implementation thoroughly before merging.\n\n<h3>Important Files Changed</h3>\n\n\n\n\n| Filename | Overview |\n|----------|----------|\n| packages/python/elizaos/runtime.py | Adds `dynamic_prompt_exec_from_state` with validation codes and retry logic; has critical bugs in callable invocation, state.values access, and XML parsing regex |\n| packages/rust/src/runtime.rs | Implements `dynamic_prompt_exec_from_state` with validation and retry; template rendering is basic string replacement vs full Handlebars |\n| packages/typescript/src/runtime.ts | Implements `dynamicPromptExecFromState` with metrics, streaming, and validation; minor issue with `_smartRetryContext` deletion timing |\n| packages/typescript/src/utils/streaming.ts | Implements validation-aware streaming with multiple extractor types; minor state inconsistency on abort signal |\n\n</details>\n\n\n\n<h3>Sequence Diagram</h3>\n\n```mermaid\nsequenceDiagram\n    participant Client\n    participant Runtime\n    participant ValidationExtractor\n    participant LLM\n    participant Parser\n\n    Client->>Runtime: dynamicPromptExecFromState(state, schema, options)\n    \n    Note over Runtime: Generate validation codes<br/>(UUID snippets)\n    \n    Runtime->>Runtime: Build extended schema<br/>with validation fields\n    \n    Runtime->>Runtime: Inject codes into prompt<br/>(initial, middle, end)\n    \n    Runtime->>Runtime: Compile template with<br/>Handlebars/state values\n    \n    alt Streaming enabled\n        Runtime->>ValidationExtractor: Create extractor<br/>(level, schema, codes)\n    end\n    \n    loop Retry attempts (0 to maxRetries)\n        Runtime->>LLM: Generate text with prompt\n        \n        alt Streaming\n            loop Stream chunks\n                LLM-->>ValidationExtractor: chunk\n                ValidationExtractor->>ValidationExtractor: Extract field content\n                ValidationExtractor->>ValidationExtractor: Check per-field codes<br/>(level 0-1)\n                ValidationExtractor-->>Client: Stream validated content\n            end\n        else Non-streaming\n            LLM-->>Runtime: Complete response\n        end\n        \n        Runtime->>Runtime: Clean response<br/>(remove <think> tags)\n        \n        Runtime->>Parser: Parse XML/JSON response\n        Parser-->>Runtime: Parsed fields object\n        \n        Runtime->>Runtime: Normalize structured response\n        \n        alt Validation level 0-1\n            loop For each field with code\n                Runtime->>Runtime: Check start/end codes match\n            end\n        else Validation level 2-3\n            Runtime->>Runtime: Check checkpoint codes<br/>(one_initial, one_middle, etc)\n        end\n        \n        Runtime->>Runtime: Validate required fields<br/>are present and non-empty\n        \n        alt All validations pass\n            alt Streaming (level 2-3)\n                Runtime->>ValidationExtractor: flush()\n                ValidationExtractor-->>Client: Buffered content\n            end\n            Runtime->>Runtime: Remove validation code fields\n            Runtime->>Runtime: Update success metrics\n            Runtime-->>Client: Return parsed response\n        else Validation fails\n            alt Has retries remaining\n                Runtime->>Runtime: Calculate backoff delay\n                Runtime->>Runtime: Wait for backoff\n                Note over Runtime: Loop continues with retry\n            else No retries left\n                Runtime->>Runtime: Update failure metrics\n                Runtime-->>Client: Return null\n            end\n        end\n    end\n```\n\n<!-- greptile_other_comments_section -->\n\n<!-- /greptile_comment -->",
      "repository": "elizaos/eliza",
      "createdAt": "2026-01-20T02:29:59Z",
      "mergedAt": null,
      "additions": 4309,
      "deletions": 1591
    },
    {
      "id": "PR_kwDOMT5cIs6gRJJ1",
      "title": "feature/docker starter",
      "author": "bealers",
      "number": 5670,
      "body": "# Docker Infrastructure for elizaOS - foundation stage\r\n\r\nAdds Docker support with CLI integration and organized target structure for both starter projects and monorepo development.\r\n\r\n## New Commands\r\n\r\n```bash\r\n# Development with hot reload\r\nelizaos dev --docker\r\n\r\n# Production deployment  \r\nelizaos start --docker\r\n```\r\n\r\n## How It Works\r\n\r\n### Starter Project Context\r\nWhen using `elizaos create my-project`, the generated project includes Docker configs:\r\n\r\n```bash\r\nelizaos create my-project\r\ncd my-project\r\nelizaos dev --docker    # Starts containerized dev environment\r\nelizaos start --docker  # Starts production-ready container\r\n```\r\n\r\n**Benefits:**\r\n- **Consistent environments** across team members\r\n- **No local dependency conflicts** (Node versions, system packages)\r\n- **One-command setup** for new developers\r\n- **Production-like testing** locally\r\n\r\n### Monorepo Context\r\nFor ElizaOS core development, use organized Docker targets:\r\n\r\n```bash\r\n# Development\r\ncd docker/targets/dev && docker-compose up\r\n\r\n# Production\r\ncd docker/targets/prod && docker-compose up\r\n\r\n# Documentation\r\ncd docker/targets/docs && docker-compose up\r\n```\r\n## Structure\r\n\r\n```\r\ndocker/targets/\r\n├── dev/     # Development: hot reload, debug ports, volume mounting\r\n├── prod/    # Production: optimized builds, health checks, PostgreSQL\r\n└── docs/    # Documentation: fast nginx serving\r\n```\r\n\r\n## Testing\r\n\r\n```bash\r\ncd docker/tests && bun test\r\n\r\n# Test CLI integration\r\nelizaos create test-project\r\ncd test-project\r\nelizaos dev --docker\r\n```\r\n\r\n## Compatibility\r\n\r\n- No breaking changes\r\n- TEE functionality preserved (`tee-docker-compose.yaml`)\r\n- Project starter templates include Docker configs \r\n\r\n## Next\r\n\r\n- reduce prod image size futher, use `docker-slim`\r\n- take prod image and apply to docker registry\r\n- build out `elizaos deploy`, or similar\r\n- document popular providers, Railway, Digital Ocean, Hetzner",
      "repository": "elizaos/eliza",
      "createdAt": "2025-07-23T13:15:34Z",
      "mergedAt": null,
      "additions": 4053,
      "deletions": 177
    }
  ],
  "codeChanges": {
    "additions": 25706,
    "deletions": 8753,
    "files": 269,
    "commitCount": 379
  },
  "completedItems": [
    {
      "title": "refactor(default-message-service): optimize provider handling in MultiStep",
      "prNumber": 6263,
      "type": "refactor",
      "body": "# Risks\r\n\r\nLow. The change only affects the internal execution order of providers in multi-step mode. All providers still execute and return results - just faster.\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nConverts sequential provider ",
      "files": [
        ".env.example",
        "packages/cli/tests/test-timeouts.ts",
        "packages/core/src/__tests__/message-service.test.ts",
        "packages/core/src/services/default-message-service.ts"
      ]
    },
    {
      "title": "feat(core): enhance multi-step workflow with retry logic and parameter extraction",
      "prNumber": 6286,
      "type": "feature",
      "body": "## Summary\n\nEnhances multi-step workflows with retry logic and parameter extraction capabilities.\n\n### Changes\n\n- **Retry logic for XML parsing**: Multi-step workflows now retry parsing up to 5 times (configurable via `MULTISTEP_PARSE_RETRI",
      "files": [
        "packages/core/src/prompts.ts",
        "packages/core/src/services/default-message-service.ts",
        "packages/plugin-bootstrap/src/__tests__/multi-step.test.ts",
        "packages/plugin-bootstrap/src/providers/actions.ts",
        "packages/core/src/runtime.ts",
        ".cursor",
        "examples/tsconfig.json",
        "packages/core/src/__tests__/streaming-context.test.ts",
        "packages/core/src/streaming-context.ts",
        "packages/core/src/types/streaming.ts",
        "packages/core/src/utils/streaming.ts",
        "packages/cli/tests/unit/characters/README.md",
        "bun.lock",
        "lerna.json",
        "packages/api-client/package.json",
        "packages/app/package.json",
        "packages/cli/package.json",
        "packages/cli/src/commands/deploy/utils/docker-build.ts",
        "packages/client/package.json",
        "packages/client/src/components/chat.tsx",
        "packages/config/package.json",
        "packages/core/package.json",
        "packages/core/src/__tests__/runtime.test.ts",
        "packages/elizaos/package.json",
        "packages/plugin-bootstrap/package.json",
        "packages/plugin-bootstrap/src/__tests__/test-utils.ts",
        "packages/plugin-bootstrap/src/actions/roles.ts",
        "packages/plugin-bootstrap/src/providers/settings.ts",
        "packages/plugin-dummy-services/package.json",
        "packages/plugin-quick-starter/package.json",
        "packages/plugin-sql/package.json",
        "packages/plugin-sql/src/__tests__/integration/base-adapter-methods.test.ts",
        "packages/plugin-sql/src/__tests__/integration/entity-crud.test.ts",
        "packages/plugin-sql/src/__tests__/integration/memory.test.ts",
        "packages/plugin-sql/src/__tests__/integration/world.test.ts",
        "packages/plugin-sql/src/__tests__/migration/migration-before-1.6.5.test.ts",
        "packages/plugin-sql/src/__tests__/unit/utils.test.ts",
        "packages/plugin-sql/src/base.ts",
        "packages/plugin-sql/src/neon/adapter.ts",
        "packages/plugin-sql/src/pg/adapter.ts",
        "packages/plugin-sql/src/pglite/adapter.ts",
        "packages/plugin-starter/package.json",
        "packages/project-starter/package.json",
        "packages/project-starter/src/character.ts",
        "packages/project-tee-starter/package.json",
        "packages/server/package.json",
        "packages/server/src/__tests__/unit/api/agents-runs.test.ts",
        "packages/server/src/api/agents/runs.ts",
        "packages/server/src/api/index.ts",
        "packages/server/src/api/memory/rooms.ts"
      ]
    },
    {
      "title": "fix: Enable hot reload for backend development",
      "prNumber": 6293,
      "type": "bugfix",
      "body": "## Summary\n\nImplements comprehensive hot reload functionality for backend development. When TypeScript files in watched packages are modified, the system automatically rebuilds the CLI and restarts the server with health verification.\n\nPrev",
      "files": [
        "scripts/__tests__/dev-watch.test.ts",
        "scripts/dev-watch.js"
      ]
    },
    {
      "title": "feat: unified hooks with multi-transport support (HTTP/SSE/WebSocket)",
      "prNumber": 6300,
      "type": "feature",
      "body": "This PR introduces unified client hooks with multi-transport support and aligns transport naming between `api-client` and `server` packages.\r\n\r\n### Key Changes\r\n\r\n**Client Hooks (packages/client)**\r\n- New `useElizaChat` hook - unified inter",
      "files": [
        "packages/api-client/src/__tests__/services/sessions.test.ts",
        "packages/api-client/src/services/sessions.ts",
        "packages/api-client/src/types/sessions.ts",
        "packages/client/src/components/agent-card.cy.tsx",
        "packages/client/src/components/agent-card.tsx",
        "packages/client/src/components/agent-log-viewer.tsx",
        "packages/client/src/components/agent-sidebar.tsx",
        "packages/client/src/components/chat.tsx",
        "packages/client/src/components/profile-overlay.tsx",
        "packages/client/src/components/server-management.tsx",
        "packages/client/src/hooks/__tests__/use-dm-channels.test.ts",
        "packages/client/src/hooks/__tests__/use-http-chat.test.ts",
        "packages/client/src/hooks/__tests__/use-sse-chat.test.ts",
        "packages/client/src/hooks/index.ts",
        "packages/client/src/hooks/use-agent-management.ts",
        "packages/client/src/hooks/use-elevenlabs-voices.ts",
        "packages/client/src/hooks/use-eliza-chat.ts",
        "packages/client/src/hooks/use-eliza.ts",
        "packages/client/src/hooks/use-http-chat.ts",
        "packages/client/src/hooks/use-query-hooks.ts",
        "packages/client/src/hooks/use-socket-chat.ts",
        "packages/client/src/hooks/use-sse-chat.ts",
        "packages/client/src/lib/api-type-mappers.ts",
        "packages/client/src/lib/utils.ts",
        "packages/client/src/routes/agent-detail.tsx",
        "packages/client/src/routes/agent-list.tsx",
        "packages/client/src/routes/agent-settings.tsx",
        "packages/client/src/routes/chat.tsx",
        "packages/client/src/routes/home.tsx",
        "packages/client/src/types.ts",
        "packages/client/src/types/index.ts",
        "packages/server/src/__tests__/fixtures/socketio-client.fixture.ts",
        "packages/server/src/__tests__/integration/http-transport.test.ts",
        "packages/server/src/__tests__/integration/socketio-infrastructure.test.ts",
        "packages/server/src/__tests__/integration/sse-transport.test.ts",
        "packages/server/src/__tests__/integration/websocket-transport.test.ts",
        "packages/server/src/__tests__/unit/api/channels-mode.test.ts",
        "packages/server/src/__tests__/unit/api/response-handlers.test.ts",
        "packages/server/src/__tests__/unit/api/sessions.test.ts",
        "packages/server/src/__tests__/unit/features/socketio-router.test.ts",
        "packages/server/src/api/messaging/channels.ts",
        "packages/server/src/api/messaging/sessions.ts",
        "packages/server/src/api/shared/constants.ts",
        "packages/server/src/api/shared/response-handlers.ts",
        "packages/server/src/api/shared/validation.ts",
        "packages/server/src/index.ts",
        "packages/server/src/socketio/index.ts"
      ]
    },
    {
      "title": "chore(license): update year to 2026",
      "prNumber": 6301,
      "type": "other",
      "body": "Annual copyright year update.\n\n- Updated year: 2025 -> 2026\n- Files affected: LICENSE\n\n<!-- greptile_comment -->\n\n<h3>Greptile Summary</h3>\n\n\nUpdated the copyright year in the MIT License from 2025 to 2026. This is a standard annual mainten",
      "files": [
        "LICENSE"
      ]
    },
    {
      "title": "fix(plugin-sql): use sql.raw() for SET LOCAL to avoid parameterizatio…",
      "prNumber": 6316,
      "type": "bugfix",
      "body": "PostgreSQL SET commands do not support parameterized queries. The previous\r\nimplementation used Drizzle's sql tagged template which auto-parameterizes\r\nvalues, causing \"syntax error at or near $1\" when ENABLE_DATA_ISOLATION=true.\r\n\r\n- Chang",
      "files": [
        "packages/plugin-sql/src/__tests__/integration/postgres/withEntityContext.test.ts",
        "packages/plugin-sql/src/__tests__/unit/pg/manager.test.ts",
        "packages/plugin-sql/src/pg/manager.ts"
      ]
    },
    {
      "title": "test(plugin-sql): use withEntityContext in RLS tests + isolation in CI",
      "prNumber": 6330,
      "type": "tests",
      "body": "## Summary\r\n\r\n- Use `withEntityContext()` in RLS tests instead of raw `pg.Client`\r\n- Add `ENABLE_DATA_ISOLATION=true` to CI\r\n- Remove redundant `withEntityContext.test.ts`\r\n\r\nEnsures CI catches the `$1` parameterization bug if it regresses.",
      "files": [
        ".github/workflows/plugin-sql-tests.yaml",
        "packages/plugin-sql/src/__tests__/integration/postgres/rls-entity.test.ts",
        "packages/plugin-sql/src/__tests__/integration/postgres/withEntityContext.test.ts",
        "packages/plugin-sql/scripts/init-test-db.sql",
        "packages/plugin-sql/src/__tests__/integration/postgres/withIsolationContext.test.ts",
        "packages/plugin-sql/src/__tests__/migration/migration-before-1.6.5.test.ts"
      ]
    },
    {
      "title": "fix(ci): allow cursor bot to trigger Claude workflows",
      "prNumber": 6328,
      "type": "bugfix",
      "body": "## Summary\n- Add `allowed_bots: \"cursor\"` to `claude-code-review.yml` and `claude.yml`\n- Add `github.actor != 'cursor[bot]'` condition to `claude-security-review.yml` (this action doesn't support the `allowed_bots` parameter)\n\nFixes workflo",
      "files": [
        ".github/workflows/claude-code-review.yml",
        ".github/workflows/claude-security-review.yml",
        ".github/workflows/claude.yml"
      ]
    },
    {
      "title": "feat(ci): upgrade Claude workflows with Opus 4.5 and add security/maintenance jobs",
      "prNumber": 6324,
      "type": "feature",
      "body": "## Summary\n\nThis PR upgrades all Claude-powered CI workflows to use stable v1 action and Opus 4.5 model, plus adds two new automated workflows.\n\n## Changes\n\n### 🔄 Updated: `claude.yml` (interactive @claude mentions)\n\n| Change | Before | Af",
      "files": [
        ".github/workflows/claude-code-review.yml",
        ".github/workflows/claude-security-review.yml",
        ".github/workflows/claude.yml",
        ".github/workflows/weekly-maintenance.yml"
      ]
    },
    {
      "title": "fix(plugin-sql): add pool config, error handler, and fix PGLite shutdown",
      "prNumber": 6323,
      "type": "bugfix",
      "body": "## Summary\n\nFixes critical issues in plugin-sql that could cause runtime crashes and connection problems.\n\n### Changes\n\n1. **Fix `null as T` return** (`pglite/adapter.ts`)\n   - Throw error instead of returning null cast as generic type T\n  ",
      "files": [
        "packages/plugin-sql/src/__tests__/unit/pg/adapter.test.ts",
        "packages/plugin-sql/src/__tests__/unit/pg/manager.test.ts",
        "packages/plugin-sql/src/__tests__/unit/pglite/adapter.test.ts",
        "packages/plugin-sql/src/pg/adapter.ts",
        "packages/plugin-sql/src/pg/manager.ts",
        "packages/plugin-sql/src/pglite/adapter.ts"
      ]
    },
    {
      "title": "fix(plugin-sql): skip pgcrypto extension for PGLite",
      "prNumber": 6339,
      "type": "bugfix",
      "body": "- Skip installing `pgcrypto` extension for PGLite/development databases\r\n- PGLite uses native `gen_random_uuid()` and doesn't support pgcrypto\r\n- Eliminates unnecessary warning logs\n\n<!-- greptile_comment -->\n\n<h3>Greptile Summary</h3>\n\n\nTh",
      "files": [
        "packages/plugin-sql/src/runtime-migrator/runtime-migrator.ts"
      ]
    },
    {
      "title": "fix: plugin-bootstrap (+ sql minor) actions/providers for serverId => messageServerId change",
      "prNumber": 6333,
      "type": "bugfix",
      "body": "# Risks\r\n\r\nLow\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\nBug fixes (non-breaking change which fixes an issue)\r\n\r\n## Why are we doing this? Any context or related work?\r\n\r\nUser reports of 1.7.0 not wor",
      "files": [
        "bun.lock",
        "packages/plugin-bootstrap/src/__tests__/logic.test.ts",
        "packages/plugin-bootstrap/src/__tests__/test-utils.ts",
        "packages/plugin-bootstrap/src/actions/roles.ts",
        "packages/plugin-bootstrap/src/actions/settings.ts",
        "packages/plugin-bootstrap/src/providers/settings.ts",
        "packages/plugin-bootstrap/src/providers/world.ts",
        "packages/plugin-sql/src/schema/room.ts"
      ]
    },
    {
      "title": "feat(plugin-sql): add Neon serverless support & improve RLS security",
      "prNumber": 6343,
      "type": "feature",
      "body": "## Summary\r\n\r\nThis PR introduces several improvements to the plugin-sql package focused on security, clarity, and Neon serverless database support.\r\n\r\n### Key Changes\r\n\r\n1. **Neon Serverless Support** - Added dedicated adapter and connectio",
      "files": [
        "bun.lock",
        "packages/plugin-sql/package.json",
        "packages/plugin-sql/src/__tests__/integration/postgres/rls-entity.test.ts",
        "packages/plugin-sql/src/__tests__/integration/postgres/rls-logs.test.ts",
        "packages/plugin-sql/src/__tests__/integration/postgres/rls-message-server-agents.test.ts",
        "packages/plugin-sql/src/__tests__/integration/postgres/rls-server.test.ts",
        "packages/plugin-sql/src/__tests__/integration/postgres/withIsolationContext.test.ts",
        "packages/plugin-sql/src/__tests__/unit/entity-rls.test.ts",
        "packages/plugin-sql/src/__tests__/unit/index.test.ts",
        "packages/plugin-sql/src/__tests__/unit/pg/adapter.test.ts",
        "packages/plugin-sql/src/__tests__/unit/pg/manager.test.ts",
        "packages/plugin-sql/src/__tests__/unit/utils.test.ts",
        "packages/plugin-sql/src/base.ts",
        "packages/plugin-sql/src/index.node.ts",
        "packages/plugin-sql/src/neon/adapter.ts",
        "packages/plugin-sql/src/neon/manager.ts",
        "packages/plugin-sql/src/pg/adapter.ts",
        "packages/plugin-sql/src/pg/manager.ts",
        "packages/plugin-sql/src/pglite/adapter.ts",
        "packages/plugin-sql/src/rls.ts",
        "packages/plugin-sql/src/utils.node.ts",
        "packages/plugin-sql/tsconfig.build.node.json"
      ]
    },
    {
      "title": "fix: optimize runtime initialization with parallelization and atomic upserts",
      "prNumber": 6342,
      "type": "bugfix",
      "body": "## Summary\r\n\r\nOptimize `runtime.initialize()` performance through atomic upserts and parallelization of independent operations.\r\n\r\n**Results:** Cold start -30%, Warm start -40%\r\n\r\n## Problem\r\n\r\nThe current initialization flow has several in",
      "files": [
        "packages/core/src/__tests__/runtime.test.ts",
        "packages/core/src/runtime.ts",
        "packages/plugin-sql/src/__tests__/integration/base-adapter-methods.test.ts",
        "packages/plugin-sql/src/__tests__/integration/entity-crud.test.ts",
        "packages/plugin-sql/src/__tests__/integration/world.test.ts",
        "packages/plugin-sql/src/base.ts",
        "packages/server/src/services/message.ts",
        "bun.lock",
        "packages/plugin-sql/src/__tests__/integration/memory.test.ts",
        "packages/plugin-sql/src/__tests__/unit/utils.test.ts",
        "packages/plugin-sql/src/neon/adapter.ts",
        "packages/plugin-sql/src/pg/adapter.ts",
        "packages/plugin-sql/src/pglite/adapter.ts",
        "packages/server/src/__tests__/unit/api/agents-runs.test.ts",
        "packages/server/src/api/agents/runs.ts",
        "packages/server/src/api/index.ts",
        "packages/server/src/api/memory/rooms.ts",
        "packages/server/src/api/messaging/jobs.ts",
        "packages/server/src/api/messaging/sessions.ts",
        "packages/server/src/middleware/rate-limit.ts",
        "packages/server/src/middleware/validation.ts"
      ]
    },
    {
      "title": "chore: Optimize build task inputs in turbo.json",
      "prNumber": 6349,
      "type": "other",
      "body": "Add explicit inputs to build task for cache optimization\r\n\r\n# Risks\r\n\r\nLow\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nMake turbo rebuild less\r\n\r\n## What kind of change is this?\r\n\r\nImprovements (misc. changes to existing features)\r\n\r\n## ",
      "files": [
        "turbo.json"
      ]
    },
    {
      "title": "feat(core): support EMBEDDING_DIMENSION setting to skip API call",
      "prNumber": 6357,
      "type": "feature",
      "body": "## Summary\n- Add support for configuring embedding dimension via `EMBEDDING_DIMENSION` character setting, which skips the expensive ~500ms embedding API call during agent initialization\n- Simplify `ensureEmbeddingDimension` method (38 → 27 ",
      "files": [
        "packages/core/src/__tests__/runtime.test.ts",
        "packages/core/src/runtime.ts"
      ]
    },
    {
      "title": "fix: prevent infinite rebuild loop in dev-watch mode",
      "prNumber": 6361,
      "type": "bugfix",
      "body": "## Summary\n- Fixed infinite rebuild loop in `bun run dev` caused by `generate-version.ts` writing to `src/version.ts` on every build\n- The watcher was detecting these changes and triggering rebuilds endlessly\n\n## Changes\n- **scripts/dev-wat",
      "files": [
        "packages/cli/src/scripts/generate-version.ts",
        "scripts/dev-watch.js"
      ]
    },
    {
      "title": "fix(cli): prevent shell environment variable leakage into agent secrets",
      "prNumber": 6360,
      "type": "bugfix",
      "body": "## Summary\n\nFixes shell environment variable leakage into ElizaOS plugin loading decisions and agent secrets.\n\n**Problem:** `dotenv.config()` does NOT override existing `process.env` values by default. This means shell environment variables",
      "files": [
        "packages/cli/src/__tests__/plugin-env-filter.test.ts",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/utils/plugin-env-filter.ts",
        "packages/core/src/__tests__/env-precedence.test.ts",
        "packages/core/src/__tests__/secrets-filtering.test.ts",
        "packages/core/src/__tests__/utils/environment.test.ts",
        "packages/core/src/secrets.ts",
        "packages/core/src/utils/environment.ts"
      ]
    },
    {
      "title": "fix(v2.0.0): Python example testing & fixes",
      "prNumber": 6358,
      "type": "bugfix",
      "body": "- Add Python quickstart documentation (docs/python-quickstart.md)\r\n- Fix chat example to include inmemorydb plugin for database support\r\n- Add dotenv loading to chat example for .env file support\r\n- Fix inmemorydb plugin to use proper Plugi",
      "files": [
        "examples/a2a/python/README.md",
        "examples/a2a/python/requirements.txt",
        "examples/a2a/python/server.py",
        "examples/art/elizaos_art/games/tic_tac_toe/agent.py",
        "examples/art/elizaos_art/games/tic_tac_toe/cli.py",
        "examples/art/elizaos_art/games/tic_tac_toe/environment.py",
        "examples/art/elizaos_art/games/tic_tac_toe/types.py",
        "examples/art/elizaos_art/trainer.py",
        "examples/atropos/textworld/README.md",
        "examples/atropos/textworld/elizaos_atropos_textworld/__init__.py",
        "examples/atropos/textworld/elizaos_atropos_textworld/agent.py",
        "examples/atropos/textworld/elizaos_atropos_textworld/atropos_integration.py",
        "examples/atropos/textworld/elizaos_atropos_textworld/cli.py",
        "examples/atropos/textworld/elizaos_atropos_textworld/environment.py",
        "examples/atropos/textworld/elizaos_atropos_textworld/types.py",
        "examples/atropos/textworld/pyproject.toml",
        "examples/autonomous/python/pyproject.toml",
        "examples/chat/python/chat.py",
        "examples/chat/python/requirements.txt",
        "packages/python/README.md",
        "packages/python/elizaos/bootstrap/providers/character.py",
        "packages/python/elizaos/plugin.py",
        "packages/python/elizaos/runtime.py",
        "packages/python/elizaos/services/__init__.py",
        "packages/python/elizaos/services/message_service.py",
        "packages/python/elizaos/types/__init__.py",
        "packages/python/elizaos/types/model.py",
        "packages/python/elizaos/types/plugin.py",
        "packages/python/elizaos/types/runtime.py",
        "plugins/plugin-inmemorydb/python/elizaos_plugin_inmemorydb/adapter.py",
        "plugins/plugin-inmemorydb/python/elizaos_plugin_inmemorydb/plugin.py",
        "plugins/plugin-openai/python/elizaos_plugin_openai/plugin.py",
        "examples/art/elizaos_art/benchmark_runner.py",
        "examples/aws/rust/src/lib.rs",
        "examples/bluesky/rust/bluesky-agent/Cargo.toml",
        "examples/bluesky/rust/bluesky-agent/src/handlers.rs",
        "examples/bluesky/rust/bluesky-agent/src/main.rs",
        "examples/browser-extension/chrome/package.json",
        "examples/browser-extension/chrome/tsup.config.ts",
        "examples/chat/rust/chat/Cargo.toml",
        "packages/sweagent/typescript/build.ts",
        "packages/sweagent/typescript/src/agent/extra/index.ts",
        "packages/sweagent/typescript/src/agent/extra/shell-agent.ts",
        "packages/sweagent/typescript/tools/src/filemap/index.ts",
        "plugins/plugin-experience/typescript/tsconfig.build.json",
        "plugins/plugin-forms/typescript/build.ts",
        "plugins/plugin-forms/typescript/tsconfig.build.json",
        "plugins/plugin-goals/typescript/generated/prompts/python/prompts.py",
        "plugins/plugin-goals/typescript/generated/prompts/rust/prompts.rs",
        "plugins/plugin-goals/typescript/generated/prompts/typescript/prompts.ts",
        "plugins/plugin-goals/typescript/tsconfig.build.json",
        "plugins/plugin-mcp/typescript/tsconfig.build.json",
        "examples/_plugin/rust/build.ts",
        "examples/_plugin/typescript/src/__tests__/test-utils.ts",
        "examples/_plugin/typescript/tsconfig.build.json",
        "examples/app/tauri/frontend/src/types/tauri.d.ts",
        "examples/browser-extension/safari/package.json",
        "examples/chat/rust/chat/Cargo.lock",
        "examples/chat/rust/chat/src/main.rs",
        "examples/trader/typescript/src/App.tsx",
        "examples/trader/typescript/src/components/PositionList.tsx",
        "examples/trader/typescript/src/components/TradeHistory.tsx",
        "examples/trader/typescript/src/components/TradingPanel.tsx",
        "examples/trader/typescript/src/hooks/useTrading.ts",
        "examples/trader/typescript/src/runtime/character.ts",
        "examples/trader/typescript/src/types/plugin-auto-trader.d.ts",
        "examples/trader/typescript/vite.config.ts",
        "packages/elizaos/examples-manifest.json",
        "packages/prompts/specs/actions/plugins.generated.json",
        "packages/python/elizaos/generated/action_docs.py",
        "examples/_plugin/typescript/src/e2e/plugin-starter.e2e.ts",
        "examples/_plugin/typescript/src/plugin.ts",
        "examples/_plugin/rust/src/__tests__/e2e/rust-plugin.e2e.ts",
        "examples/_plugin/rust/src/plugin.ts",
        "examples/_plugin/typescript/biome.json",
        "examples/_plugin/typescript/src/__tests__/build-order.test.ts",
        "examples/_plugin/typescript/src/__tests__/cypress/component/ExampleRoute.cy.tsx",
        "examples/_plugin/typescript/src/__tests__/cypress/component/PanelComponent.cy.tsx",
        "examples/_plugin/typescript/src/__tests__/cypress/support/commands.ts",
        "examples/_plugin/typescript/src/__tests__/cypress/support/component.ts",
        "examples/_plugin/typescript/src/__tests__/cypress/tsconfig.json",
        "examples/_plugin/typescript/src/__tests__/integration.test.ts",
        "examples/_plugin/typescript/src/__tests__/plugin.test.ts",
        "examples/_plugin/typescript/src/frontend/index.tsx",
        "examples/_plugin/typescript/src/vite-env.d.ts",
        "examples/_plugin/typescript/tsconfig.json",
        "examples/a2a/typescript/server.ts",
        "examples/avatar/src/shims/process.ts",
        "examples/avatar/src/vite-env.d.ts",
        "examples/bluesky/rust/bluesky-agent/Cargo.lock",
        "examples/browser-extension/chrome/src/popup-minimal.ts"
      ]
    },
    {
      "title": "refactor(plugin-sql): extract domain stores from BaseDrizzleAdapter",
      "prNumber": 6366,
      "type": "refactor",
      "body": "Refactors `BaseDrizzleAdapter` (~3,900 lines) into composable domain stores. This improves maintainability, testability, and separation of concerns without changing the public API.\r\n\r\n## Changes\r\n\r\n### New Domain Stores (`src/stores/`)\r\n\r\n|",
      "files": [
        "bun.lock",
        "packages/plugin-sql/src/base.ts",
        "packages/plugin-sql/src/neon/adapter.ts",
        "packages/plugin-sql/src/pg/adapter.ts",
        "packages/plugin-sql/src/pglite/adapter.ts",
        "packages/plugin-sql/src/stores/agent.store.ts",
        "packages/plugin-sql/src/stores/cache.store.ts",
        "packages/plugin-sql/src/stores/component.store.ts",
        "packages/plugin-sql/src/stores/entity.store.ts",
        "packages/plugin-sql/src/stores/index.ts",
        "packages/plugin-sql/src/stores/log.store.ts",
        "packages/plugin-sql/src/stores/memory.store.ts",
        "packages/plugin-sql/src/stores/messaging.store.ts",
        "packages/plugin-sql/src/stores/participant.store.ts",
        "packages/plugin-sql/src/stores/relationship.store.ts",
        "packages/plugin-sql/src/stores/room.store.ts",
        "packages/plugin-sql/src/stores/task.store.ts",
        "packages/plugin-sql/src/stores/types.ts",
        "packages/plugin-sql/src/stores/world.store.ts",
        "packages/plugin-sql/src/utils.ts",
        "packages/plugin-sql/tsconfig.build.json",
        "packages/plugin-sql/tsconfig.build.node.json",
        "packages/plugin-sql/src/__tests__/integration/utils.test.ts",
        "packages/plugin-sql/src/__tests__/unit/utils.test.ts",
        "packages/plugin-sql/src/index.ts",
        "packages/plugin-sql/src/schema/channel.ts",
        "packages/plugin-sql/src/schema/entity.ts",
        "packages/plugin-sql/src/schema/memory.ts",
        "packages/plugin-sql/src/schema/message.ts",
        "packages/plugin-sql/src/schema/messageServer.ts",
        "packages/plugin-sql/src/schema/relationship.ts",
        "packages/plugin-sql/src/schema/room.ts",
        "packages/plugin-sql/src/schema/tasks.ts",
        "packages/plugin-sql/src/schema/world.ts"
      ]
    },
    {
      "title": "V2.0.0: fixed a2a example and related protobuf compatibility and runtime errors",
      "prNumber": 6386,
      "type": "bugfix",
      "body": "# Relates to\r\nFixes runtime errors in the python & rust a2a server example.\r\n\r\n# Risks\r\nLow. Changes are isolated to the python package and the a2a example server. The fixes ensure correct handling of protobuf messages which strictly enforc",
      "files": [
        "bun.lock",
        "examples/a2a/python/README.md",
        "examples/a2a/python/requirements.txt",
        "examples/a2a/python/server.py",
        "examples/a2a/rust/Cargo.lock",
        "examples/a2a/rust/src/main.rs",
        "packages/python/elizaos/__init__.py",
        "packages/python/elizaos/basic_capabilities/providers/action_state.py",
        "packages/python/elizaos/runtime.py",
        "packages/python/elizaos/services/message_service.py",
        "packages/python/elizaos/types/database.py",
        "packages/python/elizaos/types/primitives.py",
        "packages/python/elizaos/utils/__init__.py",
        "plugins/plugin-inmemorydb/python/elizaos_plugin_inmemorydb/adapter.py"
      ]
    },
    {
      "title": "fix: update import statement in elizaos.js to use package alias",
      "prNumber": 6389,
      "type": "bugfix",
      "body": "<!-- greptile_comment -->\n\n<h2>Greptile Overview</h2>\n\n<h3>Greptile Summary</h3>\n\nUpdated the import statement in `elizaos.js` to use the package alias (`@elizaos/cli`) instead of the direct path (`@elizaos/cli/dist/index.js`). This follows",
      "files": [
        "packages/elizaos/bin/elizaos.js"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 520.3695475941632,
      "prScore": 455.6695475941632,
      "issueScore": 0,
      "reviewScore": 64.5,
      "commentScore": 0.2,
      "summary": "0xbbjoker: Focused on enhancing database reliability and performance within the elizaos/eliza repository, notably resolving a critical SQL parameterization issue in the SQL plugin via PR #6316 (+278/-1 lines). They further contributed to system scalability by proposing a new LRU caching layer for the database adapter in PR #6329 and maintained high code quality through two peer reviews. Their work involved extensive modifications across 378 files, demonstrating a significant commitment to bug fixes and testing infrastructure. Overall, their primary focus this month was on stabilizing and optimizing core database plugins and backend configurations."
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 466.62208373680664,
      "prScore": 366.1300837368066,
      "issueScore": 0,
      "reviewScore": 98,
      "commentScore": 2.492,
      "summary": "standujar: Focused on strengthening the database infrastructure and security within the elizaos/eliza repository, most notably by implementing Neon serverless support and enhancing Row Level Security (RLS) schemas in PR #6343. They demonstrated a significant commitment to system reliability by contributing over 7,700 lines of test code to isolate RLS contexts (PR #6330) and addressing compatibility issues for PGLite (PR #6339). Beyond these merged improvements, they worked on optimizing runtime initialization through parallelization and provided technical feedback via 11 total reviews and comments. Their primary focus this month was on bug fixes and extensive test coverage, particularly within the SQL plugin architecture."
    },
    {
      "username": "madjin",
      "avatarUrl": "https://avatars.githubusercontent.com/u/32600939?u=cdcf89f44c7a50906c7a80d889efa85023af2049&v=4",
      "totalScore": 334.3382171167137,
      "prScore": 281.28021711671363,
      "issueScore": 46.2,
      "reviewScore": 5,
      "commentScore": 1.8579999999999999,
      "summary": "madjin: Focused on expanding the functionality and user experience of the project's web presence, most notably by implementing a comprehensive MMORPG-style character system for the leaderboard API in elizaos/elizaos.github.io #193. This substantial contribution involved over 2,800 lines of code and established a foundation for complex features like class evolution and visual identity systems, which they further detailed through 11 new feature requests and bug reports. Beyond these gamification enhancements, they improved site accessibility by adding an XSL stylesheet for browser-rendered RSS feeds in #188 and identified critical performance bottlenecks regarding memory consumption in the build process. Their work this month primarily centered on feature development and configuration, significantly advancing the project's interactive and data-driven capabilities."
    },
    {
      "username": "greptile-apps",
      "avatarUrl": "https://avatars.githubusercontent.com/in/867647?v=4",
      "totalScore": 276.538,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 274.5,
      "commentScore": 2.0380000000000003,
      "summary": "greptile-apps: Focused exclusively on providing feedback and guidance through 14 code reviews and 4 pull request comments this month. Despite having no direct code changes or merged pull requests, they maintained a consistent presence in the review process to support team contributions. Their primary impact was centered on collaborative oversight and technical discussion within the pull request workflow."
    },
    {
      "username": "YuriNachos",
      "avatarUrl": "https://avatars.githubusercontent.com/u/19365375?u=35202bfa8350f028db180527a789e8dcb7576d42&v=4",
      "totalScore": 249.18435236903713,
      "prScore": 248.98435236903714,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "YuriNachos: Focused on enhancing system stability and core functionality within the elizaos/eliza repository, contributing over 400 lines of code across 10 open pull requests. Their work addressed critical infrastructure needs, such as validating directory paths to prevent errors (#6379), ensuring proper authentication by loading environment variables in agent commands (#6374, #6376), and improving event emission logic in the server (#6378). Additionally, they introduced new capabilities to the core runtime with the unregisterAction method (#6372, #6375) and improved the reliability of entity connections within the bootstrap plugin (#6370, #6371). This month’s efforts were primarily dedicated to bug fixes and feature enhancements aimed at improving the robustness of the CLI and core agent runtime."
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4",
      "totalScore": 230,
      "prScore": 0,
      "issueScore": 230,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "borisudovicic: Focused on refining the user experience and product logic for the Eliza platform, driving the resolution of 18 issues related to agent discovery, chat interface usability, and credit management. They played a key role in defining the \"SDK-first Hooks Mode\" (#5966) and \"Core Hooks\" (#5928) architecture while overseeing critical UI/UX polish, such as optimizing chat box dynamics (#6310) and improving the agent creation workflow (#6306, #6307). Their contributions centered on streamlining the onboarding process for non-signed-up users (#6312, #6353) and enhancing the public agent ecosystem through better state separation and knowledge transfer (#6313, #6303). Overall, their activity focused on product management and quality assurance to ensure a cohesive and scalable agent-building experience."
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 205.42360532830114,
      "prScore": 203.26760532830113,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 2.1559999999999997,
      "summary": "odilitime: Focused on enhancing core plugin functionality and build system efficiency, notably merging a substantial update to the bootstrap plugin and SQL actions in elizaos/eliza (#6333) that involved over 6,900 lines of code changes. They also addressed infrastructure performance by optimizing build task inputs in turbo.json (#6349) and triaged a regression in Discord slash commands (elizaos-plugins/plugin-discord#15). Their work this month demonstrates a strong emphasis on system stability and configuration, with a primary focus on bug fixes and architectural improvements across code and test files."
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 177.48902788001413,
      "prScore": 167.65102788001414,
      "issueScore": 0,
      "reviewScore": 9,
      "commentScore": 0.838,
      "summary": "wtfsayo: Focused on enhancing infrastructure stability and database reliability, notably delivering a significant overhaul to the SQL plugin in elizaos/eliza (#6323) that introduced critical pool configurations and error handling. They also modernized the project's CI/CD pipeline by upgrading Claude workflows to Opus 4.5 and enabling automated bot triggers (#6324, #6328). Across 45 commits, they managed extensive modifications to nearly 400 files, demonstrating a high-impact focus on bug fixes and configuration management. Their primary contributions centered on improving system resilience through robust database integration and automated workflow optimizations."
    },
    {
      "username": "hanzlamateen",
      "avatarUrl": "https://avatars.githubusercontent.com/u/10975502?u=53f23921078d9a27d96751373bb44f4bd2d58bf4&v=4",
      "totalScore": 92.37709407952083,
      "prScore": 92.37709407952083,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "hanzlamateen: Focused on critical compatibility and stability improvements for the V2.0.0 release, notably resolving a2a example and protobuf compatibility issues in elizaos/eliza via PR #6386. This significant contribution involved modifying 35 files and over 500 lines of code to ensure seamless integration across the platform's core components. They also initiated further fixes for the avatar example and elevenlabs plugin in PR #6387, demonstrating a commitment to functional reliability. Their primary focus this month was split between major refactoring and feature work, with a strong emphasis on code quality and documentation."
    },
    {
      "username": "1bcMax",
      "avatarUrl": "https://avatars.githubusercontent.com/u/195689928?u=85f5178dd043e3d408b42cb5685e65806d723b1a&v=4",
      "totalScore": 63.23034748685607,
      "prScore": 62.89034748685607,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": "1bcMax: Focused on expanding payment capabilities within the ecosystem by initiating the implementation of the plugin-blockrun for x402 micropayments in elizaos/eliza (#6355). This substantial feature addition involved over 1,000 lines of new code across 11 files, demonstrating a significant investment in building out financial infrastructure. The work shows a comprehensive approach to development, with a balanced focus on core feature logic, testing, and configuration."
    },
    {
      "username": "vbkotecha",
      "avatarUrl": "https://avatars.githubusercontent.com/u/86377299?u=32a79d9adc10f2738dca41f4690de9ec944d8025&v=4",
      "totalScore": 43.5437738965761,
      "prScore": 43.5437738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "vbkotecha: Focused on enhancing authentication capabilities within the twitter plugin, specifically developing a new broker authentication mode supported by a robust offline testing suite in PR #47. This work involved significant technical effort, contributing over 2,500 lines of code across 31 files to ensure the feature's reliability. Their activity demonstrates a balanced commitment to feature implementation and quality assurance, with a primary focus on backend logic and comprehensive test coverage."
    },
    {
      "username": "revlentless",
      "avatarUrl": "https://avatars.githubusercontent.com/u/215957173?v=4",
      "totalScore": 43.5437738965761,
      "prScore": 43.5437738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "revlentless: Focused on a major architectural expansion by initiating the implementation of a WebAssembly agent runtime for the v2.0.0 release of elizaos/eliza (#6363). This significant undertaking involved modifying 99 files with over 5,100 lines of code, demonstrating a high level of effort directed toward core feature development and system infrastructure. Their work this month was characterized by a heavy emphasis on feature engineering and comprehensive testing to support this new runtime environment."
    },
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 34.5787738965761,
      "prScore": 34.1407738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "lalalune: Focused on a massive structural overhaul of the codebase, primarily driven by the ongoing development of the \"V2.0.0\" release in elizaos/eliza (#6351). This high-impact effort involved 191 commits and extensive modifications across over 33,000 files, signaling a comprehensive restructuring of the project's architecture. Their work demonstrated a balanced commitment to stability and quality, with a primary focus on bugfixes, configuration updates, and core code enhancements."
    },
    {
      "username": "matomoniwano",
      "avatarUrl": "https://avatars.githubusercontent.com/u/47988393?u=2e31304db3ca7b0a1f62bc26443c25ec34bb519d&v=4",
      "totalScore": 29.89251334905818,
      "prScore": 29.69251334905818,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "matomoniwano: Focused on foundational development for the Eliza Python core by initiating a prototype for the RLM provider via PR #6383. This ongoing work involved substantial technical groundwork across 16 files, totaling over 800 lines of code changes to establish the necessary infrastructure. Their efforts were primarily concentrated on configuration, documentation, and testing to ensure a robust framework for the new provider. The month’s activity reflects a dedicated focus on architectural setup and system integration within the Python-based ecosystem."
    },
    {
      "username": "linear",
      "avatarUrl": "https://avatars.githubusercontent.com/in/20150?v=4",
      "totalScore": 26,
      "prScore": 0,
      "issueScore": 26,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "linear: Focused on architectural improvements and system stability by identifying and documenting critical technical enhancements across the elizaos/eliza repository. They prioritized core infrastructure by proposing solutions for JWT authentication (#6327), message processing parallelization (#6337), and runtime initialization optimization (#6334). Their contributions also addressed immediate reliability issues, including a fix for double processing in the Messaging API (#6298) and resolving a race condition in credit deduction (#6338). Overall, their focus remained on high-level system design, database query patterns, and backend security."
    },
    {
      "username": "rejected-l",
      "avatarUrl": "https://avatars.githubusercontent.com/u/99460023?u=977f49541583c40f4fc5f6a9f11ca6c6a78b362a&v=4",
      "totalScore": 24.119306144334054,
      "prScore": 24.119306144334054,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "rejected-l: Focused on administrative maintenance within the elizaos/eliza repository, specifically ensuring legal compliance by updating the project's licensing information. They successfully merged PR #6301 to update the license year, demonstrating attention to project documentation and upkeep. This work involved minor adjustments across two files, reflecting a primary focus on general repository maintenance and chore-related tasks."
    },
    {
      "username": "augchan42",
      "avatarUrl": "https://avatars.githubusercontent.com/u/20424105?u=d1a74732b07564927928798346f07cd50935c529&v=4",
      "totalScore": 22.553332238032112,
      "prScore": 22.553332238032112,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "augchan42: Focused on enhancing API integration standards by introducing support for X-Title and HTTP-Referer headers in the OpenRouter plugin via PR #23. This work involved modifying four files to improve metadata transparency and compliance for outgoing requests. Their contributions this month were evenly split between feature implementation and documentation updates, ensuring that new configuration options are properly supported and recorded."
    },
    {
      "username": "Xayaan",
      "avatarUrl": "https://avatars.githubusercontent.com/u/5237930?u=7840b286463bde982c8af8f389e61e26a01328cb&v=4",
      "totalScore": 18.346573590279974,
      "prScore": 14.346573590279972,
      "issueScore": 4,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "Xayaan: Focused on identifying and documenting database-related edge cases within the elizaos/eliza repository. They contributed by reporting a specific technical issue regarding SQL error handling for zero-vector fallbacks (#6380). Their activity this month was centered on issue identification and system stability reporting."
    },
    {
      "username": "BaseGold",
      "avatarUrl": "https://avatars.githubusercontent.com/u/240206422?u=6eb4bd10d4ab502d36d022d95331370c5b76e055&v=4",
      "totalScore": 16.833213344056215,
      "prScore": 16.833213344056215,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "BaseGold: Focused on enhancing the connectivity capabilities of the MCP plugin by implementing the StreamableHTTP transport and custom headers functionality in elizaos-plugins/plugin-mcp (#20). This contribution directly improves the flexibility of the plugin's communication layer by allowing for more complex HTTP configurations. Their work this month was centered entirely on feature development within the codebase to support advanced transport protocols."
    },
    {
      "username": "j4lambert",
      "avatarUrl": "https://avatars.githubusercontent.com/u/36552964?v=4",
      "totalScore": 15.545521226679158,
      "prScore": 15.545521226679158,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "j4lambert: Focused on establishing project safety protocols by initiating the creation of a security policy for the elizaos/eliza repository. They opened PR #6428 to introduce a SECURITY.md file, providing essential guidelines for vulnerability reporting. This contribution represents their primary focus on documentation and project governance for the month."
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=de148a498b5af814e037c2975112fadd09df743f&v=4",
      "totalScore": 15,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 15,
      "commentScore": 0,
      "summary": "ChristopherTrimboli: Focused on quality assurance and peer collaboration this month, contributing through the review and approval of two pull requests. Their involvement centered on providing oversight and validation for team contributions rather than direct code implementation. This activity reflects a focus on maintaining project standards through the code review process."
    },
    {
      "username": "timolein74",
      "avatarUrl": "https://avatars.githubusercontent.com/u/225394307?v=4",
      "totalScore": 14.346573590279972,
      "prScore": 14.346573590279972,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "timolein74: This month, the contributor focused on expanding the ecosystem's integration capabilities by initiating a pull request to the elizaos-plugins/registry. They submitted a configuration update to add the AsterPay plugin reference to the central index (#251). This work represents a targeted effort in feature expansion through registry management and configuration updates."
    },
    {
      "username": "takasaki404",
      "avatarUrl": "https://avatars.githubusercontent.com/u/193405421?u=8b79613f736e04d6e10ebe37042851efa758768d&v=4",
      "totalScore": 14.346573590279972,
      "prScore": 14.346573590279972,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "takasaki404: Focused on ecosystem expansion by initiating the integration of new tools into the plugin registry. They submitted a configuration update in elizaos-plugins/registry (#247) to add the @zane-archer/plugin-aimo-router package. This contribution was centered entirely on registry management and configuration maintenance."
    },
    {
      "username": "project-aeris-disaster-agent",
      "avatarUrl": "https://avatars.githubusercontent.com/u/242933833?v=4",
      "totalScore": 14.346573590279972,
      "prScore": 14.346573590279972,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "project-aeris-disaster-agent: Focused on expanding the ecosystem's integration capabilities by initiating the addition of the Sportradar plugin to the registry. This effort is represented by the open pull request in elizaos-plugins/registry (#250), which aims to incorporate @elizaos/plugin-sportradar into the official directory. Their primary focus this month has been on plugin registration and ecosystem discoverability."
    },
    {
      "username": "kamiyo-ai",
      "avatarUrl": "https://avatars.githubusercontent.com/u/197570892?u=4c83683aeb4fdfcb6c7e747ec6fd77619964952b&v=4",
      "totalScore": 14.346573590279972,
      "prScore": 14.346573590279972,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "kamiyo-ai: Focused on expanding the ecosystem by initiating the integration of a new plugin into the registry. This effort is centered on the submission of PR #246 in elizaos-plugins/registry to add the @kamiyo/eliza plugin. Their primary focus this month has been on plugin registration and ecosystem contribution."
    },
    {
      "username": "CIII-glitch",
      "avatarUrl": "https://avatars.githubusercontent.com/u/256561388?v=4",
      "totalScore": 14.346573590279972,
      "prScore": 14.346573590279972,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "CIII-glitch: Focused on expanding ecosystem connectivity by initiating the integration of the Agent Index plugin for x402 endpoint discovery. This contribution, currently tracked in elizaos-plugins/registry #252, aims to enhance service discovery capabilities within the registry. Their primary focus this month was on infrastructure registration and plugin discovery."
    },
    {
      "username": "shuhaib112",
      "avatarUrl": "https://avatars.githubusercontent.com/u/211030292?v=4",
      "totalScore": 9,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 9,
      "commentScore": 0,
      "summary": "shuhaib112: Focused on collaborative quality assurance by providing technical feedback through two pull request reviews. While no code was directly authored or merged this month, their contributions centered on the peer review process to support team development. Their primary impact was limited to these review-based discussions."
    },
    {
      "username": "Abdulkader-Safi",
      "avatarUrl": "https://avatars.githubusercontent.com/u/53955839?u=840e43b472d25cb1a82c19b77124def52dfaa69c&v=4",
      "totalScore": 4.54,
      "prScore": 0,
      "issueScore": 4.2,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": "Abdulkader-Safi: Focused on troubleshooting and reporting environment-specific setup issues within the elizaos/eliza repository. They identified and documented a project generation failure in issue #6388, which was subsequently resolved. Their activity this month was centered on issue triage and community engagement through issue comments rather than direct code contributions."
    },
    {
      "username": "thewoweffect",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113222443?u=cb21d15b0ce815d0f68167f2eca236aad6c64598&v=4",
      "totalScore": 4.4,
      "prScore": 0,
      "issueScore": 4.2,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "thewoweffect: Focused on identifying and documenting system errors within the elizaos/eliza repository, specifically reporting a failure in the reflection evaluator. They successfully triaged and closed issue #6364 regarding the \"Entity not found\" error during update operations. Their activity this month was centered on issue reporting and troubleshooting within the core framework."
    },
    {
      "username": "samarth30",
      "avatarUrl": "https://avatars.githubusercontent.com/u/48334430?u=1fc119a6c2deb8cf60448b4c8961cb21dc69baeb&v=4",
      "totalScore": 4,
      "prScore": 0,
      "issueScore": 4,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "samarth30: Focused on project expansion by proposing a new \"Apps promotion\" feature for the elizaos/eliza repository. This contribution involved identifying a growth opportunity and documenting the requirement in issue #6341. Their primary focus this month was on feature ideation and initial project planning."
    },
    {
      "username": "Zenobow",
      "avatarUrl": "https://avatars.githubusercontent.com/u/255418143?v=4",
      "totalScore": 2.1,
      "prScore": 0,
      "issueScore": 2.1,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "Zenobow: Focused on identifying and documenting system inconsistencies within the elizaos/eliza repository. They reported a technical regression regarding eligibility mismatches and snapshot bugs related to Tangem Hardware (#6369). Their primary focus this month was on issue identification and troubleshooting hardware-related migration bugs."
    },
    {
      "username": "tdnupe3",
      "avatarUrl": "https://avatars.githubusercontent.com/u/25161668?u=94680b6bcbcfce954c7a9dd09d667a3919953041&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "tdnupe3: Focused on expanding the ecosystem's financial capabilities by proposing a comprehensive implementation guide for AI agent payments. They initiated a strategic discussion in elizaos/eliza (#6365) regarding the integration of Circle and Coinbase APIs to facilitate automated transactions. Their primary focus this month was on architectural planning and documentation for payment infrastructure."
    },
    {
      "username": "metatev",
      "avatarUrl": "https://avatars.githubusercontent.com/u/26566294?u=a0604d1f9f7a7936e350643ffccaef1f2a808fad&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "metatev: Focused on long-term project capabilities by proposing a strategic enhancement for smart contract deployment. They initiated a discussion on future infrastructure needs within the elizaos/eliza repository by opening issue #6367. Their primary focus this month was on architectural planning and expanding the platform's functional scope."
    },
    {
      "username": "GarrickBrown",
      "avatarUrl": "https://avatars.githubusercontent.com/u/41980127?u=605528eb2347d8e0368ae5b08e6fdbdbfb5c293b&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "GarrickBrown: Focused on identifying and reporting stability issues within the Telegram plugin ecosystem. They documented a critical TypeError occurring during image processing, opening issue #23 in elizaos-plugins/plugin-telegram to facilitate a fix for the crashing bug. Their primary focus this month was on bug reporting and improving the reliability of plugin-based image handling."
    },
    {
      "username": "BinaryBluePeach",
      "avatarUrl": "https://avatars.githubusercontent.com/u/192237769?v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "BinaryBluePeach: Focused on identifying and reporting integration issues within the Discord plugin ecosystem. They documented a critical runtime error regarding undefined message functions in elizaos-plugins/plugin-discord (#43), providing essential feedback for troubleshooting the plugin's communication layer. Their activity this month was centered on bug reporting and system stability within the Discord integration."
    }
  ],
  "newPRs": 38,
  "mergedPRs": 22,
  "newIssues": 100,
  "closedIssues": 54,
  "activeContributors": 31
}