{
  "interval": {
    "intervalStart": "2025-07-15T00:00:00.000Z",
    "intervalEnd": "2025-07-16T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-07-15 to 2025-07-16, elizaos/eliza had 14 new PRs (15 merged), 3 new issues, and 6 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs65xeti",
      "title": "Service Types and Test Services",
      "author": "lalalune",
      "number": 4914,
      "repository": "elizaos/eliza",
      "body": "We can broadly group our services into types, and it can be handy for building abstract plugins that depend on other services. For example, if I want to make a trading plugin, it'd be neat if I could just call runtime.getServicesByType('wallet') and it'd return all wallets attached to the runtime.\n\nStandard list of types off the bat: PDF, VideoDownload, Wallet, Message, Post, Database, TokenData, etc.\n\nThese should be interfaces with functions that are standardized, so that for example any wallet has a getBalance feature.\n\nWe should have a dummy service for each of these which has in-memory test functions that other services can depend on for running tests etc.",
      "createdAt": "2025-06-04T07:10:30Z",
      "closedAt": "2025-07-15T07:04:08Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7AsRye",
      "title": "Build Zapper plugin",
      "author": "borisudovicic",
      "number": 5600,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2025-07-15T15:58:00Z",
      "closedAt": "2025-07-18T14:01:39Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7AoWv0",
      "title": "env read issue with quotes \"\"",
      "author": "borisudovicic",
      "number": 5590,
      "repository": "elizaos/eliza",
      "body": "<img src=\"https://uploads.linear.app/186bdefa-3633-464a-80cd-6e86fe765a5c/512dbb8e-48b1-4128-b94c-cb8d2dfc7da8/2d2e1c08-4003-41c3-afc9-9b5d7789ad87?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiLzE4NmJkZWZhLTM2MzMtNDY0YS04MGNkLTZlODZmZTc2NWE1Yy81MTJkYmI4ZS00OGIxLTQxMjgtYjk0Yy1jYjhkMmRmYzdkYTgvMmQyZTFjMDgtNDAwMy00MWMzLWFmYzktOWI1ZDc3ODlhZDg3IiwiaWF0IjoxNzUyNTc4NDcxLCJleHAiOjMzMzIzMTM4NDcxfQ.vD345IjHJovTTzWAMPLR2wTWipKgEtrnPWcR99udl8U \" alt=\"image.png\" width=\"2258\" data-linear-height=\"484\" />",
      "createdAt": "2025-07-15T10:58:17Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7AoVhW",
      "title": "Custom Plugin Schema migration issues",
      "author": "borisudovicic",
      "number": 5588,
      "repository": "elizaos/eliza",
      "body": "Steps to reproduce:\n\n1. Schema Files\n\n```\n\nimport { pgTable, text, uuid, timestamp, pgEnum } from \"drizzle-orm/pg-core\";\n\nexport const suggestionTypeEnum = pgEnum(\"suggestion_type\", [\"buy\", \"sell\"]);\n\nexport const suggestionStatusEnum = pgEnum(\"suggestion_status\", [\"pending\", \"resolved\", \"rejected\"]);\n\nexport const pluginSuggestionsTable = pgTable(\"plugin_suggestions\", {\n\n  id: uuid(\"id\").primaryKey().defaultRandom(),\n\n  type: suggestionTypeEnum(\"type\").notNull(),\n\n  ticker: text(\"ticker\").notNull(),\n\n  status: suggestionStatusEnum(\"status\").notNull().default(\"pending\"),\n\n  createdAt: timestamp(\"created_at\").defaultNow().notNull(),\n\n});\n```\n\n2. Insert the schema in plugin (check the image)\n3. In my env I have  POSTGRES_URL\n4. Run: bun run dev\n5. LOGS (in order, check images)\n\n<img src=\"https://uploads.linear.app/186bdefa-3633-464a-80cd-6e86fe765a5c/841e557c-c444-4cd9-bc27-babba3a3c1e3/50f1d0b5-7eac-4f74-828f-3ac714c080bb?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiLzE4NmJkZWZhLTM2MzMtNDY0YS04MGNkLTZlODZmZTc2NWE1Yy84NDFlNTU3Yy1jNDQ0LTRjZDktYmMyNy1iYWJiYTNhM2MxZTMvNTBmMWQwYjUtN2VhYy00Zjc0LTgyOGYtM2FjNzE0YzA4MGJiIiwiaWF0IjoxNzUyNTc2OTk0LCJleHAiOjMzMzIzMTM2OTk0fQ.97A6ips7qPpM2TqSm2dJR91l99ZvoNasTh13xAHm9v8 \" alt=\"image.png\" width=\"774\" data-linear-height=\"616\" />\n\n<img src=\"https://uploads.linear.app/186bdefa-3633-464a-80cd-6e86fe765a5c/f8d274f2-7888-46b2-a5ce-5c17b40b5ec9/872adc46-1d7b-4d21-b7af-0341b2889a25?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiLzE4NmJkZWZhLTM2MzMtNDY0YS04MGNkLTZlODZmZTc2NWE1Yy9mOGQyNzRmMi03ODg4LTQ2YjItYTVjZS01YzE3YjQwYjVlYzkvODcyYWRjNDYtMWQ3Yi00ZDIxLWI3YWYtMDM0MWIyODg5YTI1IiwiaWF0IjoxNzUyNTc2OTk0LCJleHAiOjMzMzIzMTM2OTk0fQ.T5OwwRXJbVsuw2RyOfUS964k8qk0O-B9N1U-3kCXjms \" alt=\"image.png\" width=\"1476\" data-linear-height=\"396\" />\n\n<img src=\"https://uploads.linear.app/186bdefa-3633-464a-80cd-6e86fe765a5c/764172ee-edbb-4fc2-aef3-21ad403a1fb0/d0741a3d-cce2-4ace-bc92-19ab838f3fd4?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiLzE4NmJkZWZhLTM2MzMtNDY0YS04MGNkLTZlODZmZTc2NWE1Yy83NjQxNzJlZS1lZGJiLTRmYzItYWVmMy0yMWFkNDAzYTFmYjAvZDA3NDFhM2QtY2NlMi00YWNlLWJjOTItMTlhYjgzOGYzZmQ0IiwiaWF0IjoxNzUyNTc2OTk0LCJleHAiOjMzMzIzMTM2OTk0fQ.3HU-abTGuGFby8gYnCUA1ddMTp47RFxMl-prXM0Hl8Y \" alt=\"image.png\" width=\"1634\" data-linear-height=\"126\" />\n\n<img src=\"https://uploads.linear.app/186bdefa-3633-464a-80cd-6e86fe765a5c/d176e34a-791a-43c8-9150-e5ce243ddd00/dc27aeb0-a594-4e32-bde3-3606b8ca21be?signature=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXRoIjoiLzE4NmJkZWZhLTM2MzMtNDY0YS04MGNkLTZlODZmZTc2NWE1Yy9kMTc2ZTM0YS03OTFhLTQzYzgtOTE1MC1lNWNlMjQzZGRkMDAvZGMyN2FlYjAtYTU5NC00ZTMyLWJkZTMtMzYwNmI4Y2EyMWJlIiwiaWF0IjoxNzUyNTc2OTk0LCJleHAiOjMzMzIzMTM2OTk0fQ.grMScxlS5hdUZuCUQ02UfeL_Nyyv6IsJmEwELlHYUTs \" alt=\"image.png\" width=\"1390\" data-linear-height=\"644\" />",
      "createdAt": "2025-07-15T10:56:34Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6e_YJH",
      "title": "chore: 1.2.6",
      "author": "wtfsayo",
      "number": 5595,
      "body": "chore: 1.2.6\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-07-15T13:35:13Z",
      "mergedAt": "2025-07-15T15:47:06Z",
      "additions": 6466,
      "deletions": 1332
    },
    {
      "id": "PR_kwDOMT5cIs6esQci",
      "title": "feat: implement service types and standardized interfaces with getServicesByType() method",
      "author": "wtfsayo",
      "number": 5565,
      "body": "This PR implements the service types and test services system requested in issue #4914.\r\n\r\n## Key Features\r\n\r\n- **getServicesByType() method**: Returns all services of a specific type\r\n- **Multiple services per type**: Support for multiple wallet services, PDF services, etc.\r\n- **Standardized interfaces**: Created comprehensive interfaces for all major service types\r\n- **Test services**: Comprehensive dummy services for all interfaces\r\n- **Backward compatibility**: Existing getService() method still works\r\n\r\n## Service Interfaces Added\r\n\r\n- IPdfService - PDF processing, extraction, generation\r\n- IVideoService - Video download, processing, conversion\r\n- IBrowserService - Web browser automation and scraping\r\n- ITranscriptionService - Audio transcription and speech processing\r\n- IWebSearchService - Web search and content discovery\r\n- IEmailService - Email sending, receiving, management\r\n- IMessageService - Message sending and management\r\n- IPostService - Social media posting and content management\r\n\r\n## Usage Example\r\n\r\n```typescript\r\n// Get all wallet services attached to runtime\r\nconst walletServices = runtime.getServicesByType<IWalletService>('wallet');\r\n\r\n// Get all PDF services\r\nconst pdfServices = runtime.getServicesByType<IPdfService>('pdf');\r\n```\r\n\r\nCloses #4914\r\n\r\n🤖 Generated with [Claude Code](https://claude.ai/code)",
      "repository": "elizaos/eliza",
      "createdAt": "2025-07-13T16:41:12Z",
      "mergedAt": "2025-07-15T07:04:07Z",
      "additions": 3967,
      "deletions": 739
    },
    {
      "id": "PR_kwDOMT5cIs6e9s9B",
      "title": "feat(cli): add plugin-quick-starter template for backend-only plugins",
      "author": "0xbbjoker",
      "number": 5589,
      "body": "## 🎯 Overview\r\n\r\nThis PR introduces a new `plugin-quick-starter` template alongside the existing `plugin-starter` template to provide developers with a streamlined option for creating backend-only plugins without frontend overhead.\r\n\r\n## 🔄 Changes\r\n\r\n### New Template: `plugin-quick-starter`\r\n\r\n- Created a new lightweight plugin template focused on backend functionality\r\n- Removed all frontend dependencies (React, Vite, Tailwind, Cypress)\r\n- Simplified build configuration to use only tsup\r\n- Reduced test infrastructure to unit tests only\r\n- Minimal package.json with only essential dependencies\r\n\r\n### CLI Enhancements\r\n\r\n- Added plugin type selection when users run `elizaos create [plugin-name]`\r\n- Two options presented:\r\n  - **Quick Plugin (Backend Only)** - Uses `plugin-quick-starter` template\r\n  - **Full Plugin (with Frontend)** - Uses existing `plugin-starter` template\r\n- Updated `createPlugin` function to accept plugin type parameter\r\n- Modified template mapping to support both templates\r\n\r\n### Template Infrastructure\r\n\r\n- Updated `copy-templates.js` to include `plugin-quick-starter` in build process\r\n- Both templates are now copied to CLI templates directory during build\r\n- No changes to existing `plugin-starter` template (maintains backward compatibility)\r\n\r\n## 📊 Comparison\r\n\r\n| Feature      | plugin-quick-starter | plugin-starter       |\r\n| ------------ | -------------------- | -------------------- |\r\n| Frontend     | ❌ None              | ✅ React + Vite      |\r\n| Styling      | ❌ None              | ✅ Tailwind CSS      |\r\n| Build Tools  | tsup only            | tsup + Vite          |\r\n| Testing      | Unit tests only      | Unit + E2E + Cypress |\r\n| Dependencies | ~5 packages          | ~15 packages         |\r\n| Build Time   | ~2-3s                | ~10-15s              |\r\n| Bundle Size  | ~50KB                | ~500KB+              |\r\n\r\n## 🎨 User Experience\r\n\r\n### Before\r\n\r\n```bash\r\nelizaos create my-plugin\r\n# Creates full plugin with frontend (may be overkill for simple plugins)\r\n```\r\n\r\n### After\r\n\r\n```bash\r\nelizaos create my-plugin\r\n# Prompts: What type of plugin would you like to create?\r\n# > Quick Plugin (Backend Only)\r\n#   Full Plugin (with Frontend)\r\n```\r\n\r\n## 🔧 Technical Details\r\n\r\n### Plugin Quick Starter Structure\r\n\r\n```\r\nplugin-quick-starter/\r\n├── src/\r\n│   ├── __tests__/\r\n│   │   ├── plugin.test.ts\r\n│   │   └── test-utils.ts\r\n│   ├── plugin.ts\r\n│   ├── tests.ts\r\n│   └── index.ts\r\n├── scripts/\r\n│   └── install-test-deps.js\r\n├── tsup.config.ts\r\n├── tsconfig.json\r\n├── tsconfig.build.json\r\n├── package.json\r\n├── README.md\r\n└── .gitignore\r\n```\r\n\r\n### Key Differences in package.json\r\n\r\n```json\r\n{\r\n  \"scripts\": {\r\n    \"start\": \"elizaos start\",\r\n    \"dev\": \"elizaos dev\",\r\n    \"build\": \"tsc --noEmit && tsup\",\r\n    \"test\": \"bun test\",\r\n    \"format\": \"prettier --write ./src\"\r\n  },\r\n  \"dependencies\": {\r\n    \"@elizaos/core\": \"workspace:*\",\r\n    \"zod\": \"3.24.2\"\r\n  },\r\n  \"devDependencies\": {\r\n    \"@elizaos/cli\": \"latest\",\r\n    \"dotenv\": \"16.4.5\",\r\n    \"prettier\": \"3.5.3\",\r\n    \"tsup\": \"8.5.0\",\r\n    \"typescript\": \"5.8.2\"\r\n  }\r\n}\r\n```\r\n\r\n## ✅ Benefits\r\n\r\n1. **Reduced Complexity** - Backend-only plugins start with minimal setup\r\n2. **Faster Development** - Quicker builds and tests for simple plugins\r\n3. **Smaller Footprint** - No unnecessary frontend dependencies\r\n4. **Better DX** - Clear choice based on plugin requirements\r\n5. **Backward Compatible** - No changes to existing plugin-starter template\r\n\r\n## 🧪 Testing\r\n\r\n- [ ] Create quick plugin: `elizaos create test-quick-plugin`\r\n- [ ] Create full plugin: `elizaos create test-full-plugin`\r\n- [ ] Verify quick plugin builds without frontend\r\n- [ ] Verify full plugin maintains all frontend capabilities\r\n- [ ] Test backward compatibility with existing plugins\r\n- [ ] Ensure both templates work with `elizaos dev` and `elizaos start`\r\n\r\n## 🚀 Migration Guide\r\n\r\nNo migration required! Existing plugins continue to work as before. New plugins can choose the appropriate template based on their needs:\r\n\r\n- **Use `plugin-quick-starter` when:**\r\n\r\n  - Building backend-only functionality\r\n  - Creating services, actions, or providers\r\n  - Frontend is not required\r\n  - Want minimal dependencies\r\n\r\n- **Use `plugin-starter` when:**\r\n  - Need a web interface\r\n  - Building interactive dashboards\r\n  - Require frontend/backend integration\r\n  - Want full-stack capabilities\r\n\r\n## 🔍 Review Checklist\r\n\r\n- [ ] Code follows ElizaOS conventions\r\n- [ ] Tests pass for both templates\r\n- [ ] Documentation is updated\r\n- [ ] No breaking changes to existing functionality\r\n- [ ] Template copying works correctly\r\n- [ ] CLI prompts are user-friendly\r\n\r\n---\r\n\r\n**Note**: This PR enhances the plugin creation experience without breaking existing functionality. The original `plugin-starter` remains unchanged, ensuring full backward compatibility.\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-07-15T10:57:57Z",
      "mergedAt": "2025-07-15T12:38:06Z",
      "additions": 1213,
      "deletions": 32
    },
    {
      "id": "PR_kwDOMT5cIs6e73SR",
      "title": "feat: improve cli ci tests + migrate to bun native process spawn etc",
      "author": "wtfsayo",
      "number": 5586,
      "body": "## Description\n\nThis PR adds the Ollama plugin as a dependency to the ElizaOS CLI package and optimizes the CI/CD workflow for better performance.\n\n## Changes\n\n### 🎯 New Feature: Ollama Plugin Integration\n- Added `@elizaos/plugin-ollama@1.2.1` as a dependency to the CLI package\n- This enables Ollama LLM support directly in the CLI\n- Updated `bun.lock` to include `ollama-ai-provider` and its dependencies\n\n### 🚀 CI/CD Optimization\n- **Removed redundant Node.js setup** from CLI tests workflow\n  - Bun already handles JavaScript/TypeScript execution natively\n  - Reduces CI complexity and setup time\n- **Removed memory allocation override** from test command\n  - Removed `NODE_OPTIONS=\"--max-old-space-size=8192\"` \n  - Tests should run fine with default memory settings\n  - Simplifies test execution\n\n### 📦 Dependency Updates\n- Various dependency version updates in `bun.lock`\n- Includes updates to `@swc/core`, `@shikijs`, `@types/node`, and other packages\n\n## Testing\n\n- CI workflow changes will be validated by the GitHub Actions run on this PR\n- Ollama plugin integration can be tested once merged\n\n## Type of Change\n\n- [x] New feature (non-breaking change which adds functionality)\n- [x] Performance improvement (optimization to existing functionality)",
      "repository": "elizaos/eliza",
      "createdAt": "2025-07-15T08:07:23Z",
      "mergedAt": "2025-07-15T09:59:41Z",
      "additions": 513,
      "deletions": 802
    },
    {
      "id": "PR_kwDOMT5cIs6e3qHv",
      "title": "Sync develop into develop devel",
      "author": "QuasiPlanets",
      "number": 5585,
      "body": "<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\r\n\r\n# Relates to\r\n\r\n<!-- LINK TO ISSUE OR TICKET -->\r\n\r\n<!-- This risks section must be filled out before the final review and merge. -->\r\n\r\n# Risks\r\n\r\n<!--\r\nLow, medium, large. List what kind of risks and what could be affected.\r\n-->\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\n## What kind of change is this?\r\n\r\n<!--\r\nBug fixes (non-breaking change which fixes an issue)\r\nImprovements (misc. changes to existing features)\r\nFeatures (non-breaking change which adds functionality)\r\nUpdates (new versions of included code)\r\n-->\r\n\r\n<!-- This \"Why\" section is most relevant if there are no linked issues explaining why. If there is a related issue, it might make sense to skip this why section. -->\r\n<!--\r\n## Why are we doing this? Any context or related work?\r\n-->\r\n\r\n# Documentation changes needed?\r\n\r\n<!--\r\nMy changes do not require a change to the project documentation.\r\nMy changes require a change to the project documentation.\r\nIf documentation change is needed: I have updated the documentation accordingly.\r\n-->\r\n\r\n<!-- Please show how you tested the PR. This will really help if the PR needs to be retested and probably help the PR get merged quicker. -->\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\n\r\n## Detailed testing steps\r\n\r\n<!--\r\nNone: Automated tests are acceptable.\r\n-->\r\n\r\n<!--\r\n- As [anon/admin], go to [link]\r\n  - [do action]\r\n  - verify [result]\r\n-->\r\n\r\n<!-- If there is a UI change, please include before and after screenshots or videos. This will speed up PRs being merged. It is extra nice to annotate screenshots with arrows or boxes pointing out the differences. -->\r\n<!--\r\n## Screenshots\r\n### Before\r\n### After\r\n-->\r\n\r\n<!-- If there is anything about the deployment, please make a note. -->\r\n<!--\r\n# Deploy Notes\r\n-->\r\n\r\n<!--  Copy and paste command line output. -->\r\n<!--\r\n## Database changes\r\n-->\r\n\r\n<!--  Please specify deploy instructions if there is something more than the automated steps. -->\r\n<!--\r\n## Deployment instructions\r\n-->\r\n\r\n<!-- If you are on Discord, please join https://discord.gg/ai16z and state your Discord username here for the contributor role and join us in #development-feed -->\r\n<!--\r\n## Discord username\r\n\r\n-->\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-07-14T20:54:10Z",
      "mergedAt": null,
      "additions": 268,
      "deletions": 71
    }
  ],
  "codeChanges": {
    "additions": 8698,
    "deletions": 3148,
    "files": 108,
    "commitCount": 82
  },
  "completedItems": [
    {
      "title": "feat: implement service types and standardized interfaces with getServicesByType() method",
      "prNumber": 5565,
      "type": "feature",
      "body": "This PR implements the service types and test services system requested in issue #4914.\r\n\r\n## Key Features\r\n\r\n- **getServicesByType() method**: Returns all services of a specific type\r\n- **Multiple services per type**: Support for multiple ",
      "files": [
        "bun.lock",
        "packages/core/src/__tests__/services-by-type.test.ts",
        "packages/core/src/runtime.ts",
        "packages/core/src/types/browser.ts",
        "packages/core/src/types/email.ts",
        "packages/core/src/types/index.ts",
        "packages/core/src/types/message.ts",
        "packages/core/src/types/pdf.ts",
        "packages/core/src/types/post.ts",
        "packages/core/src/types/runtime.ts",
        "packages/core/src/types/service.ts",
        "packages/core/src/types/transcription.ts",
        "packages/core/src/types/video.ts",
        "packages/core/src/types/web-search.ts",
        "packages/plugin-dummy-services/src/browser/service.ts",
        "packages/plugin-dummy-services/src/email/service.ts",
        "packages/plugin-dummy-services/src/index.ts",
        "packages/plugin-dummy-services/src/pdf/service.ts",
        "packages/plugin-dummy-services/src/transcription/service.ts",
        "packages/plugin-dummy-services/src/video/service.ts",
        "packages/plugin-dummy-services/src/web-search/service.ts",
        ".github/workflows/claude-code-review.yml",
        ".github/workflows/claude.yml",
        "CLAUDE.md",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/index.ts",
        "packages/cli/src/utils/user-environment.ts",
        "packages/cli/tests/commands/agent.test.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/commands/dev.test.ts",
        "packages/cli/tests/commands/env.test.ts",
        "packages/cli/tests/commands/monorepo.test.ts",
        "packages/cli/tests/commands/plugins.test.ts",
        "packages/cli/tests/commands/publish.test.ts",
        "packages/cli/tests/commands/start.test.ts",
        "packages/cli/tests/commands/tee.test.ts",
        "packages/cli/tests/commands/test-utils.ts",
        "packages/cli/tests/commands/test.test.ts",
        "packages/cli/tests/commands/update.test.ts",
        "packages/cli/tests/integration/plugin-test-isolation.test.ts",
        "packages/cli/tests/integration/version-display.test.ts",
        "packages/cli/tests/unit/index.test.ts",
        "packages/cli/tests/utils/bun-test-helpers.ts",
        "packages/client/src/hooks/use-character-convert.ts",
        "packages/plugin-bootstrap/src/providers/capabilities.ts",
        "packages/plugin-dummy-services/src/tokenData/service.ts",
        "packages/plugin-dummy-services/src/wallet/service.ts",
        "packages/plugin-starter/scripts/install-test-deps.js",
        "packages/project-starter/scripts/install-test-deps.js",
        "packages/server/src/index.ts",
        "packages/cli/tests/test-timeouts.ts"
      ]
    },
    {
      "title": "Release v1.2.9",
      "prNumber": 5602,
      "type": "other",
      "body": "## Summary\n- Merging develop branch into main for v1.2.8 release\n- Includes all recent fixes and improvements\n\n## Changes\n- Fixed incorrect publish scripts in test-utils and plugin-starter packages that were causing CI failures\n- All other ",
      "files": [
        "packages/plugin-starter/package.json",
        "packages/test-utils/package.json"
      ]
    },
    {
      "title": "Merge develop into main",
      "prNumber": 5601,
      "type": "other",
      "body": "Merging latest changes from develop branch into main branch",
      "files": [
        "lerna.json",
        "packages/api-client/package.json",
        "packages/app/package.json",
        "packages/autodoc/package.json",
        "packages/cli/package.json",
        "packages/client/package.json",
        "packages/config/package.json",
        "packages/core/package.json",
        "packages/create-eliza/package.json",
        "packages/docs/package.json",
        "packages/plugin-bootstrap/package.json",
        "packages/plugin-dummy-services/package.json",
        "packages/plugin-quick-starter/package.json",
        "packages/plugin-sql/package.json",
        "packages/plugin-starter/package.json",
        "packages/project-starter/package.json",
        "packages/project-tee-starter/package.json",
        "packages/server/package.json",
        "packages/test-utils/package.json"
      ]
    },
    {
      "title": "fix: improve bunx detection and remove npm references in CLI",
      "prNumber": 5599,
      "type": "bugfix",
      "body": "## Summary\n- Enhanced bunx detection logic to prevent false positives\n- Removed all npm references in favor of bun-only approach\n- Added comprehensive test coverage for bunx/npx scenarios\n\n## Changes\n- Improved bunx detection by checking sc",
      "files": [
        ".github/workflows/cli-prod-validation.yml",
        "bun.lock",
        "packages/cli/src/commands/update/index.ts",
        "packages/cli/src/utils/user-environment.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/commands/test-utils.ts",
        "packages/cli/tests/commands/update.test.ts",
        "packages/cli/tests/utils/bun-test-helpers.ts",
        "packages/docs/netlify/functions/predict.js",
        "packages/docs/static/llms-community.txt",
        "packages/docs/static/llms-full.txt"
      ]
    },
    {
      "title": "fix: correct installModelPlugin calls for local model resolution",
      "prNumber": 5598,
      "type": "bugfix",
      "body": "## Summary\n- Fixed incorrect plugin installation for local models\n- Ensures proper resolution of 'local' to 'ollama' plugin\n\n## Problem\nThe `installModelPlugin` function was being called with the hardcoded string `'local'` instead of passin",
      "files": [
        "packages/cli/src/commands/create/actions/setup.ts"
      ]
    },
    {
      "title": "fix: update GitHub workflow and remove plaintext passwords",
      "prNumber": 5597,
      "type": "bugfix",
      "body": "## Summary\n- Updated GitHub Actions workflow to use latest versions\n- Removed plaintext passwords from test constants for improved security\n- Fixed important issues identified in code review\n\n## Changes Made\n\n### 1. GitHub Workflow Updates ",
      "files": [
        ".github/workflows/cli-tests.yml",
        "packages/core/src/test_resources/constants.ts"
      ]
    },
    {
      "title": "fix: resolve CodeFactor TypeScript any type violations",
      "prNumber": 5596,
      "type": "bugfix",
      "body": "## Summary\n- Fixed all TypeScript `any` type violations reported by CodeFactor in PR #5595\n- Replaced `any` types with proper type definitions to improve type safety\n- All changes are in test files and maintain existing functionality\n\n## Ch",
      "files": [
        "packages/cli/src/commands/create/actions/creators.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/commands/test-utils.ts",
        "packages/cli/tests/utils/bun-test-helpers.ts"
      ]
    },
    {
      "title": "chore: 1.2.6",
      "prNumber": 5595,
      "type": "other",
      "body": "chore: 1.2.6\r\n",
      "files": [
        ".github/workflows/claude-code-review.yml",
        ".github/workflows/claude.yml",
        ".github/workflows/cli-prod-validation.yml",
        ".github/workflows/cli-tests.yml",
        "CLAUDE.md",
        "bun.lock",
        "package.json",
        "packages/api-client/package.json",
        "packages/app/package.json",
        "packages/autodoc/package.json",
        "packages/cli/package.json",
        "packages/cli/scripts/copy-templates.js",
        "packages/cli/src/characters/eliza.ts",
        "packages/cli/src/commands/create/actions/creators.ts",
        "packages/cli/src/commands/create/actions/setup.ts",
        "packages/cli/src/commands/create/index.ts",
        "packages/cli/src/commands/create/utils/selection.ts",
        "packages/cli/src/commands/dev/actions/dev-server.ts",
        "packages/cli/src/commands/dev/index.ts",
        "packages/cli/src/commands/dev/utils/server-manager.ts",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/commands/update/index.ts",
        "packages/cli/src/index.ts",
        "packages/cli/src/scripts/copy-templates.ts",
        "packages/cli/src/utils/bun-exec.ts",
        "packages/cli/src/utils/copy-template.ts",
        "packages/cli/src/utils/user-environment.ts",
        "packages/cli/tests/commands/README.md",
        "packages/cli/tests/commands/agent.test.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/commands/dev.test.ts",
        "packages/cli/tests/commands/env.test.ts",
        "packages/cli/tests/commands/monorepo.test.ts",
        "packages/cli/tests/commands/plugins.test.ts",
        "packages/cli/tests/commands/publish.test.ts",
        "packages/cli/tests/commands/start.test.ts",
        "packages/cli/tests/commands/tee.test.ts",
        "packages/cli/tests/commands/test-utils.ts",
        "packages/cli/tests/commands/test.test.ts",
        "packages/cli/tests/commands/update.test.ts",
        "packages/cli/tests/integration/plugin-test-isolation.test.ts",
        "packages/cli/tests/integration/version-display.test.ts",
        "packages/cli/tests/test-timeouts.ts",
        "packages/cli/tests/unit/index.test.ts",
        "packages/cli/tests/unit/utils/selection.test.ts",
        "packages/cli/tests/utils/bun-test-helpers.ts",
        "packages/client/package.json",
        "packages/client/src/hooks/use-character-convert.ts",
        "packages/config/package.json",
        "packages/core/package.json"
      ]
    },
    {
      "title": "fix: make Ollama plugin conditional based on OLLAMA_API_ENDPOINT",
      "prNumber": 5594,
      "type": "bugfix",
      "body": "# PR: Make Ollama Plugin Conditional and Improve Model Selection Logic\r\n\r\n## Summary\r\n\r\nThis PR refactors the Ollama plugin integration to make it truly conditional based on configuration, rather than being always included as a universal fa",
      "files": [
        "bun.lock",
        "packages/cli/src/commands/create/actions/creators.ts",
        "packages/cli/src/commands/create/actions/setup.ts",
        "packages/cli/src/commands/create/index.ts",
        "packages/cli/src/commands/create/utils/selection.ts",
        "packages/cli/tests/unit/utils/selection.test.ts",
        "packages/project-starter/src/character.ts"
      ]
    },
    {
      "title": "fix: remove duplicate ActionResult interface definition",
      "prNumber": 5593,
      "type": "bugfix",
      "body": "## Description\n\nThis PR fixes a TypeScript build error in the plugin-starter package by removing a duplicate interface definition.\n\n## Problem\n\nThe `ActionResult` interface was defined twice in `packages/core/src/types/components.ts`:\n- Fir",
      "files": [
        "packages/core/src/types/components.ts",
        "packages/plugin-starter/src/plugin.ts"
      ]
    },
    {
      "title": "fix: handle port conflicts in dev command",
      "prNumber": 5592,
      "type": "bugfix",
      "body": "## Description\n\nThis PR fixes an issue where the `elizaos dev` command would fail when port 3000 was already in use. The dev command now behaves consistently with the start command by automatically finding the next available port.\n\n## Chang",
      "files": [
        "packages/cli/src/commands/dev/actions/dev-server.ts",
        "packages/cli/src/commands/dev/index.ts",
        "packages/cli/tests/commands/dev.test.ts"
      ]
    },
    {
      "title": "chore: 1.2.6",
      "prNumber": 5591,
      "type": "other",
      "body": "Version bump to 1.2.6",
      "files": [
        "package.json",
        "packages/api-client/package.json",
        "packages/app/package.json",
        "packages/autodoc/package.json",
        "packages/cli/package.json",
        "packages/client/package.json",
        "packages/config/package.json",
        "packages/core/package.json",
        "packages/create-eliza/package.json",
        "packages/docs/package.json",
        "packages/plugin-bootstrap/package.json",
        "packages/plugin-dummy-services/package.json",
        "packages/plugin-sql/package.json",
        "packages/plugin-starter/package.json",
        "packages/project-starter/package.json",
        "packages/project-tee-starter/package.json",
        "packages/server/examples/package.json",
        "packages/server/package.json",
        "packages/test-utils/package.json"
      ]
    },
    {
      "title": "feat(cli): add plugin-quick-starter template for backend-only plugins",
      "prNumber": 5589,
      "type": "feature",
      "body": "## 🎯 Overview\r\n\r\nThis PR introduces a new `plugin-quick-starter` template alongside the existing `plugin-starter` template to provide developers with a streamlined option for creating backend-only plugins without frontend overhead.\r\n\r\n## \ud83d",
      "files": [
        "bun.lock",
        "packages/cli/scripts/copy-templates.js",
        "packages/cli/src/commands/create/actions/creators.ts",
        "packages/cli/src/commands/create/index.ts",
        "packages/cli/src/scripts/copy-templates.ts",
        "packages/cli/src/utils/copy-template.ts",
        "packages/plugin-quick-starter/.gitignore",
        "packages/plugin-quick-starter/.npmignore",
        "packages/plugin-quick-starter/README.md",
        "packages/plugin-quick-starter/bunfig.toml",
        "packages/plugin-quick-starter/package.json",
        "packages/plugin-quick-starter/scripts/install-test-deps.js",
        "packages/plugin-quick-starter/src/__tests__/plugin.test.ts",
        "packages/plugin-quick-starter/src/__tests__/test-utils.ts",
        "packages/plugin-quick-starter/src/index.ts",
        "packages/plugin-quick-starter/src/plugin.ts",
        "packages/plugin-quick-starter/tsconfig.build.json",
        "packages/plugin-quick-starter/tsconfig.json",
        "packages/plugin-quick-starter/tsup.config.ts"
      ]
    },
    {
      "title": "fix: only fallback ollama if nothing else exists",
      "prNumber": 5587,
      "type": "bugfix",
      "body": "This pull request updates the `getElizaCharacter` function in `eliza.ts` to improve plugin configuration logic. The change ensures that the `@elizaos/plugin-ollama` plugin is only included as a fallback if no other large language model (LLM",
      "files": [
        "packages/cli/src/characters/eliza.ts"
      ]
    },
    {
      "title": "feat: improve cli ci tests + migrate to bun native process spawn etc",
      "prNumber": 5586,
      "type": "feature",
      "body": "## Description\n\nThis PR adds the Ollama plugin as a dependency to the ElizaOS CLI package and optimizes the CI/CD workflow for better performance.\n\n## Changes\n\n### 🎯 New Feature: Ollama Plugin Integration\n- Added `@elizaos/plugin-ollama@1.",
      "files": [
        ".github/workflows/cli-tests.yml",
        "bun.lock",
        "packages/cli/src/utils/bun-exec.ts",
        "packages/cli/tests/commands/README.md",
        "packages/cli/tests/commands/agent.test.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/commands/dev.test.ts",
        "packages/cli/tests/commands/env.test.ts",
        "packages/cli/tests/commands/monorepo.test.ts",
        "packages/cli/tests/commands/plugins.test.ts",
        "packages/cli/tests/commands/publish.test.ts",
        "packages/cli/tests/commands/test-utils.ts",
        "packages/cli/tests/commands/test.test.ts",
        "packages/cli/tests/commands/update.test.ts",
        "packages/cli/tests/utils/bun-test-helpers.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 357.3004911990626,
      "prScore": 356.8624911990626,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "wtfsayo: Focused on a broad range of improvements and fixes, including significant work on CLI tooling and infrastructure as evidenced by PRs like elizaos/eliza#5599 \"fix: improve bunx detection and remove npm references in CLI\" and elizaos/eliza#5586 \"feat: improve cli ci tests + migrate to bun native process sp...\", alongside general bug fixes and maintenance across the codebase. Their primary focus areas were other work, bug fixes, and tests, with significant changes in configuration and test files."
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 118.55724832347069,
      "prScore": 113.35724832347069,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.2,
      "summary": "0xbbjoker: Focused on both feature development and bug resolution, successfully merging a significant feature to add a plugin-quick-starter template for backend-only development in elizaos/eliza (#5589) and addressing a bug by making the Ollama plugin conditional in elizaos/eliza (#5594). Their work primarily involved bugfix and feature development, with contributions to code, tests, and configuration files."
    },
    {
      "username": "META-DREAMER",
      "avatarUrl": "https://avatars.githubusercontent.com/u/7143583?u=96f63f10e066a06d5ad592c8efc659e2b84a68fc&v=4",
      "totalScore": 49.5437738965761,
      "prScore": 49.5437738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "META-DREAMER: Focused on significant frontend development, successfully merging a large \"Multi repo frontend\" PR in elizaos/elizaos.github.io#143 (+11766/-1074 lines) after 92 hours, which was preceded by creating issue elizaos/elizaos.github.io#141 \"Multi Repo Summarization\". This work involved substantial code changes across 44 files, with a primary focus on other work."
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 24.31329254649702,
      "prScore": 23.875292546497022,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "ChristopherTrimboli: Focused on refining the fallback mechanism for Ollama, successfully merging PR elizaos/eliza#5587 which involved a substantial change of +522/-806 lines. Their work today primarily involved other code modifications, as evidenced by 2 commits across 4 files."
    },
    {
      "username": "imthatcarlos",
      "avatarUrl": "https://avatars.githubusercontent.com/u/20136572?u=1c65c44403457a7870138f8f23fa0ef27487fb62&v=4",
      "totalScore": 23.404306144334054,
      "prScore": 23.204306144334055,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "imthatcarlos: Merged a configuration update in elizaos-plugins/registry via PR #191, publishing a plugin. Their work today focused on other work, specifically configuration changes."
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=27713fbe603baae91ef519990facbacd6c23e93d&v=4",
      "totalScore": 8,
      "prScore": 0,
      "issueScore": 8,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "borisudovicic: Focused on identifying and documenting potential issues within the ElizaOS ecosystem, creating three new issues including one for building a Zapper plugin (elizaos/eliza#5600) and two related to configuration and schema migration challenges (elizaos/eliza#5590, elizaos/eliza#5588)."
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": "odilitime: Focused on bugfix work, modifying 4 files with 4 commits and providing 1 approval review."
    }
  ],
  "newPRs": 14,
  "mergedPRs": 15,
  "newIssues": 3,
  "closedIssues": 1,
  "activeContributors": 6
}