{
  "interval": {
    "intervalStart": "2025-08-01T00:00:00.000Z",
    "intervalEnd": "2025-08-02T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-08-01 to 2025-08-02, elizaos/eliza had 5 new PRs (4 merged), 3 new issues, and 6 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7DxO_D",
      "title": "eliza cloud railway deployment",
      "author": "samarth30",
      "number": 5703,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2025-08-01T16:20:02Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7DoKcd",
      "title": "feat: Add IStorageService type to core",
      "author": "lalalune",
      "number": 5698,
      "repository": "elizaos/eliza",
      "body": "The new ElizaOS plugin and AWS S3 plugin rely on IStorageService and use ServiceType.REMOTE_FILES but we should change this to storage I think",
      "createdAt": "2025-08-01T00:33:14Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7DoKIq",
      "title": "feat: Add unregisterAction to core package",
      "author": "lalalune",
      "number": 5697,
      "repository": "elizaos/eliza",
      "body": "Would be nice if you could unregister actions with runtime.unregisterAction",
      "createdAt": "2025-08-01T00:32:24Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6hxQPB",
      "title": "sessions API",
      "author": "ChristopherTrimboli",
      "number": 5704,
      "body": "# Sessions API Documentation\r\n\r\nThe Sessions API provides a simplified interface for messaging between users and agents, abstracting away the complexity of servers, channels, and participants.\r\n\r\n## Overview\r\n\r\nThe Sessions API is designed for:\r\n- Simple chat applications\r\n- Discord activities\r\n- Web interfaces\r\n- Mobile apps\r\n- Any client that needs basic user-to-agent messaging\r\n\r\n## Key Benefits\r\n\r\n1. **Simplified Interface**: No need to manage servers, channels, or participants\r\n2. **Session-based**: Each conversation is a unique session with automatic cleanup\r\n3. **Stateless Clients**: Clients only need to track a session ID\r\n4. **Unified Response Format**: Consistent message format across all endpoints\r\n\r\n## API Endpoints\r\n\r\n### Create Session\r\n```\r\nPOST /api/messaging/sessions\r\nBody: {\r\n  \"agentId\": \"uuid\",\r\n  \"userId\": \"uuid\",\r\n  \"metadata\": {} // optional\r\n}\r\nResponse: {\r\n  \"sessionId\": \"uuid\",\r\n  \"agentId\": \"uuid\",\r\n  \"userId\": \"uuid\",\r\n  \"createdAt\": \"2024-01-01T00:00:00Z\",\r\n  \"metadata\": {}\r\n}\r\n```\r\n\r\n### Send Message\r\n```\r\nPOST /api/messaging/sessions/:sessionId/messages\r\nBody: {\r\n  \"content\": \"Hello, agent!\",\r\n  \"attachments\": [], // optional\r\n  \"metadata\": {} // optional\r\n}\r\nResponse: {\r\n  \"id\": \"uuid\",\r\n  \"content\": \"Hello, agent!\",\r\n  \"authorId\": \"user-uuid\",\r\n  \"createdAt\": \"2024-01-01T00:00:00Z\",\r\n  \"metadata\": {}\r\n}\r\n```\r\n\r\n### Get Messages\r\n```\r\nGET /api/messaging/sessions/:sessionId/messages?limit=50&after=timestamp\r\nResponse: {\r\n  \"messages\": [\r\n    {\r\n      \"id\": \"uuid\",\r\n      \"content\": \"Hello!\",\r\n      \"authorId\": \"uuid\",\r\n      \"isAgent\": true/false,\r\n      \"createdAt\": \"2024-01-01T00:00:00Z\",\r\n      \"metadata\": {\r\n        \"thought\": \"...\", // for agent messages\r\n        \"actions\": [...] // for agent messages\r\n      }\r\n    }\r\n  ],\r\n  \"hasMore\": true/false\r\n}\r\n```\r\n\r\n### Get Session Info\r\n```\r\nGET /api/messaging/sessions/:sessionId\r\nResponse: {\r\n  \"sessionId\": \"uuid\",\r\n  \"agentId\": \"uuid\",\r\n  \"userId\": \"uuid\",\r\n  \"createdAt\": \"2024-01-01T00:00:00Z\",\r\n  \"lastActivity\": \"2024-01-01T00:00:00Z\",\r\n  \"metadata\": {}\r\n}\r\n```\r\n\r\n### Delete Session\r\n```\r\nDELETE /api/messaging/sessions/:sessionId\r\nResponse: {\r\n  \"success\": true\r\n}\r\n```\r\n\r\n## Migration from Simple API\r\n\r\nThe old Discord-specific simple API can be replaced with the sessions API:\r\n\r\n### Old Simple API:\r\n```javascript\r\n// Get agents\r\nGET /api/messaging/simple/agents\r\n\r\n// Send message\r\nPOST /api/messaging/simple/:agentId/message\r\nBody: { message, sessionId, userId }\r\n\r\n// Get messages\r\nGET /api/messaging/simple/:agentId/messages?sessionId=xxx\r\n```\r\n\r\n### New Sessions API:\r\n```javascript\r\n// Get agents (use existing endpoint)\r\nGET /api/agents\r\n\r\n// Create session first\r\nPOST /api/messaging/sessions\r\nBody: { agentId, userId }\r\n\r\n// Send message\r\nPOST /api/messaging/sessions/:sessionId/messages\r\nBody: { content }\r\n\r\n// Get messages\r\nGET /api/messaging/sessions/:sessionId/messages\r\n```\r\n\r\n## Example Usage\r\n\r\n```javascript\r\n// 1. Create a session\r\nconst { sessionId } = await fetch('/api/messaging/sessions', {\r\n  method: 'POST',\r\n  headers: { 'Content-Type': 'application/json' },\r\n  body: JSON.stringify({\r\n    agentId: 'agent-uuid',\r\n    userId: 'user-uuid',\r\n    metadata: { platform: 'discord-activity' }\r\n  })\r\n}).then(r => r.json());\r\n\r\n// 2. Send a message\r\nawait fetch(`/api/messaging/sessions/${sessionId}/messages`, {\r\n  method: 'POST',\r\n  headers: { 'Content-Type': 'application/json' },\r\n  body: JSON.stringify({\r\n    content: 'Hello, agent!'\r\n  })\r\n});\r\n\r\n// 3. Poll for responses\r\nconst pollForResponses = async () => {\r\n  const { messages } = await fetch(\r\n    `/api/messaging/sessions/${sessionId}/messages?after=${lastTimestamp}`\r\n  ).then(r => r.json());\r\n  \r\n  const agentMessages = messages.filter(m => m.isAgent);\r\n  if (agentMessages.length > 0) {\r\n    // Handle agent response\r\n  }\r\n};\r\n```\r\n\r\n## Session Lifecycle\r\n\r\n1. Sessions are created on-demand when a user starts a conversation\r\n2. Sessions remain active as long as messages are being exchanged\r\n3. Inactive sessions are automatically cleaned up after 30 minutes\r\n4. Clients can explicitly delete sessions when done\r\n\r\n## Best Practices\r\n\r\n1. **One session per conversation**: Create a new session for each unique conversation\r\n2. **Store session ID**: Clients should persist the session ID for the duration of the conversation\r\n3. **Handle session expiry**: If a session expires, create a new one\r\n4. **Poll efficiently**: Use the `after` parameter to only get new messages\r\n5. **Clean up**: Delete sessions when the conversation ends (optional)",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-01T18:50:42Z",
      "mergedAt": null,
      "additions": 1169,
      "deletions": 9
    },
    {
      "id": "PR_kwDOMT5cIs6hu6wE",
      "title": "feat: auto-install @elizaos/cli as dev dependency for start/dev commands",
      "author": "wtfsayo",
      "number": 5702,
      "body": "## 🚀 Feature: Auto-install @elizaos/cli as dev dependency using bun\n\n### Summary\nAutomatically adds `@elizaos/cli` as a dev dependency using **bun** when running `start` or `dev` commands in non-monorepo environments. This improves the development experience by ensuring developers always have access to the local CLI for better performance and consistency.\n\n### 🔧 Implementation Details\n\n**Core Components:**\n- **New utility:** `dependency-manager.ts` with smart auto-installation logic optimized for bun\n- **Enhanced commands:** Integrated into both `start` and `dev` commands\n- **Comprehensive testing:** 49 passing tests with 100% coverage for the new module\n\n**Smart Detection Logic:**\n- ✅ **Will install** when: Not in monorepo, has package.json, @elizaos/cli missing, auto-install enabled\n- ❌ **Will skip** when: In monorepo, CI/test environments, CLI already present, or disabled via env vars\n\n**Bun-Only Approach:**\n- Assumes bun is available (ElizaOS standard)\n- Uses `bun add --dev @elizaos/cli` for installation\n- Optimized messaging for bun usage\n- No fallback to other package managers\n\n### 🎯 Key Features\n\n1. **Bun-native**: Uses bun commands exclusively, aligned with ElizaOS philosophy\n2. **Non-intrusive**: Only runs when conditions are appropriate\n3. **User controllable**: Can be disabled with `--no-auto-install` flag or `ELIZA_NO_AUTO_INSTALL=true`\n4. **Environment aware**: Automatically skips in CI/test environments\n5. **Error resilient**: Graceful handling of network failures, permission issues, etc.\n6. **Performance conscious**: Uses spinners and provides clear user feedback\n\n### 🧪 Testing\n\n- **Unit tests**: 30 tests covering all utility functions\n- **Integration tests**: 19 tests using real file system operations\n- **Full coverage**: 100% code coverage for the dependency manager module\n- **TypeScript compliant**: No errors or warnings\n- **Bun-focused**: All tests use bun:test framework\n\n### 🎨 User Experience\n\n```bash\n# When auto-installing (non-monorepo projects)\nelizaos start\n# Shows: \"Adding @elizaos/cli as dev dependency for enhanced development experience...\"\n# Shows: \"Installing @elizaos/cli with bun...\"\n# Shows: \"✓ @elizaos/cli installed successfully\"\n# Shows: \"Next time you can use the local CLI for better performance and consistency\"\n\n# When conditions aren't met, runs silently without interruption\n```\n\n### 🔗 Files Changed\n\n- `packages/cli/src/utils/dependency-manager.ts` - New bun-optimized utility (197 lines)\n- `packages/cli/src/commands/start/index.ts` - Added ensureElizaOSCli() call\n- `packages/cli/src/commands/dev/actions/dev-server.ts` - Added ensureElizaOSCli() call\n- `packages/cli/src/utils/__tests__/dependency-manager.test.ts` - Unit tests (464 lines)\n- `packages/cli/src/utils/__tests__/dependency-manager.integration.test.ts` - Integration tests (297 lines)\n\n### 🐛 Bug Fix: Database Integration Tests\n\n**Issue:** CI workflow was failing due to embedding dimension mismatch in plugin-sql integration tests.\n\n**Root Cause:** Test was creating 768-dimensional embeddings but database adapter was configured for 384 dimensions by default, causing constraint violation:\n```\n❌ ERROR: expected 384 dimensions, not 768\n```\n\n**Fix:** Added `await adapter.ensureEmbeddingDimension(768)` call before creating 768-dimensional embeddings in memory integration test.\n\n**File Changed:**\n- `packages/plugin-sql/src/__tests__/integration/memory.test.ts` - Fixed embedding dimension configuration\n\n**Result:** All database integration tests now pass ✅\n\n### ✅ Checklist\n\n- [x] Follows TypeScript rules (no any/never/unknown types)\n- [x] Uses bun:test framework exclusively\n- [x] Bun-only approach (no other package manager support)\n- [x] Comprehensive error handling\n- [x] All tests pass successfully (49/49)\n- [x] No TypeScript errors or warnings\n- [x] Follows existing codebase patterns\n- [x] Graceful degradation for edge cases\n- [x] User-controllable behavior\n- [x] 100% test coverage for new code\n- [x] **Fixed CI workflow database integration tests**\n\n### 📋 Testing Commands\n\n```bash\n# Run dependency manager tests\ncd packages/cli && bun test src/utils/__tests__/dependency-manager*\n\n# Build and verify no errors\ncd packages/cli && bun run build\n\n# Run database integration tests (now fixed)\ncd packages/plugin-sql && bun test src/__tests__/integration/memory.test.ts\n```\n\n### 🎯 Bun Alignment\n\nThis implementation is fully aligned with ElizaOS's bun-only philosophy:\n- Uses `bun add` for package installation\n- Leverages existing bun utilities in the codebase\n- Assumes bun availability (no fallbacks)\n- Optimized messaging for bun usage\n- All tests use bun:test framework\n\nThis enhancement ensures that developers working on ElizaOS projects outside of the monorepo always have access to the local CLI tools using bun, improving development consistency and performance.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-01T14:32:56Z",
      "mergedAt": "2025-08-01T15:37:20Z",
      "additions": 1043,
      "deletions": 0
    },
    {
      "id": "PR_kwDOMT5cIs6hurLT",
      "title": "feat: build optimization and markdown rendering support",
      "author": "wtfsayo",
      "number": 5701,
      "body": "## Summary\n\nThis PR introduces build optimizations and enhanced markdown rendering capabilities:\n\n### Key Changes\n- **Build Optimization**: Removed docs filter from main build process for more efficient builds\n- **Dependency Cleanup**: Removed  dependency from core package to reduce bundle size  \n- **Markdown Enhancement**: Added  and  support for enhanced markdown rendering in client\n- **Documentation**: Cleaned up formatting and whitespace in documentation files\n- **Dependencies**: Updated lock files and package versions to support better markdown parsing with GFM features\n\n### Technical Details\n- Modified main  build script to remove docs filter\n- Removed  from  dependencies\n- Added  and  to client package\n- Updated  with new dependency versions\n- Minor formatting improvements in  documentation\n\n### Testing\n- All existing tests should continue to pass\n- Build process should be more efficient without docs filter\n- Client should now support enhanced markdown rendering with GitHub Flavored Markdown features\n\n### Breaking Changes\nNone - this is purely additive functionality and build optimizations.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-01T14:10:59Z",
      "mergedAt": "2025-08-01T14:15:10Z",
      "additions": 290,
      "deletions": 3495
    },
    {
      "id": "PR_kwDOMT5cIs6hudPO",
      "title": "remove un-necessary/obsolete readme details",
      "author": "wtfsayo",
      "number": 5700,
      "body": "This PR removes obsolete documentation from the README.md file:\n\n- Removes outdated LangChain integration reference from the core package description\n- Removes extensive Tauri CI/CD documentation section that covered workflows, mobile backend configuration, and application signing\n- Cleans up the README to focus on current architecture and removes outdated deployment information\n\nThese sections were no longer relevant to the current state of the project and were creating confusion for new contributors.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-01T13:50:06Z",
      "mergedAt": "2025-08-01T13:50:20Z",
      "additions": 0,
      "deletions": 65
    },
    {
      "id": "PR_kwDOMT5cIs6hubbb",
      "title": "chore: remove obsolete GitHub workflow files",
      "author": "wtfsayo",
      "number": 5699,
      "body": "This PR removes 3 obsolete GitHub workflow files that are no longer needed:\n\n- **deploy-cli.yml**: CLI deployment workflow\n- **docs-publish.yml**: Documentation publishing workflow  \n- **llmstxt-generator.yml**: Repomix documentation generator workflow\n\nThese workflows were causing maintenance overhead and are no longer required for the current development process.\n\n## Changes\n- Deleted \n- Deleted \n- Deleted \n\n## Impact\n- Reduces CI/CD complexity\n- Eliminates maintenance overhead for unused workflows\n- Cleans up the repository structure",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-01T13:47:06Z",
      "mergedAt": "2025-08-01T13:47:19Z",
      "additions": 0,
      "deletions": 197
    }
  ],
  "codeChanges": {
    "additions": 1333,
    "deletions": 3757,
    "files": 16,
    "commitCount": 18
  },
  "completedItems": [
    {
      "title": "feat: auto-install @elizaos/cli as dev dependency for start/dev commands",
      "prNumber": 5702,
      "type": "feature",
      "body": "## 🚀 Feature: Auto-install @elizaos/cli as dev dependency using bun\n\n### Summary\nAutomatically adds `@elizaos/cli` as a dev dependency using **bun** when running `start` or `dev` commands in non-monorepo environments. This improves the dev",
      "files": [
        "bun.lock",
        "packages/cli/src/commands/dev/actions/dev-server.ts",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/utils/__tests__/dependency-manager.integration.test.ts",
        "packages/cli/src/utils/__tests__/dependency-manager.test.ts",
        "packages/cli/src/utils/dependency-manager.ts",
        "packages/plugin-sql/src/__tests__/integration/memory.test.ts"
      ]
    },
    {
      "title": "feat: build optimization and markdown rendering support",
      "prNumber": 5701,
      "type": "feature",
      "body": "## Summary\n\nThis PR introduces build optimizations and enhanced markdown rendering capabilities:\n\n### Key Changes\n- **Build Optimization**: Removed docs filter from main build process for more efficient builds\n- **Dependency Cleanup**: Remo",
      "files": [
        "bun.lock",
        "llms.txt",
        "package.json",
        "packages/cli/package.json",
        "packages/client/package.json",
        "packages/core/package.json"
      ]
    },
    {
      "title": "remove un-necessary/obsolete readme details",
      "prNumber": 5700,
      "type": "other",
      "body": "This PR removes obsolete documentation from the README.md file:\n\n- Removes outdated LangChain integration reference from the core package description\n- Removes extensive Tauri CI/CD documentation section that covered workflows, mobile backe",
      "files": [
        "README.md"
      ]
    },
    {
      "title": "chore: remove obsolete GitHub workflow files",
      "prNumber": 5699,
      "type": "other",
      "body": "This PR removes 3 obsolete GitHub workflow files that are no longer needed:\n\n- **deploy-cli.yml**: CLI deployment workflow\n- **docs-publish.yml**: Documentation publishing workflow  \n- **llmstxt-generator.yml**: Repomix documentation genera",
      "files": [
        ".github/workflows/deploy-cli.yml",
        ".github/workflows/docs-publish.yml",
        ".github/workflows/llmstxt-generator.yml"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 146.76313398260396,
      "prScore": 146.42313398260396,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": null
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 38.18064172760327,
      "prScore": 33.18064172760327,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 4,
      "prScore": 0,
      "issueScore": 4,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "samarth30",
      "avatarUrl": "https://avatars.githubusercontent.com/u/48334430?u=1fc119a6c2deb8cf60448b4c8961cb21dc69baeb&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    }
  ],
  "newPRs": 5,
  "mergedPRs": 4,
  "newIssues": 3,
  "closedIssues": 0,
  "activeContributors": 6
}