{
  "interval": {
    "intervalStart": "2025-05-28T00:00:00.000Z",
    "intervalEnd": "2025-05-29T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-05-28 to 2025-05-29, elizaos/eliza had 12 new PRs (6 merged), 4 new issues, and 16 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs64htk6",
      "title": "can't find definition file for node or jest",
      "author": "BinaryBluePeach",
      "number": 4805,
      "repository": "elizaos/eliza",
      "body": "**I have tried so many things. Does someone have a solution?**\n\n[{\n\"resource\": \"/c:/Users/boost/AIagent/agent/tsconfig.json\",\n\"owner\": \"typescript\",\n\"severity\": 8,\n\"message\": \"Cannot find type definition file for 'jest'.\\n The file is in the program because:\\n Entry point of type library 'jest' specified in compilerOptions\",\n\"source\": \"ts\",\n\"startLineNumber\": 1,\n\"startColumn\": 1,\n\"endLineNumber\": 1,\n\"endColumn\": 2\n}]\n\n[{\n\"resource\": \"/c:/Users/boost/AIagent/agent/tsconfig.json\",\n\"owner\": \"typescript\",\n\"severity\": 8,\n\"message\": \"Cannot find type definition file for 'node'.\\n The file is in the program because:\\n Entry point of type library 'node' specified in compilerOptions\",\n\"source\": \"ts\",\n\"startLineNumber\": 1,\n\"startColumn\": 1,\n\"endLineNumber\": 1,\n\"endColumn\": 2\n}]",
      "createdAt": "2025-05-28T03:12:19Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 2
    },
    {
      "id": "I_kwDOMT5cIs64rAbd",
      "title": "New sample project fails e2e tests",
      "author": "scottrepreneur",
      "number": 4814,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\nEnd-to-end tests fail on new sample project\n\n**To Reproduce**\n\n1. clone v1 sample `npm create eliza@beta`\n2. build project `npm run build`\n3. run e2e tests `npm run e2e:test`\n\n**Expected behavior**\n\nShouldn't fail\n\n**Screenshots**\n\nCurrently fails\n```bash\nRunning e2e tests...\nINFO: Found 2 e2e test files\nINFO: Loading test file: project.test.ts\nWARN: No dist/e2e directory found. E2E tests should be compiled first. Import may fail.\nERROR: Failed to import test file project.test.ts:\n    message: \"(TypeError) Unknown file extension \\\".ts\\\" for ~/Repos/sample/e2e/project.test.ts\"\n    stack: [\n      \"TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension \\\".ts\\\" for ~/Repos/sample/e2e/project.test.ts\",\n      \"at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:176:9)\",\n      \"at defaultGetFormat (node:internal/modules/esm/get_format:219:36)\",\n      \"at defaultLoad (node:internal/modules/esm/load:143:22)\",\n      \"at async ModuleLoader.load (node:internal/modules/esm/loader:555:7)\",\n      \"at async ModuleLoader.moduleProvider (node:internal/modules/esm/loader:434:45)\",\n      \"at async link (node:internal/modules/esm/module_job:87:21)\"\n    ]\nINFO: Make sure your e2e tests are properly compiled with 'npm run build' or 'bun run build'\nINFO: Loading test file: starter-plugin.test.ts\nWARN: No dist/e2e directory found. E2E tests should be compiled first. Import may fail.\nERROR: Failed to import test file starter-plugin.test.ts:\n    message: \"(TypeError) Unknown file extension \\\".ts\\\" for ~/Repos/sample/e2e/starter-plugin.test.ts\"\n    stack: [\n      \"TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension \\\".ts\\\" for ~/Repos/sample/e2e/starter-plugin.test.ts\",\n      \"at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:176:9)\",\n      \"at defaultGetFormat (node:internal/modules/esm/get_format:219:36)\",\n      \"at defaultLoad (node:internal/modules/esm/load:143:22)\",\n      \"at async ModuleLoader.load (node:internal/modules/esm/loader:555:7)\",\n      \"at async ModuleLoader.moduleProvider (node:internal/modules/esm/loader:434:45)\",\n      \"at async link (node:internal/modules/esm/module_job:87:21)\"\n    ]\nINFO: Make sure your e2e tests are properly compiled with 'npm run build' or 'bun run build'\nTest Summary: 0 passed, 2 failed, 0 skipped\n```\n\nNote `No dist/e2e directory found. E2E tests should be compiled first. Import may fail.`\n",
      "createdAt": "2025-05-28T18:55:08Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs64lKEB",
      "title": "Start agents files without cli",
      "author": "visionpixel",
      "number": 4810,
      "repository": "elizaos/eliza",
      "body": "Why is the-org package removed from resources?\n\nAny how can i start agents without the cli in docker compose? The old way was to use the-org package and start the agents with `bun run start --character path/to/character.agent.json` as command in docker-compose.yml",
      "createdAt": "2025-05-28T09:49:00Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs64gnlE",
      "title": "Cannot use plugin-evm",
      "author": "omariosman",
      "number": 4803,
      "repository": "elizaos/eliza",
      "body": "I am attempting to integrate the `@elizaos/plugin-evm` plugin into my Eliza AI agent to enable interactions with EVM-compatible chains. After installing the plugin and configuring the environment variables and character settings, I encounter a `TypeError: basex is not a function` when adding the evmPlugin to my character's plugins array. The same error occurs whether I define the character in TypeScript or JSON format.\n\n## Steps to Reproduce:\n\n### Clone Eliza repo\n`git clone git@github.com:elizaOS/eliza.git`\n\n### Install the Plugin:\n\n`bun install @elizaos/plugin-evm`\n\n### Configure Environment Variables:\n\nEVM_PRIVATE_KEY=<my-private-key>\nEVM_PROVIDER_URL=<mainnet-rpc-url>\nETHEREUM_PROVIDER_SEPOLIA=<sepolia-rpc-url>\nETHEREUM_PROVIDER_BASESEPOLIA=<base-sepolia-rpc-url>\n\n### Define Character with Plugin:\n**Typescript format**\n```\nimport { ModelProviderName } from \"@elizaos/core\";\nimport { evmPlugin } from '@elizaos/plugin-evm';\n\nexport const mainCharacter = {\n    name: \"sound_craft_\",\n    clients: [],\n    modelProvider: ModelProviderName.OPENROUTER,\n    plugins: [evmPlugin],\n    settings: {\n        chains: {\n            evm: [\n                \"base\",\n                \"baseSepolia\"\n            ]\n        }\n    },\n};\n```\n\n**JSON Format (alternative attempt):**\n```\n{\n    \"name\": \"Eliza\",\n    \"plugins\": [\"@elizaos/plugin-evm\"],\n    \"clients\": [\"telegram\"],\n    \"modelProvider\": \"openrouter\",\n    \"settings\": {\n        \"chains\": {\n            \"evm\": [\n                \"base\",\n                \"baseSepolia\"\n            ]\n        }\n    }\n}\n```\n\n### Run the Application:\nAttempted to start the Eliza agent using `pnpm start`\n\nEncountered the following error in both TypeScript and JSON configurations:\n`TypeError: basex is not a function`\n\n### Expected Behavior:\n\nThe `@elizaos/plugin-evm` plugin should initialize correctly when added to the plugins array.\nThe Eliza agent should start without errors and allow interactions with EVM chains (e.g., Base, Base Sepolia) as configured.\n\n### Actual Behavior:\nThe application throws a TypeError: basex is not a function when the evmPlugin is included in the plugins array, preventing the agent from starting.",
      "createdAt": "2025-05-28T00:03:56Z",
      "closedAt": "2025-05-28T17:37:17Z",
      "state": "CLOSED",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6YBu-Z",
      "title": "Move message server to self DB, add specs to core",
      "author": "lalalune",
      "number": 4818,
      "body": "This PR updates the message server to use standalone and switches the core to use specs",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-28T20:54:55Z",
      "mergedAt": null,
      "additions": 17954,
      "deletions": 3725
    },
    {
      "id": "PR_kwDOMT5cIs6Xzqoa",
      "title": "fix: integration tests for tee starter",
      "author": "0xbbjoker",
      "number": 4799,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-27T15:42:59Z",
      "mergedAt": null,
      "additions": 694,
      "deletions": 156
    },
    {
      "id": "PR_kwDOMT5cIs6X92sg",
      "title": "make agent sidebar use same height props",
      "author": "wtfsayo",
      "number": 4811,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-28T13:26:45Z",
      "mergedAt": "2025-05-28T13:26:52Z",
      "additions": 453,
      "deletions": 134
    },
    {
      "id": "PR_kwDOMT5cIs6X_ISL",
      "title": "fix: Prevent elizaos update from running in non-project directories",
      "author": "yungalgo",
      "number": 4812,
      "body": "**Problem (Fail Cases)**\r\n\r\nThe elizaos update --packages command currently attempts to update packages regardless of where it's executed, leading to confusing behavior:\r\n\r\n1. Empty directories: Shows \"Detected project directory\" then fails with \"package.json not found\"\r\n2. Non-ElizaOS projects: Claims \"Detected project directory\", finds no ElizaOS packages, but reports \"successfully updated\"\r\n3. Invalid directories: Provides misleading error messages without helpful guidance\r\n4. Poor UX: Users get confusing feedback when accidentally running the command in wrong locations\r\n\r\n**Solution**\r\n\r\nImplemented comprehensive directory detection that:\r\n- Detects directory types: Empty, non-ElizaOS project, ElizaOS project, ElizaOS plugin, or invalid\r\n- Early exit with helpful messages: Shows appropriate guidance instead of attempting updates\r\n- Provides actionable guidance: Suggests correct commands like elizaos create <name> or elizaos create -t plugin <name>\r\n- Maintains backward compatibility: Valid ElizaOS projects and plugins work exactly as before\r\n\r\n**Details**\r\n\r\nNew Directory Detection Logic:\r\nCreated packages/cli/src/utils/directory-detection.ts with comprehensive detection functions\r\nChecks for package.json existence, ElizaOS dependencies, project structure, and naming patterns\r\nHandles edge cases like projects claiming to be ElizaOS but missing dependencies\r\n\r\n**Updated Messages:**\r\n\r\nEmpty directory: Suggests using elizaos create with correct syntax\r\nNon-ElizaOS project: Shows package name and explains ElizaOS update scope\r\nInvalid directory: Provides clear error with helpful next steps\r\nElizaOS projects without dependencies: Guides users to add ElizaOS packages first\r\n\r\n**Testing:**\r\nAdded BATS test cases for all directory types\r\nVerified behavior comparison between old and new CLI\r\n\r\nAll acceptance criteria met:\r\n✅ Detects non-project directories\r\n✅ Shows appropriate messages\r\n✅ Gracefully handles empty folders\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- **New Features**\n  - Improved detection and messaging for different directory types when running the update command, including empty folders, non-ElizaOS projects, ElizaOS projects, and plugins.\n  - Enhanced user guidance with clearer instructions and feedback based on the detected directory context.\n\n- **Bug Fixes**\n  - More accurate validation prevents update attempts in unsupported directories and provides specific user messages.\n\n- **Tests**\n  - Added comprehensive tests covering edge cases for the update command in various directory scenarios.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-28T15:27:36Z",
      "mergedAt": "2025-05-30T08:12:05Z",
      "additions": 332,
      "deletions": 30
    },
    {
      "id": "PR_kwDOMT5cIs6X7Er9",
      "title": "Eliza342 implement auto update for eliza os cli",
      "author": "yungalgo",
      "number": 4809,
      "body": "**Problem**\r\n\r\nUsers encounter issues that have already been fixed in newer versions of the elizaOS CLI, but they continue using outdated versions without realizing updates are available. This can lead to support overhead from outdated CLI versions.\r\n\r\n**Solution**\r\n\r\nImplement automatic CLI updates that check for new versions before running commands and auto-update global installations when newer versions are available.\r\n\r\n**Key Features:**\r\n\r\nAuto-update enabled by default for globally installed CLI\r\n--noupdate flag to disable automatic updates when needed\r\nSmart detection of installation context (development, global, npx/bunx)\r\nUses existing warning msg for non-global installations\r\n\r\n**Behavior:**\r\n\r\nGlobal installations: Automatically update and re-execute original command\r\nDevelopment mode: Show notification only (when running from eliza repo)\r\nnpx/bunx usage: Show notification with manual update instructions\r\nUpdate command: Skip auto-update to prevent recursion\r\nDetails\r\n\r\n**Implementation**\r\n\r\nNew auto-update.ts utility: Centralized update logic with version checking, installation detection, and update execution\r\nPerformance optimization: Single update check before command parsing instead of per-command hooks\r\nArchitecture improvement: Extracted version utilities to version.ts to break circular dependencies\r\nCode cleanup: Moved CLI version checking logic out of display-banner.ts for better separation of concerns\r\n\r\n**Potential Concerns:**\r\n\r\nWhile auto-updating solves the problem of users running outdated CLIs, it introduces a new UX friction: users who want to disable auto-updates must append --noupdate to every command, which could be equally annoying.\r\nPro: Automatically fixes issues for users with outdated CLIs\r\nCon: Forces users who prefer manual updates to use --noupdate repeatedly\r\n\r\nQuestion: Does the benefit of automatic fixes outweigh the inconvenience for users who prefer manual control?\r\nWe're seeking feedback on whether this trade-off is acceptable or if we should explore alternative approaches (like opt-in auto-updates or persistent configuration).",
      "repository": "elizaos/eliza",
      "createdAt": "2025-05-28T08:54:57Z",
      "mergedAt": null,
      "additions": 242,
      "deletions": 80
    }
  ],
  "codeChanges": {
    "additions": 1002,
    "deletions": 913,
    "files": 24,
    "commitCount": 45
  },
  "completedItems": [
    {
      "title": "Fix: support parameterized routes in plugins",
      "prNumber": 4817,
      "type": "bugfix",
      "body": "## Risks\r\n\r\nLow. This change adds a missing feature without modifying existing behavior. Exact routes and wildcard routes continue to work as before.\r\n\r\n## Background\r\n\r\n### What does this PR do?\r\n\r\nThis PR adds support for parameterized ro"
    },
    {
      "title": "fix typos",
      "prNumber": 4816,
      "type": "bugfix",
      "body": ""
    },
    {
      "title": "make agent sidebar use same height props",
      "prNumber": 4811,
      "type": "other",
      "body": ""
    },
    {
      "title": "feat: Manually write .env file to flyio",
      "prNumber": 4808,
      "type": "feature",
      "body": "some bugs with process.env and merge loader, attempting manual .env file write to sidestep..."
    },
    {
      "title": "fix: TEE Tests",
      "prNumber": 4807,
      "type": "bugfix",
      "body": "<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\r\n\r\n# Relates to\r\n#4799 This PR removes tests that require TEE Native hardware or simulator to remove any e2e test dependen"
    },
    {
      "title": "feat: Merge process.env variables into .env file",
      "prNumber": 4806,
      "type": "feature",
      "body": "In server hosting environments, the secrets were being ignored since CLI creates a new .env file and only loads from that, now secrets will be merged in from process.env.\n\nUpdates the .env file creation and population logic to merge variabl"
    }
  ],
  "topContributors": [
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 85.67865326889776,
      "prScore": 80.33865326889776,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.33999999999999997,
      "summary": "ChristopherTrimboli: Merged 2 PRs (#4808 and #4806) with significant changes (+17/-22 and +125/-7 lines respectively), while also opening PR #4804. Active today with 5 commits, modifying 18 files primarily in documentation and configuration, totaling +323/-397 lines."
    },
    {
      "username": "HashWarlock",
      "avatarUrl": "https://avatars.githubusercontent.com/u/64296537?u=1d8228a93c06c603e08d438677b3f736d6b1ab22&v=4",
      "totalScore": 81.29233635052881,
      "prScore": 63.29233635052881,
      "issueScore": 0,
      "reviewScore": 18,
      "commentScore": 0,
      "summary": "HashWarlock: Merged 1 PR (#4807 \"fix: TEE Tests\") with significant changes of +120/-360 lines, focusing entirely on bugfix work. Active today with modifications to 12 files (+118/-359 lines) and a consistent work pattern observed."
    },
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 71.02857796865148,
      "prScore": 66.09057796865147,
      "issueScore": 0,
      "reviewScore": 4.5,
      "commentScore": 0.43799999999999994,
      "summary": "yungalgo: Merged 2 PRs, including #4812 which addressed elizaos update issues (+355/-53 lines), and opened PR #4809 for auto update implementation. Made significant code changes across 17 files (+620/-156 lines) with a focus on other work (57%) and consistent daily activity."
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 39.187258665396406,
      "prScore": 33.9872586653964,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.2,
      "summary": "0xbbjoker: Opened 1 pull request (#4815) focused on fixing multiple tests, while modifying 24 files with a total of 651 additions and 775 deletions across 13 commits, primarily addressing bug fixes (46%) and tests (67%). Actively engaged with the project, demonstrating consistent work patterns."
    },
    {
      "username": "DeVikingMark",
      "avatarUrl": "https://avatars.githubusercontent.com/u/190900683?u=5709af376b536bbd39ed0a35d0f5b1005d129a7b&v=4",
      "totalScore": 36.34664653434299,
      "prScore": 36.34664653434299,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "DeVikingMark: Merged 1 PR (#4816) focused on fixing typos, contributing a total of +214/-74 lines. Additionally, made modifications to 1 file with a net change of +3/-3 lines, maintaining a consistent activity pattern."
    },
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 34.004773896576104,
      "prScore": 33.8047738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "lalalune: Opened 1 PR (#4818) focused on moving the message server to a self DB and adding specs to core, while modifying 174 files with a significant code change of +23807/-4182 lines across 3 commits. Maintained a consistent activity pattern, demonstrating dedication to ongoing development efforts."
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 26.376726947898625,
      "prScore": 26.376726947898625,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "wtfsayo: Merged 1 PR (#4811) focused on making the agent sidebar use the same height props, contributing a total of +453/-134 lines. Additionally, modified 5 files with a total of +1031/-275 lines across 3 commits, demonstrating consistent daily activity."
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 24.213508009434907,
      "prScore": 24.013508009434908,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "standujar: Merged 1 PR (#4817) focused on bugfix work, addressing parameterized routes in plugins with significant changes of +73/-316 lines. Maintained a consistent activity pattern, modifying 4 files across 2 commits."
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 5.2,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.2,
      "summary": "odilitime: Contributed to feature work with 1 commit, modifying 1 file and adding 4 lines of code. Engaged in the review process with 1 approval and provided 1 comment on a pull request, demonstrating consistent activity."
    },
    {
      "username": "omariosman",
      "avatarUrl": "https://avatars.githubusercontent.com/u/45637656?u=4225742309bf32d2c6c341b67da1613373390605&v=4",
      "totalScore": 4,
      "prScore": 0,
      "issueScore": 4,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "omariosman: Created 1 issue (#4803 \"Cannot use plugin-evm\", CLOSED) today, showing sporadic activity with no other contributions."
    },
    {
      "username": "BinaryBluePeach",
      "avatarUrl": "https://avatars.githubusercontent.com/u/192237769?v=4",
      "totalScore": 2.5380000000000003,
      "prScore": 0,
      "issueScore": 2.1,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "BinaryBluePeach: Created 1 issue (#4805 \"can't find definition file for node or jest\") and commented on 4 issues, demonstrating sporadic activity today."
    },
    {
      "username": "visionpixel",
      "avatarUrl": "https://avatars.githubusercontent.com/u/1027142?v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "visionpixel: Created 1 issue today, titled \"Start agents files without cli\" (#4810), and demonstrated sporadic activity with no merged pull requests or code changes."
    },
    {
      "username": "scottrepreneur",
      "avatarUrl": "https://avatars.githubusercontent.com/u/1778380?u=fede4269023b94283a66b98872ce7f971a7999e7&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "scottrepreneur: Created 1 issue today, titled \"New sample project fails e2e tests\" (#4814), indicating a focus on addressing testing failures. Active on 0 out of 1 days, showing sporadic activity this period."
    }
  ],
  "newPRs": 12,
  "mergedPRs": 6,
  "newIssues": 4,
  "closedIssues": 1,
  "activeContributors": 16
}