{
  "interval": {
    "intervalStart": "2025-10-20T00:00:00.000Z",
    "intervalEnd": "2025-10-21T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-10-20 to 2025-10-21, elizaos/eliza had 3 new PRs (1 merged), 0 new issues, and 2 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7A73Gh",
      "title": "Make API key setup optional in 'npx elizaos create'",
      "author": "linear",
      "number": 5604,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2025-07-16T18:16:33Z",
      "closedAt": "2025-10-20T16:16:59Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7COFYL",
      "title": "pino-pretty errors in export builds from bun - replace pino with adze",
      "author": "lalalune",
      "number": 5673,
      "repository": "elizaos/eliza",
      "body": "Our logger is not compatible with the bun binary compilation and build process. Since its built into the core, its very hard to get into and override, so we should rip it out and use a bun compatible logger instead. After some research, I think this is a good option: https://adzejs.com/\n\nWe could also just roll our own logging, but then we need color formatting and all that and I'd rather just have something that already works and is easy to drop in.\n\nPlease replace pino and all pino-related dependencies with adze and make sure everything works and all tests still pass @claude ",
      "createdAt": "2025-07-24T04:44:02Z",
      "closedAt": "2025-10-20T16:14:07Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7E1COv",
      "title": "🐛 Build failure in @elizaos/core causing bun run clean to fail",
      "author": "monilpat",
      "number": 5738,
      "repository": "elizaos/eliza",
      "body": "## Description\n\nThe `bun run clean` command is failing due to TypeScript errors in `@elizaos/core` package during the DTS (type definition) build phase.\n\n## Error Details\n\n### Build Process\n```\n• Running build in 17 packages\n• Remote caching disabled\n@elizaos/config:build: cache miss\n@elizaos/autodoc:build: cache miss\n@elizaos/core:build: cache miss\n```\n\n### TypeScript Errors in @elizaos/core/src/utils.ts\n1. Line 218: `error TS2345: Argument of type '`${string}-${string}-${string}-${string}-${string}`' is not assignable to parameter of type 'never'.`\n2. Line 366: `error TS2345: Argument of type 'string' is not assignable to parameter of type 'never'.`\n3. Line 409: `error TS2345: Argument of type 'string' is not assignable to parameter of type 'never'.`\n4. Line 536: `error TS2345: Argument of type '{ numberOfChunks: number; averageChunkSize: number; }' is not assignable to parameter of type 'never'.`\n\n### Impact\n- Blocks `bun run clean` command\n- Prevents successful build of `@elizaos/core`\n- Affects dependent packages in the monorepo\n\n## Steps to Reproduce\n1. Run `bun run clean`\n2. Observe build failure in `@elizaos/core`\n3. Build fails with TypeScript errors during DTS generation\n\n## Expected Behavior\n- `bun run clean` should complete successfully\n- `@elizaos/core` should build without TypeScript errors\n- Type definitions should be generated correctly\n\n## Suggested Fix\n\nThe errors suggest type mismatches in `utils.ts`. Need to:\n1. Review type definitions in affected lines\n2. Update type assertions or generic constraints\n3. Ensure string template literal types are properly handled\n4. Fix object type assignments\n\n### Files to Update\n- `packages/core/src/utils.ts`\n\n## Priority\n**HIGH** - This is blocking clean builds and potentially affecting development workflow.",
      "createdAt": "2025-08-08T00:26:11Z",
      "closedAt": "2025-10-20T16:17:44Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7SV5iz",
      "title": "Add gitignore to eliza create",
      "author": "kempsterrrr",
      "number": 6074,
      "repository": "elizaos/eliza",
      "body": "**Is your feature request related to a problem? Please describe.**\n\nWhen scaffolding a new agent project with `eliza create` the project does not include a `.gitignore` file, I wasn't checking what I was doing and checked everything into git.\n\n**Describe the solution you'd like**\n\nPlease add a default `.gitignore` file to generated projects using `eliza create` command.\n\n**Describe alternatives you've considered**\n\nI deleted my git history and created my own.\n\n**Additional context**\n\n<!-- Add any other context or screenshots about the feature request here. -->\n",
      "createdAt": "2025-10-18T16:09:42Z",
      "closedAt": "2025-10-20T13:52:42Z",
      "state": "CLOSED",
      "commentCount": 0
    }
  ],
  "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_kwDOMT5cIs6uqseM",
      "title": "feat: add get action results",
      "author": "standujar",
      "number": 6081,
      "body": "# Risks\n**Low**. This change is purely additive - it adds a new public method to the `IAgentRuntime` interface without modifying any existing functionality. No breaking changes.\n\nWhat could be affected:\n- Plugins can now access action results through a clean API\n- Backward compatible - existing code continues to work unchanged\n\n# Background\n\n## What does this PR do?\nAdds a public `getActionResults(messageId: UUID): ActionResult[]` method to the `IAgentRuntime` interface and `AgentRuntime` class, providing a clean, type-safe API for plugins to retrieve action execution results after calling `processActions()`.\n\nCurrently, plugins that need to execute actions and retrieve their results must cast `IAgentRuntime` to `AgentRuntime` to access the internal `stateCache`, which is not type-safe and relies on implementation details.\n\n## What kind of change is this?\n- Features (non-breaking change which adds functionality)\n- Improvements (misc. changes to existing features - test cleanup)\n\n## Why are we doing this? Any context or related work?\nPlugins like workers need to execute actions programmatically and retrieve structured results for further processing. The current workaround requires casting to the concrete implementation and accessing internal cache, which is fragile and not part of the public API.\n\nThis PR provides:\n- Clean, documented public API\n- Type safety\n- Encapsulation of internal cache implementation\n- Better developer experience for plugin authors\n\n# Documentation changes needed?\nMy changes require a change to the project documentation.\n- API documentation for `getActionResults()` method added in code comments\n- No external documentation update needed as this is a new API addition\n\n# Testing\n\n## Where should a reviewer start?\n1. Review the interface change in `packages/core/src/types/runtime.ts`\n2. Review the implementation in `packages/core/src/runtime.ts`\n3. Review the comprehensive test coverage in `packages/core/src/__tests__/runtime.test.ts`\n\n## Detailed testing steps\nNone: Automated tests are acceptable.\n\nAll tests pass (33 pass, 0 fail):\n```bash\ncd eliza\nbun test packages/core/src/__tests__/runtime.test.ts",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-20T16:27:59Z",
      "mergedAt": "2025-10-22T13:21:08Z",
      "additions": 92,
      "deletions": 4
    },
    {
      "id": "PR_kwDOMT5cIs6uoVgZ",
      "title": "fix(cli): include dotfiles in published package",
      "author": "wtfsayo",
      "number": 6080,
      "body": "## Problem\n\nFixes #6074\n\nWhen users run `eliza create` to scaffold new projects, the generated projects are missing critical dotfiles like `.gitignore`, `.npmignore`, and `.env.example`.\n\n## Root Cause\n\nThe npm `files` field in `packages/cli/package.json` uses glob patterns like `templates/**/*`, which **do not match dotfiles by default**. This is standard glob behavior - patterns starting with `*` exclude files beginning with `.`.\n\nWhen the `@elizaos/cli` package is published to npm, these dotfiles are excluded from the published tarball, even though they exist in the source templates.\n\nThe `.npmignore` file had patterns attempting to include dotfiles, but the `files` field in `package.json` takes full precedence over `.npmignore`, making those patterns ineffective.\n\n## Solution\n\nAdded explicit patterns for dotfiles to the `files` array in `packages/cli/package.json`:\n\n```json\n\"files\": [\n  \"dist\",\n  \"dist/**/*\",\n  \"dist/version.js\",\n  \"templates\",\n  \"templates/**/*\",\n  \"templates/**/.gitignore\",       // ✅ Added\n  \"templates/**/.npmignore\",        // ✅ Added\n  \"templates/**/.env.example\",      // ✅ Added\n  \"dist/templates/**/.gitignore\",   // ✅ Added\n  \"dist/templates/**/.npmignore\",   // ✅ Added\n  \"dist/templates/**/.env.example\"  // ✅ Added\n]\n```\n\n## Testing\n\nExisting tests in `packages/cli/tests/commands/create.test.ts` already verify that `.gitignore` files exist in generated projects:\n\n```typescript\nexpect(existsSync('my-default-app/.gitignore')).toBe(true);\nexpect(existsSync('my-tee-project/.gitignore')).toBe(true);\n```\n\nThese tests will now pass when the package is published with the fix.\n\n## Verification Steps\n\n1. Build the CLI package: `cd packages/cli && bun run build`\n2. Create a test project: `elizaos create test-project -y`\n3. Verify dotfiles exist: `ls -la test-project/`\n\nExpected: `.gitignore`, `.npmignore`, and other dotfiles should be present.\n\n## Impact\n\n- **All project types** (project-starter, project-tee-starter, plugin-starter, plugin-quick-starter) will now include their dotfiles when created\n- Users will no longer accidentally commit sensitive files like `.env` or `node_modules/`\n- Follows best practices for project scaffolding\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Ensure `.gitignore`, `.npmignore`, and `.env.example` under `templates/**` and `dist/templates/**` are included in the published npm package via explicit `files` entries.\n> \n> - **CLI package config (`packages/cli/package.json`)**:\n>   - **Publish contents**: Add explicit `files` entries to include dotfiles in templates:\n>     - `templates/**/.gitignore`, `templates/**/.npmignore`, `templates/**/.env.example`\n>     - `dist/templates/**/.gitignore`, `dist/templates/**/.npmignore`, `dist/templates/**/.env.example`\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit feed646fa216bd2ebc357e354d01a7de190b71c9. 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-20T13:15:27Z",
      "mergedAt": "2025-10-20T13:52:41Z",
      "additions": 8,
      "deletions": 2
    }
  ],
  "codeChanges": {
    "additions": 8,
    "deletions": 2,
    "files": 1,
    "commitCount": 14
  },
  "completedItems": [
    {
      "title": "fix(cli): include dotfiles in published package",
      "prNumber": 6080,
      "type": "bugfix",
      "body": "## Problem\n\nFixes #6074\n\nWhen users run `eliza create` to scaffold new projects, the generated projects are missing critical dotfiles like `.gitignore`, `.npmignore`, and `.env.example`.\n\n## Root Cause\n\nThe npm `files` field in `packages/cl",
      "files": [
        "packages/cli/package.json"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 90.23472153297529,
      "prScore": 89.79672153297528,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "wtfsayo: Focused on significant feature development and bug fixes, notably integrating Streamdown and cross-platform crypto in elizaos/eliza#6082 (+1962/-774 lines) and resolving a critical CLI packaging issue in elizaos/eliza#6080, with their code changes primarily focused on bug fixes and refactoring across code and test files."
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 47.750019117260884,
      "prScore": 47.750019117260884,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "0xbbjoker: Focused on critical bug resolution, successfully merging a significant PR in elizaos-plugins/plugin-telegram#19 (+782/-364 lines) to address button handling crashes and logging errors, demonstrating a primary focus on bugfix work and testing."
    },
    {
      "username": "0xRabbidfly",
      "avatarUrl": "https://avatars.githubusercontent.com/u/93952856?v=4",
      "totalScore": 33.90101911726088,
      "prScore": 33.90101911726088,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "0xRabbidfly: Focused on critical bug resolution, opening a significant PR to fix GIF animations not playing in Telegram (elizaos-plugins/plugin-telegram#20), which involved modifying 8 files with a net change of +318 lines, primarily in code and tests."
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 33.333066467755074,
      "prScore": 33.333066467755074,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "standujar: Focused on feature development, delivering a significant feature in elizaos/eliza with PR #6081, which added \"get action results\" and involved substantial code changes (+1950/-670 lines). This work primarily involved feature implementation, with a focus on both code and tests."
    },
    {
      "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: Engaged in various code changes across 3 files (+179/-111 lines) through 3 commits, primarily focusing on other work (67%) and bug fixes (33%), and provided 2 PR comments."
    }
  ],
  "newPRs": 3,
  "mergedPRs": 1,
  "newIssues": 0,
  "closedIssues": 4,
  "activeContributors": 2
}