{
  "interval": {
    "intervalStart": "2025-09-09T00:00:00.000Z",
    "intervalEnd": "2025-09-10T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-09-09 to 2025-09-10, elizaos/eliza had 3 new PRs (4 merged), 38 new issues, and 5 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs6_vCj5",
      "title": "One run action chain history",
      "author": "borisudovicic",
      "number": 5496,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2025-07-09T18:25:15Z",
      "closedAt": "2025-09-09T12:01:43Z",
      "state": "CLOSED",
      "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": "2025-09-09T12:32:10Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7DWSkt",
      "title": "Set 1.x as default branch for migrated / 1.x supported plugins",
      "author": "linear",
      "number": 5690,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2025-07-30T14:47:25Z",
      "closedAt": "2025-09-09T11:44:15Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7EFUkG",
      "title": "FIX CORE CI TESTS; tee starter breaking",
      "author": "linear",
      "number": 5715,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2025-08-04T14:39:27Z",
      "closedAt": "2025-09-09T11:45:09Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7Hx_mQ",
      "title": "i Successfully Publish a Plugin in  23AUG but it's not visible in PR",
      "author": "1BDO",
      "number": 5813,
      "repository": "elizaos/eliza",
      "body": "plugin-delta-0.1.0",
      "createdAt": "2025-08-25T13:01:43Z",
      "closedAt": "2025-09-09T11:43:31Z",
      "state": "CLOSED",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6nVd8T",
      "title": "feat: modernize README with better structure and quick start",
      "author": "wtfsayo",
      "number": 5896,
      "body": "## 🎯 Problem\n\nThe current README, while comprehensive, presents several usability challenges:\n- Dense, overwhelming initial experience for new users\n- Verbose sections that bury key information\n- No clear 5-minute quick start path\n- Missing standalone core usage documentation\n- Inconsistent information architecture\n\n## 🚀 Solution\n\nThis PR transforms the README into a modern, user-friendly introduction that:\n\n### Key Improvements:\n- **Professional presentation**: Added centered header with badges and clear positioning statement\n- **Streamlined Quick Start**: Reduced to essential 5-minute flow with clear steps\n- **Better information architecture**: Logical flow from overview → features → getting started\n- **Standalone usage**: Added section for using ElizaOS core directly in applications\n- **Reduced cognitive load**: Moved advanced CLI commands to collapsible section\n- **Maintained completeness**: All essential information preserved, just better organized\n\n### User Experience Impact:\n- ⚡ Faster time-to-first-success for new users\n- 📈 Increased adoption through clearer value proposition  \n- 🎯 Better developer experience with focused guidance\n- 💪 More professional, trustworthy project image\n\n### Changes Made:\n- Modernized header with professional styling and badges\n- Condensed feature list with clear benefits\n- Created focused 5-minute quick start guide\n- Added standalone core usage examples\n- Improved section organization and hierarchy\n- Reduced redundancy while maintaining depth\n\nThis maintains all technical depth while making the project much more approachable for newcomers.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-08T08:58:31Z",
      "mergedAt": "2025-09-09T09:14:10Z",
      "additions": 115,
      "deletions": 230
    },
    {
      "id": "PR_kwDOMT5cIs6nY7Cp",
      "title": "feat: Add real-time channel creation with Socket.IO integration - WIP",
      "author": "tcm390",
      "number": 5903,
      "body": "## Related Work\r\nhttps://github.com/elizaos-plugins/plugin-action-bench/pull/2\r\n\r\n## Summary\r\n\r\nThis PR implements real-time channel creation functionality with Socket.IO integration, enabling instant UI updates when new channels (especially DM channels) are created. The changes include both server-side event emission and client-side event handling for a seamless user experience.\r\n\r\n## Key Changes\r\n\r\n### 🚀 Features\r\n- **Real-time channel creation events**: Server now emits `channelCreated` events via Socket.IO when new channels are created\r\n- **Automatic channel switching**: Client automatically switches to newly created DM channels\r\n- **Query invalidation**: Automatically refreshes channel lists when new channels are created\r\n- **Enhanced channel creation API**: Added support for predetermined channel IDs in the API\r\n\r\n### 🔧 Technical Implementation\r\n\r\n#### Server-side (`packages/server/src/api/messaging/channels.ts`)\r\n- Added Socket.IO event emission for `channelCreated` events\r\n- Enhanced channel creation endpoint to accept optional predetermined channel IDs\r\n- Improved error handling and validation for channel creation parameters\r\n\r\n#### Client-side \r\n- **Socket.IO Manager** (`packages/client/src/lib/socketio-manager.ts`): Added `ChannelCreatedData` type and event handling\r\n- **Socket Chat Hook** (`packages/client/src/hooks/use-socket-chat.ts`): Implemented channel creation event processing with filtering logic\r\n- **Chat Component** (`packages/client/src/components/chat.tsx`): Added automatic channel switching and query invalidation\r\n\r\n### 🐛 Bug Fixes\r\n- Fixed minor prompt and settings configuration issues\r\n- Updated TypeScript configuration for better compatibility\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-08T13:41:20Z",
      "mergedAt": null,
      "additions": 83,
      "deletions": 6
    },
    {
      "id": "PR_kwDOMT5cIs6nmZDY",
      "title": "feat(client): Add URL synchronization for DM channel switching and direct navigation",
      "author": "tcm390",
      "number": 5941,
      "body": "result:\r\n\r\n\r\nhttps://github.com/user-attachments/assets/7f1a502b-51f6-431f-be05-dc0dccf923e8\r\n\r\n\r\n## Summary\r\nImplements URL synchronization for DM channels, allowing users to bookmark and share direct links to specific conversations while maintaining proper channel switching functionality.\r\n\r\n## Changes\r\n- **URL Updates**: Automatically updates URL when users switch between DM channels\r\n- **Direct Navigation**: Supports direct URL navigation (e.g., `/chat/{agentId}/{channelId}`)\r\n- **Non-blocking Implementation**: Uses `window.history.replaceState()` to avoid component re-renders\r\n- **Conflict Resolution**: Prevents URL navigation from interfering with normal channel selection\r\n\r\n## Technical Details\r\n- Added `addChannelIdToUrl()` function for efficient URL updates without navigation\r\n- Added `useEffect` to monitor `chatState.currentDmChannelId` changes\r\n- Added `useEffect` to handle direct URL navigation with validation\r\n- Maintains backward compatibility with existing routing structure\r\n\r\n## Testing\r\n- ✅ Channel selection works normally\r\n- ✅ URL updates automatically when switching channels  \r\n- ✅ Direct URL navigation works (paste URL in new tab)\r\n- ✅ Graceful fallback when channel doesn't exist\r\n- ✅ No performance impact (no re-renders)\r\n\r\n## Benefits\r\n- Users can bookmark specific conversations\r\n- Shareable direct links to DM channels\r\n- Better UX with persistent URL state\r\n- Maintains existing functionality",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-09T12:39:58Z",
      "mergedAt": "2025-09-09T16:27:21Z",
      "additions": 55,
      "deletions": 3
    },
    {
      "id": "PR_kwDOMT5cIs6noSGR",
      "title": "Correct action name and improve prompt for multi-step",
      "author": "tcm390",
      "number": 5942,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-09T15:03:12Z",
      "mergedAt": "2025-09-09T15:14:22Z",
      "additions": 3,
      "deletions": 3
    },
    {
      "id": "PR_kwDOMT5cIs6np3qz",
      "title": "fix(client): Remove redundant navigate() call in force new chat flow",
      "author": "tcm390",
      "number": 5945,
      "body": "## Problem\r\nWhen creating a new chat via \"New Chat\" button, the `navigate(location.pathname, { replace: true })` call was wiping out the channelId from the URL after `addChannelIdToUrl` had just set it, causing URL inconsistency.\r\n\r\n## Solution\r\n- Removed redundant `navigate()` call since `addChannelIdToUrl` already cleans the `forceNew` state via `window.history.replaceState(null, ...)`\r\n- This prevents the channelId from being lost in the URL and maintains proper URL state\r\n\r\n## Testing\r\n- ✅ \"New Chat\" button works without recreation issues\r\n- ✅ URL correctly shows `/chat/agentId/channelId` after channel creation\r\n- ✅ Page refresh doesn't trigger recreation",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-09T17:36:30Z",
      "mergedAt": "2025-09-09T17:40:19Z",
      "additions": 0,
      "deletions": 2
    }
  ],
  "codeChanges": {
    "additions": 173,
    "deletions": 238,
    "files": 4,
    "commitCount": 21
  },
  "completedItems": [
    {
      "title": "feat: modernize README with better structure and quick start",
      "prNumber": 5896,
      "type": "feature",
      "body": "## 🎯 Problem\n\nThe current README, while comprehensive, presents several usability challenges:\n- Dense, overwhelming initial experience for new users\n- Verbose sections that bury key information\n- No clear 5-minute quick start path\n- Missin",
      "files": [
        "README.md"
      ]
    },
    {
      "title": "fix(client): Remove redundant navigate() call in force new chat flow",
      "prNumber": 5945,
      "type": "bugfix",
      "body": "## Problem\r\nWhen creating a new chat via \"New Chat\" button, the `navigate(location.pathname, { replace: true })` call was wiping out the channelId from the URL after `addChannelIdToUrl` had just set it, causing URL inconsistency.\r\n\r\n## Solu",
      "files": [
        "packages/client/src/components/chat.tsx"
      ]
    },
    {
      "title": "Correct action name and improve prompt for multi-step",
      "prNumber": 5942,
      "type": "other",
      "body": "",
      "files": [
        "packages/core/src/prompts.ts",
        "packages/plugin-bootstrap/src/index.ts"
      ]
    },
    {
      "title": "feat(client): Add URL synchronization for DM channel switching and direct navigation",
      "prNumber": 5941,
      "type": "feature",
      "body": "result:\r\n\r\n\r\nhttps://github.com/user-attachments/assets/7f1a502b-51f6-431f-be05-dc0dccf923e8\r\n\r\n\r\n## Summary\r\nImplements URL synchronization for DM channels, allowing users to bookmark and share direct links to specific conversations while ",
      "files": [
        "packages/client/src/components/chat.tsx",
        "packages/core/src/prompts.ts",
        "packages/plugin-bootstrap/src/index.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=27713fbe603baae91ef519990facbacd6c23e93d&v=4",
      "totalScore": 76,
      "prScore": 0,
      "issueScore": 76,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "tcm390",
      "avatarUrl": "https://avatars.githubusercontent.com/u/60634884?u=c6c41679b8322eaa0c81f72e0b4ed95e80f0ac16&v=4",
      "totalScore": 74.92352245924795,
      "prScore": 74.92352245924795,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    }
  ],
  "newPRs": 3,
  "mergedPRs": 4,
  "newIssues": 38,
  "closedIssues": 5,
  "activeContributors": 5
}