{
  "interval": {
    "intervalStart": "2025-09-01T00:00:00.000Z",
    "intervalEnd": "2025-09-02T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-09-01 to 2025-09-02, elizaos/eliza had 3 new PRs (0 merged), 2 new issues, and 8 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7I-3_W",
      "title": "Refactor Eliza CLI",
      "author": "borisudovicic",
      "number": 5860,
      "repository": "elizaos/eliza",
      "body": "### **Summary**\n\nThe current CLI is overly complex and duplicates logic that should live inside project directories. Instead of bootstrapping AgentServer inside the CLI, we should streamline it to handle only configuration and delegate execution to the project’s runtime.\n\n### **Problem**\n\n* **Duplication of logic:** Both the CLI and project code (e.g. project-starter/src/index.ts) contain overlapping runner and module management logic .\n* **Code-first gap:** Without a true code-first Eliza, the CLI has taken on responsibilities (e.g. instantiating AgentServer) that should belong to projects.\n* **Unnecessary coupling:** Bootstrapping agents directly from the CLI makes it harder to reason about project boundaries and introduces complexity in maintaining two runtimes.\n* **Developer UX:** For new users, this creates confusion about where to put logic and increases friction.\n\n### **Proposal**\n\n* **CLI responsibilities:**\n  * Manage environment and char.json configuration (via env and config commands).\n  * Provide a clean interface for project creation (elizaos create) .\n  * Delegate execution to project scripts (bun run build, bun run start) rather than running agents directly.\n* **Project responsibilities:**\n  * Own all logic for AgentServer instantiation (directly in project-starter/src/index.ts).\n  * Expose a clear entry point (start/dev) that the CLI calls into.\n  * Keep all runtime and module complexity contained in project code.",
      "createdAt": "2025-09-01T09:20:11Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 9
    },
    {
      "id": "I_kwDOMT5cIs7I6pcU",
      "title": "Web UI dashboard exists but is completely undocumented (users don't know how to interact with their agent)",
      "author": "thedotmack",
      "number": 5857,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\nThe ElizaOS documentation (including the Quickstart guide) completely fails to mention that there's a web interface/dashboard available after starting an agent. The startup logs show \"Go to the dashboard at http://localhost:3001\" but this crucial information is NEVER mentioned in the documentation, leaving users confused about how to interact with their agent.\n\n**To Reproduce**\n\n1. Go to the ElizaOS documentation/quickstart\n2. Follow all installation steps:\n   - Install dependencies (`bun install`)\n   - Configure environment variables\n   - Set up character configuration\n   - Run `bun start` or `npm start`\n3. See output: `[INFO] Client http listening on port 3001`\n4. Try to figure out how to talk to your agent\n5. Search entire documentation for \"web UI\", \"browser\", \"localhost:3000\", \"how to chat\"\n6. Find nothing about the web interface\n7. Assume you need to configure Telegram/Discord just to test the agent\n\n**Expected behavior**\n\nAfter starting the agent, the documentation should clearly state:\n- \"Open your browser to `http://localhost:3000` to access the web chat interface\"\n- This should be prominently displayed in the quickstart guide\n- Should appear immediately after the \"start your agent\" step\n\n**Screenshots**\n\nCurrent quickstart ends with starting the agent - no mention of the dashboard:\n```\n# Start your agent\nbun start\n```\n*[Documentation just... stops here - no mention of the dashboard URL]*\n\nMeanwhile, the ACTUAL console output shows this ONE critical line buried in 100+ lines of logs:\n```\n[2025-09-01 00:11:19] INFO: Loaded character: Eliza\nBYPASS: Using postgres URL from environment variable\n[2025-09-01 00:11:19] INFO: Using local @elizaos/server installation\n[... 50+ MORE LINES OF LOGS ...]\n[2025-09-01 00:11:20] INFO: [STATIC] Serving static files from: ./node_modules/@elizaos/server/dist/client\n[2025-09-01 00:11:20] INFO: [SocketIO] Router initialized with 0 agents\n[2025-09-01 00:11:20] INFO: [SocketIO] Setting up Socket.IO event listeners\nStartup successful!\nGo to the dashboard at http://localhost:3001  <--- THIS ONE LINE IS THE ONLY WAY TO KNOW\nAgentServer is listening on port 3001\n[2025-09-01 00:11:21] INFO: Final plugins being loaded:\n[2025-09-01 00:11:21] INFO: Running plugin migrations...\n[... 20+ MORE LINES OF LOGS CONTINUE AFTER ...]\n```\n\nThe critical \"Go to the dashboard\" message is:\n- Buried in the middle of 108 lines of startup logs\n- Surrounded by technical INFO messages about plugins, migrations, and socket handlers\n- Easy to miss as it scrolls by with all the other output\n- The ONLY indication that a web UI even exists\n\nThe logs literally tell you \"Go to the dashboard\" but:\n- That there IS a dashboard\n- That there IS a web UI\n- That you should look for this URL in the logs\n- That this is how you interact with your agent\n\n**Additional context**\n\n- The dashboard URL appears on line 65 of 108 lines of startup output - completely buried in technical logs\n- Most users will never notice this ONE line among all the INFO messages about plugins, migrations, and socket handlers\n- The startup logs DO show \"Go to the dashboard\" but it's buried in a wall of text that scrolls by quickly\n- The docs don't even mention that a dashboard/web UI EXISTS, let alone tell users to look for it in the logs\n- Users are forced to configure unnecessary integrations (Telegram/Discord/Twitter) just to test their agent because they don't know about the web UI\n- Even the llms.txt file mentions WebSocket connections and API endpoints but not the dashboard\n- This is a critical onboarding issue - new users literally cannot figure out how to interact with the thing they just installed\n- The fix is trivial: add to the quickstart \"After starting, your agent will display 'Go to the dashboard at http://localhost:xxxx' - open this URL in your browser to chat with your agent\"",
      "createdAt": "2025-09-01T00:16:45Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6mOLva",
      "title": "fix: add docker files to project-starter",
      "author": "yungalgo",
      "number": 5858,
      "body": "this is a pr to add dockerization to project-starter. so now users can do local project development , create a docker image, and then deploy it to the cloud provider of their choice. \r\n\r\nfor example with phala, users can do it all from the cli:\r\n\r\nelizaos create --type project asdasd\r\nbuild docker image: phala docker build --image my-agents-production --tag v1.0.0\r\npush image to docker hub: phala docker push\r\nadd value for DOCKER_IMAGE to env: DOCKER_IMAGE=yourdockerhubusername/my-agents-production:v1.0.0\r\nthen deploy to cloud: phala cvms create --name my-agents-production --compose ./docker-compose.yaml --env-file ./.env\r\n\r\nthis should work also for any other cloud platform seamlessly.\r\n\r\nused DOCKERFILE and DOCKERIGNORE as provided by @wtfsayo and added own docker-compose to match the one in project-tee-starter.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-01T06:59:26Z",
      "mergedAt": "2025-09-02T08:29:37Z",
      "additions": 356,
      "deletions": 14
    },
    {
      "id": "PR_kwDOMT5cIs6mON-F",
      "title": "fix: minor docker improvements project-tee-starter",
      "author": "yungalgo",
      "number": 5859,
      "body": "these are just some minor improvements to the docker-related stuff in project-tee-starter to match what's in project-starter. specifically:\r\n\r\n1. add DOCKER_IMAGE to .env.example -- it should be there as its req for docker deployments\r\n2. handle non-mandatory env vars better in the docker-compose file -- added ${VAR:-} pattern to accommodate for this\r\n\r\nthis is a very low-risk, minimally impactful pr, i decided to merge it into the other project-starter-related pr since they go together and use the same concepts.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-01T07:03:22Z",
      "mergedAt": "2025-09-02T02:09:42Z",
      "additions": 35,
      "deletions": 13
    },
    {
      "id": "PR_kwDOMT5cIs6mUKyB",
      "title": "fix(discord): Enable image generation in Discord channels",
      "author": "tcm390",
      "number": 5861,
      "body": "related: https://github.com/elizaOS/eliza/issues/5809\r\n\r\nresult:\r\n\r\n\r\n<img width=\"917\" height=\"668\" alt=\"Screenshot 2025-09-02 at 12 15 04 AM\" src=\"https://github.com/user-attachments/assets/c90d8494-eeec-4353-b633-91e4fc824c5d\" />\r\n\r\n\r\n# Fix Discord Image Generation\r\n\r\n## Problem\r\n\r\nWhen users requested image generation in Discord, the bot would generate images but fail to send them to Discord at all. The `files` parameter was undefined in the callback chain, resulting in no images being displayed in Discord channels despite successful generation.\r\n\r\n## Solution\r\n\r\nThis PR fixes the image generation functionality for Discord by ensuring generated images are sent as proper Discord file attachments that display inline.\r\n\r\n### Changes Made\r\n\r\n#### 1. **Updated Image Generation Action** (`packages/plugin-bootstrap/src/actions/imageGeneration.ts`)\r\n- Modified the image generation callback to include file attachments\r\n- Now sends generated images as proper Discord attachments with metadata:\r\n  ```typescript\r\n  await callback(responseContent, [\r\n    {\r\n      id: v4(),\r\n      attachment: imageUrl,\r\n      name: 'Generated_Image.png',\r\n      contentType: ContentType.IMAGE,\r\n    },\r\n  ]);\r\n  ```\r\n\r\n#### 2. **Enhanced Action Processing System** (`packages/plugin-bootstrap/src/index.ts`)\r\n- Updated action callback handling to properly pass file attachments:\r\n  ```typescript\r\n  await runtime.processActions(message, responseMessages, state, async (content, files) => {\r\n    runtime.logger.debug({ content, files }, 'action callback');\r\n    responseContent!.actionCallbacks = content;\r\n    return callback(content, files);\r\n  });\r\n  ```\r\n\r\n## Impact\r\n\r\n❌ **Before**: Image generation requests resulted in no images being sent to Discord  \r\n✅ **After**: Generated images display as proper inline Discord attachments\r\n\r\nThis enables image generation functionality in Discord for the first time, allowing users to request and view AI-generated images directly in Discord channels.\r\n\r\n## Technical Details\r\n\r\nThe Discord plugin infrastructure already supported file attachments via:\r\n- `sendMessageInChunks()` function with `files` parameter\r\n- `HandlerCallback` interface accepting file attachments\r\n\r\nHowever, the image generation action was not passing the `files` parameter, causing it to be undefined throughout the callback chain. This fix connects the image generation action to the existing Discord attachment infrastructure.\r\n\r\n## Testing\r\n\r\n- [x] Image generation works in Discord channels\r\n- [x] Generated images display as inline attachments\r\n- [x] Existing functionality remains unaffected\r\n- [x] File attachment handling works correctly\r\n\r\n\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-09-01T16:15:14Z",
      "mergedAt": "2025-09-02T09:18:22Z",
      "additions": 34,
      "deletions": 5
    }
  ],
  "codeChanges": {
    "additions": 0,
    "deletions": 0,
    "files": 0,
    "commitCount": 22
  },
  "completedItems": [],
  "topContributors": [
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 50.47612494455594,
      "prScore": 32.47612494455594,
      "issueScore": 0,
      "reviewScore": 18,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 34.740360524616165,
      "prScore": 28.302360524616162,
      "issueScore": 0,
      "reviewScore": 6,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "tcm390",
      "avatarUrl": "https://avatars.githubusercontent.com/u/60634884?u=c6c41679b8322eaa0c81f72e0b4ed95e80f0ac16&v=4",
      "totalScore": 15.871879454113936,
      "prScore": 15.671879454113936,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "thedotmack",
      "avatarUrl": "https://avatars.githubusercontent.com/u/683968?u=fdb9ab5845aa92dbd5a9de4abea58d43b46cc0cd&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=27713fbe603baae91ef519990facbacd6c23e93d&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 0.43799999999999994,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "monilpat",
      "avatarUrl": "https://avatars.githubusercontent.com/u/15067321?v=4",
      "totalScore": 0.43799999999999994,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": null
    }
  ],
  "newPRs": 3,
  "mergedPRs": 0,
  "newIssues": 2,
  "closedIssues": 0,
  "activeContributors": 8
}