{
  "interval": {
    "intervalStart": "2025-06-25T00:00:00.000Z",
    "intervalEnd": "2025-06-26T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-06-25 to 2025-06-26, elizaos/eliza had 12 new PRs (7 merged), 2 new issues, and 10 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs69Ts6-",
      "title": "No handler found for delegate type: TEXT_EMBEDDING",
      "author": "snobbee",
      "number": 5279,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\n<!-- A clear and concise description of what the bug is. -->\n\n**To Reproduce**\n\n<!-- Steps to reproduce the behavior. -->\n\n```\n~ $ elizaos --version\n1.0.12\n```\n\n```\ngit fetch\ngit checkout v1.0.12\nbun install\nbun run build\nelizaos create superagent --type agent\nelizaos start --character superagent.json\n```\n\noutput:\n```\n[...]\n[2025-06-25 17:18:10.211 +0200] WARN: [AgentRuntime][superagent] No TEXT_EMBEDDING model registered. Skipping embedding dimension setup.\n    agentName: \"superagent\"\n    logLevel: \"info\"\n```\n\n<img width=\"977\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/30bd979e-c993-4ddb-8dd9-8838a7a54107\" />\n\nSend a message to the agent:\n\n<img width=\"1077\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/92127498-ba1b-4572-8a0d-6384701b3749\" />\n\nConsole output:\n\n```\n[...]\n[2025-06-25 15:18:57] INFO: [SocketIO] Client a6UZeBeQQavwKtlKAAAB disconnected.\n[2025-06-25 15:19:09] INFO: [SocketIO] New connection: PHzX5gFqkXjwYGhFAAAD\n[2025-06-25 15:19:09] INFO: [SocketIO] Generic 'message' event received: {\"type\":1,\"payload\":{\"channelId\":\"a17cadac-2338-4c83-aabc-5efff4c45782\",\"roomId\":\"a17cadac-2338-4c83-aabc-5efff4c45782\",\"entityId\":\"6f32e1a3-0e58-4a69-bc0f-fba742427c41\"}} (SocketID: PHzX5gFqkXjwYGhFAAAD)\n[2025-06-25 15:19:09] INFO: [Bootstrap] Syncing user: 6f32e1a3-0e58-4a69-bc0f-fba742427c41\n[2025-06-25 15:19:09] INFO: [SocketIO PHzX5gFqkXjwYGhFAAAD] Handling channel joining via 'message' event\n[2025-06-25 15:19:09] INFO: [SocketIO] Socket PHzX5gFqkXjwYGhFAAAD joined Socket.IO channel: a17cadac-2338-4c83-aabc-5efff4c45782\n[2025-06-25 15:19:09] INFO: [SocketIO] Emitting ENTITY_JOINED event for entityId: 6f32e1a3-0e58-4a69-bc0f-fba742427c41, serverId: 00000000-0000-0000-0000-000000000000, isDm: false\n[2025-06-25 15:19:09] INFO: [SocketIO] ENTITY_JOINED event emitted successfully for 6f32e1a3-0e58-4a69-bc0f-fba742427c41\n[2025-06-25 15:19:09] INFO: [SocketIO] Socket PHzX5gFqkXjwYGhFAAAD successfully joined channel a17cadac-2338-4c83-aabc-5efff4c45782.\n[2025-06-25 15:19:09] INFO: [SocketIO] Generic 'message' event received: {\"type\":1,\"payload\":{\"channelId\":\"a17cadac-2338-4c83-aabc-5efff4c45782\",\"roomId\":\"a17cadac-2338-4c83-aabc-5efff4c45782\",\"entityId\":\"6f32e1a3-0e58-4a69-bc0f-fba742427c41\"}} (SocketID: PHzX5gFqkXjwYGhFAAAD)\n[2025-06-25 15:19:09] INFO: [SocketIO PHzX5gFqkXjwYGhFAAAD] Handling channel joining via 'message' event\n[2025-06-25 15:19:09] INFO: [SocketIO] Socket PHzX5gFqkXjwYGhFAAAD joined Socket.IO channel: a17cadac-2338-4c83-aabc-5efff4c45782\n[2025-06-25 15:19:09] INFO: [SocketIO] Emitting ENTITY_JOINED event for entityId: 6f32e1a3-0e58-4a69-bc0f-fba742427c41, serverId: 00000000-0000-0000-0000-000000000000, isDm: false\n[2025-06-25 15:19:09] INFO: [SocketIO] ENTITY_JOINED event emitted successfully for 6f32e1a3-0e58-4a69-bc0f-fba742427c41\n[2025-06-25 15:19:09] INFO: [SocketIO] Socket PHzX5gFqkXjwYGhFAAAD successfully joined channel a17cadac-2338-4c83-aabc-5efff4c45782.\n[2025-06-25 15:19:09] INFO: [Bootstrap] syncSingleUser - type: GROUP, isDM: false, worldMetadata: undefined\n[2025-06-25 15:19:09] INFO: [Bootstrap] Created world check - ID: 0045e0f7-a5b5-0e3d-a612-fac8fbe3ed41, metadata: null\n[2025-06-25 15:19:09] INFO: [Bootstrap] Syncing user: 6f32e1a3-0e58-4a69-bc0f-fba742427c41\n[2025-06-25 15:19:09] INFO: [Bootstrap] syncSingleUser - type: GROUP, isDM: false, worldMetadata: undefined\n[2025-06-25 15:19:09] INFO: [Bootstrap] Created world check - ID: 0045e0f7-a5b5-0e3d-a612-fac8fbe3ed41, metadata: null\n[2025-06-25 15:19:11] INFO: [SocketIO] Generic 'message' event received: {\"type\":2,\"payload\":{\"senderId\":\"6f32e1a3-0e58-4a69-bc0f-fba742427c41\",\"senderName\":\"user\",\"message\":\"hey here\",\"channelId\":\"a17cadac-2338-4c83-aabc-5efff4c45782\",\"roomId\":\"a17cadac-2338-4c83-aabc-5efff4c45782\",\"serverId\":\"00000000-0000-0000-0000-000000000000\",\"messageId\":\"03ed4017-acd5-449c-9a46-563b639f55a4\",\"source\":\"client_chat\",\"metadata\":{\"channelType\":\"DM\",\"isDm\":true,\"targetUserId\":\"64ec20d5-fe5a-0ca0-8e9b-a52d1a00799c\"}}} (SocketID: PHzX5gFqkXjwYGhFAAAD)\n[2025-06-25 15:19:12] INFO: [Bootstrap] Syncing user: 6f32e1a3-0e58-4a69-bc0f-fba742427c41\n[2025-06-25 15:19:11] INFO: [SocketIO PHzX5gFqkXjwYGhFAAAD] Handling message sending via 'message' event\n[2025-06-25 15:19:11] INFO: [SocketIO PHzX5gFqkXjwYGhFAAAD] Received SEND_MESSAGE for central submission: channel a17cadac-2338-4c83-aabc-5efff4c45782 from user\n[2025-06-25 15:19:11] INFO: [SocketIO PHzX5gFqkXjwYGhFAAAD] Full payload for debugging: {\n  \"senderId\": \"6f32e1a3-0e58-4a69-bc0f-fba742427c41\",\n  \"senderName\": \"user\",\n  \"message\": \"hey here\",\n  \"channelId\": \"a17cadac-2338-4c83-aabc-5efff4c45782\",\n  \"roomId\": \"a17cadac-2338-4c83-aabc-5efff4c45782\",\n  \"serverId\": \"00000000-0000-0000-0000-000000000000\",\n  \"messageId\": \"03ed4017-acd5-449c-9a46-563b639f55a4\",\n  \"source\": \"client_chat\",\n  \"metadata\": {\n    \"channelType\": \"DM\",\n    \"isDm\": true,\n    \"targetUserId\": \"64ec20d5-fe5a-0ca0-8e9b-a52d1a00799c\"\n  }\n}\n[2025-06-25 15:19:11] INFO: [SocketIO] Detected DM channel during message submission, emitting ENTITY_JOINED for proper world setup\n[2025-06-25 15:19:11] INFO: [SocketIO] ENTITY_JOINED event emitted for DM channel setup: 6f32e1a3-0e58-4a69-bc0f-fba742427c41\n[2025-06-25 15:19:11] INFO: [SocketIO PHzX5gFqkXjwYGhFAAAD] Checking if channel a17cadac-2338-4c83-aabc-5efff4c45782 exists before creating message\n[2025-06-25 15:19:12] INFO: [SocketIO PHzX5gFqkXjwYGhFAAAD] Channel a17cadac-2338-4c83-aabc-5efff4c45782 exists: true\n[2025-06-25 15:19:12] INFO: [SocketIO PHzX5gFqkXjwYGhFAAAD] Channel a17cadac-2338-4c83-aabc-5efff4c45782 already exists, proceeding with message creation\n[2025-06-25 15:19:12] INFO: [superagent] MessageBusService: Received message from central bus\n    messageId: \"47c9362e-8b22-4dbd-810a-4bd3200c12b2\"\n[2025-06-25 15:19:12] INFO: [AgentServer] Published message 47c9362e-8b22-4dbd-810a-4bd3200c12b2 to internal message bus\n[2025-06-25 15:19:12] INFO: [SocketIO PHzX5gFqkXjwYGhFAAAD] Message from 6f32e1a3-0e58-4a69-bc0f-fba742427c41 (msgId: 03ed4017-acd5-449c-9a46-563[2025-06-25 15:19:12] INFO: [Bootstrap] syncSingleUser - type: DM, isDM: true, worldMetadata: {\"ownership\":{\"ownerId\":\"6f32e1a3-0e58-4a69-bc0f-fba742427c41\"},\"roles\":{\"6f32e1a3-0e58-4a69-bc0f-fba742427c41\":\"OWNER\"},\"settings\":{}}\n[2025-06-25 15:19:12] INFO: [Bootstrap] Created world check - ID: 0045e0f7-a5b5-0e3d-a612-fac8fbe3ed41, metadata: null\nb639f55a4) submitted to central store (central ID: 47c9362e-8b22-4dbd-810a-4bd3200c12b2). It will be processed by agents and broadcasted upon their reply.\n[2025-06-25 15:19:12] INFO: [superagent] MessageBusService: Discovered new channel a17cadac-2338-4c83-aabc-5efff4c45782, added to valid channels\n[2025-06-25 15:19:12] INFO: [superagent - 64ec20d5-fe5a-0ca0-8e9b-a52d1a00799c] MessageBusService: Agent is a participant in channel a17cadac-2338-4c83-aabc-5efff4c45782, proceeding with message processing\n[2025-06-25 15:19:12] INFO: [Bootstrap] Message received from e5efbd98-d6b6-0d76-9750-a8fa9553e455 in room ee31b4c2-4806-034f-b41f-91a7187ee59a\nerror is Error: No handler found for delegate type: TEXT_EMBEDDING\n    at AgentRuntime.useModel (file:///tmp/.bun/install/global/node_modules/@elizaos/core/dist/chunk-LACDKYHQ.js:3626:13)\n    at AgentRuntime.addEmbeddingToMemory (file:///tmp/.bun/install/global/node_modules/@elizaos/core/dist/chunk-LACDKYHQ.js:3872:37)\n    at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n    at async Promise.all (index 0)\n    at async file:///tmp/.bun/install/global/node_modules/@elizaos/plugin-bootstrap/dist/index.js:6027:9\n    at async messageReceivedHandler (file:///tmp/.bun/install/global/node_modules/@elizaos/plugin-bootstrap/dist/index.js:6266:5)\n    at async events (file:///tmp/.bun/install/global/node_modules/@elizaos/plugin-bootstrap/dist/index.js:6602:7)\n    at async Promise.all (index 0)\n    at async AgentRuntime.emitEvent (file:///tmp/.bun/install/global/node_modules/@elizaos/core/dist/chunk-LACDKYHQ.js:3711:9)\n    at async _MessageBusService.handleIncomingMessage (file:///tmp/.bun/install/global/node_modules/@elizaos/server/dist/index.js:5033:7)\n[2025-06-25 15:19:12] INFO: [superagent] MessageBusService: Passed server subscription check for 00000000-0000-0000-0000-000000000000\n[2025-06-25 15:19:12] INFO: [superagent] MessageBusService: All checks passed, proceeding to create agent memory and emit MESSAGE_RECEIVED event\n[2025-06-25 17:19:12.045 +0200] ERROR: Failed to generate embedding:\n    agentName: \"superagent\"\n    logLevel: \"info\"\n    message: \"(Error) No handler found for delegate type: TEXT_EMBEDDING\"\n    stack: [\n      \"Error: No handler found for delegate type: TEXT_EMBEDDING\",\n      \"at AgentRuntime.useModel (file:///tmp/.bun/install/global/node_modules/@elizaos/core/dist/chunk-LACDKYHQ.js:3626:13)\",\n      \"at AgentRuntime.addEmbeddingToMemory (file:///tmp/.bun/install/global/node_modules/@elizaos/core/dist/chunk-LACDKYHQ.js:3867:37)\",\n      \"at file:///tmp/.bun/install/global/node_modules/@elizaos/plugin-bootstrap/dist/index.js:6028:19\",\n      \"at messageReceivedHandler (file:///tmp/.bun/install/global/node_modules/@elizaos/plugin-bootstrap/dist/index.js:6265:7)\",\n      \"at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\",\n      \"at async events (file:///tmp/.bun/install/global/node_modules/@elizaos/plugin-bootstrap/dist/index.js:6602:7)\",\n      \"at async Promise.all (index 0)\",\n      \"at async AgentRuntime.emitEvent (file:///tmp/.bun/install/global/node_modules/@elizaos/core/dist/chunk-LACDKYHQ.js:3711:9)\",\n      \"at async _MessageBusService.handleIncomingMessage (file:///tmp/.bun/install/global/node_modules/@elizaos/server/dist/index.js:5033:7)\"\n    ]\n```\n\n\n**Expected behavior**\n\n<!-- A clear and concise description of what you expected to happen. -->\n\nResponse from the LLM and no error on the console\n\n**Screenshots**\n\n<!-- If applicable, add screenshots to help explain your problem. -->\n\n**Additional context**\n\n<!-- Add any other context about the problem here. -->\n",
      "createdAt": "2025-06-25T15:21:14Z",
      "closedAt": "2025-06-25T15:44:39Z",
      "state": "CLOSED",
      "commentCount": 2
    },
    {
      "id": "I_kwDOMT5cIs69O9Na",
      "title": "Can't save character",
      "author": "NBFinanceTech",
      "number": 5268,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\nI have a ~150kb character file I can import the JSON but cannot save the changes as I get Error 500: request entity too large\n\n**To Reproduce**\n\nImport a large Character File Json and save it\n\n**Expected behavior**\n\nYou should be able to save it \n\n**Screenshots**\n\n<!-- If applicable, add screenshots to help explain your problem. -->\n\n**Additional context**\n\n<!-- Add any other context about the problem here. -->\n",
      "createdAt": "2025-06-25T08:55:35Z",
      "closedAt": "2025-06-29T06:45:25Z",
      "state": "CLOSED",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6cBQld",
      "title": "feat: change plugins from project-scoped to agent-scoped architecture",
      "author": "yungalgo",
      "number": 5270,
      "body": "## Problem\r\n- **Plugin Management**: Plugins were managed at the project level in `package.json`, forcing all agents to share the same plugin set\r\n- **No Character Flexibility**: No ability to configure different plugins for different characters/agents within the same project\r\n- **Tight Coupling**: Plugin management was tightly coupled to project dependencies rather than agent-specific configurations\r\n- **Limited Multi-Agent Support**: Agent commands only supported single agents, with `elizaos agent start` silently ignoring multiple characters\r\n- **Inconsistent UX**: Different commands used different parameter names (`--name`, `--path`, `--remote-character`) for character specification\r\n- **CI Test Failures**: Tests passed locally but failed in CI due to orphaned processes, causing false negatives in GitHub Actions\r\n\r\n## Solution\r\nComprehensive refactor implementing **character-centric architecture** with full multi-agent support:\r\n\r\n### Character-Centric Plugin Management\r\n- **Character-scoped plugins**: Plugins are now configured in individual character files (`character.plugins` array)\r\n- **Dynamic plugin loading**: Runtime loads plugins from character configurations rather than project dependencies\r\n- **Character-targeted operations**: Plugin commands operate directly on character file configurations\r\n\r\n### Multi-Agent Support\r\n- **Unified character specification**: All commands now use consistent `-c, --character` flags\r\n- **Multi-character operations**: Most commands support operating on multiple characters simultaneously\r\n- **Flexible input formats**: Supports space-separated, comma-separated, and mixed character specification\r\n- **Comprehensive agent lifecycle**: Full multi-agent support across start, stop, get, remove, and clear-memories operations\r\n\r\n## Key Changes\r\n\r\n### Core Infrastructure\r\n- **`character-finder.ts`** - Standardized character file discovery across project directories with path resolution\r\n- **`character-parser.ts`** - Unified parsing for both JSON and TypeScript character files with flexible input handling\r\n- **`character-updater.ts`** - Safe character configuration updates with plugin-specific utilities\r\n- **BREAKING**: Plugins are NO LONGER listed as dependencies in project's `package.json` - defined exclusively in character `plugins` arrays\r\n\r\n### Multi-Agent Command Support\r\n- **Unified Character Specification**: All agent commands now use consistent `-c, --character <paths...>` syntax\r\n- **Multi-Character Operations**: \r\n  - `elizaos agent start -c bobby,billy` - Start multiple agents simultaneously\r\n  - `elizaos agent stop -c bobby,billy` - Stop multiple agents\r\n  - `elizaos agent get -c bobby,billy` - Get details for multiple agents\r\n  - `elizaos agent remove -c bobby,billy` - Remove multiple agents\r\n  - `elizaos agent clear-memories -c bobby,billy` - Clear memories for multiple agents\r\n- **Single Agent Restriction**: `elizaos agent set -c bobby` - Only accepts single character (by design)\r\n- **Flexible Input Formats**:\r\n  - Comma-separated: `elizaos agent start -c bobby,billy`\r\n  - Space-separated: `elizaos agent start -c bobby billy`\r\n  - Mixed sources: `elizaos agent start -c bobby ./billy.json https://example.com/alice.json`\r\n  - Auto-extension: `.json` extension added automatically if missing\r\n\r\n### Refactors & Code Cleanup\r\n- **Modular Design**: Extracted `installed-plugins.ts` from `list.ts` for improved separation of concerns\r\n- **Standardized Utilities**: Implemented reusable character argument handling across `start`, `dev`, `agent`, and `plugins` commands\r\n- **Error Handling Improvements**: Enhanced error recovery with graceful fallbacks instead of hard exits\r\n- **Code Quality**: Applied optional chaining, removed redundant try-catch blocks, and improved consistency\r\n- **Dependency Cleanup**: Removed unnecessary OpenAI dependency from CLI package.json\r\n\r\n### CI Test Infrastructure Fixes\r\n- **Root Cause**: Tests using `Bun.spawn` weren't properly terminating server processes, leaving orphaned processes that CI environments detect as failures. This was causing all 3 CLI tests (ubuntu, macos, windows) to fail\r\n- **Process Cleanup**: Enhanced `afterAll` hooks in test files to kill entire process groups, not just individual processes\r\n- **Multi-Layer Cleanup**: Added cleanup at test level, script level, and CI workflow level to ensure no processes remain\r\n- **CI Verification**: Created scripts to reproduce CI behavior locally (`test-like-ci.sh`, `verify-cleanup.sh`)\r\n- **Affected Files**: \r\n  - `agent.test.ts` and `dev.test.ts` - Enhanced process termination\r\n  - `cleanup-processes.sh` - Shell script for process cleanup\r\n  - `.github/workflows/cli-tests.yml` - Added always-run cleanup step\r\n  - `package.json` - Updated test:cli to include cleanup\r\n\r\n### CLI Commands\r\n\r\n#### Plugin Commands (Character-Scoped)\r\n- **`elizaos plugins add -c <character>`** - Adds plugins to character files (supports both `-c` and `--character` flags)\r\n- **`elizaos plugins remove -c <character>`** - Removes plugins from character files  \r\n- **`elizaos plugins installed-plugins -c <character>`** - Displays character-specific plugins, organized by agent\r\n- **Multi-Character Support**: All plugin commands support multiple character targets\r\n\r\n#### Agent Commands (Multi-Agent Support)\r\n- **`elizaos agent start -c <characters...>`** - Start single or multiple agents\r\n- **`elizaos agent stop -c <characters...>`** - Stop single or multiple agents  \r\n- **`elizaos agent get -c <characters...>`** - Get details for single or multiple agents\r\n- **`elizaos agent remove -c <characters...>`** - Remove single or multiple agents\r\n- **`elizaos agent clear-memories -c <characters...>`** - Clear memories for single or multiple agents\r\n- **`elizaos agent set -c <character>`** - Update configuration (single agent only)\r\n\r\n#### Enhanced Character Resolution\r\n- **Auto-discovery**: Intelligent character file discovery across common project directories\r\n- **Multiple formats**: Supports character names, file paths, and URLs\r\n- **Path resolution**: Automatic `.json` extension and common directory searching\r\n- **Error recovery**: Graceful handling of missing or invalid character files\r\n\r\n### Technical Fixes & Improvements\r\n- **Critical Fix**: Added tsconfig path mapping for `@elizaos/core` to resolve Bun module resolution issues\r\n- **Architectural Change**: Completely removed plugin dependencies from project-level `package.json` files\r\n- **Enhanced Error Handling**: Plugin installation now continues with recovery options instead of hard exits\r\n- **Improved Logging**: Better error messages and user guidance throughout the system\r\n- **Template Updates**: Updated starter templates to reflect plugin-free project structure\r\n\r\n### Documentation Updates\r\n- **Comprehensive CLI Documentation**: Updated README.md and agent.md to reflect new character-centric workflow\r\n- **Multi-Agent Examples**: Added examples for multi-character operations and various input formats\r\n- **Migration Guide**: Clear documentation for migrating from project-scoped to character-scoped plugins\r\n- **Troubleshooting**: Enhanced error handling documentation and recovery procedures\r\n\r\n## Breaking Changes\r\n\r\n### Plugin Management Migration Required\r\n- **Before**: Plugins listed in project `package.json` dependencies\r\n- **After**: Plugins specified in individual character `plugins` arrays\r\n- **Migration**: Move plugin entries from `package.json` to relevant character files\r\n\r\n### Agent Command Parameter Changes\r\n- **Before**: Mixed parameter names (`--name`, `--path`, `--remote-character`)\r\n- **After**: Unified `-c, --character` for all agent operations\r\n- **Impact**: All agent command invocations need parameter updates",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-25T09:24:57Z",
      "mergedAt": "2025-06-25T17:47:01Z",
      "additions": 1975,
      "deletions": 583
    },
    {
      "id": "PR_kwDOMT5cIs6cE46v",
      "title": "feat(rofl): fix build issues and add deployment config files for rofl…",
      "author": "snobbee",
      "number": 5277,
      "body": "* new character file to enable all polygon plugins\r\n* fix zod related build issue\r\n* added `openai` plugin to agent file to address issue https://github.com/elizaOS/eliza/issues/5279\r\n\r\nto test set `.env` variables as follow:\r\n\r\n```\r\nOPENAI_API_KEY=XXX\r\nOPENAI_EMBEDDING_MODEL=text-embedding-3-small\r\n\r\n# alethea plugin required variables\r\nALETHEA_RPC_URL=https://placeholder.xyz\r\nPRIVATE_KEY=placeholder\r\nALETHEA_API_KEY=placeholder\r\nPOD_NFT_CONTRACT_ADDRESS=0x0123456789abcdef0123456789abcdef01234567\r\n\r\n# Required environment variables for @elizaos/plugin-polygon\r\nPOLYGON_PLUGINS_ENABLED=false\r\n# RPC Endpoints\r\nPOLYGON_RPC_URL=\"https://polygon-bor.publicnode.com\" # Replace with your actual Polygon PoS RPC URL (e.g., from Alchemy, Infura, QuickNode)\r\nETHEREUM_RPC_URL=\"https://ethereum-rpc.publicnode.com\" # Replace with your actual Ethereum Mainnet RPC URL\r\n\r\n\r\n# PolygonScan API Key (Optional but recommended for reliable gas estimates)\r\nPOLYGONSCAN_KEY=\"YourPolygonScanApiKeyToken\"\r\n\r\n# Future/Optional - Heimdall Endpoints (if needed for advanced staking interactions)\r\n# HEIMDALL_RPC_URL=\"\"\r\n# HEIMDALL_REST_URL=\"\"\r\n\r\nALCHEMY_API_KEY='XXXX'\r\nZKEVM_RPC_URL='https://polygonzkevm-mainnet.g.alchemy.com/v2/'\r\n\r\nHEIMDALL_RPC_URL=\"https://heimdall-api.polygon.technology\"\r\n```\r\n\r\nListing out actions from the UI\r\n\r\n<img width=\"813\" alt=\"image\" src=\"https://github.com/user-attachments/assets/d1abca36-1afc-4cec-8848-88405ee9a44a\" />\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-25T15:01:17Z",
      "mergedAt": "2025-06-27T16:14:36Z",
      "additions": 1690,
      "deletions": 178
    },
    {
      "id": "PR_kwDOMT5cIs6cDHye",
      "title": "fix: core attachment test",
      "author": "wtfsayo",
      "number": 5272,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-25T12:28:07Z",
      "mergedAt": null,
      "additions": 1631,
      "deletions": 1085
    },
    {
      "id": "PR_kwDOMT5cIs6b521P",
      "title": "feat: Complete migration of packages/client to @elizaos/api-client",
      "author": "wtfsayo",
      "number": 5263,
      "body": "# feat: Complete migration of packages/client to @elizaos/api-client\n\n## Summary\n\n🎯 **Complete migration of packages/client to use the new `@elizaos/api-client` package**\n\nThis PR implements a comprehensive migration strategy that transitions all client functionality from the legacy API client to the standardized `@elizaos/api-client` package while maintaining 100% backward compatibility and preserving all existing features.\n\n## 🚀 Key Changes\n\n### Complete API Client Replacement\n- **Removed Legacy Client**: Eliminated the old `packages/client/src/lib/api.ts` (610 lines deleted)\n- **New Client Integration**: Added `@elizaos/api-client` dependency and configured singleton client instance\n- **Centralized Configuration**: Created `api-client-config.ts` with localStorage-based API key management\n\n### Service Layer Migration\n- **Agent Services**: All agent CRUD operations (create, read, update, delete, start, stop)\n- **Messaging Services**: Messages, channels, servers, DM management\n- **Memory Services**: Agent memories, internal memories, group memories\n- **Media Services**: File uploads, media handling\n- **Audio Services**: TTS generation, speech transcription\n- **System Services**: Health checks, logging, environment management\n\n### Component & Hook Updates\n- **All React Hooks**: Migrated 20+ hooks to use `createElizaClient()`\n- **Audio Components**: Updated TTS button and audio recorder to use new audio service\n- **File Upload**: Refactored to use new media service endpoints\n- **Agent Management**: Updated agent creation, settings, and status management\n\n## 🔧 Technical Implementation\n\n### Direct Migration Approach\nInstead of a hybrid approach, this migration directly replaces all legacy API calls with the new client:\n\n```typescript\n// Before: Legacy API\nconst response = await apiClient.post('/agents', data);\n\n// After: New API Client  \nconst elizaClient = createElizaClient();\nconst response = await elizaClient.agents.createAgent(data);\n```\n\n### Service-Specific Improvements\n- **Audio Service**: Proper base64/Blob handling for TTS and transcription\n- **Error Handling**: Centralized error management with consistent user feedback\n- **Type Safety**: Full TypeScript support with proper service interfaces\n- **Response Handling**: Improved handling of 204 No Content and empty responses\n\n## ✅ Features Preserved\n\n- **Real-time WebSocket Integration**: All chat functionality intact\n- **File Upload & Media Sharing**: Images, videos, documents\n- **Text-to-Speech & Transcription**: Audio features working with new service\n- **Agent Management**: Complete agent lifecycle management\n- **Memory Operations**: Chat history and agent memory systems\n- **Group Chat**: Multi-participant conversations and DM channels\n- **Admin Features**: Logging, debugging, environment management\n\n## 📊 Migration Metrics\n\n- **Files Changed**: 54 files modified\n- **Code Reduction**: Net -457 lines (removed legacy code, added new functionality)\n- **API Endpoints**: 100% migrated to new service architecture\n- **Test Coverage**: All existing tests passing (32/32 ✅)\n- **No Breaking Changes**: Zero disruption to existing functionality\n\n## 🧪 Testing & Validation\n\n- ✅ All existing unit tests pass\n- ✅ TypeScript compilation successful\n- ✅ Linting passes\n- ✅ WebSocket integration preserved\n- ✅ File upload functionality verified\n- ✅ Audio features (TTS/transcription) working\n- ✅ Agent operations tested\n- ✅ Memory operations validated\n- ✅ Group and DM functionality confirmed\n\n## 🎁 Benefits\n\n### For Developers\n- **Modern Architecture**: Uses standardized API client with consistent patterns\n- **Better Type Safety**: Full TypeScript support across all services\n- **Improved Error Handling**: Centralized error management with user-friendly messages\n- **Cleaner Code**: Removed legacy patterns and duplicate code\n\n### For Users\n- **Seamless Experience**: No changes to existing functionality\n- **Improved Reliability**: Better error handling and edge case management\n- **Enhanced Performance**: Optimized request handling and response processing\n\n### For Maintainers\n- **Unified API Layer**: Single source of truth for all API interactions\n- **Future-Proof**: Ready for upcoming API enhancements and new features\n- **Easier Debugging**: Centralized logging and error tracking\n\n## 🔄 Backward Compatibility\n\n**Zero Breaking Changes** - This migration maintains 100% backward compatibility. All existing functionality works exactly as before, with improved reliability and performance under the hood.\n\n## 📝 Next Steps\n\n- Monitor production deployment for any edge cases\n- Consider additional optimizations for the new client configuration\n- Evaluate opportunities for further API standardization across other packages\n\n---\n\n*This migration represents a significant step toward a more maintainable and scalable codebase while preserving the complete user experience.*",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-24T17:02:10Z",
      "mergedAt": "2025-06-25T13:11:16Z",
      "additions": 1627,
      "deletions": 1083
    },
    {
      "id": "PR_kwDOMT5cIs6cFHaN",
      "title": "Fix: Update API documentation accuracy",
      "author": "wtfsayo",
      "number": 5280,
      "body": "This PR updates the API documentation to match the current implementation and adds a migration guide for developers.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-25T15:22:25Z",
      "mergedAt": "2025-06-25T16:11:59Z",
      "additions": 1364,
      "deletions": 2227
    }
  ],
  "codeChanges": {
    "additions": 5080,
    "deletions": 3893,
    "files": 89,
    "commitCount": 83
  },
  "completedItems": [
    {
      "title": "Fix: Update API documentation accuracy",
      "prNumber": 5280,
      "type": "bugfix",
      "body": "This PR updates the API documentation to match the current implementation and adds a migration guide for developers.",
      "files": [
        "eliza.postman.json",
        "packages/docs/docs/rest/socket-io-real-time-connection.api.mdx",
        "packages/docs/src/api/centralized-messaging-system.md",
        "packages/docs/src/api/environment-variables.md",
        "packages/docs/src/api/socketio-events.md",
        "packages/docs/src/openapi/eliza-v1-backup.yaml",
        "packages/docs/src/openapi/eliza-v1.yaml"
      ]
    },
    {
      "title": "fix: Restore GUI Chat Title Generation",
      "prNumber": 5275,
      "type": "bugfix",
      "body": "Fixes an issue with chat title generation. This was a regression introduced in [this PR](https://github.com/elizaOS/eliza/pull/5263), which I unfortunately missed during review and approval.",
      "files": [
        "packages/api-client/src/services/messaging.ts",
        "packages/client/src/components/chat.tsx"
      ]
    },
    {
      "title": "fix: chat stuck issue",
      "prNumber": 5274,
      "type": "bugfix",
      "body": "I encountered an issue where, if the chat failed (e.g., the useModel function exceeded the rate limit), an error would be shown but the chat would get stuck displaying \"agent is thinking.\" In this state, the user could no longer type unless",
      "files": [
        "packages/server/src/services/message.ts"
      ]
    },
    {
      "title": "fix: update attachment formatting to use comma-separated list",
      "prNumber": 5273,
      "type": "bugfix",
      "body": "## Summary\nThis PR fixes a failing test in the core package by implementing intelligent attachment formatting in the `formatMessages` utility function that handles both simple and complex attachments correctly.\n\n## Problem\nThe test `Utils C",
      "files": [
        "packages/core/src/utils.ts"
      ]
    },
    {
      "title": "feat: change plugins from project-scoped to agent-scoped architecture",
      "prNumber": 5270,
      "type": "feature",
      "body": "## Problem\r\n- **Plugin Management**: Plugins were managed at the project level in `package.json`, forcing all agents to share the same plugin set\r\n- **No Character Flexibility**: No ability to configure different plugins for different chara",
      "files": [
        ".github/workflows/cli-tests.yml",
        ".github/workflows/core-package-tests.yaml",
        "packages/cli/README.md",
        "packages/cli/package.json",
        "packages/cli/src/commands/agent/actions/crud.ts",
        "packages/cli/src/commands/agent/actions/lifecycle.ts",
        "packages/cli/src/commands/agent/index.ts",
        "packages/cli/src/commands/plugins/actions/install.ts",
        "packages/cli/src/commands/plugins/actions/installed-plugins.ts",
        "packages/cli/src/commands/plugins/actions/list.ts",
        "packages/cli/src/commands/plugins/actions/remove.ts",
        "packages/cli/src/commands/plugins/index.ts",
        "packages/cli/src/commands/plugins/types.ts",
        "packages/cli/src/commands/plugins/utils/character-updater.ts",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/utils/character-finder.ts",
        "packages/cli/src/utils/character-parser.ts",
        "packages/cli/src/utils/load-plugin.ts",
        "packages/cli/tests/cleanup-processes.sh",
        "packages/cli/tests/commands/agent.test.ts",
        "packages/cli/tests/commands/dev.test.ts",
        "packages/cli/tests/commands/plugins.test.ts",
        "packages/cli/tests/global-teardown.ts",
        "packages/docs/docs/cli/agent.md",
        "packages/docs/docs/cli/dev.md",
        "packages/docs/docs/cli/plugins.md",
        "packages/docs/docs/cli/start.md",
        "packages/docs/docs/quickstart.md",
        "packages/project-starter/package.json",
        "packages/project-starter/tsconfig.json"
      ]
    },
    {
      "title": "Add Claude Code GitHub Workflow",
      "prNumber": 5269,
      "type": "other",
      "body": "## 🤖 Installing Claude Code GitHub App\r\n\r\nThis PR adds a GitHub Actions workflow that enables Claude Code integration in our repository.\r\n\r\n### What is Claude Code?\r\n\r\n[Claude Code](https://claude.ai/code) is an AI coding agent that can he",
      "files": [
        ".github/workflows/claude-code-review.yml",
        ".github/workflows/claude.yml"
      ]
    },
    {
      "title": "feat: Complete migration of packages/client to @elizaos/api-client",
      "prNumber": 5263,
      "type": "feature",
      "body": "# feat: Complete migration of packages/client to @elizaos/api-client\n\n## Summary\n\n🎯 **Complete migration of packages/client to use the new `@elizaos/api-client` package**\n\nThis PR implements a comprehensive migration strategy that transiti",
      "files": [
        "CLAUDE.md",
        "bun.lock",
        "packages/api-client/src/__tests__/base-client.test.ts",
        "packages/api-client/src/__tests__/integration/no-content-fix.test.ts",
        "packages/api-client/src/__tests__/services/audio.test.ts",
        "packages/api-client/src/__tests__/services/media.test.ts",
        "packages/api-client/src/__tests__/services/messaging.test.ts",
        "packages/api-client/src/__tests__/services/server.test.ts",
        "packages/api-client/src/lib/base-client.ts",
        "packages/api-client/src/services/agents.ts",
        "packages/api-client/src/services/audio.ts",
        "packages/api-client/src/services/media.ts",
        "packages/api-client/src/services/memory.ts",
        "packages/api-client/src/services/messaging.ts",
        "packages/api-client/src/services/server.ts",
        "packages/api-client/src/services/system.ts",
        "packages/api-client/src/types/messaging.ts",
        "packages/cli/package.json",
        "packages/cli/tests/commands/agent.test.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/commands/test-utils.ts",
        "packages/client/package.json",
        "packages/client/src/App.tsx",
        "packages/client/src/components/agent-creator.tsx",
        "packages/client/src/components/agent-log-viewer.tsx",
        "packages/client/src/components/agent-settings.tsx",
        "packages/client/src/components/audio-recorder.tsx",
        "packages/client/src/components/character-form.tsx",
        "packages/client/src/components/chat.tsx",
        "packages/client/src/components/combobox.tsx",
        "packages/client/src/components/env-settings.tsx",
        "packages/client/src/components/group-panel.tsx",
        "packages/client/src/components/plugins-panel.tsx",
        "packages/client/src/components/secret-panel.tsx",
        "packages/client/src/components/server-management.tsx",
        "packages/client/src/components/ui/chat/chat-tts-button.tsx",
        "packages/client/src/context/ConnectionContext.tsx",
        "packages/client/src/hooks/use-agent-management.ts",
        "packages/client/src/hooks/use-dm-channels.ts",
        "packages/client/src/hooks/use-file-upload.ts",
        "packages/client/src/hooks/use-plugins.ts",
        "packages/client/src/hooks/use-query-hooks.ts",
        "packages/client/src/hooks/use-server-agents.ts",
        "packages/client/src/lib/api-client-config.ts",
        "packages/client/src/lib/api.ts",
        "packages/client/src/routes/home.tsx",
        "packages/plugin-bootstrap/src/index.ts",
        "packages/plugin-starter/src/plugin.ts",
        "packages/project-starter/src/character.ts",
        "packages/project-starter/src/index.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 164.43463781087206,
      "prScore": 163.99663781087207,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "wtfsayo: Merged 3 PRs, including a significant update to API documentation (#5280, +1784/-2647 lines), while actively modifying 84 files with a total of +5615/-8728 lines across 24 commits. The work was primarily focused on feature development (46%) and bug fixes (33%), demonstrating consistent daily activity."
    },
    {
      "username": "META-DREAMER",
      "avatarUrl": "https://avatars.githubusercontent.com/u/7143583?u=96f63f10e066a06d5ad592c8efc659e2b84a68fc&v=4",
      "totalScore": 74.32446358429654,
      "prScore": 73.98446358429653,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": null
    },
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 59.9817738965761,
      "prScore": 59.5437738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "yungalgo: Merged 1 significant pull request (#5270) with substantial changes (+3954/-1881 lines), while actively commenting on 6 different discussions. The primary focus was on other work (70%), with consistent activity noted across the day."
    },
    {
      "username": "snobbee",
      "avatarUrl": "https://avatars.githubusercontent.com/u/125891987?u=ba9ca14b922f8fb73f38ba0981d157247af3dd03&v=4",
      "totalScore": 58.1637738965761,
      "prScore": 53.8637738965761,
      "issueScore": 4.1,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "snobbee: Opened 1 PR (#5277) focused on fixing build issues and adding deployment config files, while also creating and closing an issue (#5279) regarding a missing handler for a delegate type. Made significant code changes across 25 files, contributing a total of +439/-169 lines with a primary focus on feature work."
    },
    {
      "username": "tcm390",
      "avatarUrl": "https://avatars.githubusercontent.com/u/60634884?u=c6c41679b8322eaa0c81f72e0b4ed95e80f0ac16&v=4",
      "totalScore": 44.99138917807902,
      "prScore": 44.99138917807902,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "tcm390: Merged 2 PRs focused on bug fixes, including #5275 \"fix: Restore GUI Chat Title Generation\" (+4/-3 lines) and #5274 \"fix: chat stuck issue\" (+8/-2 lines), while modifying 3 files with a total of +12/-5 lines. Maintained a consistent activity pattern, being active every day."
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 35.94267720540844,
      "prScore": 35.742677205408434,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "shandongzhejiang",
      "avatarUrl": "https://avatars.githubusercontent.com/u/169470733?u=99d997d79e138d4f2a8e7d0764232feae9c673a5&v=4",
      "totalScore": 29.88786522358297,
      "prScore": 29.88786522358297,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "shandongzhejiang: Opened 1 PR (#5271) titled \"chore: Correct some comments\" and modified 3 files with a net change of 0 lines, focusing entirely on documentation work. Maintained a consistent activity pattern, being active every day."
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 22.71647467873077,
      "prScore": 22.71647467873077,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "odilitime: Merged elizaos/eliza#5281, \"Make unmute_room not match mute_room\" (+10/-2 lines), after 8 hours. The work focused on other areas."
    },
    {
      "username": "bealers",
      "avatarUrl": "https://avatars.githubusercontent.com/u/6403055?u=8c40778251e25b92cdee727056415b6c0d1bcdc5&v=4",
      "totalScore": 14.73822457733622,
      "prScore": 14.73822457733622,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "bealers: Opened 1 PR (#5278) focused on fixing a database schema type mismatch for the SQL plugin, and made code modifications in 1 file with a net change of 0 lines (+2/-2). Maintained a consistent activity pattern, being active every day."
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 10,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 10,
      "commentScore": 0,
      "summary": "ChristopherTrimboli: Reviewed 1 pull request with 1 approval, showing sporadic activity today. No code changes or issues were created or closed."
    },
    {
      "username": "mikirov",
      "avatarUrl": "https://avatars.githubusercontent.com/u/29272392?u=a4773a399c1cbcd34cdca9a7877cd61824c5bf09&v=4",
      "totalScore": 5.8645735902799725,
      "prScore": 5.8645735902799725,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "gnomonprime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/213946859?v=4",
      "totalScore": 5.34,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.33999999999999997,
      "summary": null
    },
    {
      "username": "NBFinanceTech",
      "avatarUrl": "https://avatars.githubusercontent.com/u/66219221?u=bb3a3d8ba0f61250fa7d5d6cac224706e29b7210&v=4",
      "totalScore": 4,
      "prScore": 0,
      "issueScore": 4,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "NBFinanceTech: Created 1 issue today (#5268 \"Can't save character\"), indicating a focus on addressing a bug. The activity pattern shows sporadic engagement, being active on only 1 out of the last 1 days."
    }
  ],
  "newPRs": 12,
  "mergedPRs": 7,
  "newIssues": 2,
  "closedIssues": 1,
  "activeContributors": 10
}