{
  "interval": {
    "intervalStart": "2025-11-30T00:00:00.000Z",
    "intervalEnd": "2025-12-07T00:00:00.000Z",
    "intervalType": "week"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-11-30 to 2025-12-07, elizaos/eliza had 10 new PRs (9 merged), 5 new issues, and 10 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7V2Buf",
      "title": "Where did packages/docs/ go?",
      "author": "LinuxIsCool",
      "number": 6122,
      "repository": "elizaos/eliza",
      "body": "There was always packages/docs/ where did it get moved to?",
      "createdAt": "2025-11-04T18:08:54Z",
      "closedAt": "2025-12-01T14:35:46Z",
      "state": "CLOSED",
      "commentCount": 2
    },
    {
      "id": "I_kwDOMT5cIs7aSEq_",
      "title": "Add OpenAI-compatible API",
      "author": "joglomedia",
      "number": 6168,
      "repository": "elizaos/eliza",
      "body": "Hi,\n\nIt would be great if we have an option to use LLM API from OpenAI-compatible API, not only open router. So, we can set the API host & API Key",
      "createdAt": "2025-11-25T09:19:35Z",
      "closedAt": "2025-11-30T18:41:08Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7cPNBC",
      "title": ".eliza needed or plugin-sql crashes, should autocreate",
      "author": "lalalune",
      "number": 6204,
      "repository": "elizaos/eliza",
      "body": "You can see here, I am building an Eliza agent from scratch\n\n```\nimport { AgentRuntime, type Character, type Plugin } from \"@elizaos/core\";\nimport { plugin } from \"@elizaos/plugin-sql\"\nimport { openaiPlugin } from \"@elizaos/plugin-openai\"\nimport fs from \"fs\";\n\n// if .eliza directory does not exist, create it\nif (!fs.existsSync(\".eliza\")) {\n    fs.mkdirSync(\".eliza\");\n}\n\nconst character: Character = {\n    name: \"Eliza\",\n    bio: \"You are a helpful assistant\",\n};\n\nconst plugins: Plugin[] = [\n    plugin,\n    openaiPlugin,\n];\n\nconst agent = new AgentRuntime({\n    character, // need a character to start the agent\n    plugins // bare minimum is db plugin and inference plugin\n});\n\nagent.initialize().then(() => {\n    console.log(\"Agent initialized\");\n\n\n});\n```\n\nIn order to get it to work I have to add\n```\nimport fs from \"fs\";\n\n// if .eliza directory does not exist, create it\nif (!fs.existsSync(\".eliza\")) {\n    fs.mkdirSync(\".eliza\");\n}\n```\n\nBut this should happen automatically",
      "createdAt": "2025-12-04T14:37:44Z",
      "closedAt": "2025-12-08T13:17:08Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7KjCKg",
      "title": "Technical Debt & CLI/Server Cleanup",
      "author": "borisudovicic",
      "number": 5932,
      "repository": "elizaos/eliza",
      "body": "Eliminate redundant logic and hacks, align CLI/server with ElizaOS.",
      "createdAt": "2025-09-09T12:18:56Z",
      "closedAt": "2025-11-30T15:38:09Z",
      "state": "CLOSED",
      "commentCount": 0
    },
    {
      "id": "I_kwDOMT5cIs7SPBL-",
      "title": "Standardize Logging Across Core, CLI, and Server",
      "author": "borisudovicic",
      "number": 6073,
      "repository": "elizaos/eliza",
      "body": "**Summary**\n\nThe config and environment refactors are complete; remaining task is to unify and finalize the logging system across all packages to ensure consistent developer experience and observability.\n\n**Objectives**\n\n* Migrate all packages (CLI, server, and core) to use a single, standardized Logger implementation from @elizaos/core.\n* Ensure log formatting, levels, transports, and contextual metadata (package, runtime mode, timestamps) are consistent.\n* Provide structured logs compatible with both console and future Cloud ingestion (JSON mode).",
      "createdAt": "2025-10-17T18:41:45Z",
      "closedAt": "2025-11-30T15:37:51Z",
      "state": "CLOSED",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs620Si3",
      "title": "feat(auth): implement JWT authentication and user management",
      "author": "standujar",
      "number": 6200,
      "body": "## Relates to\r\n\r\n- Data isolation / multi-entity support\r\n- External JWT provider integration (Privy, Auth0, Clerk, Supabase, Google, Embbeded)\r\n\r\n## Risks\r\n\r\n**Low**\r\n\r\n- Requires `ENABLE_DATA_ISOLATION=true` to activate JWT auth mode\r\n\r\n## Background\r\n\r\n### What does this PR do?\r\n\r\nImplements a complete JWT authentication system for ElizaOS with support for multiple verification strategies:\r\n\r\n1. **JWT Verifier Factory** - Priority-based verifier selection:\r\n   - Ed25519 (highest priority) - For self-signed JWTs with Ed25519 keys\r\n   - JWKS (medium priority) - For external providers (Auth0, Clerk, Privy, Supabase, Google)\r\n   - Secret (lowest priority) - For simple HS256 symmetric key verification\r\n\r\n2. **Entity ID derivation from JWT `sub` claim**:\r\n   - `entityId = stringToUuid(payload.sub)`\r\n   - Compatible with ANY JWT provider since `sub` is a standard claim\r\n   - No custom claims needed in external JWTs\r\n\r\n3. **Dual authentication modes**:\r\n   - `ENABLE_DATA_ISOLATION=true` → JWT authentication required\r\n   - `ENABLE_DATA_ISOLATION=false` → X-Entity-Id header (legacy mode)\r\n\r\n4. **Internal service bypass** - Process-local UUID secret for service-to-service calls\r\n\r\n5. **Credentials-based auth endpoints** (`/api/auth/*`) - only in custom - JWT-SECRET mode:\r\n   - `POST /register` - User registration with bcrypt password hashing\r\n   - `POST /login` - User login with JWT generation\r\n   - `POST /refresh` - Token refresh\r\n   - `GET /me` - Current user info\r\n\r\n6. **Client UI default implementation using self mode (Secret)\r\n\r\n### What kind of change is this?\r\n\r\n**Features** (non-breaking change which adds functionality)\r\n\r\n## Architecture\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────────┐\r\n│                    JWT Verification Flow                         │\r\n├─────────────────────────────────────────────────────────────────┤\r\n│  Request with Bearer token                                       │\r\n│       ↓                                                          │\r\n│  JWTVerifierFactory.create()                                     │\r\n│       ↓                                                          │\r\n│  Priority: Ed25519 > JWKS > Secret > Disabled                   │\r\n│       ↓                                                          │\r\n│  verifier.verify(token)                                          │\r\n│       ↓                                                          │\r\n│  Extract payload.sub                                             │\r\n│       ↓                                                          │\r\n│  entityId = stringToUuid(sub)  ← Derived, NOT stored in JWT     │\r\n│       ↓                                                          │\r\n│  req.entityId = entityId                                         │\r\n└─────────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n## Environment Variables\r\n\r\n| Variable | Description | Example |\r\n|----------|-------------|---------|\r\n| `ENABLE_DATA_ISOLATION` | Enable JWT auth mode | `true` |\r\n| `JWT_SECRET` (optional) | HS256 symmetric secret | `your-secret-key` |\r\n| `JWT_PUBLIC_KEY_ED25519` (optional) | Ed25519 public key (base64) | `MCowBQYDK2Vw...` |\r\n| `JWT_JWKS_URI` (optional) | JWKS endpoint URL | `https://auth0.com/.well-known/jwks.json` |\r\n| `JWT_ISSUER_WHITELIST` (optional) | Allowed issuers (comma-separated) | `https://auth0.com/,https://clerk.dev` |\r\n\r\n## Documentation changes needed?\r\n\r\nYes - Documentation should be added for:\r\n- Environment variable configuration\r\n- External provider setup (Auth0, Clerk, Privy examples)\r\n\r\n## Testing\r\n\r\n### Where should a reviewer start?\r\n\r\n1. `packages/server/src/services/jwt-verifiers/factory.ts` - Core factory logic\r\n2. `packages/server/src/middleware/jwtMiddleware.ts` - HTTP middleware\r\n3. `packages/server/src/socketio/index.ts` - SocketIO authentication\r\n\r\n### Detailed testing steps\r\n\r\n**Unit Tests:**\r\n```bash\r\ncd packages/server\r\nbun run test:unit\r\n```\r\n\r\n**Integration Tests:**\r\n```bash\r\ncd packages/server\r\nbun run test:integration\r\n```\r\n\r\n**Results:** 489 unit tests pass, 6 integration test files pass\r\n\r\n### Manual Testing\r\n\r\n1. **Test with JWT_SECRET (HS256):**\r\n```bash\r\nENABLE_DATA_ISOLATION=true JWT_SECRET=test-secret bun run dev\r\n```\r\n\r\n2. **Register a user:**\r\n```bash\r\ncurl -X POST http://localhost:3000/api/auth/register \\\r\n  -H \"Content-Type: application/json\" \\\r\n  -d '{\"email\":\"test@example.com\",\"username\":\"testuser\",\"password\":\"password123\"}'\r\n```\r\n\r\n3. **Use returned token:**\r\n```bash\r\ncurl http://localhost:3000/api/agents \\\r\n  -H \"Authorization: Bearer <token>\"\r\n```\r\n\r\n## External Provider Compatibility\r\n\r\nTested JWT formats:\r\n- **Auth0**: `sub: \"auth0|1234567890\"`\r\n- **Clerk**: `sub: \"user_2abcdefgh123456\"`\r\n- **Google**: `sub: \"1234567890\"` with `email`, `email_verified`\r\n- **Supabase**: `sub: \"uuid\"` with `role: \"authenticated\"`\r\n- **Privy**: `sub: \"did:privy:...\"`\r\n\r\nAll providers work because we only require the standard `sub` claim.\r\n\r\n## Next Idea Steps: Access Control Layer (ACL)\r\n\r\nThe next phase will add access control on agents and rooms: \r\n\r\nAgents:\r\n- Each user can create their own agents (ownerId = entityId)\r\n- Visibility: public or private\r\n- Private = only the owner can chat with it\r\n- Public = everyone can chat, but only the owner can modify/delete\r\n\r\nRooms:\r\n- Each room has an owner\r\nOnly the owner can:\r\n- Delete the room (DELETE /rooms/:id)\r\n- Clear message history (DELETE /rooms/:id/messages)\r\n- Change visibility\r\n\r\nThis will enable true multi-tenant mode where each user manages their resources in isolation.",
      "repository": "elizaos/eliza",
      "createdAt": "2025-12-03T11:55:47Z",
      "mergedAt": null,
      "additions": 6072,
      "deletions": 353
    },
    {
      "id": "PR_kwDOMT5cIs61dVQL",
      "title": "refactor: Standardize Logging Across Core, CLI, and Server",
      "author": "standujar",
      "number": 6169,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-11-25T16:49:15Z",
      "mergedAt": "2025-11-30T08:49:13Z",
      "additions": 2264,
      "deletions": 2974
    },
    {
      "id": "PR_kwDOMT5cIs63dqrL",
      "title": "[DRAFT] feat(core): Implement parallel action execution in processActions",
      "author": "wtfsayo",
      "number": 6209,
      "body": "## Summary\n\nThis PR implements parallel action execution within the `processActions()` method to improve performance for multi-action responses.\n\n## Changes\n\n### Core Runtime (`packages/core/src/runtime.ts`)\n- Execute actions within a single response batch **in parallel** using `Promise.allSettled()`\n- All actions in a batch receive the **same initial state snapshot**\n- State accumulates **sequentially between response batches**\n- Merge all `ActionResult.values` after parallel batch completes\n- Preserve fault tolerance: if one action fails, others still complete\n\n### Prompts (`packages/core/src/prompts.ts`)\n- Updated `messageHandlerTemplate` to reflect parallel execution model\n- Changed \"IMPORTANT ACTION ORDERING RULES\" to \"IMPORTANT ACTION EXECUTION RULES\"\n- Clarified that actions listed in a single response execute in parallel\n- Added guidance to use multi-step workflow for sequential dependencies\n\n### Action State Provider (`packages/plugin-bootstrap/src/providers/actionState.ts`)\n- Updated JSDoc and description to clarify \"previous results\" refers to prior response batches, not sibling parallel actions\n\n### Tests\n- Updated `runtime.test.ts` to match new state initialization behavior\n- Updated `prompts.test.ts` to match new prompt text\n\n## Key Data Flow\n\n```\nResponse 1: [action1, action2, action3]\n  ├─> Execute ALL in parallel with initialState\n  ├─> Wait for all to complete\n  └─> Merge results → accumulatedState\n\nResponse 2: [action4, action5]\n  ├─> Execute ALL in parallel with accumulatedState from Response 1\n  ├─> Wait for all to complete\n  └─> Merge results → new accumulatedState\n```\n\n## Testing\n\n- All existing runtime tests pass\n- All prompt tests pass\n- All multi-step workflow tests pass\n- Action chaining tests pass\n\n## Breaking Changes\n\nNone - backward compatible. Actions that previously assumed sequential execution within a batch will now run in parallel, but since they all receive the same state snapshot, behavior should be equivalent for independent actions.\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Execute actions in a response batch in parallel with a shared state snapshot, accumulate results across batches, and introduce AsyncLocalStorage-based prompt tracking with prompt/provider/test updates.\n> \n> - **Core (runtime.ts)**:\n>   - Parallelize `processActions` per response using `Promise.allSettled()`; each batch shares a composed state snapshot; accumulate `ActionResult.values` and plan state between batches.\n>   - Add robust action resolution (exact/fuzzy/similes), error paths for missing action/handler, and consistent action memory/logging.\n>   - Preserve legacy returns (void/boolean) as completed; treat `{ success:false }` (including minimal/error-only) as failed.\n>   - Merge working memory with size cap; cache `action_results`; update action plan immutably per step.\n>   - Introduce AsyncLocalStorage context: `ActionContextStore`, `getCurrentActionContext`, and browser fallback `createBrowserFallback` for prompt collection; include action context in `useModel` logs; skip collecting `TEXT_EMBEDDING` prompts.\n> - **Prompts (prompts.ts)**:\n>   - Update `messageHandlerTemplate` for parallel execution model and guidance on multi-step dependencies.\n> - **Provider (plugin-bootstrap/actionState.ts)**:\n>   - Clarify description/docs: \"previous results\" are from prior response batches; parallel actions share the same snapshot.\n> - **Tests**:\n>   - Expand `runtime.test.ts`: parallel execution behavior, action result status semantics, prompt collection/isolation via AsyncLocalStorage, browser fallback behavior, exact vs fuzzy action matching.\n>   - Update `prompts.test.ts` for new execution rules and wording.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 55765fc289c965232d5d690c363f73c7ea1b81f6. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-12-06T19:03:17Z",
      "mergedAt": null,
      "additions": 1467,
      "deletions": 292
    },
    {
      "id": "PR_kwDOMT5cIs62WwSP",
      "title": "refactor(server): optimization and reorganization",
      "author": "standujar",
      "number": 6199,
      "body": "# Risks\r\n\r\n**Low to Medium**\r\n\r\n- Socket.IO configuration changes may affect existing client connections (tested with multiple browsers)\r\n- Code reorganization changes import paths - all imports have been updated and verified\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nThis PR addresses server performance issues (request timeouts ~30s with multiple users connections) and improves code organization following clean architecture principles.\r\n\r\n### Performance Optimizations\r\n\r\n1. **Socket.IO Configuration**\r\n   - Configured `pingInterval` (25s) and `pingTimeout` (20s)\r\n   - Set `connectTimeout` (10s)\r\n   - Enforced transport order: `['websocket', 'polling']`\r\n\r\n2. **HTTP Server Timeouts**\r\n   - Added `timeout`, `keepAliveTimeout`, `headersTimeout`, `requestTimeout`\r\n   - Prevents hanging connections\r\n\r\n3. **Socket Disconnection Guards**\r\n   - Added checks before emitting to sockets\r\n   - Graceful handling of disconnected clients\r\n\r\n4. **Parallel Database Operations**\r\n   - Used `Promise.all` for independent DB queries\r\n   - Reduces latency for multi-query endpoints\r\n\r\n### Code Reorganization\r\n\r\nRestructured root-level files into proper directories:\r\n\r\n| Before | After |\r\n|--------|-------|\r\n| `src/bus.ts` | `src/services/message-bus.ts` |\r\n| `src/loader.ts` | `src/services/loader.ts` |\r\n| `src/upload.ts` | `src/utils/upload.ts` |\r\n| `src/types.ts` | `src/types/server.ts` |\r\n| *(new)* | `src/utils/config.ts` |\r\n| *(new)* | `src/services/index.ts` |\r\n\r\n- Added `ServerMiddleware` and `ServerConfig` types to `types/server.ts`\r\n- Created barrel exports in `services/index.ts` and updated `utils/index.ts`\r\n- Maintained backward compatibility via re-exports in `src/index.ts`\r\n\r\n### Test Fixes\r\n\r\n- Fixed invalid UUID usage in integration tests (replaced string casts with `stringToUuid()`)\r\n- Updated import paths for relocated modules\r\n\r\n## What kind of change is this?\r\n\r\n- Improvements (performance optimizations)\r\n- Refactoring (code reorganization)\r\n- Bug fixes (test UUID issues)\r\n\r\n# Documentation changes needed?\r\n\r\nNo\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\n\r\n1. [src/index.ts](packages/server/src/index.ts) - Main entry point with Socket.IO and HTTP timeout configs\r\n2. [src/services/](packages/server/src/services/) - Reorganized service files\r\n\r\n## Detailed testing steps\r\n\r\n1. Run unit tests and integrations tests:\r\n   ```bash\r\n   cd packages/server && bun run test:unit && bun run test:integration\r\n   ```\r\n\r\n2. Run build:\r\n   ```bash\r\n   cd packages/server && bun run build\r\n   ```\r\n\r\n3. Manual testing:\r\n   - Start server with PostgreSQL\r\n   - Connect multiple browser tabs simultaneously\r\n   - Verify no timeout errors after 30s\r\n   - Test Socket.IO reconnection behavior",
      "repository": "elizaos/eliza",
      "createdAt": "2025-12-01T14:03:31Z",
      "mergedAt": "2025-12-01T15:58:32Z",
      "additions": 608,
      "deletions": 439
    },
    {
      "id": "PR_kwDOMT5cIs63ddxK",
      "title": "feat: Add ElizaOS Cloud as Default AI Provider in CLI",
      "author": "ChristopherTrimboli",
      "number": 6208,
      "body": "## Add ElizaOS Cloud as Default AI Provider in CLI\n\n### Summary\n- Add **ElizaOS Cloud** as the first/recommended option in `elizaos create` AI model selection\n- Integrate browser-based login flow for seamless API key setup\n- Fix env variable naming to match plugin (`ELIZAOS_CLOUD_API_KEY`)\n\n### Changes\n\n**`packages/cli/src/commands/create/utils/selection.ts`**\n- Add ElizaOS Cloud as top option with \"(Recommended)\" label\n- Set `elizacloud` as default `initialValue`\n- Add `elizacloud` to `hasEmbeddingSupport()` list\n\n**`packages/cli/src/utils/get-config.ts`**\n- Add `storeElizaCloudKey()` and `promptAndStoreElizaCloudKey()` \n- Support 3 auth flows: browser login, manual key entry, skip\n\n**`packages/cli/src/commands/create/actions/setup.ts`**\n- Add `elizacloud` case in `setupAIModelConfig()`\n- Map `elizacloud` → `@elizaos/plugin-elizacloud` in `resolveModelToPlugin()`\n- Skip Ollama fallback when using ElizaOS Cloud\n\n**`packages/cli/src/commands/login/actions/login.ts`**\n- Rename `ELIZA_CLOUD_API_KEY` → `ELIZAOS_CLOUD_API_KEY`\n\n### User Flow\n```\n◆  Which AI model would you like to use?\n│  ● ElizaOS Cloud (Recommended)\n│  ○ Local AI (Ollama)\n│  ○ OpenAI\n│  ...\n\n◆  How would you like to authenticate?\n│  ● Login with browser (recommended)\n│  ○ Enter API key manually\n│  ○ Skip for now\n```\n\n### Test Plan\n- [ ] Run `elizaos create test-project` and select ElizaOS Cloud\n- [ ] Verify browser login flow saves key correctly\n- [ ] Verify manual key entry works\n- [ ] Verify plugin installs as `@elizaos/plugin-elizacloud`\n- [ ] Verify skip option adds placeholder to `.env`",
      "repository": "elizaos/eliza",
      "createdAt": "2025-12-06T18:21:51Z",
      "mergedAt": "2025-12-06T19:51:44Z",
      "additions": 491,
      "deletions": 66
    }
  ],
  "codeChanges": {
    "additions": 3433,
    "deletions": 2443,
    "files": 158,
    "commitCount": 60
  },
  "completedItems": [
    {
      "title": "fix: markdown spacing compact",
      "prNumber": 6159,
      "type": "bugfix",
      "body": "# Relates to\r\n\r\nFixes excessive vertical spacing in AI-generated markdown responses in the ElizaOS client UI.\r\n\r\n# Risks\r\n\r\n**Low Risk**\r\n\r\n- Only CSS changes affecting markdown content rendering\r\n- Uses well-supported CSS features (Chrome ",
      "files": [
        "packages/client/src/components/ai-elements/response.tsx",
        "packages/client/src/index.css"
      ]
    },
    {
      "title": "refactor: Standardize Logging Across Core, CLI, and Server",
      "prNumber": 6169,
      "type": "refactor",
      "body": "",
      "files": [
        "bun.lock",
        "packages/cli/src/index.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/core/package.json",
        "packages/core/src/__tests__/message-service.test.ts",
        "packages/core/src/__tests__/roles.test.ts",
        "packages/core/src/entities.ts",
        "packages/core/src/logger.ts",
        "packages/core/src/plugin.ts",
        "packages/core/src/roles.ts",
        "packages/core/src/runtime.ts",
        "packages/core/src/services/default-message-service.ts",
        "packages/core/src/settings.ts",
        "packages/core/src/utils.ts",
        "packages/plugin-bootstrap/src/actions/choice.ts",
        "packages/plugin-bootstrap/src/actions/followRoom.ts",
        "packages/plugin-bootstrap/src/actions/imageGeneration.ts",
        "packages/plugin-bootstrap/src/actions/muteRoom.ts",
        "packages/plugin-bootstrap/src/actions/reply.ts",
        "packages/plugin-bootstrap/src/actions/roles.ts",
        "packages/plugin-bootstrap/src/actions/sendMessage.ts",
        "packages/plugin-bootstrap/src/actions/settings.ts",
        "packages/plugin-bootstrap/src/actions/unmuteRoom.ts",
        "packages/plugin-bootstrap/src/actions/updateEntity.ts",
        "packages/plugin-bootstrap/src/evaluators/reflection.ts",
        "packages/plugin-bootstrap/src/index.ts",
        "packages/plugin-bootstrap/src/providers/capabilities.ts",
        "packages/plugin-bootstrap/src/providers/roles.ts",
        "packages/plugin-bootstrap/src/providers/settings.ts",
        "packages/plugin-bootstrap/src/providers/world.ts",
        "packages/plugin-bootstrap/src/services/embedding.ts",
        "packages/plugin-bootstrap/src/services/task.ts",
        "packages/plugin-sql/src/base.ts",
        "packages/plugin-sql/src/index.browser.ts",
        "packages/plugin-sql/src/index.node.ts",
        "packages/plugin-sql/src/index.ts",
        "packages/plugin-sql/src/migration-service.ts",
        "packages/plugin-sql/src/pg/adapter.ts",
        "packages/plugin-sql/src/pg/manager.ts",
        "packages/plugin-sql/src/pglite/adapter.ts",
        "packages/plugin-sql/src/rls.ts",
        "packages/plugin-sql/src/runtime-migrator/drizzle-adapters/database-introspector.ts",
        "packages/plugin-sql/src/runtime-migrator/drizzle-adapters/sql-generator.ts",
        "packages/plugin-sql/src/runtime-migrator/extension-manager.ts",
        "packages/plugin-sql/src/runtime-migrator/runtime-migrator.ts",
        "packages/plugin-sql/src/runtime-migrator/schema-transformer.ts",
        "packages/server/src/__tests__/unit/middleware/auth-middleware.test.ts",
        "packages/server/src/__tests__/unit/middleware/middleware.test.ts",
        "packages/server/src/__tests__/unit/utils/validation.test.ts",
        "packages/server/src/api/agents/crud.ts",
        "packages/api-client/eslint.config.js",
        "packages/api-client/package.json",
        "packages/app/eslint.config.js",
        "packages/app/package.json",
        "packages/cli/eslint.config.js",
        "packages/cli/package.json",
        "packages/client/eslint.config.js",
        "packages/client/package.json",
        "packages/config/src/eslint/eslint.config.base.js",
        "packages/core/eslint.config.js",
        "packages/plugin-bootstrap/eslint.config.js",
        "packages/plugin-bootstrap/package.json",
        "packages/plugin-bootstrap/src/__tests__/attachments.test.ts",
        "packages/plugin-bootstrap/src/__tests__/services.test.ts",
        "packages/plugin-bootstrap/src/providers/actionState.ts",
        "packages/plugin-bootstrap/src/providers/choice.ts",
        "packages/plugin-bootstrap/src/providers/facts.ts",
        "packages/plugin-bootstrap/src/providers/recentMessages.ts",
        "packages/cli/src/commands/agent/actions/lifecycle.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",
        "packages/cli/src/commands/create/index.ts",
        "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/utils/api-client.ts",
        "packages/cli/src/commands/deploy/utils/docker-build.ts",
        "packages/cli/src/commands/login/utils/browser.ts",
        "packages/cli/src/commands/plugins/actions/install.ts",
        "packages/cli/src/commands/plugins/actions/list.ts",
        "packages/cli/src/commands/plugins/actions/remove.ts",
        "packages/cli/src/commands/plugins/utils/directory.ts",
        "packages/cli/src/commands/plugins/utils/env-vars.ts",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/commands/tee/eigen-wrapper.ts",
        "packages/cli/src/commands/tee/phala-wrapper.ts",
        "packages/cli/src/commands/test/actions/component-tests.ts",
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/src/commands/test/index.ts",
        "packages/cli/src/commands/update/index.ts",
        "packages/cli/src/project.ts",
        "packages/cli/src/utils/auto-install-bun.ts",
        "packages/cli/src/utils/bun-exec.ts",
        "packages/cli/src/utils/bun-installation-helper.ts",
        "packages/cli/src/utils/cli-bun-migration.ts",
        "packages/cli/src/utils/config-manager.ts",
        "packages/cli/src/utils/copy-template.ts",
        "packages/cli/src/utils/dependency-manager.ts",
        "packages/cli/src/utils/emoji-handler.ts",
        "packages/cli/src/utils/get-config.ts",
        "packages/cli/src/utils/github.ts",
        "packages/cli/src/utils/handle-error.ts",
        "packages/cli/src/utils/install-plugin.ts",
        "packages/cli/src/utils/load-plugin.ts",
        "packages/cli/src/utils/local-cli-delegation.ts",
        "packages/cli/src/utils/package-manager.ts",
        "packages/cli/src/utils/plugin-context.ts",
        "packages/cli/src/utils/plugin-discovery.ts",
        "packages/cli/src/utils/publisher.ts"
      ]
    },
    {
      "title": "rollback(plugin-sql): revert build configuration changes from 08d5141…",
      "prNumber": 6194,
      "type": "other",
      "body": "# Rollback plugin-sql build configuration\r\n\r\nReverts build configuration changes from commits 08d5141 and 726b1d7 in plugin-sql package.\r\n\r\n## Changes\r\n\r\n- Restore types path to `./types/index.d.ts` in package.json exports\r\n- Add `types` di",
      "files": [
        "packages/plugin-sql/build.ts",
        "packages/plugin-sql/package.json",
        "packages/plugin-sql/tsconfig.build.json",
        "packages/plugin-sql/tsconfig.build.node.json"
      ]
    },
    {
      "title": "refactor(server): optimization and reorganization",
      "prNumber": 6199,
      "type": "refactor",
      "body": "# Risks\r\n\r\n**Low to Medium**\r\n\r\n- Socket.IO configuration changes may affect existing client connections (tested with multiple browsers)\r\n- Code reorganization changes import paths - all imports have been updated and verified\r\n\r\n# Backgroun",
      "files": [
        "bun.lock",
        "packages/server/src/__tests__/builders/channel.builder.ts",
        "packages/server/src/__tests__/builders/message.builder.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/message-bus-service.test.ts",
        "packages/server/src/__tests__/unit/api/crud-uuid.test.ts",
        "packages/server/src/__tests__/unit/api/jobs.test.ts",
        "packages/server/src/__tests__/unit/features/socketio-router.test.ts",
        "packages/server/src/__tests__/unit/services/message-bus-compatibility.test.ts",
        "packages/server/src/__tests__/unit/utils/loader-uuid.test.ts",
        "packages/server/src/__tests__/unit/utils/loader.test.ts",
        "packages/server/src/api/index.ts",
        "packages/server/src/api/messaging/channels.ts",
        "packages/server/src/api/messaging/core.ts",
        "packages/server/src/api/messaging/jobs.ts",
        "packages/server/src/api/messaging/messageServers.ts",
        "packages/server/src/api/messaging/sessions.ts",
        "packages/server/src/api/shared/uploads/index.ts",
        "packages/server/src/index.ts",
        "packages/server/src/services/index.ts",
        "packages/server/src/services/loader.ts",
        "packages/server/src/services/message-bus.ts",
        "packages/server/src/services/message.ts",
        "packages/server/src/socketio/index.ts",
        "packages/server/src/types/server.ts",
        "packages/server/src/utils/config.ts",
        "packages/server/src/utils/index.ts",
        "packages/server/src/utils/media-transformer.ts",
        "packages/server/src/utils/upload.ts"
      ]
    },
    {
      "title": "fix(client): improve markdown content spacing",
      "prNumber": 6197,
      "type": "bugfix",
      "body": "This PR includes two fixes for markdown content spacing in the client:\n\n1. Add missing heading and separator spacing to markdown-content\n2. Reduce blockquote vertical spacing for more compact display\n\nThese changes improve the visual consis",
      "files": [
        "packages/client/src/index.css"
      ]
    },
    {
      "title": "feat: Unified API - serverless - nodejs",
      "prNumber": 6201,
      "type": "feature",
      "body": "",
      "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/elizaos.ts"
      ]
    },
    {
      "title": "fix(examples): respect user LOG_LEVEL in standalone-cli-chat",
      "prNumber": 6203,
      "type": "bugfix",
      "body": "",
      "files": [
        "examples/standalone-cli-chat.ts"
      ]
    },
    {
      "title": "fix(plugin-sql): migrate to messageService API and auto-create PGLite directories",
      "prNumber": 6202,
      "type": "bugfix",
      "body": "## Summary\n\nThis PR modernizes the standalone example files and improves the SQL plugin's directory handling by:\n1. Migrating examples from the deprecated `MESSAGE_RECEIVED` event system to the new `messageService.handleMessage()` API\n2. Ad",
      "files": [
        "examples/standalone-cli-chat.ts",
        "examples/standalone.ts",
        "packages/plugin-sql/src/__tests__/unit/directory-creation.test.ts",
        "packages/plugin-sql/src/index.node.ts",
        "packages/plugin-sql/src/index.ts"
      ]
    },
    {
      "title": "feat: Add ElizaOS Cloud as Default AI Provider in CLI",
      "prNumber": 6208,
      "type": "feature",
      "body": "## Add ElizaOS Cloud as Default AI Provider in CLI\n\n### Summary\n- Add **ElizaOS Cloud** as the first/recommended option in `elizaos create` AI model selection\n- Integrate browser-based login flow for seamless API key setup\n- Fix env variabl",
      "files": [
        "bun.lock",
        "packages/cli/src/commands/create/actions/setup.ts",
        "packages/cli/src/commands/create/utils/selection.ts",
        "packages/cli/src/commands/deploy/utils/api-client.ts",
        "packages/cli/src/commands/login/README.md",
        "packages/cli/src/commands/login/actions/login.ts",
        "packages/cli/src/utils/get-config.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/unit/utils/elizacloud-config.test.ts",
        "packages/cli/tests/unit/utils/selection.test.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 164.56808896352712,
      "prScore": 159.63008896352713,
      "issueScore": 0,
      "reviewScore": 4.5,
      "commentScore": 0.43799999999999994,
      "summary": null
    },
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 106.43812183926335,
      "prScore": 106.03812183926334,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.4,
      "summary": null
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 61.364794811906556,
      "prScore": 56.364794811906556,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 38.31247180559945,
      "prScore": 33.31247180559945,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4",
      "totalScore": 6.34,
      "prScore": 0,
      "issueScore": 6,
      "reviewScore": 0,
      "commentScore": 0.33999999999999997,
      "summary": null
    },
    {
      "username": "github-advanced-security",
      "avatarUrl": "https://avatars.githubusercontent.com/in/57789?v=4",
      "totalScore": 4.5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 4.5,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "linear",
      "avatarUrl": "https://avatars.githubusercontent.com/in/20150?v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "lalalune",
      "avatarUrl": "https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    }
  ],
  "newPRs": 10,
  "mergedPRs": 9,
  "newIssues": 5,
  "closedIssues": 14,
  "activeContributors": 10
}