{
  "interval": {
    "intervalStart": "2025-09-07T00:00:00.000Z",
    "intervalEnd": "2025-09-08T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-09-07 to 2025-09-08, elizaos/eliza had 3 new PRs (0 merged), 0 new issues, and 3 active contributors.",
  "topIssues": [],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6nQ6oI",
      "title": "Main",
      "author": "DevGruGold",
      "number": 5892,
      "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-09-07T18:01:30Z",
      "mergedAt": null,
      "additions": 3476,
      "deletions": 662
    },
    {
      "id": "PR_kwDOMT5cIs6nQ6MF",
      "title": "dev changes",
      "author": "DevGruGold",
      "number": 5891,
      "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-09-07T17:58:30Z",
      "mergedAt": null,
      "additions": 3053,
      "deletions": 572
    },
    {
      "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": null,
      "additions": 624,
      "deletions": 42
    }
  ],
  "codeChanges": {
    "additions": 0,
    "deletions": 0,
    "files": 0,
    "commitCount": 5
  },
  "completedItems": [],
  "topContributors": [
    {
      "username": "DevGruGold",
      "avatarUrl": "https://avatars.githubusercontent.com/u/181147699?u=4258e430ad766ca1d11778ab9e7d91ecfa0e110c&v=4",
      "totalScore": 81.28954779315221,
      "prScore": 80.8515477931522,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "DevGruGold: Focused on upcoming changes, with two open pull requests in elizaos/eliza, \"Main\" (#5892) and \"dev changes\" (#5891), and provided 3 PR comments."
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 47.53937916913268,
      "prScore": 47.199379169132676,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": "standujar: Focused on feature work, opening PR #5890 in elizaos/eliza to transform local file paths to API URLs for the web client, contributing 680 new lines of code and commenting on 2 PRs."
    }
  ],
  "newPRs": 3,
  "mergedPRs": 0,
  "newIssues": 0,
  "closedIssues": 0,
  "activeContributors": 3
}