{
  "interval": {
    "intervalStart": "2025-07-21T00:00:00.000Z",
    "intervalEnd": "2025-07-22T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-07-21 to 2025-07-22, elizaos/eliza had 7 new PRs (6 merged), 14 new issues, and 10 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7BGIrT",
      "title": "When running `elizaos create` command, the `.elizadb` directory is being created in the wrong location (current working directory) instead of inside the newly created project folder.",
      "author": "linear",
      "number": 5616,
      "repository": "elizaos/eliza",
      "body": "\\## Problem Details\n\n\\### Current Behavior\n\n\\- User runs \\`elizaos create myproject\\` from their desktop\n\n\\- The \\`.elizadb\\` directory gets created in the current directory (desktop) instead of inside \\`myproject/\\`\n\n\\- This causes database initialization issues for new projects\n\n\\### Expected Behavior\n\n\\- Database directory should be created at: \\`myproject/.eliza/.elizadb/\\`\n\n\\- All project-specific files should be contained within the new project directory\n\n\\## Root Cause Analysis\n\nAfter analyzing the codebase, the issue is in how the \\`resolvePgliteDir\\` function determines the database directory during project creation:\n\n1\\. \\*\\*In \\`packages/cli/src/commands/create/actions/creators.ts\\`\\*\\*:\n\n\\- The \\`createProject\\` function creates the project directory but doesn't properly pass the target directory context for database initialization\n\n\\- Line 313-364: Project creation happens but database setup uses wrong context\n\n2\\. \\*\\*In \\`packages/cli/src/utils/resolve-utils.ts\\`\\*\\*:\n\n\\- Line 72-82: The function has logic to handle \\`targetProjectDir\\` but it's not being properly utilized\n\n\\- The fallback logic defaults to \\`process.cwd()\\` when it should use the new project directory\n\n\\## Proposed Fix\n\n\\### 1. Update \\`createProject\\` function to properly pass target directory:\n\n\\`\\`\\`typescript\n\n*// In creators.ts*\n\nawait setupProjectEnvironment(projectTargetDir, database, aiModel, embeddingModel, true)\n\n\\`\\`\\`\n\n\\### 2. Ensure \\`setupPgLite\\` receives correct directory context:\n\n\\`\\`\\`typescript\n\n*// In setup.ts*\n\nexport async function setupPgLite(\n\n*dbDir*: string | undefined,\n\n*envPath*: string | undefined,\n\n*targetProjectDir*?: string\n\n): Promise<void> {\n\nconst dirs = await ensureElizaDir(targetProjectDir);\n\n*// ... rest of implementation*\n\n}\n\n\\`\\`\\`\n\n\\### 3. Fix \\`resolvePgliteDir\\` to properly use target directory:\n\n\\`\\`\\`typescript\n\n*// When targetProjectDir is provided, use it as the base*\n\nconst projectRoot = targetProjectDir || pathsInfo.monorepoRoot || process.cwd();\n\n\\`\\`\\`\n\n\\## Testing Requirements\n\n1\\. \\*\\*Manual Testing\\*\\*:\n\n \\`\\`\\`bash\n\n\\# From any directory\n\nelizaos create testproject\n\n\\# Verify .elizadb is inside testproject/.eliza/\n\nls testproject/.eliza/\n\n \\`\\`\\`\n\n2\\. \\*\\*Automated Tests\\*\\*:\n\n\\- Add test in \\`packages/cli/tests/commands/create.test.ts\\`\n\n\\- Verify database directory is created in correct location\n\n\\- Test both interactive and non-interactive modes\n\n3\\. \\*\\*Edge Cases\\*\\*:\n\n\\- Creating project in current directory with \\`elizaos create .\\`\n\n\\- Creating project with absolute path\n\n\\- Creating project when parent has existing \\`.eliza\\` directory\n\n\\## Implementation Steps\n\n1\\. \\*\\*Trace the execution flow\\*\\* of \\`elizaos create\\` command\n\n2\\. \\*\\*Identify where \\`process.cwd()\\` is being used\\*\\* instead of the target project directory\n\n3\\. \\*\\*Update the database initialization\\*\\* to use the correct base directory\n\n4\\. \\*\\*Add comprehensive tests\\*\\* to prevent regression\n\n5\\. \\*\\*Test with various scenarios\\*\\* (different directories, with/without existing .eliza folders)\n\n\\## Success Criteria\n\n\\- ✅ Running \\`elizaos create myproject\\` creates \\`.elizadb\\` inside \\`myproject/.eliza/\\`\n\n\\- ✅ No database files are created in the current working directory\n\n\\- ✅ All tests pass for various creation scenarios\n\n\\- ✅ Works correctly in both monorepo and standalone environments\n\n\\## Priority: High\n\nThis is a user-facing bug that affects the initial developer experience with ElizaOS. New users expect project creation to be self-contained.\n\n\\## Estimated Effort: 2-4 hours\n\nThe fix itself is straightforward, but thorough testing across different scenarios is important to ensure no regression.",
      "createdAt": "2025-07-17T13:31:08Z",
      "closedAt": "2025-07-21T15:52:01Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7BtlQz",
      "title": "`elizaos publish` fails with zod module error in newly created plugins",
      "author": "linear",
      "number": 5657,
      "repository": "elizaos/eliza",
      "body": "\\## Summary\n\nThe \\`elizaos publish\\` command fails immediately after creating a new plugin with \\`elizaos create --type plugin\\`, throwing a \"Cannot find module 'zod/v3'\" error from @langchain/core.\n\n\\## Environment\n\n\\- \\*\\*elizaOS CLI version\\*\\*: 1.3.0\n\n\\- \\*\\*Bun version\\*\\*: 1.2.15\n\n\\- \\*\\*OS\\*\\*: macOS arm64\n\n\\- \\*\\*Location\\*\\*: Fresh plugin created via CLI\n\n\\## Steps to Reproduce\n\n1\\. Run \\`elizaos create --type plugin testing -y\\`\n\n2\\. Navigate to the created plugin directory: \\`cd plugin-testing\\`\n\n3\\. Run \\`elizaos publish -h\\` (or any publish command)\n\n\\## Expected Behavior\n\nThe publish command should display help information or execute without module errors.\n\n\\## Actual Behavior\n\nCommand fails with error:\n\n\\`\\`\\`\n\nerror: Cannot find module 'zod/v3' from '/Users/yungalgo/Desktop/plugin-testing/node_modules/@langchain/core/dist/runnables/base.js'\n\n\\`\\`\\`\n\n\\## Full Terminal Output\n\n\\`\\`\\`bash\n\nyungalgo@machine \\~/desktop $ elizaos -v\n\n1.3.0\n\nyungalgo@machine \\~/desktop $ elizaos create --type plugin testing -y\n\nWarning: changing \"testing\" to \"plugin-testing\" to conform to plugin naming conventions\n\n│\n\n◇ Copying plugin template completed\n\n│\n\n│\n\n◇ ✓ Dependencies installed successfully\n\n◇ Installing dependencies completed\n\n✓ Plugin \"plugin-testing\" created successfully!\n\nNext steps:\n\ncd plugin-testing\n\nbun run build *# Build the plugin*\n\nCommon commands:\n\nelizaos dev *# Start development mode with hot reloading*\n\nelizaos start *# Start in production mode*\n\nyungalgo@machine \\~/desktop $ cd plugin-testing\n\nyungalgo@machine \\~/desktop/plugin-testing $ elizaos publish -h\n\n\\[2025-07-21 20:29:34\\] INFO: Using local @elizaos/cli installation\n\nerror: Cannot find module 'zod/v3' from '/Users/yungalgo/Desktop/plugin-testing/node_modules/@langchain/core/dist/runnables/base.js'\n\nBun v1.2.15 (macOS arm64)\n\n\\`\\`\\`\n\n\\## Analysis\n\nThe issue appears to be a missing or incorrect dependency resolution where:\n\n1\\. The plugin template includes @langchain/core as a dependency\n\n2\\. @langchain/core expects 'zod/v3' to be available\n\n3\\. The zod package is either not installed or not at the correct version that exports a 'v3' subpath\n\n\\## Potential Solutions\n\n1\\. Add explicit zod dependency to the plugin template's package.json\n\n2\\. Update @langchain/core to a version that doesn't require 'zod/v3'\n\n3\\. Ensure proper peer dependency resolution during plugin creation\n\n4\\. Check if this is a Bun-specific module resolution issue\n\n\\## Priority\n\nHigh - This blocks plugin publishing workflow immediately after creation\n\n\\## Additional Notes\n\n\\- The plugin creation itself completes successfully\n\n\\- Dependencies install without errors during creation\n\n\\- The error only appears when trying to use the publish command\n\n\\- This affects the out-of-the-box experience for new plugin developers",
      "createdAt": "2025-07-21T20:30:37Z",
      "closedAt": "2025-07-24T12:04:49Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7Bte9R",
      "title": "update action-chaining docs on docs repo/site",
      "author": "linear",
      "number": 5656,
      "repository": "elizaos/eliza",
      "body": "* How and when to use callbacks\n* how to avoid double response\n* what happens with action results",
      "createdAt": "2025-07-21T20:20:33Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7BtdQ9",
      "title": "update create-eliza command npm deployment etc",
      "author": "linear",
      "number": 5655,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2025-07-21T20:18:06Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7BtcsO",
      "title": "Add MCP plugin docs",
      "author": "linear",
      "number": 5654,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2025-07-21T20:17:24Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6f17vD",
      "title": "feat: Add Clanker Plugin with SDK v4.0.0 Integration",
      "author": "wtfsayo",
      "number": 5650,
      "body": "## 🚀 Clanker Protocol Plugin for ElizaOS\n\nThis PR introduces a comprehensive Clanker protocol integration plugin that enables advanced token deployment and management on Base L2 using Clanker SDK v4.0.0.\n\n### 🎯 **Key Features**\n\n#### **Core Functionality**\n- **🪙 Token Deployment**: Advanced token deployment with Clanker SDK v4.0.0\n- **📊 Token Information**: Comprehensive token data queries  \n- **💰 Balance Checking**: Wallet and token balance monitoring\n- **🎯 Vanity Addresses**: Custom address suffix generation\n\n#### **Advanced Configuration**\n- **🏊 Pool Configuration**: Custom liquidity positions and fee structures\n- **🏆 Reward Management**: Creator rewards and fee distribution\n- **🔒 Vault & Vesting**: Token supply locking with custom schedules\n- **💸 Initial Dev Purchases**: Automated initial market making\n- **🎨 Rich Metadata**: IPFS images, social links, audit URLs\n\n#### **Legacy Operations (Properly Deprecated)**\n- **⚠️ Liquidity Management**: Redirects to Uniswap v4\n- **⚠️ Token Swapping**: Redirects to dedicated DEX integrations\n\n---\n\n### 🧪 **Comprehensive Testing - 85%+ Coverage**\n\n#### **Test Statistics**\n- **Test Files**: 9 comprehensive test suites\n- **Test Cases**: 200+ individual scenarios\n- **Lines of Test Code**: 2,500+ lines\n- **Coverage**: All critical user-facing functionality\n\n#### **Test Categories**\n- ✅ **Services** (100%): Clanker SDK integration, wallet operations\n- ✅ **Actions** (100%): Token deployment, info queries, balance checks, deprecated operations  \n- ✅ **Utilities** (100%): Error handling, formatting, validation\n- ✅ **Core** (100%): Plugin initialization and configuration\n\n#### **Quality Features**\n- 🔄 **Edge Cases**: Invalid inputs, service failures, network issues\n- 🎭 **Comprehensive Mocking**: Type-safe service simulation\n- 📊 **SDK Integration**: Tests actual Clanker v4.0.0 patterns\n- 🚨 **Error Scenarios**: Network timeouts, insufficient funds, validation\n- 🔧 **Backwards Compatibility**: Proper deprecation handling\n\n---\n\n### 🏗️ **Technical Architecture**\n\n#### **Services Layer**\n- **ClankerService**: Clanker SDK v4.0.0 integration with advanced config support\n- **WalletService**: Ethers.js wallet management with transaction handling\n\n#### **Actions Layer**\n- **tokenDeployAction**: Natural language → Clanker API parameter conversion\n- **tokenInfoAction**: Token data retrieval with formatting\n- **balanceCheckAction**: Wallet/token balance queries\n- **liquidityManagementAction**: Proper deprecation handling\n- **tokenSwapAction**: Proper deprecation handling\n\n#### **Support Layer**\n- **Providers**: Token context and market data\n- **Evaluators**: Deployment success analysis\n- **Utilities**: Error handling, formatting, validation\n\n---\n\n### 📊 **Clanker SDK v4.0.0 Integration**\n\n#### **New Features Supported**\n- ✅ Vanity address generation with custom suffixes\n- ✅ Advanced pool configuration with custom tick positions  \n- ✅ Comprehensive reward distribution (up to 7 recipients)\n- ✅ Token supply vesting with lockup + linear vesting periods\n- ✅ Initial dev purchases with automated market making\n- ✅ Rich metadata with IPFS images and social links\n- ✅ Social provenance context validation\n\n#### **Breaking Changes Handled**\n- ✅ Fixed token supply (1B tokens) instead of custom amounts\n- ✅ Fixed decimals (18) instead of custom precision\n- ✅ Required `tokenAdmin` parameter for permissions\n- ✅ Enhanced metadata structure for social verification\n\n---\n\n### 🔐 **Security & Production Readiness**\n\n#### **Security Features**\n- 🔑 Private key protection with environment variables\n- ⛽ Gas price monitoring and limits\n- ✅ Comprehensive parameter validation\n- 🚨 Proper error handling with user-friendly messages\n- 🔄 Transaction retry logic with exponential backoff\n\n#### **Production Features**\n- 📚 Comprehensive documentation with examples\n- 🚨 Troubleshooting guide for common issues  \n- ⚠️ Migration guide from legacy versions\n- 🔧 Development workflow documentation\n- 📊 Architecture diagrams and component descriptions\n\n---\n\n### 🎯 **Usage Examples**\n\n#### **Simple Deployment**\n```\n\"Deploy a new token called MyToken with symbol MTK\"\n\"Create a memecoin called PEPE with vanity address\"\n```\n\n#### **Advanced Deployment**\n```typescript\nawait clankerService.deployToken({\n  name: \"Advanced Token\",\n  symbol: \"ADV\", \n  vanity: true,\n  vault: { percentage: 10, lockupDuration: 2592000, vestingDuration: 2592000 },\n  devBuy: { ethAmount: 0.1 },\n  rewards: { recipients: [{ recipient: \"0x...\", bps: 8000, token: \"Paired\" }] }\n});\n```\n\n#### **Information Queries**\n```\n\"Get info for token 0x1234567890abcdef1234567890abcdef12345678\"\n\"What is the price and market cap of BASE token?\"\n\"Check my wallet balance\"\n```\n\n---\n\n### ⚡ **Files Changed**\n\n- **36 files added** with 6,271 lines of code\n- **Source Files**: Complete plugin architecture with services, actions, providers\n- **Test Files**: Comprehensive test coverage across all components\n- **Documentation**: Production-ready README with examples and guides\n- **Configuration**: TypeScript config, build setup, package.json\n\n---\n\n### 🚀 **Ready for Review**\n\nThis plugin is production-ready with:\n- ✅ Comprehensive test coverage (85%+)\n- ✅ Full Clanker SDK v4.0.0 integration  \n- ✅ Proper deprecation handling for legacy features\n- ✅ Security best practices implemented\n- ✅ Complete documentation and examples\n- ✅ TypeScript type safety throughout\n- ✅ Error resilience and user-friendly messages\n\n**Testing**: Run `bun test` in `packages/plugin-clanker/` to verify all tests pass.\n\n**Documentation**: See comprehensive README with usage examples, architecture details, and troubleshooting guides.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-07-21T12:15:16Z",
      "mergedAt": null,
      "additions": 6271,
      "deletions": 0
    },
    {
      "id": "PR_kwDOMT5cIs6f75vg",
      "title": "feat: enhance-logging-rebased",
      "author": "standujar",
      "number": 5659,
      "body": "<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\r\n\r\n## Summary by CodeRabbit\r\n\r\n* **New Features**\r\n  * Introduced advanced logging configuration for ElizaOS agents, including new CLI options for log level, transport (console or file), file path, and JSON formatting.\r\n  * Added an interactive `elizaos logger` CLI command for persistent logging setup.\r\n  * Logging can now be configured via CLI flags, environment variables, or config files, with hybrid console and file output supported.\r\n\r\n* **Documentation**\r\n  * Expanded and reorganized documentation for logging, CLI commands, and server testing, including new guides and usage examples.\r\n\r\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-07-21T21:59:42Z",
      "mergedAt": null,
      "additions": 1796,
      "deletions": 642
    },
    {
      "id": "PR_kwDOMT5cIs6bUr_K",
      "title": "feat: enhance logging capabilities in CLI",
      "author": "standujar",
      "number": 5203,
      "body": "# Relates to\r\n\r\nhttps://github.com/elizaOS/eliza/issues/5183\r\n\r\n# Risks\r\n\r\n**Risk: Low**\r\n- Code cleanup and documentation improvement\r\n- Removes non-functional features to avoid user confusion\r\n- No impact on existing core functionality\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nThis PR cleans up the logging system for ElizaOS by removing non-implemented features and updating documentation to reflect actual capabilities:\r\n\r\n1. **Code Cleanup**: Removes CloudWatch, Elasticsearch, and multi-transport configurations that were not actually implemented\r\n2. **Simplified CLI Interface**: Streamlined `elizaos logger` command with only functional options\r\n3. **Accurate Documentation**: Updated documentation to reflect only supported features\r\n4. **Clear Transport Options**: Limited to console and file transports (the only working implementations)\r\n5. **Future Planning**: Added section about planned enhancements for transparency\r\n\r\n## What kind of change is this?\r\n\r\n**Code Cleanup** (non-breaking change which removes non-functional code)\r\n- Removed non-implemented transport configurations\r\n- Simplified CLI interface to show only working options\r\n- Updated documentation for accuracy\r\n- Added future enhancement roadmap\r\n\r\n# Documentation changes needed?\r\n\r\n**My changes require a change to the project documentation.**\r\n**I have updated the documentation accordingly.**\r\n\r\nUpdated files:\r\n- `eliza/packages/docs/docs/cli/logger.md` - Removed references to non-implemented transports\r\n- `eliza/packages/cli/src/commands/logger.ts` - Cleaned up interface and configuration types\r\n- `eliza/packages/cli/src/commands/start/index.ts` - Simplified transport validation\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\n\r\n1. **CLI Interface**: Test the simplified `elizaos logger` command (should only show console/file options)\r\n2. **Error Handling**: Verify that unsupported transports show appropriate warnings\r\n3. **Documentation**: Review updated documentation for accuracy and clarity\r\n4. **Existing Functionality**: Ensure console and file logging still work correctly\r\n\r\n## Detailed testing steps\r\n\r\n### CLI Logger Interface\r\n```bash\r\n# Test simplified interactive menu (should only show 2 transport options)\r\nelizaos logger\r\n```\r\n\r\n### Transport Validation\r\n```bash\r\n# Test that only supported transports work\r\nelizaos start --log-transport console --log-level debug  # Should work\r\nelizaos start --log-transport file --log-level debug     # Should work\r\n\r\n# Test unsupported transport handling (if somehow configured)\r\n# Should show warning and fall back to console\r\n```\r\n\r\n### Documentation Verification\r\n- Review `packages/docs/docs/cli/logger.md` - should only mention console/file transports\r\n- Check that CloudWatch/Elasticsearch references are removed\r\n- Verify \"Future Enhancements\" section explains planned features\r\n\r\n## Screenshots\r\n\r\n### After - Simplified CLI Menu\r\n```\r\nSelect output destination:\r\n❯ Console only\r\n  Console + File (hybrid)\r\n```\r\n\r\n### Updated Transport Table\r\n| Transport | Description | CLI Option |\r\n|-----------|-------------|------------|\r\n| `console` | Console output only with pretty formatting | `--log-transport console` |\r\n| `file` | Hybrid: console + file output | `--log-transport file` |\r\n\r\n## Documentation Changes\r\n\r\n### Added Clarity\r\n- **Available Transports** section clearly listing only supported options\r\n- **Future Enhancements** section explaining planned features\r\n- **Alternative Solutions** for users needing advanced transports\r\n\r\n### Updated Examples\r\n- All examples now use only `console` or `file` transports\r\n- Removed confusing CloudWatch/Elasticsearch configuration examples\r\n- Simplified setup instructions\r\n\r\n## Benefits\r\n\r\n1. **No More User Confusion**: Users won't try to configure non-working features\r\n2. **Honest Documentation**: Documentation accurately reflects actual capabilities\r\n3. **Cleaner Codebase**: Removed dead code and unused configuration options\r\n4. **Better Error Messages**: Clear validation for unsupported transports\r\n5. **Future-Ready**: Clear roadmap for when advanced transports are implemented\r\n\r\n## Code Changes Summary\r\n\r\n### `packages/cli/src/commands/logger.ts`\r\n- Simplified `LoggerConfig` interface to only include working transports\r\n- Removed CloudWatch/Elasticsearch configuration handling\r\n- Streamlined `displayConfig` function\r\n- Updated transport selection menu\r\n\r\n### `packages/cli/src/commands/start/index.ts`\r\n- Updated transport validation logic\r\n- Simplified help text for transport options\r\n- Improved error messages for unsupported transports\r\n\r\n### `packages/docs/docs/cli/logger.md`\r\n- Complete rewrite focusing on supported features\r\n- Added transport comparison table\r\n- Added future enhancements section\r\n- Removed misleading examples and configuration sections\r\n\r\n## Backward Compatibility\r\n\r\n- **Fully Compatible**: All existing functionality continues to work\r\n- **Configuration Files**: Existing configs with unsupported transports will show warnings and fall back to console\r\n- **No Breaking Changes**: Console and file logging work exactly as before\r\n\r\n## Future Work\r\n\r\nThis cleanup sets the foundation for properly implementing advanced transports:\r\n- CloudWatch transport with proper AWS SDK integration\r\n- Elasticsearch transport with connection management\r\n- Multi-transport with proper configuration validation\r\n\r\n# Deploy Notes\r\n\r\nNo special deployment requirements. This is a cleanup that improves user experience by removing confusion about non-working features. \n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- **New Features**\n  - Introduced a new CLI command for interactive logging configuration, allowing users to set log level, transport type, file path, and JSON formatting.\n  - Added advanced logging options to the CLI, including support for file-based logging, hybrid console/file output, and JSON log formatting.\n\n- **Documentation**\n  - Expanded documentation for logging configuration, including a new guide for the logger command and updated instructions for the start command.\n  - Updated README and CLI documentation to reflect new logging options and provide detailed usage examples.\n\n- **Style**\n  - Minor improvements to code comments and whitespace for clarity.\n\n- **Chores**\n  - Updated build configuration to exclude Cypress test files from the server package build process.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-06-19T23:38:53Z",
      "mergedAt": null,
      "additions": 1661,
      "deletions": 626
    },
    {
      "id": "PR_kwDOMT5cIs6fzjrm",
      "title": "docs: add critical ElizaOS component clarifications to CLAUDE.md",
      "author": "wtfsayo",
      "number": 5642,
      "body": "## Summary\n\nThis PR adds critical clarifications to CLAUDE.md to help developers understand the correct usage of ElizaOS components (Services, Providers, Actions, Evaluators).\n\n## Changes\n\n### 1. Main CLAUDE.md updates\n- Added \"CRITICAL: ElizaOS Component Clarifications\" section with:\n  - Clear distinction between Services vs Providers\n  - Clear distinction between Actions vs Evaluators  \n  - Correct architecture pattern diagram\n  - Plugin structure with required components\n  - Common mistakes to avoid\n- Added guidance for using parallel Claude code agents for maximum performance\n\n### 2. Created CLAUDE.md files for starter templates\n- **packages/plugin-starter/CLAUDE.md**: Complete guide for ElizaOS plugin development\n- **packages/project-starter/CLAUDE.md**: Complete guide for ElizaOS agent projects\n- Both files include:\n  - Detailed component explanations with examples\n  - Best practices and common patterns\n  - `elizaos dev` and `elizaos start` command documentation\n  - Required plugins documentation\n\n### 3. Updated tests\n- Updated create.test.ts to verify CLAUDE.md files are properly copied during project creation\n\n## Background\n\nThis documentation was created to address widespread confusion about ElizaOS component usage patterns, particularly:\n- When to use Services vs Providers\n- When to use Actions vs Evaluators\n- The requirement for Services when dealing with external APIs\n- The read-only nature of Providers\n\n## Impact\n\nThese changes will help developers:\n- Understand the correct ElizaOS architecture patterns\n- Avoid common mistakes when building plugins\n- Have clear reference documentation in their projects\n- Use parallel agents effectively for better performance\n\n🤖 Generated with [Claude Code](https://claude.ai/code)\n\nCo-Authored-By: Claude <noreply@anthropic.com>",
      "repository": "elizaos/eliza",
      "createdAt": "2025-07-21T08:41:23Z",
      "mergedAt": "2025-07-21T16:11:39Z",
      "additions": 1307,
      "deletions": 4
    },
    {
      "id": "PR_kwDOMT5cIs6fcktq",
      "title": "refactor(plugin-bootstrap): migrate JSON prompts to XML format",
      "author": "0xbbjoker",
      "number": 5623,
      "body": "# Refactor: Complete Migration from JSON to XML Prompts\r\n\r\n## Summary\r\n\r\nThis PR completes a comprehensive refactoring of all prompts across the ElizaOS codebase to use XML format instead of JSON, significantly improving LLM response reliability and consistency.\r\n\r\n## Motivation\r\n\r\nLarge Language Models (LLMs) have shown better performance and more reliable parsing when working with XML format compared to JSON. This is particularly important for complex structured outputs where JSON parsing can be fragile due to:\r\n\r\n- Escape character handling\r\n- Nested object complexity\r\n- String delimiters and special characters\r\n- Inconsistent formatting across different LLM providers\r\n\r\n## Changes Made\r\n\r\n### Core Package Updates\r\n\r\n- **entities.ts**: Updated entity resolution template to XML format for better entity matching\r\n\r\n### Plugin-Bootstrap Actions Refactored\r\n\r\n- **imageGeneration.ts**: Migrated image prompt generation to XML\r\n- **reply.ts**: Updated reply template to use XML response format\r\n- **sendMessage.ts**: Converted target extraction to XML structure\r\n- **settings.ts**: Refactored all setting templates (success, failure, error, completion) to XML\r\n- **updateEntity.ts**: Updated component data extraction to XML format\r\n- **roles.ts**: Converted role assignment parsing to XML and removed `dedent` dependency\r\n- **choice.ts**: Updated option extraction template to XML format\r\n\r\n### Evaluators Refactored\r\n\r\n- **reflection.ts**: Converted complex nested fact and relationship structures to XML with proper array handling\r\n\r\n### Test Suite Updates\r\n\r\n- **core/entities.test.ts**: Updated all entity tests to mock `parseKeyValueXml` instead of `parseJSONObjectFromText`\r\n- **plugin-bootstrap/evaluators.test.ts**: Fixed reflection evaluator tests to handle XML responses\r\n- **plugin-bootstrap/actions.test.ts**: Updated reply action tests to expect XML format\r\n\r\n### Technical Improvements\r\n\r\n1. **Consistent Parsing**: All responses now use `parseKeyValueXml` for uniform parsing\r\n2. **Model Type Updates**: Changed from `OBJECT_LARGE/OBJECT_SMALL` to `TEXT_LARGE/TEXT_SMALL` where appropriate\r\n3. **Better Structure Handling**: Improved handling of nested structures (arrays within XML)\r\n4. **Type Safety**: Fixed TypeScript errors with proper type annotations\r\n5. **Clear Instructions**: Added explicit prompting to avoid LLM reasoning sections in responses\r\n6. **Dependency Cleanup**: Removed unnecessary `dedent` dependency from roles.ts\r\n\r\n## XML Structure Examples\r\n\r\n### Before (JSON):\r\n\r\n```json\r\n{\r\n  \"thought\": \"Analyzing the situation\",\r\n  \"actions\": [\"REPLY\", \"UPDATE_ENTITY\"],\r\n  \"text\": \"Hello, how can I help?\"\r\n}\r\n```\r\n\r\n### After (XML):\r\n\r\n```xml\r\n<response>\r\n  <thought>Analyzing the situation</thought>\r\n  <actions>REPLY,UPDATE_ENTITY</actions>\r\n  <text>Hello, how can I help?</text>\r\n</response>\r\n```\r\n\r\n## Benefits\r\n\r\n- ✅ More reliable LLM responses across all providers\r\n- ✅ Consistent parsing throughout the entire codebase\r\n- ✅ Reduced parsing errors and edge cases\r\n- ✅ Better handling of complex nested structures\r\n- ✅ Cleaner, more maintainable code\r\n- ✅ Improved test coverage with proper XML mocking\r\n\r\n## Testing\r\n\r\nAll tests have been updated to handle the new XML format:\r\n\r\n- Core entity tests now properly mock XML parsing\r\n- Plugin-bootstrap tests updated to expect XML responses\r\n- Test utilities enhanced to support both legacy and new formats\r\n\r\n## Breaking Changes\r\n\r\nNone - This is an internal refactoring that maintains the same external API. All public interfaces remain unchanged.\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-07-17T20:28:58Z",
      "mergedAt": "2025-07-21T18:41:51Z",
      "additions": 598,
      "deletions": 487
    }
  ],
  "codeChanges": {
    "additions": 2256,
    "deletions": 864,
    "files": 29,
    "commitCount": 60
  },
  "completedItems": [
    {
      "title": "refactor(plugin-bootstrap): migrate JSON prompts to XML format",
      "prNumber": 5623,
      "type": "refactor",
      "body": "# Refactor: Complete Migration from JSON to XML Prompts\r\n\r\n## Summary\r\n\r\nThis PR completes a comprehensive refactoring of all prompts across the ElizaOS codebase to use XML format instead of JSON, significantly improving LLM response reliab",
      "files": [
        "packages/core/src/__tests__/entities.test.ts",
        "packages/core/src/entities.ts",
        "packages/plugin-bootstrap/src/__tests__/actions.test.ts",
        "packages/plugin-bootstrap/src/__tests__/evaluators.test.ts",
        "packages/plugin-bootstrap/src/actions/choice.ts",
        "packages/plugin-bootstrap/src/actions/imageGeneration.ts",
        "packages/plugin-bootstrap/src/actions/reply.ts",
        "packages/plugin-bootstrap/src/actions/roles.ts",
        "packages/plugin-bootstrap/src/actions/sendMessage.ts",
        "packages/plugin-bootstrap/src/actions/settings.ts",
        "packages/plugin-bootstrap/src/actions/updateEntity.ts",
        "packages/plugin-bootstrap/src/evaluators/reflection.ts"
      ]
    },
    {
      "title": "fix: JSON strings in sql base",
      "prNumber": 5628,
      "type": "bugfix",
      "body": "### PR Review – JSON B insert failure fix in `plugin-sql`\r\n\r\nGreat catch!  \r\nThe change that stringifies `content` and `metadata` before passing them to\r\n\r\n```ts\r\nsql`${...}::jsonb`\r\n```\r\n\r\nsolves the root issue where raw objects were impli",
      "files": [
        "packages/plugin-sql/src/__tests__/integration/memory.test.ts",
        "packages/plugin-sql/src/base.ts"
      ]
    },
    {
      "title": "feat: add post examples to default eliza char",
      "prNumber": 5652,
      "type": "feature",
      "body": "Without this, twitter posting doesn't run.",
      "files": [
        "packages/cli/src/characters/eliza.ts",
        "packages/docs/packages/plugins/twitter.md",
        "packages/docs/static/packages/plugins/twitter.md"
      ]
    },
    {
      "title": "cleanup: remove unused test-function-detection.sh script",
      "prNumber": 5651,
      "type": "refactor",
      "body": "## Summary\n\nRemoves the unused `test-function-detection.sh` script from the root directory.\n\n## Context\n\nThis script was a development artifact used to validate AWK patterns for function detection during the development of the code quality ",
      "files": [
        "test-function-detection.sh"
      ]
    },
    {
      "title": "docs: add critical ElizaOS component clarifications to CLAUDE.md",
      "prNumber": 5642,
      "type": "docs",
      "body": "## Summary\n\nThis PR adds critical clarifications to CLAUDE.md to help developers understand the correct usage of ElizaOS components (Services, Providers, Actions, Evaluators).\n\n## Changes\n\n### 1. Main CLAUDE.md updates\n- Added \"CRITICAL: El",
      "files": [
        "CLAUDE.md",
        "packages/cli/tests/commands/create.test.ts",
        "packages/plugin-starter/CLAUDE.md",
        "packages/project-starter/CLAUDE.md"
      ]
    },
    {
      "title": "fix: CLI dev command test failures due to missing dependencies",
      "prNumber": 5641,
      "type": "bugfix",
      "body": "## Summary\n- Fixed failing dev command tests in CI by addressing missing dependency issues\n- Tests were failing with \"Cannot find module '@langchain/core/documents'\" error\n- Server subprocess was not outputting to test process due to stdio ",
      "files": [
        ".gitignore",
        "bun.lock",
        "packages/cli/src/commands/dev/actions/dev-server.ts",
        "packages/cli/src/commands/dev/utils/server-manager.ts",
        "packages/cli/tests/commands/dev.test.ts",
        "packages/core/package.json",
        "packages/server/package.json"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 158.53601602192933,
      "prScore": 158.09801602192934,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 42.16402753610272,
      "prScore": 26.164027536102726,
      "issueScore": 0,
      "reviewScore": 16,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "cuongpo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/61429471?u=4ee322b81464e6380a46388ff471c9247bb4cbd7&v=4",
      "totalScore": 36.506248211863664,
      "prScore": 36.506248211863664,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 35.9757738965761,
      "prScore": 35.7757738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "linear",
      "avatarUrl": "https://avatars.githubusercontent.com/in/20150?v=4",
      "totalScore": 30,
      "prScore": 0,
      "issueScore": 30,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 28.547948169591304,
      "prScore": 28.347948169591305,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "github-advanced-security",
      "avatarUrl": "https://avatars.githubusercontent.com/in/57789?v=4",
      "totalScore": 4.5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 4.5,
      "commentScore": 0,
      "summary": null
    }
  ],
  "newPRs": 7,
  "mergedPRs": 6,
  "newIssues": 14,
  "closedIssues": 1,
  "activeContributors": 10
}