{
  "interval": {
    "intervalStart": "2026-01-25T00:00:00.000Z",
    "intervalEnd": "2026-02-01T00:00:00.000Z",
    "intervalType": "week"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2026-01-25 to 2026-02-01, elizaos/eliza had 2 new PRs (2 merged), 51 new issues, and 14 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_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_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
    },
    {
      "id": "I_kwDOMT5cIs7X7kCl",
      "title": "Plugin Submission: Coin Railz x402 Micropayment Services",
      "author": "tdnupe3",
      "number": 6148,
      "repository": "elizaos/eliza",
      "body": "## Plugin Submission Request\n\n**Repository:** https://github.com/tdnupe3/coinrailz-eliza-plugin  \n**Type:** x402 protocol infrastructure plugin  \n**Status:** Production-ready\n\n### Overview\nThis plugin adds x402 micropayment protocol support for ElizaOS agents, enabling autonomous payment for API services using USDC on Base mainnet.\n\n**Technical Capabilities:**\n- Multi-chain balance queries\n- Gas price monitoring across chains\n- Token price feeds and metadata\n- Smart contract analysis\n- Wallet risk scoring\n- DEX liquidity data\n- Transaction building utilities\n- Cross-chain bridging\n\n**Protocol:** x402 (HTTP 402 Payment Required) with Coinbase CDP facilitator  \n**Network:** Base mainnet  \n**Payment Token:** USDC\n\n### Technical Features\n✅ Full TypeScript implementation with type definitions  \n✅ Automatic x402 payment handling  \n✅ Coinbase CDP facilitator integration  \n✅ Comprehensive documentation\n\n### Installation\n```bash\nnpm install github:tdnupe3/coinrailz-eliza-plugin\n\nUsage\n\nimport { coinrailzPlugin } from 'coinrailz-eliza-plugin';\n\nconst agent = new Agent({\n  plugins: [coinrailzPlugin]\n});\n\nPlease review for inclusion in the ElizaOS plugin ecosystem.",
      "createdAt": "2025-11-13T20:29:18Z",
      "closedAt": "2026-01-26T23:05:12Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7l9Nw7",
      "title": "[UI] Lander",
      "author": "borisudovicic",
      "number": 6427,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2026-01-26T22:57:58Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "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
    },
    {
      "id": "PR_kwDOMT5cIs6-t40m",
      "title": "V2.0.0: fixed a2a example and related protobuf compatibility and runtime errors",
      "author": "hanzlamateen",
      "number": 6386,
      "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 enforces typing and structure, reducing the risk of runtime type errors.\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\nThis PR fixes type compatibility issues in the python package and resolves critical runtime exceptions (`AttributeError`, `TypeError`, `ValueError`) preventing the python a2a server from running. It updates the `elizaos` core package and the `inmemorydb` plugin to correctly interface with generated Protobuf classes, which do not support dynamic dictionary-style access. It also cleans up the a2a example's dependencies and configuration.\r\n\r\nIt also addresses critical runtime failures in the rust a2a example server: including database initialization, missing core actions, and model configuration bugs.\r\n\r\n## What kind of change is this?\r\n- Bug fixes (non-breaking change which fixes an issue)\r\n- Improvements (misc. changes to existing features)\r\n\r\n## Why are we doing this? Any context or related work?\r\nThe python a2a server example was failing to start and respond to requests because the code treated strict Protobuf message objects as flexible python dictionaries. This led to failures when assigning values to `State` objects or serializing `Memory` objects. These fixes make the Python implementation functional and compatible with the generated Protobuf types.\r\n\r\nAlso the rust a2a server example crashes on startup or hangs during execution due to broken dependencies (custom DB adapter, missing `bootstrap` actions) and invalid default configuration (plugin defaulting to `gpt-5`). This PR makes the example functional again.\r\n\r\n# Documentation changes needed?\r\n- My changes require a change to the project documentation.\r\n- If documentation change is needed: I have updated the documentation accordingly. (Updated `examples/a2a/python/README.md`)\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\n- `packages/python/elizaos/runtime.py`: Verify the logic change for updating `state.values` and initializing `state.data.providers`.\r\n- `examples/a2a/python/server.py`: Check the field name correction and simplified imports.\r\n- `plugins/plugin-inmemorydb/python/elizaos_plugin_inmemorydb/adapter.py`: Review the `MessageToDict` fix for serializing Memory objects.\r\n- `packages/python/elizaos/types/database.py`: New type definitions.\r\n- - `examples/a2a/rust/src/main.rs`: Core logic changes for the Rust server.\r\n\r\n## Detailed testing steps\r\n\r\n### python\r\n\r\n1. Use the updated installation instructions in `examples/a2a/python/README.md` to set up the environment.\r\n2. Run the server: `python examples/a2a/python/server.py`\r\n3. Verify startup works without import errors.\r\n4. Send a test chat message via curl:\r\n   ```bash\r\n   curl -X POST http://localhost:3000/chat \\\r\n        -H \"Content-Type: application/json\" \\\r\n        -d '{\"message\": \"Hello\"}'\r\n   ```\r\n5. Confirm a JSON response is received (e.g., from `eliza-classic` or OpenAI if configured).\r\n\r\n### rust\r\n\r\n1. Set `OPENAI_API_KEY` in .env or terminal and run.\r\n2. Run `cargo run --release` in `examples/a2a/rust`.\r\n3. Send a test chat message via curl:\r\n   ```bash\r\n   curl -X POST http://localhost:3000/chat \\\r\n        -H \"Content-Type: application/json\" \\\r\n        -d '{\"message\": \"Hello\"}'\r\n   ```\r\n4. Confirm a JSON response is received (e.g., from `eliza-classic` or OpenAI if configured).\r\n\r\n## Database changes\r\nN/A\r\n\r\n## Deployment instructions\r\nN/A\r\n\r\n## Discord username\r\n@hanzlamateen\r\n\r\n<!-- greptile_comment -->\r\n\r\n<h3>Greptile Summary</h3>\r\n\r\n\r\n- Fixes critical runtime errors in Python and Rust A2A server examples by addressing Protobuf type compatibility issues that were causing `AttributeError`, `TypeError`, and `ValueError` exceptions\r\n- Updates Python ElizaOS package to properly handle strict Protobuf message objects using `MessageToDict` serialization and attribute-based field access instead of dictionary-style operations  \r\n- Resolves Rust A2A server crashes by implementing missing database adapter methods, adding default model configuration, and providing local bootstrap actions when OpenAI API is unavailable\r\n\r\n<h3>Important Files Changed</h3>\r\n\r\n\r\n| Filename | Overview |\r\n|----------|----------|\r\n| `packages/python/elizaos/runtime.py` | Fixed Protobuf compatibility by implementing proper state.values updates and MessageToDict conversion for character settings |\r\n| `examples/a2a/rust/src/main.rs` | Comprehensive rewrite implementing complete in-memory database adapter, model configuration fixes, and local bootstrap actions |\r\n| `plugins/plugin-inmemorydb/python/elizaos_plugin_inmemorydb/adapter.py` | Added Protobuf message detection and MessageToDict serialization for create_memory method |\r\n| `examples/a2a/python/server.py` | Fixed field name inconsistency from `channelType` to `channel_type` to match Protobuf schema requirements |\r\n\r\n<h3>Confidence score: 4/5</h3>\r\n\r\n\r\n- This PR addresses legitimate runtime compatibility issues with well-targeted fixes for Protobuf type handling\r\n- Score reduced due to the comprehensive nature of changes across multiple languages and complex Protobuf interaction patterns that could introduce edge cases\r\n- Pay close attention to the runtime.py and main.rs files which contain the most complex logic changes and could impact broader system functionality\r\n\r\n<h3>Sequence Diagram</h3>\r\n\r\n```mermaid\r\nsequenceDiagram\r\n    participant User\r\n    participant FastAPI as \"FastAPI Server\"\r\n    participant ChatHandler as \"handle_chat()\"\r\n    participant Runtime as \"AgentRuntime\"\r\n    participant MessageService as \"DefaultMessageService\"\r\n    participant StateComposer as \"compose_state()\"\r\n    participant Providers as \"Providers\"\r\n    participant Model as \"LLM Model\"\r\n    participant Actions as \"Actions\"\r\n    participant Memory as \"InMemoryDB\"\r\n\r\n    User->>FastAPI: \"POST /chat {message: 'Hello'}\"\r\n    FastAPI->>ChatHandler: \"handle_chat(message, session_id)\"\r\n    ChatHandler->>Runtime: \"get_runtime()\"\r\n    Runtime-->>ChatHandler: \"initialized runtime\"\r\n    \r\n    ChatHandler->>ChatHandler: \"get_or_create_session(session_id)\"\r\n    ChatHandler->>ChatHandler: \"create Content & Memory objects\"\r\n    \r\n    ChatHandler->>MessageService: \"handle_message(runtime, message)\"\r\n    MessageService->>Memory: \"create_memory(message, 'messages')\"\r\n    MessageService->>StateComposer: \"compose_state(message)\"\r\n    \r\n    StateComposer->>Providers: \"execute providers (ACTION_STATE, RECENT_MESSAGES, etc.)\"\r\n    Providers-->>StateComposer: \"provider results with fixed protobuf access\"\r\n    StateComposer-->>MessageService: \"composed state\"\r\n    \r\n    MessageService->>MessageService: \"build_canonical_prompt()\"\r\n    MessageService->>Model: \"use_model(TEXT_LARGE, prompt)\"\r\n    Model-->>MessageService: \"raw XML response\"\r\n    \r\n    MessageService->>MessageService: \"parse actions, text, params from XML\"\r\n    MessageService->>Actions: \"process_actions(message, responses, state)\"\r\n    Actions-->>MessageService: \"action results\"\r\n    \r\n    MessageService->>Memory: \"create_memory(response_memory, 'messages')\"\r\n    MessageService-->>ChatHandler: \"MessageProcessingResult\"\r\n    \r\n    ChatHandler-->>FastAPI: \"response text\"\r\n    FastAPI-->>User: \"ChatResponse with agent response\"\r\n```\r\n\r\n<!-- greptile_other_comments_section -->\r\n\r\n<details><summary><h3>Context used (3)</h3></summary>\r\n\r\n- Context from `dashboard` - CLAUDE.md ([source](https://app.greptile.com/review/custom-context?memory=8ef4c9a3-e221-4aef-8556-8c9b88bf6bbb))\r\n- Context from `dashboard` - .cursorrules ([source](https://app.greptile.com/review/custom-context?memory=00074882-001f-44b1-89c4-859ed3656db9))\r\n- Context from `dashboard` - AGENTS.md ([source](https://app.greptile.com/review/custom-context?memory=51febe90-8918-4f18-be1f-d43bb68d696c))\r\n</details>\r\n\r\n\r\n<!-- /greptile_comment -->",
      "repository": "elizaos/eliza",
      "createdAt": "2026-01-22T14:54:11Z",
      "mergedAt": "2026-01-27T23:23:54Z",
      "additions": 448,
      "deletions": 95
    },
    {
      "id": "PR_kwDOMT5cIs6qngmd",
      "title": "Fix(runtime): Ensure agent creation handles missing agent gracefully",
      "author": "digitalsimboja",
      "number": 6007,
      "body": "Fixes #6003\r\n\r\nRelates to\r\n\r\nFixes runtime crash when getAgent() fails due to missing agents table or undefined character.id.\r\n\r\nRisks\r\n\r\nLow – affects only agent initialization during startup.\r\n\r\nBackground\r\n\r\nAgentRuntime previously crashed if the agents table was missing or if no agent record was found. This PR ensures runtime startup by handling errors gracefully and creating the agent when necessary.\r\n\r\nWhat does this PR do?\r\n\r\nWraps getAgent() in try/catch.\r\n\r\nFalls back to createAgent() if no agent exists.\r\n\r\nLogs clear error if character.id is missing.\r\n\r\nType of change\r\n\r\nBug fix – non-breaking, improves startup resilience.\r\n\r\nTesting\r\n\r\nStart runtime with a new Postgres DB (no agents table).\r\n\r\nStart runtime with character config missing id.\r\n\r\nVerify runtime does not crash and agent is created or error is logged clearly.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-26T03:53:14Z",
      "mergedAt": null,
      "additions": 22,
      "deletions": 16
    },
    {
      "id": "PR_kwDOMT5cIs6_pt91",
      "title": "Create SECURITY.md",
      "author": "j4lambert",
      "number": 6428,
      "body": "<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\r\n\r\n# Relates to\r\n\r\n<!-- LINK TO ISSUE OR TICKET -->\r\n\r\n<!-- This risks section must be filled out before the final review 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-->\n\n<!-- greptile_comment -->\n\n<h2>Greptile Overview</h2>\n\n<h3>Greptile Summary</h3>\n\nAdded a SECURITY.md file using GitHub's default template, but the content was not customized for the ElizaOS project.\n\n- The \"Supported Versions\" table lists incorrect version numbers (5.1.x, 5.0.x, 4.0.x) that don't match ElizaOS's actual versioning scheme (currently at v1.7.x)\n- The \"Reporting a Vulnerability\" section contains only placeholder text instructing authors to fill in the content, with no actual reporting instructions\n- The file should be updated with ElizaOS-specific information: accurate version numbers, actual vulnerability reporting channels (GitHub Security Advisories, Discord), and expected response timelines\n\n<h3>Confidence Score: 1/5</h3>\n\n- This PR should not be merged without completing the SECURITY.md content with project-specific information\n- Score reflects that while adding a SECURITY.md file is good practice, this PR only adds GitHub's unmodified template with placeholder text and incorrect version numbers. The file provides no actual value to users trying to report vulnerabilities or understand which versions receive security updates.\n- SECURITY.md requires complete rewrite with actual ElizaOS project information\n\n<h3>Important Files Changed</h3>\n\n\n\n\n| Filename | Overview |\n|----------|----------|\n| SECURITY.md | Added GitHub's default SECURITY.md template without customization - contains placeholder text and incorrect version numbers (5.1.x instead of 1.7.x) |\n\n</details>\n\n\n\n<h3>Sequence Diagram</h3>\n\n```mermaid\nsequenceDiagram\n    participant User as Security Researcher\n    participant GH as GitHub Repository\n    participant SECURITY as SECURITY.md File\n    participant Team as ElizaOS Team\n\n    User->>GH: Visit repository\n    User->>SECURITY: Read SECURITY.md\n    Note over SECURITY: Currently shows<br/>placeholder template<br/>with wrong versions\n    SECURITY-->>User: Template text:<br/>\"Use this section to...\"\n    User->>User: Confused about<br/>how to report\n    \n    Note over User,Team: Expected Flow (after fix):\n    User->>SECURITY: Read SECURITY.md\n    SECURITY-->>User: Clear instructions:<br/>1.7.x supported<br/>Use GitHub Security<br/>Advisories or Discord\n    User->>Team: Reports vulnerability<br/>via proper channel\n    Team->>User: Response within 48h\n```\n\n<!-- greptile_other_comments_section -->\n\n<sub>(2/5) Greptile learns from your feedback when you react with thumbs up/down!</sub>\n\n<!-- /greptile_comment -->",
      "repository": "elizaos/eliza",
      "createdAt": "2026-01-27T16:50:05Z",
      "mergedAt": null,
      "additions": 21,
      "deletions": 0
    },
    {
      "id": "PR_kwDOMT5cIs6_O_66",
      "title": "fix: update import statement in elizaos.js to use package alias",
      "author": "standujar",
      "number": 6389,
      "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 Node.js best practices by relying on the package's exports field defined in `@elizaos/cli/package.json`, which maps `.` to `./dist/index.js`.\n\n**Changes:**\n- Replaced direct dist path import with package alias for better maintainability\n- The change is functionally equivalent and resolves to the same file via package.json exports\n- Improves consistency with standard Node.js module resolution patterns\n\n<h3>Confidence Score: 5/5</h3>\n\n- This PR is safe to merge with no risk\n- The change is a simple refactor from a direct path import to a package alias, which is functionally equivalent and follows Node.js best practices. The `@elizaos/cli` package correctly defines its exports in package.json, mapping the default export to dist/index.js. This is a clean improvement that enhances maintainability without changing behavior.\n- No files require special attention\n\n<h3>Important Files Changed</h3>\n\n\n\n\n| Filename | Overview |\n|----------|----------|\n| packages/elizaos/bin/elizaos.js | Updated import to use package alias instead of direct dist path |\n\n</details>\n\n\n\n<h3>Sequence Diagram</h3>\n\n```mermaid\nsequenceDiagram\n    participant User\n    participant elizaos as elizaos package\n    participant cli as @elizaos/cli package\n    participant index as dist/index.js\n    \n    User->>elizaos: Run `elizaos` command\n    elizaos->>elizaos: Load bin/elizaos.js\n    Note over elizaos: import '@elizaos/cli'\n    elizaos->>cli: Resolve package alias\n    cli->>cli: Check package.json exports\n    Note over cli: \".\" → \"./dist/index.js\"\n    cli->>index: Execute CLI entry point\n    index->>User: Run CLI command\n```\n\n<!-- greptile_other_comments_section -->\n\n<!-- /greptile_comment -->",
      "repository": "elizaos/eliza",
      "createdAt": "2026-01-25T14:02:38Z",
      "mergedAt": "2026-01-26T11:53:26Z",
      "additions": 1,
      "deletions": 1
    }
  ],
  "codeChanges": {
    "additions": 449,
    "deletions": 96,
    "files": 15,
    "commitCount": 7
  },
  "completedItems": [
    {
      "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": 145.67904680509304,
      "prScore": 109.47904680509303,
      "issueScore": 0,
      "reviewScore": 36,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4",
      "totalScore": 112,
      "prScore": 0,
      "issueScore": 112,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "greptile-apps",
      "avatarUrl": "https://avatars.githubusercontent.com/in/867647?v=4",
      "totalScore": 58.7,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 58.5,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "madjin",
      "avatarUrl": "https://avatars.githubusercontent.com/u/32600939?u=cdcf89f44c7a50906c7a80d889efa85023af2049&v=4",
      "totalScore": 56.133019117260886,
      "prScore": 49.79301911726088,
      "issueScore": 6,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": null
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 47.63961228866811,
      "prScore": 46.861612288668105,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.7779999999999999,
      "summary": null
    },
    {
      "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": null
    },
    {
      "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": null
    },
    {
      "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": null
    },
    {
      "username": "j4lambert",
      "avatarUrl": "https://avatars.githubusercontent.com/u/36552964?v=4",
      "totalScore": 15.545521226679158,
      "prScore": 15.545521226679158,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "timolein74",
      "avatarUrl": "https://avatars.githubusercontent.com/u/225394307?v=4",
      "totalScore": 14.346573590279972,
      "prScore": 14.346573590279972,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "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": null
    },
    {
      "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": null
    }
  ],
  "newPRs": 2,
  "mergedPRs": 2,
  "newIssues": 51,
  "closedIssues": 12,
  "activeContributors": 14
}