{
  "interval": {
    "intervalStart": "2025-10-09T00:00:00.000Z",
    "intervalEnd": "2025-10-10T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-10-09 to 2025-10-10, elizaos/eliza had 1 new PRs (1 merged), 0 new issues, and 4 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7PXS9F",
      "title": "Imports not found in index.ts with Eliza CLI 1.61",
      "author": "matteo-brandolino",
      "number": 6031,
      "repository": "elizaos/eliza",
      "body": "## Describe the bug\nWhen creating a new project using `elizaos create`, some imports in `index.ts` fail:\nModule '\"@Elizaos/core\"' has no exported member 'logger'.ts(2305) Module '\"@Elizaos/core\"' has no exported member 'IAgentRuntime'.ts(2305) Module '\"@Elizaos/core\"' has no exported member 'ProjectAgent'.ts(2305)\nCopy code\n\n## To Reproduce\n1. Install Eliza CLI 1.61.  \n2. Run `elizaos create` to generate a new project.  \n3. Open `index.ts` and try to import `logger`, `IAgentRuntime`, or `ProjectAgent` from `@Elizaos/core`.  \n\n## Expected behavior\nThese members should be correctly exported and importable from `@Elizaos/core` in a newly generated project.  \n\n## Screenshots\n<!-- Add screenshots if applicable -->\n\n## Additional context\n- Eliza CLI version: 1.61  \n- This occurs immediately after project creation without any modifications.  \n- Possible regression from previous versions of `@Elizaos/core`.",
      "createdAt": "2025-10-02T21:26:47Z",
      "closedAt": "2025-10-09T22:20:47Z",
      "state": "CLOSED",
      "commentCount": 2
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6sW7SH",
      "title": "feat(core): add config and plugin modules - phase 4 - refactor ElizaOS/Server",
      "author": "standujar",
      "number": 6037,
      "body": "\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- New Features\n  - Added plugin management with auto-install, loading, validation, and dependency resolution.\n  - Introduced configuration utilities: character parsing/validation/defaults, environment variable loading from .env, and secrets population from local env files.\n  - Expanded public API to expose configuration and plugin modules.\n\n- Tests\n  - Added comprehensive test suites for plugin management, character config, environment loading, and secrets handling, including edge cases and dependency ordering.\n\n<!-- end of auto-generated comment: release notes by coderabbit.ai -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-06T20:06:24Z",
      "mergedAt": "2025-10-09T09:23:41Z",
      "additions": 1582,
      "deletions": 1270
    },
    {
      "id": "PR_kwDOMT5cIs6s4Tj6",
      "title": "feat: elizaos deploy",
      "author": "ChristopherTrimboli",
      "number": 6052,
      "body": "## 📋 Summary\n\nImplements the `elizaos deploy` command for deploying ElizaOS projects to Cloudflare Workers via the ElizaOS Cloud platform. Users can now build Docker images locally, upload them through the cloud API, and deploy containers to Cloudflare—all with a single command.\n\n## 🎯 Motivation\n\nEnable ElizaOS developers to deploy their agents to production infrastructure without managing Cloudflare accounts directly. The platform acts as a managed service, handling image uploads, Worker creation, and container orchestration while providing billing, quotas, and monitoring.\n\n## 🚀 Changes\n\n### New Features\n\n#### 1. **Deploy Command** (`src/commands/deploy/`)\n- **Main command:** Full-featured deploy with options for name, port, instances, env vars\n- **Docker integration:** Builds images with platform targeting (linux/amd64)\n- **Image export:** Exports Docker images to tarballs for upload\n- **Cloud upload:** Uploads images to Cloudflare via cloud API\n- **Status polling:** Waits for deployment completion with progress updates\n\n#### 2. **Docker Utilities** (`src/commands/deploy/utils/docker.ts`)\n```typescript\n+ exportDockerImage(imageTag, outputPath?) → Promise<DockerExportResult>\n  - Exports Docker image to tarball\n  - Cross-platform temp directory handling\n  - File size reporting\n\n+ cleanupImageTarball(tarballPath) → Promise<void>\n  - Cleans up temporary tarball files\n  - Safe error handling\n```\n\n#### 3. **API Client** (`src/commands/deploy/utils/api-client.ts`)\n```typescript\n+ getQuota() → Promise<QuotaResponse>\n  - Pre-flight check for quotas and credits\n  - Shows user their limits before deploying\n\n+ uploadImage(imageName, imagePath) → Promise<UploadResponse>\n  - Uploads image tarball with 5-minute timeout\n  - Progress reporting\n  - Automatic abort on timeout\n\n+ createContainer(config) → Promise<ContainerResponse>\n+ getContainer(id) → Promise<ContainerResponse>\n+ waitForDeployment(id, options) → Promise<DeploymentResponse>\n```\n\n#### 4. **Types** (`src/commands/deploy/types.ts`)\n- Extended `CloudApiResponse` with credit/quota fields\n- Added `DockerExportResult` interface\n- Comprehensive type safety for all operations\n\n### Modified Files\n\n```\npackages/cli/src/commands/deploy/\n├── index.ts                    [EXISTING] Entry point\n├── README.md                   [EXISTING] Documentation\n├── actions/\n│   └── deploy.ts              [MODIFIED] +85 lines\n├── utils/\n│   ├── api-client.ts          [MODIFIED] +80 lines\n│   └── docker.ts              [MODIFIED] +60 lines\n└── types.ts                   [MODIFIED] +8 lines\n```\n\n### Key Implementation Details\n\n**Pre-Flight Checks:**\n```typescript\n// Check quota and credits before any operations\nconst quotaResponse = await apiClient.getQuota();\nif (quota.remaining === 0) {\n  return error(\"Container limit reached\");\n}\nif (credits.balance < totalCost) {\n  return error(\"Insufficient credits\");\n}\n```\n\n**Upload with Timeout:**\n```typescript\n// 5-minute timeout for large image uploads\nconst controller = new AbortController();\nconst timeoutId = setTimeout(() => controller.abort(), 5 * 60 * 1000);\n\nconst response = await fetch(url, {\n  body: imageBuffer,\n  signal: controller.signal\n});\n```\n\n**Cleanup on Failure:**\n```typescript\n// Always cleanup tarball, even on upload failure\ntry {\n  await apiClient.uploadImage(name, tarballPath);\n} finally {\n  await cleanupImageTarball(tarballPath);\n}\n```\n\n## 📊 User Experience\n\n### Successful Deployment\n\n```bash\n$ elizaos deploy\n\n🚀 Starting ElizaOS deployment...\n📦 Deploying project: my-agent\n💳 Checking account quota and credits...\n📊 Containers: 2/5 (3 remaining)\n💰 Credit balance: 10000 credits\n💸 Deployment cost: ~1500 credits\n🔨 Building Docker image...\n✅ Docker image built: elizaos/my-agent:latest\n📦 Exporting Docker image...\n✅ Image exported: /tmp/eliza-deploy-xxx/image.tar (250.00 MB)\n📤 Uploading image to cloud...\n💰 Credits deducted for upload: 500\n✅ Image uploaded: my-agent-cf123\n☁️  Deploying to Cloudflare Containers...\n💰 Credits deducted: 1000 (8500 remaining)\n✅ Container created: uuid-123\n⏳ Waiting for deployment to complete...\n✅ Deployment successful!\n📍 Container ID: uuid-123\n🌐 URL: https://my-agent-abc123.workers.dev\n```\n\n### Error Handling\n\n```bash\n# Quota exceeded\n⚠️  Container limit reached! You have 5/5 containers.\n   Delete unused containers or upgrade your plan.\n\n# Insufficient credits\n⚠️  Insufficient credits for deployment.\n   Required: 1500 credits\n   Available: 800 credits\n   Please add credits to your account.\n\n# Upload timeout\n❌ Upload timeout after 5 minutes. Please check your network connection.\n```\n\n## 🧪 Testing\n\n### Manual Testing\n\n```bash\n# 1. Setup cloud API\ncd eliza-cloud-v2\nexport CLOUDFLARE_ACCOUNT_ID=xxx\nexport CLOUDFLARE_API_TOKEN=xxx\nnpm run dev\n\n# 2. Get API key from dashboard\nopen http://localhost:3000/dashboard/api-keys\nexport ELIZAOS_API_KEY=eliza_xxxxx\n\n# 3. Deploy a project\ncd packages/project-starter\nelizaos deploy\n\n# 4. Verify deployment\nopen http://localhost:3000/dashboard/containers\n```\n\n### Test Cases Covered\n\n- ✅ Build Docker image with platform targeting\n- ✅ Export image to tarball (cross-platform)\n- ✅ Upload with timeout protection\n- ✅ Cleanup on failure\n- ✅ Pre-flight quota/credit checks\n- ✅ Status polling until completion\n- ✅ Error handling (quota, credits, network)\n- ✅ API key authentication\n- ✅ Environment variable parsing\n\n## 🔒 Security\n\n- API keys transmitted via `Authorization: Bearer` header\n- No secrets stored in code or logs\n- Temporary tarballs cleaned up after upload\n- Timeout protection prevents hanging connections\n- Proper error messages (no sensitive data leaked)\n\n## 📝 Documentation\n\n- ✅ Command help text with examples\n- ✅ README with usage guide\n- ✅ Type definitions with comments\n- ✅ Error messages with actionable guidance\n\n## ⚙️ Configuration\n\n### Required Environment Variables\n\n```bash\n# For deployment\nELIZAOS_API_KEY=eliza_xxxxx          # From cloud dashboard\n\n# Optional\nELIZAOS_API_URL=https://elizacloud.ai  # Defaults to production\n```\n\n### CLI Options\n\n```bash\nelizaos deploy [options]\n\nOptions:\n  -n, --name <name>              Deployment name\n  -p, --port <port>              Container port (default: 3000)\n  -m, --max-instances <count>    Max instances (default: 1)\n  -k, --api-key <key>            API key (or use ELIZAOS_API_KEY)\n  -u, --api-url <url>            API URL (default: https://elizacloud.ai)\n  -d, --dockerfile <path>        Dockerfile path (default: Dockerfile)\n  -e, --env <KEY=VALUE>          Environment variables (repeatable)\n  --no-build                     Skip Docker build\n  -t, --tag <tag>                Docker image tag\n```\n\n## 🎯 Breaking Changes\n\nNone - this is a new command with no impact on existing functionality.\n\n## 📦 Dependencies\n\nNo new external dependencies added. Uses existing:\n- `execa` - For Docker commands\n- `dotenv` - For environment loading\n- `@elizaos/core` - For logging\n\n## 🔄 Migration Guide\n\nN/A - New feature, no migration needed.\n\n## ✅ Checklist\n\n- [x] Code follows project style guidelines\n- [x] All linting passes\n- [x] TypeScript compilation successful\n- [x] Manual testing completed\n- [x] Documentation updated\n- [x] Error handling implemented\n- [x] Security best practices followed\n- [ ] Unit tests added (TODO)\n- [ ] E2E tests added (TODO)\n\n## 📚 Related\n\n- **SaaS PR:** Companion changes to eliza-cloud-v2 API endpoints\n- **Issue:** Implements container deployment feature\n- **Docs:** See `packages/cli/src/commands/deploy/README.md`\n\n## 🙏 Reviewer Notes\n\n**Key areas to review:**\n1. Error handling in upload timeout logic\n2. Try/finally cleanup pattern\n3. Pre-flight check implementation\n4. User-facing error messages\n5. Type safety in API responses\n\n**Questions for reviewers:**\n- Should we add progress indicators for uploads >100MB?\n- Should we implement retry logic for network failures?\n- Is 5-minute timeout appropriate for all image sizes?\n\n---\n\n**Ready for review!** This enables full end-to-end deployment from CLI to production Cloudflare infrastructure.\n\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-09T11:50:37Z",
      "mergedAt": null,
      "additions": 1345,
      "deletions": 43
    }
  ],
  "codeChanges": {
    "additions": 2324,
    "deletions": 1270,
    "files": 36,
    "commitCount": 8
  },
  "completedItems": [
    {
      "title": "feat(core): add config and plugin modules - phase 4 - refactor ElizaOS/Server",
      "prNumber": 6037,
      "type": "feature",
      "body": "\n\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\n\n## Summary by CodeRabbit\n\n- New Features\n  - Added plugin management with auto-install, loading, validation, and dependency resolution.\n  - Introduced configurati",
      "files": [
        "bun.lock",
        "packages/core/src/__tests__/plugin.test.ts",
        "packages/core/src/config/__tests__/character.test.ts",
        "packages/core/src/config/__tests__/environment.test.ts",
        "packages/core/src/config/__tests__/secrets.test.ts",
        "packages/core/src/config/character.ts",
        "packages/core/src/config/environment.ts",
        "packages/core/src/config/index.ts",
        "packages/core/src/config/secrets.ts",
        "packages/core/src/index.ts",
        "packages/core/src/plugin.ts",
        "packages/project-starter/tsconfig.json",
        "packages/core/src/__tests__/config/character.test.ts",
        "packages/core/src/__tests__/config/environment.test.ts",
        "packages/core/src/__tests__/config/secrets.test.ts",
        "packages/cli/src/commands/scenario/src/runtime-factory.ts",
        "packages/core/src/__tests__/character.test.ts",
        "packages/core/src/__tests__/secrets.test.ts",
        "packages/core/src/__tests__/utils/buffer.test.ts",
        "packages/core/src/__tests__/utils/environment.test.ts",
        "packages/core/src/__tests__/utils/paths.test.ts",
        "packages/core/src/__tests__/utils/stringToUuid.test.ts",
        "packages/core/src/character.ts",
        "packages/core/src/elizaos.ts",
        "packages/core/src/index.node.ts",
        "packages/core/src/secrets.ts",
        "packages/core/src/utils/__tests__/environment.test.ts",
        "packages/core/src/utils/environment.ts",
        "packages/server/src/__tests__/api.test.ts",
        "packages/server/src/index.ts",
        "packages/server/src/managers/ConfigManager.ts",
        "packages/server/src/managers/PluginInstaller.ts",
        "packages/server/src/managers/PluginLoader.ts",
        "packages/server/src/managers/__tests__/ConfigManager.test.ts",
        "packages/server/src/managers/__tests__/PluginInstaller.test.ts",
        "packages/server/src/managers/__tests__/PluginLoader.test.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 109.89781099989634,
      "prScore": 105.05781099989633,
      "issueScore": 0,
      "reviewScore": 4.5,
      "commentScore": 0.33999999999999997,
      "summary": "0xbbjoker: Focused on enhancing voice features by merging a significant bugfix in elizaos-plugins/plugin-openai#18, which involved substantial changes to handle Buffer and Node.js streams, and also initiated feature work to migrate message handling in elizaos-plugins/plugin-telegram and elizaos-plugins/plugin-twitter. Their primary focus was on bugfix work and feature development, with a significant portion of code changes dedicated to these areas."
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 43.5437738965761,
      "prScore": 43.5437738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "ChristopherTrimboli: Focused on other work and bug fixes, opening a new feature PR, elizaos/eliza#6052 \"feat: elizaos deploy\", which involved modifying 7 files with a net addition of 320 lines of code."
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 0.2,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "wtfsayo: Focused on refactor work, modifying 25 files with a net addition of 312 lines of code, and contributed to an issue by commenting on it."
    }
  ],
  "newPRs": 1,
  "mergedPRs": 1,
  "newIssues": 0,
  "closedIssues": 1,
  "activeContributors": 4
}