{
  "interval": {
    "intervalStart": "2025-09-15T00:00:00.000Z",
    "intervalEnd": "2025-09-16T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-09-15 to 2025-09-16, elizaos/eliza had 1 new PRs (3 merged), 1 new issues, and 8 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7LsZTR",
      "title": "Clean Core Build Proof",
      "author": "borisudovicic",
      "number": 5976,
      "repository": "elizaos/eliza",
      "body": "* Remove all hacks/forks from core.\n* Deliver a fully working, clean build of /core (pure JS/TS).\n* Validate in CI/CD and ensure compatibility across Node, Bun, and browser builds.",
      "createdAt": "2025-09-15T10:52:53Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6nQigd",
      "title": "fix: transform local file paths to API URLs for web client image display",
      "author": "standujar",
      "number": 5890,
      "body": "# Relates to\r\n\r\n  Fix image display issues in web client for generated images from OpenRouter plugin\r\n\r\n  # Risks\r\n\r\n  **Low** - Changes are isolated to server-side path transformation logic. No breaking changes to existing APIs or plugins.\r\n\r\n  # Background\r\n\r\n  ## What does this PR do?\r\n\r\n  This PR implements a comprehensive solution for displaying images generated by AI models (OpenRouter, OpenAI, etc.) in the ElizaOS web client. Previously, images worked in Discord/Telegram but returned 404 errors in the web interface\r\n  because the client received local file paths instead of HTTP URLs.\r\n\r\n  The solution includes:\r\n  1. **Configurable data directories** via environment variables for flexibility\r\n  2. **Server-side path transformation** to convert local paths to API URLs\r\n  3. **Fix for Express sendFile** to properly serve media files\r\n  4. **Consistent attachment handling** across all messaging endpoints\r\n\r\n  ## What kind of change is this?\r\n\r\n  - ✅ **Bug fixes** (fixes 404 errors for generated images in web client)\r\n  - ✅ **Improvements** (adds configurable data directories via environment variables)\r\n  - ✅ **Features** (adds automatic path-to-URL transformation for attachments)\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 (.env.example updated with new environment variables)\r\n\r\n  # Testing\r\n\r\n  ## Where should a reviewer start?\r\n\r\n  1. Review `packages/server/src/utils/media-transformer.ts` - Core transformation logic\r\n  2. Check `packages/core/src/utils/paths.ts` - Configurable path utilities\r\n  3. Verify changes in messaging endpoints for attachment transformation\r\n\r\n  ## Detailed testing steps\r\n\r\n  1. **Setup OpenRouter with image generation model:**\r\n     ```bash\r\n     # In .env, configure:\r\n     OPENROUTER_API_KEY=your_key\r\n     OPENROUTER_IMAGE_GENERATION_MODEL=google/gemini-2.5-flash-image-preview\r\n     ```\r\n\r\n  2. **Test image generation in web client**:\r\n    - Start the server: bun run start\r\n    - Open web client at http://localhost:3000\r\n    - Send message: \"Generate an image of a cat on fire\"\r\n    - Verify image displays correctly (no 404 error)\r\n  3. **Test backwards compatibility**:\r\n    - Verify Discord/Telegram plugins still receive and display images correctly\r\n    - Check that existing file uploads still work\r\n  4. **Test environment variable configuration**:\r\n \r\n ## Set custom data directory\r\n  ```bash\r\n  ELIZA_DATA_DIR=/custom/path bun run start\r\n  ```\r\nVerify images are saved to and served from custom location\r\n\r\n ## Before\r\n\r\n  - Web client shows broken image icon\r\n  - Network tab shows 404 for /Users/.../image.png\r\n\r\n  ## After\r\n\r\n  - Images display correctly in web client\r\n  - Network tab shows successful 200 for /media/generated/agentId/image.png\r\n\r\n  # Key Changes:\r\n\r\n  Core Package\r\n\r\n  - paths.ts: New utility for configurable data directories with env var support\r\n  - paths.test.ts: Comprehensive tests for path utilities\r\n  - index.node.ts: Export path utilities for server usage\r\n\r\n  Server Package\r\n\r\n  - media-transformer.ts: Transform local file paths to API URLs\r\n  - messaging/*.ts: Apply transformation before sending to clients\r\n  - index.ts: Fix Express sendFile for absolute paths with fallback\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- New Features\n  - Configurable data and upload directories via environment variables.\n  - Automatic transformation of attachment file paths to API URLs in APIs and real-time broadcasts.\n  - More reliable SPA fallback and media serving for generated and uploaded files.\n\n- Bug Fixes\n  - Safer, type-specific upload directories with strengthened path validation.\n\n- Refactor\n  - Centralized path resolution across server features; legacy path handling removed.\n\n- Documentation\n  - .env example expanded with data directory configuration options.\n\n- Tests\n  - Added comprehensive tests for data directory and path resolution behavior.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-07T15:15:55Z",
      "mergedAt": "2025-09-15T18:33:04Z",
      "additions": 741,
      "deletions": 88
    },
    {
      "id": "PR_kwDOMT5cIs6osa0A",
      "title": "fix: add missing uuid dependency to plugin-sql",
      "author": "standujar",
      "number": 5977,
      "body": "\r\n  # Relates to\r\n\r\n  N/A - Bug fix discovered during testing\r\n\r\n  # Risks\r\n\r\n  Low - Only adds a missing dependency declaration that was already being used in the code.\r\n\r\n  # Background\r\n\r\n  ## What does this PR do?\r\n\r\n  Adds the missing `uuid` package dependency to `@elizaos/plugin-sql` package.json\r\n\r\n  ## What kind of change is this?\r\n\r\n  Bug fixes (non-breaking change which fixes an issue)\r\n\r\n  ## Why are we doing this? Any context or related work?\r\n\r\n  The plugin-sql package imports and uses the uuid package (specifically in base.ts line 34: `import { v4 } from 'uuid'`) but was missing it from its dependencies. This\r\n  caused module resolution errors when the package was installed in other projects:\r\n\r\n  Error: Cannot find module '@elizaos/server' in project\r\n  Original error: ResolveMessage: ENOENT while resolving package 'uuid' from '@elizaos/plugin-sql'\r\n\r\n  # Documentation changes needed?\r\n\r\n  My changes do not require a change to the project documentation.\r\n\r\n  # Testing\r\n\r\n  ## Where should a reviewer start?\r\n\r\n  Review the changes in `packages/plugin-sql/package.json` - only one line added to dependencies.\r\n\r\n  ## Detailed testing steps\r\n\r\n  - Run `bun install` in the root directory\r\n  - Run `bun run build` to verify the build completes without module resolution errors\r\n  - The plugin-sql package should now properly resolve the uuid dependency",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-15T18:22:23Z",
      "mergedAt": "2025-09-15T18:33:17Z",
      "additions": 3,
      "deletions": 1
    },
    {
      "id": "PR_kwDOMT5cIs6odzEr",
      "title": "fix: Enable JSON imports in project-starter and project-tee-starter templates",
      "author": "yungalgo",
      "number": 5975,
      "body": "## Problem\r\nProject templates generated by `elizaos create` fail to compile when users import JSON files (e.g., character files) due to TypeScript configuration excluding JSON files from compilation, despite having `resolveJsonModule: true` enabled.\r\n\r\n## Solution\r\nAdd `\"src/**/*.json\"` and `\"*.json\"` to the `include` array in both `project-starter` and `project-tee-starter` template tsconfig.json files to enable JSON imports throughout the project structure.\r\n\r\n## Context\r\nUsers commonly need to import character JSON files in ElizaOS projects. This fix ensures the templates work out-of-the-box for this common use case without requiring manual tsconfig modifications.\r\n\r\n**Templates updated:**\r\n- `packages/project-starter/tsconfig.json`\r\n- `packages/project-tee-starter/tsconfig.json`",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-14T06:42:34Z",
      "mergedAt": "2025-09-15T12:36:35Z",
      "additions": 2,
      "deletions": 2
    }
  ],
  "codeChanges": {
    "additions": 746,
    "deletions": 91,
    "files": 22,
    "commitCount": 17
  },
  "completedItems": [
    {
      "title": "fix: transform local file paths to API URLs for web client image display",
      "prNumber": 5890,
      "type": "bugfix",
      "body": "# Relates to\r\n\r\n  Fix image display issues in web client for generated images from OpenRouter plugin\r\n\r\n  # Risks\r\n\r\n  **Low** - Changes are isolated to server-side path transformation logic. No breaking changes to existing APIs or plugins.",
      "files": [
        ".env.example",
        "bun.lock",
        "packages/core/src/index.node.ts",
        "packages/core/src/index.ts",
        "packages/core/src/utils/__tests__/paths.test.ts",
        "packages/core/src/utils/paths.ts",
        "packages/plugin-bootstrap/src/actions/imageGeneration.ts",
        "packages/server/src/api/media/agents.ts",
        "packages/server/src/api/media/channels.ts",
        "packages/server/src/api/messaging/channels.ts",
        "packages/server/src/api/messaging/core.ts",
        "packages/server/src/api/messaging/sessions.ts",
        "packages/server/src/api/shared/file-utils.ts",
        "packages/server/src/index.ts",
        "packages/server/src/loader.ts",
        "packages/server/src/socketio/index.ts",
        "packages/server/src/utils/media-transformer.ts",
        "packages/server/src/api/index.ts",
        "packages/server/src/types.ts"
      ]
    },
    {
      "title": "fix: Enable JSON imports in project-starter and project-tee-starter templates",
      "prNumber": 5975,
      "type": "bugfix",
      "body": "## Problem\r\nProject templates generated by `elizaos create` fail to compile when users import JSON files (e.g., character files) due to TypeScript configuration excluding JSON files from compilation, despite having `resolveJsonModule: true`",
      "files": [
        "packages/project-starter/tsconfig.json",
        "packages/project-tee-starter/tsconfig.json"
      ]
    },
    {
      "title": "fix: add missing uuid dependency to plugin-sql",
      "prNumber": 5977,
      "type": "bugfix",
      "body": "\r\n  # Relates to\r\n\r\n  N/A - Bug fix discovered during testing\r\n\r\n  # Risks\r\n\r\n  Low - Only adds a missing dependency declaration that was already being used in the code.\r\n\r\n  # Background\r\n\r\n  ## What does this PR do?\r\n\r\n  Adds the missing ",
      "files": [
        "bun.lock",
        "packages/plugin-sql/package.json"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "tcm390",
      "avatarUrl": "https://avatars.githubusercontent.com/u/60634884?u=c6c41679b8322eaa0c81f72e0b4ed95e80f0ac16&v=4",
      "totalScore": 32.76323537735213,
      "prScore": 32.76323537735213,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 26.1844379124341,
      "prScore": 25.7464379124341,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 4.5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 4.5,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 0.33999999999999997,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": null
    }
  ],
  "newPRs": 1,
  "mergedPRs": 3,
  "newIssues": 1,
  "closedIssues": 0,
  "activeContributors": 8
}