{
  "interval": {
    "intervalStart": "2025-10-01T00:00:00.000Z",
    "intervalEnd": "2025-11-01T00:00:00.000Z",
    "intervalType": "month"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-10-01 to 2025-11-01, elizaos/eliza had 61 new PRs (53 merged), 18 new issues, and 25 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": 13
    },
    {
      "id": "I_kwDOMT5cIs7SLVfk",
      "title": "The documentation for plugins isn't correct.",
      "author": "ryanmstokes",
      "number": 6070,
      "repository": "elizaos/eliza",
      "body": "Seriously how are you even letting anyone use this right now? This is one of the worst documented frameworks I've ever seen despite having so much documentation. You can't even scaffold a plugin following your documentation without it throwing errors.",
      "createdAt": "2025-10-17T13:28:03Z",
      "closedAt": "2025-10-17T13:47:33Z",
      "state": "CLOSED",
      "commentCount": 7
    },
    {
      "id": "I_kwDOMT5cIs7TIUSd",
      "title": "`Cannot find module '@anthropic-ai/claude-code'` after installing elizaOS CLI",
      "author": "schmidsi",
      "number": 6088,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\nI'm following the steps described here: https://docs.elizaos.ai/installation#cli-version-conflicts-mismatches\n\nAfter running `elizaos --version`, I get an error message: `error: Cannot find module '@anthropic-ai/claude-code' from '/Users/schmidsi/.bun/install/global/node_modules/@elizaos/cli/dist/index.js'`\n\n**To Reproduce**\n\n1. Install the CLI globally: `bun install -g @elizaos/cli`\n2. Verify installation: `elizaos --version`\n3. Observe the error: `error: Cannot find module '@anthropic-ai/claude-code' from '/Users/schmidsi/.bun/install/global/node_modules/@elizaos/cli/dist/index.js'`\n\n**Expected behavior**\n\nThe `elizaos --version` command should display the installed version number (e.g., `1.6.2`).\n\n**Screenshots**\n```\n$ bun install -g @elizaos/cli\nbun add v1.2.15 (df017990)\nSaved lockfile\n\ninstalled @elizaos/cli@1.6.2 with binaries:\n\nelizaos\n\n[53.00ms] done\n\n$ elizaos --version\nerror: Cannot find module '@anthropic-ai/claude-code' from '/Users/schmidsi/.bun/install/global/node_modules/@elizaos/cli/dist/index.js'\n\nBun v1.2.15 (macOS arm64)\n```\n\n**Additional context**\n\n- OS: macOS 15.6.1 (Build 24G90)\n- Node version: v24.1.0\n- Bun version: v1.3.1\n- The `@anthropic-ai/claude-code` dependency appears to be missing from the package's transitive dependencies",
      "createdAt": "2025-10-22T19:47:14Z",
      "closedAt": "2025-10-23T12:29:40Z",
      "state": "CLOSED",
      "commentCount": 7
    },
    {
      "id": "I_kwDOMT5cIs7Ki91T",
      "title": "Direct API Calls",
      "author": "borisudovicic",
      "number": 5923,
      "repository": "elizaos/eliza",
      "body": "* Implement agent.generate(input) as a Promise-based API.\n* Add variants that include/exclude character personality.",
      "createdAt": "2025-09-09T12:14:52Z",
      "closedAt": "2025-10-14T15:24:02Z",
      "state": "CLOSED",
      "commentCount": 5
    },
    {
      "id": "I_kwDOMT5cIs7RGLr3",
      "title": "[DOCS] Every plugin link in docs leads to a 404",
      "author": "douglasg14b",
      "number": 6061,
      "repository": "elizaos/eliza",
      "body": "https://docs.elizaos.ai/plugin-registry/overview#core-plugins\n\nClicking on plugins goes to: https://docs.elizaos.ai/plugins/bootstrap\n\n<img width=\"1608\" height=\"1013\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/857c53a2-7491-4308-b2e6-1fe40b3b7af8\" />",
      "createdAt": "2025-10-13T00:01:19Z",
      "closedAt": "2025-10-14T13:11:35Z",
      "state": "CLOSED",
      "commentCount": 2
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6ugkhi",
      "title": "chore: merge develop into main",
      "author": "wtfsayo",
      "number": 6078,
      "body": "Merging latest changes from develop branch into main\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Introduces a pluggable message service and generateText API in core, unifies server startup/config, adds a Docker/ECS deploy command to the CLI, enables duplicate agent names via UUID-only identity, and improves memory pagination, plugin/character handling, and tests.\n> \n> - **Core**:\n>   - Adds pluggable `IMessageService` with `DefaultMessageService` and `shouldRespond` logic; centralizes message deletion/channel clear.\n>   - Introduces `generateText()` API and refines model types/options.\n>   - Adds character utilities (`buildCharacterPlugins`, parsing/validation/merge) and secrets/env loading helpers.\n>   - Enhances DB `getMemories` with `offset` pagination.\n>   - Extensive tests for runtime, prompts, UUID, character, message service.\n> - **Server**:\n>   - Unifies startup via `AgentServer.start(config)` (auto-init, port resolution, optional agents), removes plugin/config managers.\n>   - Loader now ensures deterministic UUID from name; improves character env secret merging.\n>   - Agent update endpoint restarts on plugin changes, in-place updates otherwise.\n>   - Memory routes map `channelId`→agent `roomId`.\n>   - Broad test updates (bootstrap autoload, CLI API, lifecycle, socket flow, CRUD UUID).\n> - **CLI**:\n>   - Adds `deploy` command (Docker build/push to AWS ECR, ECS deploy) with API/Docker utilities.\n>   - Adds `tee eigen` wrapper; refactors `start/dev/test` to new server API; improves `create` flags and template resolution.\n>   - Removes legacy module/port utilities; updates docs and dependencies.\n> - **Plugins**:\n>   - Bootstrap: routes message handling through runtime message service; removes legacy provider; improves embedding checks.\n>   - SQL: drops unique constraint on agent name (UUID-only identity) and adds migration/tests; supports `offset` in memories.\n> - **Client/Examples**:\n>   - Adjusts entityId mapping for memories; adds `examples/generate-text.ts`.\n> - **Misc**:\n>   - Bumps versions to `1.6.2-alpha.26`; updates Renovate config and disables tests for types-only pkg.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 0538c6551724caf8ad746d613ee5adaa06407d48. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-19T12:59:17Z",
      "mergedAt": "2025-10-19T13:14:27Z",
      "additions": 11296,
      "deletions": 5473
    },
    {
      "id": "PR_kwDOMT5cIs6vVL6j",
      "title": "feat: create @elizaos/react package with headless React hooks",
      "author": "wtfsayo",
      "number": 6093,
      "body": "## Overview\n\nThis PR introduces a new **** package containing headless, reusable React hooks extracted from the client package. This enables external developers to build custom UIs for ElizaOS agents while maintaining full type safety and React Query integration.\n\n## What's New\n\n### Package: \n\nA standalone package providing headless React hooks with:\n- ✅ Zero UI coupling (no toasts, navigation, or DOM dependencies)\n- ✅ Full TypeScript support with proper type declarations\n- ✅ TanStack React Query for caching and state management\n- ✅ Network-aware polling that adapts to connection quality\n- ✅ Composable lifecycle callbacks (onSuccess, onError, onMutate)\n\n### Hooks Included (30 total)\n\n**Agents (8 hooks)**\n- `useAgents`, `useAgent`, `useStartAgent`, `useStopAgent`\n- `useAgentActions`, `useDeleteLog`, `useAgentPanels`, `useAgentsWithDetails`\n\n**Runs (2 hooks)**\n- `useAgentRuns`, `useAgentRunDetail`\n\n**Messaging (5 hooks)**\n- `useServers`, `useChannels`, `useChannelDetails`, `useChannelParticipants`, `useDeleteChannel`\n\n**Messages (3 hooks)**\n- `useChannelMessages` (stateful with pagination), `useDeleteChannelMessage`, `useClearChannelMessages`\n\n**Memories (6 hooks)**\n- `useAgentMemories`, `useDeleteMemory`, `useDeleteAllMemories`, `useUpdateMemory`, `useDeleteGroupMemory`, `useClearGroupChat`\n\n**Internal/Agent-Perspective (6 hooks)**\n- `useAgentInternalActions`, `useDeleteAgentInternalLog`, `useAgentInternalMemories`\n- `useDeleteAgentInternalMemory`, `useDeleteAllAgentInternalMemories`, `useUpdateAgentInternalMemory`\n\n## Architecture\n\n```tsx\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { ElizaReactProvider, useAgents, useStartAgent } from '@elizaos/react';\n\nconst queryClient = new QueryClient();\n\nfunction App() {\n  return (\n    <QueryClientProvider client={queryClient}>\n      <ElizaReactProvider baseUrl=\"http://localhost:3000\">\n        <AgentList />\n      </ElizaReactProvider>\n    </QueryClientProvider>\n  );\n}\n\nfunction AgentList() {\n  const { data: agents, isLoading } = useAgents();\n  const startAgent = useStartAgent({\n    onSuccess: () => toast.success('Agent started!'),\n  });\n\n  if (isLoading) return <div>Loading...</div>;\n\n  return (\n    <div>\n      {agents?.map((agent) => (\n        <div key={agent.id}>\n          <h3>{agent.name}</h3>\n          <button onClick={() => startAgent.mutate(agent.id)}>\n            Start\n          </button>\n        </div>\n      ))}\n    </div>\n  );\n}\n```\n\n## Benefits\n\n1. **Reusability**: External developers can build custom UIs using these hooks\n2. **Type Safety**: Full TypeScript support with types from `@elizaos/api-client`\n3. **Performance**: Smart polling adapts to network quality (2G → 4G)\n4. **Separation of Concerns**: UI logic stays in components, data logic in hooks\n5. **Future-proof**: Ready for migration of `packages/client` to consume these hooks\n\n## Testing\n\n- ✅ Package builds successfully with TypeScript declarations\n- ✅ All hooks properly typed with React Query v5 signatures\n- ✅ Zero build errors or type issues\n- ✅ Ready for integration into turbo build pipeline\n\n## Next Steps (Future PRs)\n\n- Migrate `packages/client` to consume `@elizaos/react`\n- Add unit tests for hooks with mocked ElizaClient\n- Publish to npm for external consumption\n\n## Files Changed\n\n- `packages/react/` - New package with provider, hooks, and documentation\n- Comprehensive README with installation, API reference, and examples\n\n---\n\n**Ready for review!** 🚀\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Introduces a new `@elizaos/react` package with headless, type-safe React hooks and provider (plus build/docs), integrates it into the workspace, and publishes comprehensive core type declarations.\n> \n> - **New package `@elizaos/react`**:\n>   - Headless React hooks and provider (`ElizaReactProvider`) built on `@tanstack/react-query` and `@elizaos/api-client`.\n>   - Hooks for: agents, runs, messaging (servers/channels), messages (stateful + pagination), memories, and internal agent-perspective operations.\n>   - Network-aware polling, composable mutation callbacks, TypeScript types, and index exports.\n>   - Build tooling (`build.ts`, bunfig, tsconfigs), and comprehensive README.\n> - **Workspace integration**:\n>   - Added to lockfile/workspace with peer/dev deps.\n> - **Type declarations**:\n>   - Added/updated numerous `@elizaos/core` `.d.ts` and source maps to expose APIs/types for consumers.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5a290e0071637d785858567d960ab7d1d5e54456. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-23T18:06:32Z",
      "mergedAt": null,
      "additions": 8223,
      "deletions": 1753
    },
    {
      "id": "PR_kwDOMT5cIs6vzbkP",
      "title": "feat(server): Jobs API for one-off agent messaging with middleware refactor",
      "author": "wtfsayo",
      "number": 6098,
      "body": "## Summary\n\nThis PR implements a **Jobs API** for one-off messaging functionality, enabling external systems to send single messages to agents and poll for responses without maintaining persistent sessions. This is ideal for stateless integrations similar to SDK patterns.\n\nAdditionally, this PR **refactors the middleware architecture** into a modular structure for better maintainability and reusability.\n\n---\n\n## 📊 Scope\n\n- **28 files changed**: +4,592 insertions, -409 deletions\n- **Net addition**: ~4,183 lines (implementation, tests, docs, examples)\n\n---\n\n## 🚀 Core Features\n\n### Jobs API Implementation\n- **Server Router** (`packages/server/src/api/messaging/jobs.ts` - 681 lines)\n  - `POST /api/messaging/jobs` - Create a new job (send message to agent)\n  - `GET /api/messaging/jobs/:jobId` - Poll job status and retrieve result  \n  - `GET /api/messaging/jobs` - List all jobs (admin/debugging)\n  - `GET /api/messaging/jobs/health` - Health check endpoint\n\n- **API Client Service** (`packages/api-client/src/services/jobs.ts` - 423 lines)\n  - Full TypeScript client with type-safe methods\n  - Integrated into `ElizaClient` as `client.jobs`\n  - Built-in polling and retry logic\n\n### Key Capabilities\n✅ **Automatic agent selection** - Uses first available agent if not specified  \n✅ **Configurable timeouts** - Default: 30s, Max: 5 minutes  \n✅ **In-memory job storage** - With automatic cleanup to prevent memory leaks  \n✅ **Job status tracking** - `pending → processing → completed/failed/timeout`  \n✅ **Metadata support** - Custom tracking fields  \n✅ **Intelligent message handling** - Filters intermediate action messages, waits for final result  \n✅ **Memory leak prevention** - Max 10k jobs with automatic cleanup  \n\n### Message Flow\n1. Client creates job via POST request\n2. System creates temporary channel for job isolation\n3. User message is sent to channel and emitted to internal message bus\n4. Agent processes message via normal flow and responds\n5. Response is captured and stored in job result (filters out \"Executing action...\" intermediate messages)\n6. Client polls GET endpoint to retrieve result\n7. Job auto-expires and cleans up after timeout\n\n---\n\n## 🏗️ Middleware Refactor\n\nConsolidated middleware from a single monolithic file into a modular structure:\n\n**Before**: `packages/server/src/api/shared/middleware.ts` (331 lines - deleted)\n\n**After**: `packages/server/src/middleware/` directory structure:\n- `auth.ts` (40 lines) - Authentication middleware\n- `rate-limit.ts` (141 lines) - Rate limiting with in-memory store\n- `security.ts` (81 lines) - Security headers and CORS\n- `validation.ts` (119 lines) - Request validation utilities\n- `index.ts` (27 lines) - Barrel exports\n\n**Total**: 408 lines across 5 focused modules\n\n**Benefits**:\n- Better separation of concerns\n- Easier to test individual middleware\n- More maintainable and extensible\n- Clearer imports throughout the codebase\n\n---\n\n## 📘 Type Definitions\n\n**New types** (`packages/server/src/types/jobs.ts` - 171 lines, `packages/api-client/src/types/jobs.ts` - 167 lines):\n```typescript\nenum JobStatus {\n  PENDING = 'pending',\n  PROCESSING = 'processing', \n  COMPLETED = 'completed',\n  FAILED = 'failed',\n  TIMEOUT = 'timeout'\n}\n\ninterface CreateJobRequest {\n  agentId?: UUID;\n  userId: UUID;\n  content: string;\n  metadata?: Record<string, unknown>;\n  timeoutMs?: number;\n}\n\ninterface JobResult {\n  message: {\n    content: string;\n    processingTimeMs: number;\n  };\n}\n\ninterface JobDetailsResponse {\n  jobId: string;\n  status: JobStatus;\n  result?: JobResult;\n  error?: string;\n  createdAt: number;\n  expiresAt: number;\n  metadata?: Record<string, unknown>;\n}\n```\n\n---\n\n## 🧪 Test Coverage (1,523 lines)\n\n### Server Unit Tests (`packages/server/src/api/messaging/__tests__/jobs.test.ts` - 589 lines)\n- ✅ Job creation (with/without agent ID)\n- ✅ Auto agent selection\n- ✅ Job status polling\n- ✅ Job listing and filtering\n- ✅ Health check endpoint\n- ✅ Timeout handling\n- ✅ Validation (missing fields, invalid UUIDs, timeout limits)\n- ✅ Error scenarios (agent not found, creation failures)\n- ✅ Cleanup mechanisms\n- ✅ Job expiration\n\n### Server Integration Tests (`packages/server/src/__tests__/integration/jobs-message-flow.test.ts` - 335 lines)\n- ✅ End-to-end message bus integration\n- ✅ Real agent response capture\n- ✅ Message filtering (ignores \"Executing action...\" intermediate messages)\n- ✅ Timeout scenarios with message bus\n- ✅ Cleanup and listener removal\n\n### API Client Tests (`packages/api-client/src/__tests__/services/jobs.test.ts` - 599 lines)\n- ✅ All JobsService methods\n- ✅ Request validation\n- ✅ Error handling\n- ✅ Response parsing\n- ✅ Client integration\n\n### Middleware Tests\n- ✅ Auth middleware unit tests\n- ✅ Middleware composition tests\n\n---\n\n## 📚 Documentation & Examples\n\n### Comprehensive Guide (`docs/jobs-api-examples.md` - 475 lines)\n**10 detailed usage examples**:\n1. Minimal request (no agent ID)\n2. With specific agent\n3. With metadata and custom timeout\n4. Shell script with polling\n5. JavaScript/Node.js implementation\n6. Python implementation\n7. TypeScript with retry logic\n8. Batch questions\n9. Robust error handling\n10. React Hook\n\n**Languages covered**: Shell, JavaScript, TypeScript, Python, React\n\n### Runnable Examples\n- **SDK-Style Client** (`examples/jobs-api-example.ts` - 324 lines)\n  - `JobsAPIClient` class with built-in polling\n  - Multiple integration patterns\n  - JWT authentication example\n  - Error handling and retry logic\n\n- **API Client Example** (`examples/jobs-api-client-example.ts` - 314 lines)\n  - Uses official `@elizaos/api-client` \n  - Demonstrates `ElizaClient.jobs` service\n  - Shows TypeScript best practices\n\n---\n\n## 🔌 API Usage Example\n\n```bash\n# Create a job\ncurl -X POST http://localhost:3000/api/messaging/jobs \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"userId\": \"user-uuid\",\n    \"content\": \"What is Bitcoin price?\"\n  }'\n\n# Response\n# {\n#   \"jobId\": \"abc123...\",\n#   \"status\": \"processing\",\n#   \"createdAt\": 1234567890,\n#   \"expiresAt\": 1234597890\n# }\n\n# Poll for result\ncurl http://localhost:3000/api/messaging/jobs/abc123...\n\n# Response (when completed)\n# {\n#   \"jobId\": \"abc123...\",\n#   \"status\": \"completed\",\n#   \"result\": {\n#     \"message\": {\n#       \"content\": \"Bitcoin is currently trading at...\",\n#       \"processingTimeMs\": 2341\n#     }\n#   }\n# }\n```\n\n---\n\n## 🔧 Technical Implementation Details\n\n### Memory Management\n- Jobs expire after configured timeout (default 30s, max 5 minutes)\n- Cleanup runs every 60 seconds to remove completed/expired jobs\n- Emergency cleanup at 10k jobs (removes oldest 10%)\n- Message bus listeners auto-cleanup after timeout + 5s buffer\n- Metrics tracking for job counts and cleanup operations\n\n### Integration Points\n- Integrated with existing messaging router\n- Uses internal message bus for agent communication\n- Creates temporary channels for job isolation\n- Filters out intermediate \"Executing action...\" messages\n- Captures only final agent responses\n\n---\n\n## ⚠️ Testing Notes\n\n**Authentication temporarily disabled** for initial testing/development\n- Need to re-enable `requireAuthOrApiKey` middleware before merging to production\n- See TODO comments in `jobs.ts`\n\n---\n\n## 📋 Next Steps\n\n- [ ] Re-enable authentication middleware\n- [ ] Consider database persistence (optional - currently in-memory is sufficient)\n- [ ] Consider WebSocket notifications for real-time updates (optional enhancement)\n- [ ] Add rate limiting per user/agent\n- [ ] Add metrics/monitoring integration\n\n---\n\n## 🔗 Related\n\n- Feature branch: `jobs-api`\n- Implements one-off messaging pattern similar to external SDK integrations\n- Part of broader effort to provide multiple client integration patterns (sessions, jobs, websockets)\n\n---\n\n## 🎯 Key Files Summary\n\n**Server Implementation:**\n- `packages/server/src/api/messaging/jobs.ts` (681 lines) - Main API router\n- `packages/server/src/types/jobs.ts` (171 lines) - Server-side types\n- `packages/server/src/middleware/*` (408 lines) - Refactored middleware modules\n\n**API Client:**\n- `packages/api-client/src/services/jobs.ts` (423 lines) - Jobs service client\n- `packages/api-client/src/types/jobs.ts` (167 lines) - Client-side types\n\n**Tests:**\n- Server unit: 589 lines\n- Server integration: 335 lines  \n- Client unit: 599 lines\n- **Total test coverage: 1,523 lines**\n\n**Documentation & Examples:**\n- `docs/jobs-api-examples.md` (475 lines)\n- `examples/jobs-api-example.ts` (324 lines)\n- `examples/jobs-api-client-example.ts` (314 lines)\n- **Total documentation: 1,113 lines**\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Adds a Jobs API with server endpoints and a client SDK (with polling/backoff), integrates it into messaging, introduces modular middleware, and includes types, docs, examples, and tests.\n> \n> - **Backend (server)**:\n>   - **Jobs API**: New router `api/messaging/jobs.ts` with `POST /jobs`, `GET /jobs/:jobId`, `GET /jobs`, `GET /jobs/health`; integrated into `messagingRouter`.\n>   - Per-router in-memory jobs, timeouts/cleanup, metrics, API key auth, temporary channels, internal bus emission, and action-message filtering.\n>   - Types added in `types/jobs.ts`; mounted and wired across server; security headers and minor route handling tweaks.\n> - **Middleware**:\n>   - Refactor to modular `middleware/` (`auth`, `rate-limit`, `security`, `validation`, `index`) and update imports across server; add/expand tests.\n> - **API Client (@elizaos/api-client)**:\n>   - New `JobsService` (`create`, `getJob`, `list`, `health`, `poll`, `createAndPoll`, `createAndPollWithBackoff`, `ask`) with types; exposed on `ElizaClient` and `index`.\n>   - README updated with Jobs usage.\n> - **Docs & Examples**:\n>   - Add `docs/jobs-api-examples.md` and runnable examples `examples/jobs-api-*.ts`.\n> - **Tests**:\n>   - Add comprehensive server unit/integration tests for Jobs and middleware; add client `JobsService` tests.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 1f9905a5ccdbc895286757935364f6ee53e83d85. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-27T05:27:00Z",
      "mergedAt": "2025-10-27T16:44:57Z",
      "additions": 4610,
      "deletions": 409
    },
    {
      "id": "PR_kwDOMT5cIs6v8hih",
      "title": "feat(server): Add x402 payment middleware to Jobs API",
      "author": "wtfsayo",
      "number": 6099,
      "body": "## Summary\n\nThis PR adds x402 payment middleware integration to the Jobs API, enabling cryptocurrency payments for AI agent access.\n\n## Key Features\n\n### Flexible Authentication Modes\n- **Both API key + x402 enabled**: Requires BOTH `X-API-KEY` AND `X-PAYMENT` headers\n- **Only API key** (x402=false): Requires only `X-API-KEY` header  \n- **Only x402** (no API token): Requires only `X-PAYMENT` header\n- **Neither enabled**: No authentication required\n\n### Environment-Based Configuration\nAll settings via `.env` variables:\n- `X402_ENABLED` - Enable/disable payment middleware\n- `X402_WALLET_ADDRESS` - Receiving wallet address\n- `X402_PRICE` - Price in USDC (default: $0.01)\n- `X402_NETWORK` - Blockchain network (default: base-sepolia)\n- `X402_USE_MAINNET` - Use CDP facilitator for production\n- `CDP_API_KEY_ID`/`CDP_API_KEY_SECRET` - Required for mainnet\n\n### Auto-Discovery\nEndpoints automatically listed in x402 Bazaar (mainnet) with:\n- Full JSON schemas (input/output)\n- Descriptive documentation\n- Pricing information\n\n## Files Changed\n\n### New Files\n- `packages/server/src/middleware/x402.ts` - Main middleware implementation\n- `packages/server/src/middleware/__tests__/x402.test.ts` - Comprehensive test suite (12 tests)\n- `docs/x402-payment-integration.md` - Full documentation\n\n### Modified Files  \n- `packages/server/src/middleware/index.ts` - Export x402 middleware\n- `packages/server/src/api/messaging/jobs.ts` - Integrated x402 on POST /jobs route\n- `packages/server/package.json` - Added x402 dependencies\n- `bun.lock` - Lockfile update\n\n## Dependencies Added\n- `x402-express@0.7.0` - Express middleware for x402 protocol\n- `@coinbase/x402@0.7.0` - CDP facilitator for mainnet\n\n## Testing\n\n✅ All 12 unit tests passing  \n✅ Build successful\n✅ No linter errors\n✅ TypeScript types validated\n\nRun tests:\n```bash\ncd packages/server\nbun test src/middleware/__tests__/x402.test.ts\n```\n\n## Documentation\n\nSee `docs/x402-payment-integration.md` for:\n- Complete setup instructions\n- Configuration examples\n- Testing guide\n- Security considerations\n- Troubleshooting\n\n## Breaking Changes\n\nNone - x402 is disabled by default and completely optional.\n\n## References\n\n- [x402 Protocol Docs](https://docs.cdp.coinbase.com/x402/)\n- [x402 Quickstart for Sellers](https://docs.cdp.coinbase.com/x402/quickstart-for-sellers)\n- [Coinbase Developer Platform](https://cdp.coinbase.com)\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Integrates x402 crypto payments into POST /api/messaging/jobs with env-configurable pricing/networks, adds docs/tests, and required dependencies.\n> \n> - **Server/Middleware**:\n>   - Add x402 payment middleware `createX402Middleware` and `x402LoggingMiddleware` in `packages/server/src/middleware/x402.ts`; export via `middleware/index.ts`.\n>   - Supports dual auth: API key and/or x402 (`X-API-KEY`, `X-PAYMENT`) with env-based config (`X402_*`, `CDP_*`).\n> - **API**:\n>   - Protect `POST /api/messaging/jobs` using x402; includes route metadata (input/output schemas) for Bazaar discovery.\n> - **Docs/Tests**:\n>   - Add `docs/x402-payment-integration.md` with setup, modes, and examples.\n>   - Add unit tests `packages/server/src/middleware/__tests__/x402.test.ts`.\n> - **Dependencies**:\n>   - Add `x402-express`, `@coinbase/x402`; update `packages/server/package.json`.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 57ae3cf5914a740335e67133ada19951df0125e5. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-27T17:07:39Z",
      "mergedAt": null,
      "additions": 4066,
      "deletions": 262
    },
    {
      "id": "PR_kwDOMT5cIs6sm8l_",
      "title": "feat(core): add MessageService interface and default implementation",
      "author": "0xbbjoker",
      "number": 6048,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-10-08T03:13:15Z",
      "mergedAt": "2025-10-19T12:24:07Z",
      "additions": 2282,
      "deletions": 1441
    }
  ],
  "codeChanges": {
    "additions": 29090,
    "deletions": 17840,
    "files": 299,
    "commitCount": 397
  },
  "completedItems": [
    {
      "title": "docs: fix typo",
      "prNumber": 6000,
      "type": "bugfix",
      "body": "Occassionally -> Occasionally\r\n\r\n\r\n",
      "files": [
        "packages/cli/src/commands/scenario/docs/README.md"
      ]
    },
    {
      "title": "feat: bump deps",
      "prNumber": 6025,
      "type": "feature",
      "body": "bumps le' deps, :pogchamp:\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Updates dependencies across `packages/*` and root, including major tooling and runtime bumps (TypeScript, ESLint, Vite, Puppeteer, dotenv, langchain, uuid, Sentry, and mor",
      "files": [
        "bun.lock",
        "package.json",
        "packages/api-client/package.json",
        "packages/cli/package.json",
        "packages/client/package.json",
        "packages/core/package.json",
        "packages/server/package.json"
      ]
    },
    {
      "title": "fix: register and export shouldRespondProvider in bootstrap plugin",
      "prNumber": 6024,
      "type": "bugfix",
      "body": "# Relates to\r\n\r\nFixes missing shouldRespondProvider registration in bootstrap plugin\r\n\r\n# Risks\r\n\r\nLow. This change restores functionality that was accidentally removed. It only affects the shouldRespond logic in the bootstrap plugin by pro",
      "files": [
        "packages/plugin-bootstrap/src/index.ts",
        "packages/plugin-bootstrap/src/providers/index.ts",
        "packages/plugin-bootstrap/src/providers/shouldRespond.ts",
        "packages/plugin-bootstrap/tsconfig.json"
      ]
    },
    {
      "title": "fix: code formatting standardization and const declaration fix",
      "prNumber": 6027,
      "type": "bugfix",
      "body": "## Summary\n\nThis PR addresses code quality improvements through formatting standardization and a variable declaration fix.\n\n## Changes\n\n### Code Formatting\n- **Quote Standardization**: Converted double quotes to single quotes across all cli",
      "files": [
        "lerna.json",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/tests/commands/dev.test.ts",
        "packages/cli/tests/commands/start.test.ts",
        "packages/client/src/components/agent-prism/Avatar.tsx",
        "packages/client/src/components/agent-prism/Badge.tsx",
        "packages/client/src/components/agent-prism/Button.tsx",
        "packages/client/src/components/agent-prism/CollapseAndExpandControls.tsx",
        "packages/client/src/components/agent-prism/CollapsibleSection.tsx",
        "packages/client/src/components/agent-prism/DetailsView/DetailsView.tsx",
        "packages/client/src/components/agent-prism/DetailsView/DetailsViewAttributesTab.tsx",
        "packages/client/src/components/agent-prism/DetailsView/DetailsViewHeader.tsx",
        "packages/client/src/components/agent-prism/DetailsView/DetailsViewHeaderActions.tsx",
        "packages/client/src/components/agent-prism/DetailsView/DetailsViewInputOutputTab.tsx",
        "packages/client/src/components/agent-prism/DetailsView/DetailsViewMetrics.tsx",
        "packages/client/src/components/agent-prism/DetailsView/DetailsViewRawDataTab.tsx",
        "packages/client/src/components/agent-prism/IconButton.tsx",
        "packages/client/src/components/agent-prism/PriceBadge.tsx",
        "packages/client/src/components/agent-prism/SearchInput.tsx",
        "packages/client/src/components/agent-prism/SpanCard/SpanCard.tsx",
        "packages/client/src/components/agent-prism/SpanCard/SpanCardBadges.tsx",
        "packages/client/src/components/agent-prism/SpanCard/SpanCardConnector.tsx",
        "packages/client/src/components/agent-prism/SpanCard/SpanCardTimeline.tsx",
        "packages/client/src/components/agent-prism/SpanCard/SpanCardToggle.tsx",
        "packages/client/src/components/agent-prism/SpanStatus.tsx",
        "packages/client/src/components/agent-prism/Tabs.tsx",
        "packages/client/src/components/agent-prism/TextInput.tsx",
        "packages/client/src/components/agent-prism/TimestampBadge.tsx",
        "packages/client/src/components/agent-prism/TokensBadge.tsx",
        "packages/client/src/components/agent-prism/TraceList/TraceList.tsx",
        "packages/client/src/components/agent-prism/TraceList/TraceListItem.tsx",
        "packages/client/src/components/agent-prism/TraceList/TraceListItemHeader.tsx",
        "packages/client/src/components/agent-prism/TraceViewer.tsx",
        "packages/client/src/components/agent-prism/TreeView.tsx",
        "packages/client/src/components/agent-prism/shared.ts",
        "packages/client/src/components/agent-runs/AgentRunTimeline.tsx",
        "packages/client/src/components/chat.tsx",
        "packages/client/src/lib/agent-prism-utils.ts",
        "packages/client/src/lib/eliza-span-adapter.ts",
        "packages/plugin-sql/src/runtime-migrator/schema-transformer.ts",
        "packages/server/src/api/agents/runs.ts",
        "tsconfig.json"
      ]
    },
    {
      "title": "chore: remove obsolete Docker and devcontainer files",
      "prNumber": 6026,
      "type": "other",
      "body": "Removes obsolete files that are no longer needed:\n- .devcontainer/Dockerfile\n- .devcontainer/devcontainer.json\n- Dockerfile.docs\n- docker-compose-docs.yaml\n\nThese files were already deleted from the filesystem and this PR stages and commits",
      "files": [
        ".devcontainer/Dockerfile",
        ".devcontainer/devcontainer.json",
        "Dockerfile.docs",
        "docker-compose-docs.yaml"
      ]
    },
    {
      "title": "feat: Add mentionContext interface and improve shouldRespond logic",
      "prNumber": 6030,
      "type": "feature",
      "body": "# Relates to\r\n\r\nIssue discussing the need for platform-agnostic mention detection\r\n\r\n# Risks\r\n\r\n**Medium Risk**\r\n- Changes core message flow logic in bootstrap\r\n- Modifies shouldRespond template and provider\r\n- Affects LLM decision-making f",
      "files": [
        "bun.lock",
        "packages/core/src/__tests__/prompts.test.ts",
        "packages/core/src/prompts.ts",
        "packages/core/src/types/primitives.ts",
        "packages/plugin-bootstrap/src/__tests__/logic.test.ts",
        "packages/plugin-bootstrap/src/index.ts",
        "packages/plugin-bootstrap/src/providers/shouldRespond.ts",
        "packages/plugin-bootstrap/src/providers/index.ts"
      ]
    },
    {
      "title": "chore: remove unused SchemaFactory code",
      "prNumber": 6029,
      "type": "other",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Deletes `packages/plugin-sql/src/schema/factory.ts` and `packages/plugin-sql/src/__tests__/integration/schema-factory.test.ts`.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot",
      "files": [
        "packages/plugin-sql/src/__tests__/integration/schema-factory.test.ts",
        "packages/plugin-sql/src/schema/factory.ts"
      ]
    },
    {
      "title": "chore: modernize renovate configuration and add preset for plugins",
      "prNumber": 6033,
      "type": "other",
      "body": "\r\n<!-- This is an auto-generated comment: release notes by coderabbit.ai -->\r\n\r\n## Summary by CodeRabbit\r\n\r\n- Chores\r\n  - Added a shared Renovate configuration preset to standardize dependency updates across plugins, with grouped rules for ",
      "files": [
        ".github/renovate-preset.json",
        "renovate.json"
      ]
    },
    {
      "title": "feat(plugin-sql): add offset parameter to getMemories for database-le…",
      "prNumber": 6032,
      "type": "feature",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Adds an optional offset to getMemories for pagination, applies limit/offset in SQL, validates non-negative values, and adds integration tests covering paging and edge cases.\n> \n> - **Core**:\n>   - Add `of",
      "files": [
        "packages/core/src/database.ts",
        "packages/core/src/types/database.ts",
        "packages/plugin-sql/src/__tests__/integration/memory.test.ts",
        "packages/plugin-sql/src/base.ts"
      ]
    },
    {
      "title": "fix: agent plugins not reloading on PATCH update and service stop race condition",
      "prNumber": 6040,
      "type": "bugfix",
      "body": "# Relates to\r\n\r\nFixes issue where agent plugins/services are not properly updated when using PATCH endpoint to modify agent configuration, and fixes race condition causing service initialization errors during agent restart.\r\n\r\n# Risks\r\n\r\n**",
      "files": [
        "bun.lock",
        "packages/server/src/api/agents/crud.ts",
        "packages/server/src/index.ts",
        "packages/server/src/__tests__/agent-plugin-reload.test.ts",
        "packages/server/src/__tests__/agent-server-constructor.test.ts",
        "packages/server/src/__tests__/agent-server-management.test.ts"
      ]
    },
    {
      "title": "support SERVER_PORT",
      "prNumber": 6038,
      "type": "other",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Add support for SERVER_PORT to configure the HTTP server port (falls back to --port or 3000).\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 43fe2b28976eb02a14595",
      "files": [
        "packages/cli/src/commands/start/index.ts"
      ]
    },
    {
      "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"
      ]
    },
    {
      "title": "feat: migrate to UUID-only agent identification",
      "prNumber": 6036,
      "type": "feature",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Agents now use randomly generated UUIDs (not names) for identity; duplicate names are allowed, with loader/runtime/server/DB updated plus migrations and tests.\n> \n> - **Core/runtime (`packages/core`)**:\n>",
      "files": [
        "packages/cli/src/commands/scenario/src/runtime-factory.ts",
        "packages/core/src/__tests__/agent-uuid.test.ts",
        "packages/core/src/runtime.ts",
        "packages/plugin-sql/src/__tests__/integration/agent.test.ts",
        "packages/plugin-sql/src/__tests__/migration/schema-evolution-tests/08-agent-name-constraint-removal.test.ts",
        "packages/plugin-sql/src/base.ts",
        "packages/plugin-sql/src/schema/agent.ts",
        "packages/project-starter/src/character.ts",
        "packages/server/src/__tests__/loader-uuid.test.ts",
        "packages/server/src/api/agents/__tests__/crud-uuid.test.ts",
        "packages/server/src/api/agents/crud.ts",
        "packages/server/src/loader.ts"
      ]
    },
    {
      "title": "fix(plugins): use correct ZodError.issues API instead of .errors",
      "prNumber": 6035,
      "type": "bugfix",
      "body": "- Changed error.errors to error.issues to match ZodError API\r\n- Fixed error handling in plugin-starter and project-starter\r\n- Added proper error handling for non-ZodError cases\r\n- Ensures consistency with plugin-quick-starter implementation",
      "files": [
        "packages/plugin-quick-starter/src/__tests__/plugin.test.ts",
        "packages/plugin-quick-starter/src/plugin.ts",
        "packages/plugin-starter/src/plugin.ts",
        "packages/project-starter/src/plugin.ts"
      ]
    },
    {
      "title": "fix(service-interfaces): skip test execution for types-only package",
      "prNumber": 6034,
      "type": "bugfix",
      "body": "The @elizaos/service-interfaces package contains only TypeScript interface\r\ndefinitions and has no runtime logic or tests. The test script was failing\r\nwhen running `bun run test` from the project root because bun test exits\r\nwith code 1 wh",
      "files": [
        "packages/service-interfaces/package.json"
      ]
    },
    {
      "title": "docs: fixed old and broken link",
      "prNumber": 6047,
      "type": "bugfix",
      "body": "<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\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\nLow\r\n\r\n## What does thi",
      "files": [
        "packages/cli/README.md"
      ]
    },
    {
      "title": "fix: port validate",
      "prNumber": 6046,
      "type": "bugfix",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Improve port resolution in `start` by validating CLI `--port`, parsing `SERVER_PORT` with `validatePort`, and falling back to `3000` with a warning if invalid.\n> \n> <sup>Written by [Cursor Bugbot](https:/",
      "files": [
        "packages/cli/src/commands/start/index.ts"
      ]
    },
    {
      "title": "fix: expose state cache and fix bootstrap types",
      "prNumber": 6045,
      "type": "bugfix",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Expose runtime stateCache and refactor bootstrap multistep/type usage to consume it, with minor prompt and provider access fixes.\n> \n> - **Core**:\n>   - Expose `stateCache: Map<string, State>` on `IAgentR",
      "files": [
        "packages/core/src/prompts.ts",
        "packages/core/src/types/runtime.ts",
        "packages/plugin-bootstrap/src/index.ts"
      ]
    },
    {
      "title": "feat(core): improve character schema validation with comprehensive Zod schemas",
      "prNumber": 6044,
      "type": "feature",
      "body": "## Summary\n\nThis PR significantly improves the character schema validation system by adding comprehensive Zod schema definitions with detailed descriptions and better type safety.\n\n## Changes Made\n\n### Schema Improvements (packages/core/src",
      "files": [
        "packages/core/src/__tests__/character-validation.test.ts",
        "packages/core/src/schemas/character.ts"
      ]
    },
    {
      "title": "fix: handle when bool is passed into parseBooleanFromText",
      "prNumber": 6042,
      "type": "bugfix",
      "body": "Sometimes getSetting returns a bool, and sometimes it doesn't (like when you use `'YES', 'Y', 'T', '1', 'ON', 'ENABLE'`)\r\n\r\n<!-- CURSOR_SUMMARY -->\r\n> [!NOTE]\r\n> `parseBooleanFromText` now returns boolean inputs directly instead of treating",
      "files": [
        "packages/core/src/utils.ts"
      ]
    },
    {
      "title": "fix: fix BOOTSTRAP_KEEP_RESP",
      "prNumber": 6041,
      "type": "bugfix",
      "body": "make sure BOOTSTRAP_KEEP_RESP works even if not ignored\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Applies `BOOTSTRAP_KEEP_RESP` to both reply and ignore paths to prevent discarding responses when newer messages arrive.\n> \n> - **Message hand",
      "files": [
        "packages/plugin-bootstrap/src/index.ts"
      ]
    },
    {
      "title": "feat(core): add MessageService interface and default implementation",
      "prNumber": 6048,
      "type": "feature",
      "body": "",
      "files": [
        "packages/cli/src/commands/scenario/src/__tests__/e2e/centralized-data.test.ts",
        "packages/core/src/__tests__/message-service.test.ts",
        "packages/core/src/index.browser.ts",
        "packages/core/src/index.node.ts",
        "packages/core/src/index.ts",
        "packages/core/src/runtime.ts",
        "packages/core/src/services/default-message-service.ts",
        "packages/core/src/services/message-service.ts",
        "packages/core/src/types/runtime.ts",
        "packages/core/src/types/service.ts",
        "packages/plugin-bootstrap/src/__tests__/logic.test.ts",
        "packages/plugin-bootstrap/src/index.ts",
        "packages/server/src/services/message.ts",
        "packages/plugin-bootstrap/src/__tests__/plugin.test.ts",
        "packages/test-utils/src/mocks/runtime.ts"
      ]
    },
    {
      "title": "feat(cli): Simplify CLI to use server / core",
      "prNumber": 6060,
      "type": "feature",
      "body": "## 🎯 Phase: CLI Cleanup\r\n\r\n**Status**: 🟡 Draft\r\n**Priority**: MEDIUM - Proper architecture  \r\n**Breaking**: No  \r\n\r\n---\r\n\r\n## 📋 Summary\r\n\r\nThis PR removes massive duplication from the CLI by deleting the custom module-loader and using pu",
      "files": [
        "bun.lock",
        "packages/cli/src/commands/scenario/src/plugin-parser.ts",
        "packages/cli/src/commands/scenario/src/runtime-factory.ts",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/src/utils/index.ts",
        "packages/cli/src/utils/module-loader.test.ts",
        "packages/cli/src/utils/module-loader.ts",
        "packages/cli/src/commands/dev/actions/dev-server.ts",
        "packages/cli/src/commands/test/index.ts",
        "packages/cli/src/utils/__tests__/port-handling.test.ts",
        "packages/cli/src/utils/port-handling.ts",
        "packages/cli/src/utils/port-validation.ts",
        "packages/core/src/elizaos.ts",
        "packages/server/src/__tests__/agent-plugin-reload.test.ts",
        "packages/server/src/__tests__/agent-server-database.test.ts",
        "packages/server/src/__tests__/agent-server-errors.test.ts",
        "packages/server/src/__tests__/agent-server-initialization.test.ts",
        "packages/server/src/__tests__/agent-server-management.test.ts",
        "packages/server/src/__tests__/agent-server-middleware.test.ts",
        "packages/server/src/__tests__/api.test.ts",
        "packages/server/src/__tests__/cli-compatibility.test.ts",
        "packages/server/src/__tests__/integration/agent-server-interaction.test.ts",
        "packages/server/src/__tests__/integration/database-operations.test.ts",
        "packages/server/src/__tests__/integration/socketio-message-flow.test.ts",
        "packages/server/src/api/agents/crud.ts",
        "packages/server/src/api/agents/lifecycle.ts",
        "packages/server/src/index.ts"
      ]
    },
    {
      "title": "fix(server): ensure agent exists in database before creating foreign key references",
      "prNumber": 6059,
      "type": "bugfix",
      "body": "## Summary\n\nFixes a foreign key violation error that occurred when starting agents in PostgreSQL environments.\n\n## Problem\n\nThe server was attempting to insert into the `server_agents` table before the agent record existed in the `agents` t",
      "files": [
        "packages/server/src/index.ts"
      ]
    },
    {
      "title": "elizaos deploy r2 artifacts style",
      "prNumber": 6058,
      "type": "other",
      "body": "## Overview\r\n\r\nThis PR completely migrates the ElizaOS CLI deployment system from traditional Docker image builds to a modern bootstrapper architecture. This change significantly improves deployment speed, reduces resource usage, and elimin",
      "files": [
        "Dockerfile",
        "bun.lock",
        "packages/cli/Dockerfile",
        "packages/cli/package.json",
        "packages/cli/src/commands/deploy/README.md",
        "packages/cli/src/commands/deploy/actions/deploy-bootstrapper.ts",
        "packages/cli/src/commands/deploy/actions/deploy.ts",
        "packages/cli/src/commands/deploy/index.ts",
        "packages/cli/src/commands/deploy/types.ts",
        "packages/cli/src/commands/deploy/utils/api-client.ts",
        "packages/cli/src/commands/deploy/utils/artifact.ts",
        "packages/cli/src/commands/deploy/utils/r2-client.ts",
        "packages/cli/src/index.ts",
        "packages/core/src/index.ts",
        "packages/test-utils/src/mocks/runtime.ts"
      ]
    },
    {
      "title": "fix: remove AgentManager references in e2e test infrastructure",
      "prNumber": 6056,
      "type": "bugfix",
      "body": "Fixed e2e test runner after AgentManager was removed from the server package.\r\nReplaced all AgentManager usages with AgentServer's built-in startAgents method.\r\n\r\nChanges:\r\n- Removed AgentManager import and instantiation in e2e-tests.ts\r\n- ",
      "files": [
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/tests/unit/commands/test/e2e-tests.test.ts",
        "packages/core/src/elizaos.ts",
        "packages/server/src/index.ts"
      ]
    },
    {
      "title": "feat(core): implement generateText() API",
      "prNumber": 6062,
      "type": "feature",
      "body": "## Overview\r\nImplements the `generateText()` Promise-based API for simple text generation as discussed in #5923.\r\n\r\n## Discussion Context\r\nPer conversation with @0xbbjoker in #5923:\r\n- Named `generateText()` (not `generate()`) to clarify it",
      "files": [
        "examples/generate-text.ts",
        "packages/core/src/__tests__/runtime-generation.test.ts",
        "packages/core/src/runtime.ts",
        "packages/core/src/types/model.ts",
        "packages/core/src/types/runtime.ts"
      ]
    },
    {
      "title": "feat(cli): add Eigen TEE wrapper",
      "prNumber": 6065,
      "type": "feature",
      "body": "## Summary\n- add Eigen CLI wrapper to tee command for TEE deployments\n- provide consented installation flow and PATH detection for Eigen binaries\n\n## Testing\n- manual: \n  - bun run eliza/packages/cli/dist/index.js tee eigen (prompts, instal",
      "files": [
        "packages/cli/src/commands/tee/eigen-wrapper.ts",
        "packages/cli/src/commands/tee/index.ts"
      ]
    },
    {
      "title": "refactor(tests): Move character builder logic to core",
      "prNumber": 6069,
      "type": "refactor",
      "body": "\n- Move buildCharacterPlugins() to core (business logic)\n\n- Keep Eliza character to cli\n\n- Remove duplicate code from server\n\n- Add 27 tests on core",
      "files": [
        "bun.lock",
        "packages/cli/src/characters/eliza.ts",
        "packages/cli/src/commands/create/actions/creators.ts",
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/src/project.ts",
        "packages/cli/tests/unit/characters/character-plugin-ordering.test.ts",
        "packages/core/src/__tests__/character-builder.test.ts",
        "packages/core/src/character.ts",
        "packages/core/src/index.ts",
        "packages/server/src/__tests__/bootstrap-autoload.test.ts",
        "packages/server/src/characters/default.ts"
      ]
    },
    {
      "title": "fix: current chat and user messages filters in memory viewer",
      "prNumber": 6067,
      "type": "bugfix",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Convert channelId to agent-unique roomId in room memories endpoint and add/use entityId in memory types/mapping to correctly distinguish user vs agent messages.\n> \n> - **Backend**:\n>   - **Room Memories E",
      "files": [
        "packages/api-client/src/__tests__/services/memory.test.ts",
        "packages/api-client/src/types/memory.ts",
        "packages/client/src/lib/api-type-mappers.ts",
        "packages/server/src/api/memory/agents.ts"
      ]
    },
    {
      "title": "feat: make evaluators run asynchronously in background",
      "prNumber": 6066,
      "type": "feature",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Evaluators now run asynchronously with robust error handling/logging, and the bootstrap message flow triggers evaluator execution non-blockingly with streamlined logging.\n> \n> - **Core (`packages/core/src",
      "files": [
        "packages/core/src/runtime.ts",
        "packages/plugin-bootstrap/src/index.ts"
      ]
    },
    {
      "title": "fix(docs) misleading comment in MessageBusService callback",
      "prNumber": 6072,
      "type": "bugfix",
      "body": "",
      "files": [
        "packages/server/src/services/message.ts"
      ]
    },
    {
      "title": "fix: plugin documentation and scaffolding issues",
      "prNumber": 6071,
      "type": "bugfix",
      "body": "- Fix template lookup paths to include monorepo package directories as fallback\r\n- Fix incorrect CLI command syntax in documentation across multiple README files\r\n- Support both —type and —t\r\n- Update agent lifecycle and help messages with ",
      "files": [
        "packages/cli/README.md",
        "packages/cli/src/commands/agent/actions/lifecycle.ts",
        "packages/cli/src/commands/agent/index.ts",
        "packages/cli/src/commands/create/index.ts",
        "packages/cli/src/utils/copy-template.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/utils/copy-template.test.ts",
        "packages/plugin-starter/README.md",
        "packages/project-starter/README.md",
        "packages/test-utils/README.md"
      ]
    },
    {
      "title": "fix: add missing channelId to session API responses",
      "prNumber": 6079,
      "type": "bugfix",
      "body": "## Summary\n- Expose channelId in CreateSessionResponse and SessionInfoResponse\n- Update session endpoints to return channelId for WebSocket connections\n\n## Test plan\n- Create a session and verify channelId is returned\n- Get session info and",
      "files": [
        "packages/server/src/api/messaging/__tests__/sessions.test.ts",
        "packages/server/src/api/messaging/sessions.ts",
        "packages/server/src/types/sessions.ts"
      ]
    },
    {
      "title": "chore: merge develop into main",
      "prNumber": 6078,
      "type": "other",
      "body": "Merging latest changes from develop branch into main\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Introduces a pluggable message service and generateText API in core, unifies server startup/config, adds a Docker/ECS deploy command to the CLI, ",
      "files": [
        ".github/renovate-preset.json",
        "Dockerfile",
        "bun.lock",
        "examples/generate-text.ts",
        "lerna.json",
        "packages/api-client/package.json",
        "packages/api-client/src/__tests__/services/memory.test.ts",
        "packages/api-client/src/types/memory.ts",
        "packages/app/package.json",
        "packages/cli/Dockerfile",
        "packages/cli/README.md",
        "packages/cli/package.json",
        "packages/cli/src/characters/eliza.ts",
        "packages/cli/src/commands/agent/actions/lifecycle.ts",
        "packages/cli/src/commands/agent/index.ts",
        "packages/cli/src/commands/create/actions/creators.ts",
        "packages/cli/src/commands/create/index.ts",
        "packages/cli/src/commands/deploy/README.md",
        "packages/cli/src/commands/deploy/actions/deploy-ecs.ts",
        "packages/cli/src/commands/deploy/actions/deploy.ts",
        "packages/cli/src/commands/deploy/index.ts",
        "packages/cli/src/commands/deploy/types.ts",
        "packages/cli/src/commands/deploy/utils/api-client.ts",
        "packages/cli/src/commands/deploy/utils/docker-build.ts",
        "packages/cli/src/commands/dev/actions/dev-server.ts",
        "packages/cli/src/commands/report/src/assets/report_template.html",
        "packages/cli/src/commands/scenario/docs/README.md",
        "packages/cli/src/commands/scenario/src/__tests__/e2e/centralized-data.test.ts",
        "packages/cli/src/commands/scenario/src/plugin-parser.ts",
        "packages/cli/src/commands/scenario/src/runtime-factory.ts",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/commands/tee/eigen-wrapper.ts",
        "packages/cli/src/commands/tee/index.ts",
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/src/commands/test/index.ts",
        "packages/cli/src/index.ts",
        "packages/cli/src/project.ts",
        "packages/cli/src/utils/__tests__/port-handling.test.ts",
        "packages/cli/src/utils/copy-template.ts",
        "packages/cli/src/utils/index.ts",
        "packages/cli/src/utils/module-loader.test.ts",
        "packages/cli/src/utils/module-loader.ts",
        "packages/cli/src/utils/port-handling.ts",
        "packages/cli/src/utils/port-validation.ts",
        "packages/cli/src/utils/upgrade/CLAUDE.md",
        "packages/cli/src/utils/upgrade/README.md",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/unit/characters/character-plugin-ordering.test.ts",
        "packages/cli/tests/unit/commands/test/e2e-tests.test.ts",
        "packages/cli/tests/utils/copy-template.test.ts"
      ]
    },
    {
      "title": "chore: Code formatting and style consistency",
      "prNumber": 6077,
      "type": "other",
      "body": "## Summary\n\nThis PR applies consistent code formatting across the codebase using prettier/eslint configuration.\n\n## Changes\n\nAll changes are **formatting only** - no logic changes, bug fixes, or feature additions:\n\n- **Quote Style**: Standa",
      "files": [
        "lerna.json",
        "packages/cli/src/commands/deploy/README.md",
        "packages/cli/src/commands/deploy/actions/deploy-ecs.ts",
        "packages/cli/src/commands/deploy/actions/deploy.ts",
        "packages/cli/src/commands/deploy/index.ts",
        "packages/cli/src/commands/deploy/types.ts",
        "packages/cli/src/commands/deploy/utils/api-client.ts",
        "packages/cli/src/commands/deploy/utils/docker-build.ts",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/commands/tee/eigen-wrapper.ts",
        "packages/cli/tests/utils/copy-template.test.ts",
        "packages/core/src/__tests__/character.test.ts",
        "packages/core/src/__tests__/plugin.test.ts",
        "packages/core/src/character.ts",
        "packages/core/src/plugin.ts",
        "packages/core/src/secrets.ts",
        "packages/core/src/types/primitives.ts",
        "packages/core/src/utils.ts",
        "packages/core/src/utils/environment.ts",
        "packages/server/src/__tests__/agent-plugin-reload.test.ts",
        "packages/server/src/__tests__/agent-server-database.test.ts",
        "packages/server/src/__tests__/agent-server-middleware.test.ts",
        "packages/server/src/__tests__/api.test.ts",
        "packages/server/src/__tests__/bootstrap-autoload.test.ts",
        "packages/server/src/__tests__/integration/agent-server-interaction.test.ts",
        "packages/server/src/api/agents/crud.ts",
        "packages/server/src/index.ts"
      ]
    },
    {
      "title": "feat(core): add PATCH method support to Route type",
      "prNumber": 6076,
      "type": "feature",
      "body": "",
      "files": [
        "packages/core/src/types/plugin.ts"
      ]
    },
    {
      "title": "feat: make embedding service optional when no TEXT_EMBEDDING model",
      "prNumber": 6075,
      "type": "feature",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Embedding service becomes a no-op when no TEXT_EMBEDDING model is registered; tests and mocks updated to support and verify this behavior.\n> \n> - **Service (`packages/plugin-bootstrap/src/services/embeddi",
      "files": [
        "packages/plugin-bootstrap/src/__tests__/embedding-queue-management.test.ts",
        "packages/plugin-bootstrap/src/__tests__/embedding-service.test.ts",
        "packages/plugin-bootstrap/src/__tests__/test-utils.ts",
        "packages/plugin-bootstrap/src/services/embedding.ts"
      ]
    },
    {
      "title": "feat: Streamdown integration, cross-platform crypto, and server port autodiscovery",
      "prNumber": 6082,
      "type": "feature",
      "body": "## Summary\n\nThis PR introduces three major improvements to the ElizaOS platform:\n\n1. **Streamdown Integration (Client)**: Modern AI response rendering with streaming support\n2. **Cross-Platform Crypto Utilities (Core)**: Browser and Node.js",
      "files": [
        "bun.lock",
        "packages/client/package.json",
        "packages/client/src/components/ai-elements/__tests__/response.test.tsx",
        "packages/client/src/components/ai-elements/response.tsx",
        "packages/client/src/components/chat.tsx",
        "packages/client/src/components/ui/chat/animated-markdown.tsx",
        "packages/client/src/components/ui/chat/code-block.tsx",
        "packages/client/src/components/ui/chat/markdown.tsx",
        "packages/client/src/index.css",
        "packages/core/src/__tests__/utils/crypto-compat.test.ts",
        "packages/core/src/settings.ts",
        "packages/core/src/utils/buffer.ts",
        "packages/core/src/utils/crypto-compat.ts",
        "packages/server/src/__tests__/port-autodiscovery.test.ts",
        "packages/server/src/index.ts",
        "packages/server/src/loader.ts"
      ]
    },
    {
      "title": "feat: add get action results",
      "prNumber": 6081,
      "type": "feature",
      "body": "# Risks\n**Low**. This change is purely additive - it adds a new public method to the `IAgentRuntime` interface without modifying any existing functionality. No breaking changes.\n\nWhat could be affected:\n- Plugins can now access action resul",
      "files": [
        "packages/core/src/__tests__/runtime.test.ts",
        "packages/core/src/runtime.ts",
        "packages/core/src/types/runtime.ts"
      ]
    },
    {
      "title": "fix(cli): include dotfiles in published package",
      "prNumber": 6080,
      "type": "bugfix",
      "body": "## Problem\n\nFixes #6074\n\nWhen users run `eliza create` to scaffold new projects, the generated projects are missing critical dotfiles like `.gitignore`, `.npmignore`, and `.env.example`.\n\n## Root Cause\n\nThe npm `files` field in `packages/cl",
      "files": [
        "packages/cli/package.json"
      ]
    },
    {
      "title": "fix: add action thought",
      "prNumber": 6083,
      "type": "bugfix",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Add `actionPlan.thought` to `ACTION_COMPLETED` event content for `agent_action` messages.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit ec04587e20c86e1020b1ea488",
      "files": [
        "packages/core/src/runtime.ts"
      ]
    },
    {
      "title": "feat: remove claude code / upgrade / plugin gen from CLI",
      "prNumber": 6087,
      "type": "feature",
      "body": "## Remove Anthropic Claude Code Dependencies and AI-Powered Plugin Commands\n\n### Summary\nThis PR removes the AI-powered plugin upgrade and generation functionality from the CLI package, along with all associated Anthropic/Claude Code depend",
      "files": [
        "bun.lock",
        "packages/cli/build.ts",
        "packages/cli/examples/create-plugin-cli.sh",
        "packages/cli/examples/create-time-tracker-plugin-demo.sh",
        "packages/cli/examples/create-time-tracker-plugin.sh",
        "packages/cli/examples/generate-plugin-simple.sh",
        "packages/cli/examples/generate-time-plugin.sh",
        "packages/cli/examples/plugin-creator-example.sh",
        "packages/cli/examples/run-upgrade-safely.sh",
        "packages/cli/examples/upgrade-giphy.sh",
        "packages/cli/package.json",
        "packages/cli/src/commands/plugins/actions/generate.ts",
        "packages/cli/src/commands/plugins/actions/upgrade.ts",
        "packages/cli/src/commands/plugins/index.ts",
        "packages/cli/src/commands/plugins/types.ts",
        "packages/cli/src/utils/plugin-creator.ts",
        "packages/cli/src/utils/upgrade/CLAUDE.md",
        "packages/cli/src/utils/upgrade/README.md",
        "packages/cli/src/utils/upgrade/migration-guide-loader.ts",
        "packages/cli/src/utils/upgrade/simple-migration-agent.ts",
        "packages/cli/tests/unit/utils/simple-migration-agent-eventemitter-compatibility.test.ts"
      ]
    },
    {
      "title": "chore(types): replace Agent.description with bio",
      "prNumber": 6085,
      "type": "other",
      "body": "- Replace Agent.description with bio (string | string[]) in api-client types\\n- Keep AgentWorld.description (unchanged)\\n- Follow-up commits will update tests and any description usage in agent tests to use bio or bio[0] fallback\\n\\nThis al",
      "files": [
        "packages/api-client/src/__tests__/services/agents.test.ts",
        "packages/api-client/src/types/agents.ts",
        "packages/core/src/__tests__/elizaos.test.ts"
      ]
    },
    {
      "title": "fix: action thought",
      "prNumber": 6084,
      "type": "bugfix",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Compute `thought` once from the first response and include it in ACTION_STARTED/COMPLETED events, ensuring availability even for single-action runs.\n> \n> - **Runtime (`packages/core/src/runtime.ts`)**:\n> ",
      "files": [
        "packages/core/src/runtime.ts"
      ]
    },
    {
      "title": "feat: implement unified messaging API with elizaOS.sendMessage()",
      "prNumber": 6095,
      "type": "feature",
      "body": "# Relates to\n\nThis PR addresses the need for a unified messaging API across all ElizaOS clients to eliminate code duplication and improve maintainability.\n\n# Risks\n\n**Risk Level: Medium**\n\n- **Affected Areas**: Core messaging infrastructure",
      "files": [
        "bun.lock",
        "packages/core/src/__tests__/elizaos-sendmessage.test.ts",
        "packages/core/src/__tests__/elizaos.test.ts",
        "packages/core/src/elizaos.ts",
        "packages/core/src/types/messaging.ts",
        "packages/server/src/index.ts",
        "packages/server/src/services/message.ts"
      ]
    },
    {
      "title": "feat: Add PostgreSQL Row-Level Security (RLS) multi-tenant isolation",
      "prNumber": 6101,
      "type": "feature",
      "body": "# Relates to\r\n\r\nThis PR implements database-level tenant isolation for ElizaOS using PostgreSQL Row-Level Security (RLS), enabling multiple independent ElizaOS servers to safely share a single PostgreSQL database.\r\n\r\n# Risks\r\n\r\n**Medium Ris",
      "files": [
        "packages/plugin-sql/src/__tests__/unit/rls.test.ts",
        "packages/plugin-sql/src/index.node.ts",
        "packages/plugin-sql/src/index.ts",
        "packages/plugin-sql/src/pg/manager.ts",
        "packages/plugin-sql/src/rls.ts",
        "packages/plugin-sql/src/schema/agent.ts",
        "packages/plugin-sql/src/schema/index.ts",
        "packages/plugin-sql/src/schema/owners.ts",
        "packages/plugin-sql/tsconfig.build.node.json",
        "packages/plugin-sql/types/index.d.ts",
        "packages/server/src/__tests__/rls-server.test.ts",
        "packages/server/src/api/messaging/channels.ts",
        "packages/server/src/api/messaging/core.ts",
        "packages/server/src/api/messaging/servers.ts",
        "packages/server/src/api/messaging/sessions.ts",
        "packages/server/src/index.ts",
        "packages/server/src/services/message.ts",
        "packages/server/src/socketio/index.ts",
        "examples/jobs-api-client-example.ts",
        "packages/cli/src/commands/containers/actions/delete.ts",
        "packages/cli/src/commands/containers/actions/list.ts",
        "packages/cli/src/commands/containers/actions/logs.ts"
      ]
    },
    {
      "title": "feat: elizaos login CLI command",
      "prNumber": 6100,
      "type": "feature",
      "body": "# feat(cli): Add cloud authentication with `elizaos login` command\n\n## Relates to\n\nImplements CLI-side authentication for ElizaOS Cloud integration.\n\n**Related PR**: [Cloud-side implementation in eliza-cloud-v2]\n\n## Risks\n\n**Risk Level**: L",
      "files": [
        "bun.lock",
        "packages/cli/src/commands/deploy/actions/deploy-ecs.ts",
        "packages/cli/src/commands/deploy/utils/docker-build.ts",
        "packages/cli/src/commands/login/README.md",
        "packages/cli/src/commands/login/__tests__/login.test.ts",
        "packages/cli/src/commands/login/actions/login.ts",
        "packages/cli/src/commands/login/index.ts",
        "packages/cli/src/commands/login/types.ts",
        "packages/cli/src/commands/login/utils/browser.ts",
        "packages/cli/src/commands/login/utils/index.ts",
        "packages/cli/src/commands/login/utils/polling.ts",
        "packages/cli/src/commands/login/utils/session.ts",
        "packages/cli/src/index.ts",
        "packages/core/src/__tests__/elizaos-sendmessage.test.ts",
        "packages/core/src/elizaos.ts",
        "packages/server/src/__tests__/integration/jobs-message-flow.test.ts",
        "packages/server/src/api/index.ts",
        "packages/server/src/api/messaging/__tests__/jobs.test.ts",
        "packages/server/src/api/messaging/channels.ts",
        "packages/server/src/api/messaging/jobs.ts",
        "packages/server/src/index.ts",
        "packages/server/src/middleware/auth.ts",
        "packages/server/src/middleware/index.ts",
        "packages/server/src/middleware/rate-limit.ts",
        "packages/server/src/middleware/security.ts",
        "packages/server/src/middleware/validation.ts",
        "packages/server/src/types/index.ts",
        "packages/server/src/types/jobs.ts"
      ]
    },
    {
      "title": "feat(server): Jobs API for one-off agent messaging with middleware refactor",
      "prNumber": 6098,
      "type": "feature",
      "body": "## Summary\n\nThis PR implements a **Jobs API** for one-off messaging functionality, enabling external systems to send single messages to agents and poll for responses without maintaining persistent sessions. This is ideal for stateless integ",
      "files": [
        "docs/jobs-api-examples.md",
        "examples/jobs-api-client-example.ts",
        "examples/jobs-api-example.ts",
        "packages/api-client/README.md",
        "packages/api-client/src/__tests__/services/jobs.test.ts",
        "packages/api-client/src/client.ts",
        "packages/api-client/src/index.ts",
        "packages/api-client/src/services/jobs.ts",
        "packages/api-client/src/types/jobs.ts",
        "packages/server/src/__tests__/authMiddleware.test.ts",
        "packages/server/src/__tests__/integration/jobs-message-flow.test.ts",
        "packages/server/src/__tests__/middleware.test.ts",
        "packages/server/src/api/audio/processing.ts",
        "packages/server/src/api/index.ts",
        "packages/server/src/api/messaging/__tests__/jobs.test.ts",
        "packages/server/src/api/messaging/channels.ts",
        "packages/server/src/api/messaging/index.ts",
        "packages/server/src/api/messaging/jobs.ts",
        "packages/server/src/api/shared/index.ts",
        "packages/server/src/api/shared/middleware.ts",
        "packages/server/src/index.ts",
        "packages/server/src/middleware/auth.ts",
        "packages/server/src/middleware/index.ts",
        "packages/server/src/middleware/rate-limit.ts",
        "packages/server/src/middleware/security.ts",
        "packages/server/src/middleware/validation.ts",
        "packages/server/src/types/index.ts",
        "packages/server/src/types/jobs.ts"
      ]
    },
    {
      "title": "fix: merge .env variables with character",
      "prNumber": 6102,
      "type": "bugfix",
      "body": "# Relates to\r\n\r\nFixes the issue where `.env` variables are completely ignored when `character.settings.secrets` exists, preventing proper configuration merging between global defaults and character-specific overrides.\r\n\r\n# Risks\r\n\r\n**Low Ri",
      "files": [
        "packages/core/src/__tests__/secrets.test.ts",
        "packages/core/src/__tests__/settings.test.ts",
        "packages/core/src/elizaos.ts",
        "packages/core/src/secrets.ts",
        "packages/server/src/loader.ts"
      ]
    },
    {
      "title": "fix: use actual server ID for DM channel creation to resolve 403 error",
      "prNumber": 6105,
      "type": "bugfix",
      "body": "# Relates to\r\n\r\nFixes 403 Forbidden error when creating DM channels in the GUI client.\r\n\r\n# Risks\r\n\r\n**Low**.\r\n\r\n- Affects only DM channel creation flow in the client\r\n- Changes query key structure for DM channels (existing channels remain ",
      "files": [
        "packages/client/src/components/chat.tsx",
        "packages/client/src/hooks/__tests__/use-dm-channels.test.ts",
        "packages/client/src/hooks/use-dm-channels.ts",
        "packages/client/src/routes/chat.tsx"
      ]
    },
    {
      "title": "allow custom options",
      "prNumber": 6104,
      "type": "other",
      "body": "<!-- CURSOR_SUMMARY -->\n> [!NOTE]\n> Allow arbitrary custom options on `Action` via an index signature (`[key: string]: unknown`).\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit c3b83f9975a7fffb12924",
      "files": [
        "packages/core/src/types/components.ts"
      ]
    },
    {
      "title": "feat(server): add public health check endpoints",
      "prNumber": 6103,
      "type": "feature",
      "body": "## Relates to\r\n\r\nFixes the issue where health check endpoints require authentication when `ELIZA_SERVER_AUTH_TOKEN` is configured, breaking load balancer health checks in production deployments.\r\n\r\n## Risks\r\n\r\n**Low risk**\r\n\r\n- Only adds ne",
      "files": [
        "packages/server/src/__tests__/health-endpoints.test.ts",
        "packages/server/src/index.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 1363.3350769812796,
      "prScore": 1317.8390769812797,
      "issueScore": 0,
      "reviewScore": 42,
      "commentScore": 3.496,
      "summary": "standujar: Drove significant architectural improvements and feature development across the elizaOS ecosystem, merging 28 pull requests. Key contributions include a major refactor of the core config and plugin modules (elizaos/eliza#6037), the implementation of PostgreSQL Row-Level Security for multi-tenancy (elizaos/eliza#6101), and the creation of a unified messaging API (elizaos/eliza#6095). They also addressed critical bugs, such as fixing agent plugin reloading (elizaos/eliza#6040), and improved multiple plugins like `plugin-solana` and `plugin-discord`. This activity shows a primary focus on core feature development, large-scale refactoring, and addressing bugs across the platform."
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 923.9094191030421,
      "prScore": 861.6494191030421,
      "issueScore": 0,
      "reviewScore": 59.5,
      "commentScore": 2.76,
      "summary": "0xbbjoker drove a significant architectural refactor across the ElizaOS ecosystem, aimed at modernizing core components and plugin interactions. His most impactful contributions involved migrating the entire system to UUID-only agent identification (elizaos/eliza#6036) and introducing a new `MessageService` interface (elizaos/eliza#6048), two massive undertakings that reshaped the platform's foundation. He extended this modernization effort by migrating multiple plugins like `plugin-discord` (#21) and `plugin-telegram` (#17) to a new message handling method, while also resolving critical issues like a plugin crash (elizaos-plugins/plugin-telegram#19). This work, combined with 12 code reviews, demonstrates a primary focus on large-scale refactoring, bug fixes, and feature implementation across the platform's core code and tests."
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 696.4831688286949,
      "prScore": 688.607168828695,
      "issueScore": 0,
      "reviewScore": 6,
      "commentScore": 1.876,
      "summary": "wtfsayo: Drove significant feature development across the Eliza OS ecosystem, merging 12 pull requests this month. Their most impactful contribution was the implementation of a new Jobs API for agent messaging in `elizaos/eliza#6098`, a substantial effort adding over 5,300 lines of code. Additionally, they integrated Streamdown and cross-platform crypto services (`elizaos/eliza#6082`) and added an Eigen TEE wrapper to the CLI (`elizaos/eliza#6065`). Based on their commits, their work was primarily focused on bug fixes and new feature development, with code changes also touching tests and refactoring."
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 388.86522845377857,
      "prScore": 352.44722845377856,
      "issueScore": 0,
      "reviewScore": 34.5,
      "commentScore": 1.918,
      "summary": "odilitime: Drove significant feature development this month, primarily enhancing the Solana plugin by merging two large PRs for token upgrades and other improvements (elizaos-plugins/plugin-solana#14, #16). They also contributed to the core system by adding server port configuration support (elizaos/eliza#6038) and addressing two smaller bugs. In addition to their merged work, odilitime was an active collaborator, providing 7 code reviews, and has substantial work in progress with 7 open PRs across multiple plugins. This activity reflects a primary focus on new feature work and bug fixes, modifying mainly code and configuration files."
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 242.4150955863044,
      "prScore": 222.1750955863044,
      "issueScore": 0,
      "reviewScore": 19.5,
      "commentScore": 0.74,
      "summary": "ChristopherTrimboli: Focused on significant refactoring and feature development within the `elizaos/eliza` repository, particularly around the command-line interface and deployment processes. He drove a major cleanup by removing over 5,400 lines of code related to Claude and plugin generation (elizaos/eliza#6087) while also introducing a new `login` command for the CLI (elizaos/eliza#6100). Christopher also landed a substantial change to deployment artifacts (+5256/-2909 lines in elizaos/eliza#6058) and supported the team by providing 4 code reviews. His contributions were primarily focused on other work (74%) and bug fixes."
    },
    {
      "username": "madjin",
      "avatarUrl": "https://avatars.githubusercontent.com/u/32600939?u=cdcf89f44c7a50906c7a80d889efa85023af2049&v=4",
      "totalScore": 227.68630479443755,
      "prScore": 208.61030479443755,
      "issueScore": 18.2,
      "reviewScore": 0,
      "commentScore": 0.8759999999999999,
      "summary": "madjin: This month, madjin drove significant feature development and operational improvements within the elizaos/elizaos.github.io repository. They implemented a major new MVP badge system for contributor achievements in PR #161, a substantial effort involving over 4,200 new lines of code. Madjin also enhanced system efficiency by adding adaptive rate limiting (PR #160) and improved the deployment process by creating a new guide (PR #158) and fixing a stats-copying bug (PR #157). Their contributions show a balanced focus across feature work, bug fixes, and documentation, primarily modifying code and configuration files."
    },
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 153.08673824915778,
      "prScore": 152.74673824915777,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": "yungalgo: Focused on improving the user experience and content within the `elizaos/docs` repository, merging five pull requests. Their most impactful work included adding a new 'launch resources' page (#76) which involved a significant content refactor, renaming the API Reference section for clarity (#75), and fixing broken plugin links (#74). This work, along with several comments on issues, demonstrates a clear focus on documentation improvements and bug fixes."
    },
    {
      "username": "tcm390",
      "avatarUrl": "https://avatars.githubusercontent.com/u/60634884?u=c6c41679b8322eaa0c81f72e0b4ed95e80f0ac16&v=4",
      "totalScore": 128.7483067270025,
      "prScore": 118.74830672700249,
      "issueScore": 0,
      "reviewScore": 10,
      "commentScore": 0,
      "summary": "tcm390: This month, tcm390 focused on delivering a series of fixes and enhancements to the elizaos/eliza repository, merging five pull requests. Their most impactful contribution was elizaos/eliza#6045, which exposed the state cache and fixed bootstrap types. They also supported the team by approving two other pull requests, with their overall work consisting of 17 commits primarily focused on bug fixes and other code improvements."
    },
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 55.5437738965761,
      "prScore": 49.5437738965761,
      "issueScore": 6,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "lalalune: Made a substantial contribution to the `jeju` repository this month by adding new applications. They merged a single, large-scale pull request, `elizaos/jeju#1`, which introduced over 71k lines of code to accomplish this. In addition to this significant feature work, lalalune also planned future efforts by opening issues for new agents and load testing in the `jeju` repository (`#2`, `#3`, `#4`). Their work consisted of a mix of new feature development, refactoring, and tests."
    },
    {
      "username": "tylermcwilliams",
      "avatarUrl": "https://avatars.githubusercontent.com/u/39647101?u=03be301adc18b501478fe28dc7e921763a8ecf9f&v=4",
      "totalScore": 47.68866136776995,
      "prScore": 47.25066136776995,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "tylermcwilliams: Focused on expanding core functionality by implementing the new `generateText()` API in the `elizaos/eliza` repository (PR #6062). This significant feature work involved adding nearly 400 lines of code and corresponding tests. In addition to this implementation, they engaged in discussions by commenting on four issues and one pull request. Their work was primarily centered on feature development, which accounted for two-thirds of their code changes."
    },
    {
      "username": "5c0",
      "avatarUrl": "https://avatars.githubusercontent.com/u/93293719?u=8ccc6529b05747344b11a1a1fd4597a111be441b&v=4",
      "totalScore": 45.50684885022568,
      "prScore": 45.50684885022568,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "5c0: Focused on a significant refactoring effort this month, opening a large pull request in elizaos/eliza (#6063). This single PR represents a substantial undertaking, modifying 111 files with over 5,500 new lines of code. Their activity shows a clear focus on code refactoring within the elizaos/eliza repository."
    },
    {
      "username": "MonteCrypto999",
      "avatarUrl": "https://avatars.githubusercontent.com/u/58423789?u=7db7196121472df50395eadf84f9d5963d886d69&v=4",
      "totalScore": 43.5437738965761,
      "prScore": 43.5437738965761,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "MonteCrypto999: Focused on adding new functionality to the Jupiter plugin this month. Their primary contribution was a significant pull request (elizaos-plugins/plugin-jupiter#3) to add referral fee support, which involved a substantial volume of changes (+5965/-431 lines across 31 files). This work encompassed new feature development, bugfixes, and documentation, with changes primarily affecting configuration files, code, and tests."
    },
    {
      "username": "alex-nax",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82507604?u=b3af75d82f80ed83007a77c351a64bdd9e5d67de&v=4",
      "totalScore": 42.35087518789015,
      "prScore": 42.15087518789015,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "alex-nax: Focused on implementing a new feature to use a custom storage service, opening a significant pull request in elizaos/eliza (#6094). This single PR represents a substantial effort, modifying 418 files with over 35k line additions and 15k deletions. The code changes within this feature work were primarily a mix of tests, bugfixes, and other related development."
    },
    {
      "username": "0xRabbidfly",
      "avatarUrl": "https://avatars.githubusercontent.com/u/93952856?v=4",
      "totalScore": 39.90101911726088,
      "prScore": 33.90101911726088,
      "issueScore": 6,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "0xRabbidfly: Focused on bug fixes within the plugin ecosystem, submitting a fix for GIF animations not playing in Telegram (elizaos-plugins/plugin-telegram#20). This single bugfix PR involved a substantial effort, modifying 8 files with over 700 lines of new code and corresponding tests. They also identified and reported a related image rendering issue across two separate plugins (elizaos-plugins/plugin-knowledge#43, elizaos-plugins/plugin-telegram#18), demonstrating a focus on improving the user experience."
    },
    {
      "username": "letmehateu",
      "avatarUrl": "https://avatars.githubusercontent.com/u/133153661?u=2217cec1ebd7bf22a8e4e3ace28b3183720dd444&v=4",
      "totalScore": 37.97067403074471,
      "prScore": 37.57067403074471,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.4,
      "summary": "letmehateu: Focused on documentation maintenance within the elizaos/eliza repository this month. They contributed by fixing an old and broken link (PR #6047) and have another open pull request to address similar issues. All of their activity was concentrated on improving the project's documentation."
    },
    {
      "username": "amlord",
      "avatarUrl": "https://avatars.githubusercontent.com/u/7287225?u=c9efedf5ceccac420c39b5bcd5b44e0f0692c4d5&v=4",
      "totalScore": 28.422573590279974,
      "prScore": 28.422573590279974,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "amlord: This month, amlord added the new 'nuggets' plugin to the elizaos-plugins/registry via PR #236, which consisted of a minor configuration file update."
    },
    {
      "username": "github-advanced-security",
      "avatarUrl": "https://avatars.githubusercontent.com/in/57789?v=4",
      "totalScore": 22.5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 22.5,
      "commentScore": 0,
      "summary": "github-advanced-security: Participated in code reviews this month, providing feedback via 5 review comments."
    },
    {
      "username": "linear",
      "avatarUrl": "https://avatars.githubusercontent.com/in/20150?v=4",
      "totalScore": 14.3,
      "prScore": 0,
      "issueScore": 14.1,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "linear: Focused on product planning and defining new work this month, creating 11 issues in the elizaos/eliza repository. Their efforts were directed at scoping major initiatives, such as a unified messaging API (#6096) and cloud wireframes (#6019), as well as strategic analysis (#6018). They also tracked user-facing improvements, including a fix for markdown rendering (#5688), demonstrating a focus on product strategy and feature definition."
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4",
      "totalScore": 12,
      "prScore": 0,
      "issueScore": 12,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "borisudovicic: Focused entirely on project planning and defining the future roadmap within the elizaos/eliza repository this month. They created 43 issues to structure upcoming work across a wide range of initiatives. This planning included defining a proof-of-concept for \"Eigencloud\" (#5768), outlining an \"API Redesign\" (#5917), and scoping efforts for \"Testing & Reliability\" (#5935) and \"Core Documentation Expansion\" (#5938)."
    },
    {
      "username": "matteo-brandolino",
      "avatarUrl": "https://avatars.githubusercontent.com/u/49117857?u=28be1833532b4c849d42f50867bd960807756272&v=4",
      "totalScore": 11.301573590279972,
      "prScore": 7.001573590279973,
      "issueScore": 4.3,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "matteo-brandolino: Focused on ecosystem engagement this month, identifying a bug and proposing a new integration. They reported an import issue with the Eliza CLI in elizaos/eliza#6031, which has since been closed, and actively participated in issue discussions. Additionally, they opened a pull request to add a new Moralis plugin to the registry (elizaos-plugins/registry#235)."
    },
    {
      "username": "icecoins",
      "avatarUrl": "https://avatars.githubusercontent.com/u/92659856?u=015d38990c9348e60ff7c4dfc86a68cc2d4cece1&v=4",
      "totalScore": 8.087768721952859,
      "prScore": 8.087768721952859,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "icecoins: Focused on enhancing the Twitter plugin by opening a pull request to enable media uploads via the Twitter API v2 (elizaos-plugins/plugin-twitter#45). This contribution represents their sole activity for the month."
    },
    {
      "username": "schmidsi",
      "avatarUrl": "https://avatars.githubusercontent.com/u/103280?u=77faaad95c5f0f1af815e2e46438c0ceb3945031&v=4",
      "totalScore": 4.4,
      "prScore": 0,
      "issueScore": 4.2,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "schmidsi: Focused on issue reporting this month, identifying and documenting a potential installation problem in the `elizaos/eliza` repository (#6088). They participated in the discussion on the issue, which was subsequently closed. Their activity was centered on the `elizaos/eliza` project."
    },
    {
      "username": "douglasg14b",
      "avatarUrl": "https://avatars.githubusercontent.com/u/1400380?u=9c769fb37bf91378e109637db82591816eac7502&v=4",
      "totalScore": 4.3,
      "prScore": 0,
      "issueScore": 4.1,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "douglasg14b: This month, douglasg14b focused on improving documentation quality by identifying and reporting an issue with broken plugin links (elizaos/eliza#6061)."
    },
    {
      "username": "ryanmstokes",
      "avatarUrl": "https://avatars.githubusercontent.com/u/4103619?u=fc6560a14f83b275fdc9442d884182000fb818e1&v=4",
      "totalScore": 4.2,
      "prScore": 0,
      "issueScore": 4.2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "ryanmstokes: This month, ryanmstokes focused on improving documentation quality within the elizaos/eliza repository. They identified and reported an issue regarding incorrect plugin documentation (#6070) and participated in issue discussions with two comments."
    },
    {
      "username": "kempsterrrr",
      "avatarUrl": "https://avatars.githubusercontent.com/u/9025997?u=948aa0d0ac15ae42fd8099afac5351798044f74e&v=4",
      "totalScore": 4,
      "prScore": 0,
      "issueScore": 4,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "kempsterrrr: Contributed to the `elizaos/eliza` project by opening issue #6074 to suggest adding a gitignore file to the project creation process."
    },
    {
      "username": "FellowTraveler",
      "avatarUrl": "https://avatars.githubusercontent.com/u/339191?u=236b9970b7c3ce1e3167921f25d32323f05d916f&v=4",
      "totalScore": 4,
      "prScore": 0,
      "issueScore": 4,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "FellowTraveler: This month, their activity was centered on the `elizaos/eliza` repository, where they identified a potential configuration issue. They created and subsequently closed issue #6051, which raised a concern about the default port selection."
    },
    {
      "username": "n1n-api",
      "avatarUrl": "https://avatars.githubusercontent.com/u/227003775?u=0230fac354b6d67db954e33b17282018cca32ee9&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "n1n-api: This month, n1n-api proposed a new integration by creating issue #6064 in the elizaos/eliza repository to add the n1n.ai API as a model provider."
    },
    {
      "username": "Vianvolaeus",
      "avatarUrl": "https://avatars.githubusercontent.com/u/80061436?u=e8f6a2f503fa169946d1b92aefa5dedaafb388a9&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "Vianvolaeus: This month, Vianvolaeus's contribution was focused on product quality assurance. They identified and reported a potential bug in the user-facing weekly summary, noting an incorrect week and date display in issue elizaos/elizaos.github.io#168."
    },
    {
      "username": "TensorNull",
      "avatarUrl": "https://avatars.githubusercontent.com/u/129579691?u=fef786d866afd3d3a36397da036641c65906f3f2&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "TensorNull: This month, TensorNull's contribution was focused on proposing new functionality for the ElizaOS project. They opened a feature request (elizaos/eliza#6055) to add support for the CometAPI. This was their sole contribution for the period."
    }
  ],
  "newPRs": 61,
  "mergedPRs": 53,
  "newIssues": 18,
  "closedIssues": 57,
  "activeContributors": 25
}