{
  "interval": {
    "intervalStart": "2025-10-21T00:00:00.000Z",
    "intervalEnd": "2025-10-22T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-10-21 to 2025-10-22, elizaos/eliza had 1 new PRs (2 merged), 0 new issues, and 6 active contributors.",
  "topIssues": [],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6uq9LM",
      "title": "feat: Streamdown integration, cross-platform crypto, and server port autodiscovery",
      "author": "wtfsayo",
      "number": 6082,
      "body": "## Summary\n\nThis PR introduces three major improvements to the ElizaOS platform:\n\n1. **Streamdown Integration (Client)**: Modern AI response rendering with streaming support\n2. **Cross-Platform Crypto Utilities (Core)**: Browser and Node.js compatible cryptographic operations\n3. **Enhanced Port Autodiscovery (Server)**: Automatic fallback to available ports\n\n## Changes\n\n### Client ()\n- **New Dependency**: Added `streamdown` package for AI response rendering\n- **New Component**: Created `ai-elements/response.tsx` using Streamdown for unified response display\n- **Chat Refactor**: Replaced `Markdown` and `AnimatedMarkdown` components with new `AiResponse` component\n- **Styling**: Added Streamdown CSS source to `index.css`\n\n### Core ()\n- **New Module**: Created `utils/crypto-compat.ts` providing unified crypto interface for browser and Node.js\n  - Supports SHA-256 hashing across environments\n  - AES-256-CBC encryption/decryption\n  - Web Crypto API integration for browsers\n  - Node.js crypto module fallback\n- **Settings Migration**: Updated `settings.ts` to use new crypto utilities\n- **Buffer Improvements**: Enhanced `randomBytes` to prefer Web Crypto API with graceful fallback\n\n### Server ()\n- **Port Autodiscovery**: Automatic fallback to next available port on `EADDRINUSE` error\n- **Environment Sync**: Export bound port to `SERVER_PORT` environment variable\n- **Host Awareness**: Port availability checks now respect `SERVER_HOST` configuration\n- **Error Handling**: Better handling of `EACCES` and other binding errors\n- **Logging**: Improved port conflict warnings\n\n## Technical Details\n\n### Crypto Compatibility\nThe new crypto utilities support both synchronous (Node.js) and asynchronous (browser) operations:\n- Browser: Uses Web Crypto API (`crypto.subtle`)\n- Node.js: Uses native `crypto` module\n- Automatic environment detection\n\n### Port Discovery Logic\n1. Attempt to bind to configured port\n2. On `EADDRINUSE`, automatically find next available port\n3. Update `SERVER_PORT` environment variable\n4. Log warning about port fallback\n\n## Testing\n- ✅ Client rendering with Streamdown\n- ✅ Cross-platform crypto operations\n- ✅ Port autodiscovery with fallback\n- ✅ Environment variable synchronization\n\n## Migration Notes\n- No breaking changes to public APIs\n- Settings encryption/decryption behavior unchanged\n- Server will auto-adapt if configured port is unavailable\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Integrates Streamdown for AI responses, adds browser/Node-compatible crypto utilities, and enhances server port autodiscovery with fallbacks and env sync.\n> \n> - **Client (UI)**:\n>   - **Streamdown Integration**: Added `streamdown` and new `components/ai-elements/response.tsx` to render AI responses; replaced legacy `Markdown`/`AnimatedMarkdown` usage in `components/chat.tsx`.\n>   - **Styling**: Included Streamdown CSS source in `src/index.css`.\n>   - **Tests**: Added unit tests for `Response` component.\n> - **Core (Crypto)**:\n>   - **New Module**: `utils/crypto-compat.ts` providing cross-platform hashing and AES-256-CBC encrypt/decrypt (Web Crypto in browser, native crypto in Node/Bun).\n>   - **Settings**: `settings.ts` migrated to use new crypto utils.\n>   - **Buffer**: `BufferUtils.randomBytes` now prefers Web Crypto with fallback.\n>   - **Tests**: Added comprehensive tests for hashing/encryption compatibility.\n> - **Server**:\n>   - **Port Autodiscovery**: On `EADDRINUSE`, find next free port; export bound port to `SERVER_PORT`; respect `SERVER_HOST`; handle `EACCES`.\n>   - **Tests**: Added port availability and fallback tests.\n>   - Minor CSP/formatting tweaks and loader cleanup.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit bf226b71667c9047558678d69e01a494a033b854. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-20T16:52:10Z",
      "mergedAt": "2025-10-21T16:14:33Z",
      "additions": 1637,
      "deletions": 466
    },
    {
      "id": "PR_kwDOMT5cIs6u5sid",
      "title": "fix: add action thought",
      "author": "tcm390",
      "number": 6083,
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Add `actionPlan.thought` to `ACTION_COMPLETED` event content for `agent_action` messages.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit ec04587e20c86e1020b1ea488b1a1a585fb0d294. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-21T18:09:48Z",
      "mergedAt": "2025-10-21T18:13:25Z",
      "additions": 1,
      "deletions": 0
    }
  ],
  "codeChanges": {
    "additions": 1638,
    "deletions": 466,
    "files": 17,
    "commitCount": 11
  },
  "completedItems": [
    {
      "title": "feat: Streamdown integration, cross-platform crypto, and server port autodiscovery",
      "prNumber": 6082,
      "type": "feature",
      "body": "## Summary\n\nThis PR introduces three major improvements to the ElizaOS platform:\n\n1. **Streamdown Integration (Client)**: Modern AI response rendering with streaming support\n2. **Cross-Platform Crypto Utilities (Core)**: Browser and Node.js",
      "files": [
        "bun.lock",
        "packages/client/package.json",
        "packages/client/src/components/ai-elements/__tests__/response.test.tsx",
        "packages/client/src/components/ai-elements/response.tsx",
        "packages/client/src/components/chat.tsx",
        "packages/client/src/components/ui/chat/animated-markdown.tsx",
        "packages/client/src/components/ui/chat/code-block.tsx",
        "packages/client/src/components/ui/chat/markdown.tsx",
        "packages/client/src/index.css",
        "packages/core/src/__tests__/utils/crypto-compat.test.ts",
        "packages/core/src/settings.ts",
        "packages/core/src/utils/buffer.ts",
        "packages/core/src/utils/crypto-compat.ts",
        "packages/server/src/__tests__/port-autodiscovery.test.ts",
        "packages/server/src/index.ts",
        "packages/server/src/loader.ts"
      ]
    },
    {
      "title": "fix: add action thought",
      "prNumber": 6083,
      "type": "bugfix",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Add `actionPlan.thought` to `ACTION_COMPLETED` event content for `agent_action` messages.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit ec04587e20c86e1020b1ea488",
      "files": [
        "packages/core/src/runtime.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "madjin",
      "avatarUrl": "https://avatars.githubusercontent.com/u/32600939?u=cdcf89f44c7a50906c7a80d889efa85023af2049&v=4",
      "totalScore": 112.98319257391108,
      "prScore": 112.54519257391108,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "madjin: Focused on feature development, merging a significant PR in elizaos/elizaos.github.io (#162) that added badge progress indicators and leaderboard badge counts, and also opened a new PR to implement an MVP Badge System for Contributor Achievements. Their work primarily involved other work and feature development, with a focus on code changes across 32 files."
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 49.98377807791123,
      "prScore": 49.98377807791123,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "wtfsayo: Focused on bugfix work, specifically addressing a build script issue in elizaos-plugins/plugin-solana by merging PR #17, which involved modifying 59 files and contributing to config and code changes."
    },
    {
      "username": "tcm390",
      "avatarUrl": "https://avatars.githubusercontent.com/u/60634884?u=c6c41679b8322eaa0c81f72e0b4ed95e80f0ac16&v=4",
      "totalScore": 21.525573590279972,
      "prScore": 21.525573590279972,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "tcm390: Focused on bugfix work, merging a pull request in elizaos/eliza (#6083) that added an action thought. Their contributions primarily involved code changes across two files."
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": "0xbbjoker: No activity today."
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 0.33999999999999997,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": "odilitime: Focused on bugfix work, making 5 commits that modified 18 files (+912/-372 lines) and provided 2 PR comments, indicating a primary focus on code quality and issue resolution."
    },
    {
      "username": "letmehateu",
      "avatarUrl": "https://avatars.githubusercontent.com/u/133153661?u=2217cec1ebd7bf22a8e4e3ace28b3183720dd444&v=4",
      "totalScore": 0.2,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    }
  ],
  "newPRs": 1,
  "mergedPRs": 2,
  "newIssues": 0,
  "closedIssues": 0,
  "activeContributors": 6
}