{
  "interval": {
    "intervalStart": "2025-12-18T00:00:00.000Z",
    "intervalEnd": "2025-12-19T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-12-18 to 2025-12-19, elizaos/eliza had 3 new PRs (1 merged), 1 new issues, and 6 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7fLjN8",
      "title": "Docs",
      "author": "borisudovicic",
      "number": 6264,
      "repository": "elizaos/eliza",
      "body": "",
      "createdAt": "2025-12-18T18:38:47Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 0
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs63rQjG",
      "title": "feat: enhance streaming support in text generation",
      "author": "standujar",
      "number": 6212,
      "body": "# Relates to\r\n\r\n- Streaming support for text generation models\r\n- CLI test runner improvements\r\n\r\n# Risks\r\n\r\n**Low**. Changes are additive and backward-compatible:\r\n- New streaming API is opt-in via `stream: true` parameter\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nAdds streaming support for `TEXT_SMALL` and `TEXT_LARGE` model types, allowing plugins to return text incrementally as it's generated. Also fixes several issues in the CLI test runner.\r\n\r\n**Core changes:**\r\n- Add `TextStreamResult` interface with `textStream` async iterable\r\n- Add `stream?: boolean` parameter to `GenerateTextParams`\r\n- Add `supportsStreaming()` type guard for model types\r\n- Update `runtime.useModel()` to handle streaming responses\r\n\r\n**CLI test fixes:**\r\n- Fix `startAgents` API signature (array of `{character, plugins}` objects)\r\n- Fix `TestRunner` to exclude `@elizaos/plugin-bootstrap` from plugin detection\r\n- Fix unit test mock function name (`getDefaultCharacter`)\r\n\r\n## What kind of change is this?\r\n\r\n- Features (non-breaking change which adds functionality)\r\n- Bug fixes (non-breaking change which fixes an issue)\r\n\r\n# Documentation changes needed?\r\n\r\nMy changes require a change to the project documentation:\r\n- Document the new streaming API for plugin developers\r\n- Update model type documentation with streaming support info\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\n\r\n1. `packages/core/src/types/model.ts` - New streaming types\r\n2. `packages/core/src/runtime.ts` - Runtime streaming support\r\n3. `packages/cli/src/utils/test-runner.ts` - Bootstrap exclusion fix\r\n```\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-12-08T13:03:38Z",
      "mergedAt": "2025-12-18T19:22:17Z",
      "additions": 5002,
      "deletions": 572
    },
    {
      "id": "PR_kwDOMT5cIs65nrpU",
      "title": "refactor(default-message-service): optimize provider handling in MultiStep",
      "author": "standujar",
      "number": 6263,
      "body": "# Risks\r\n\r\nLow. The change only affects the internal execution order of providers in multi-step mode. All providers still execute and return results - just faster.\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nConverts sequential provider execution to parallel execution using `Promise.allSettled` in `runMultiStepCore`. This improves performance when multiple providers need to fetch data simultaneously.\r\n\r\n**Before:** Providers executed one after another (sequential)\r\n**After:** Providers execute in parallel with fault tolerance\r\n\r\n## What kind of change is this?\r\n\r\nImprovements (misc. changes to existing features)\r\n\r\n# Documentation changes needed?\r\n\r\nMy changes do not require a change to the project documentation.\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\n\r\n`packages/core/src/services/default-message-service.ts` - lines 1053-1107\r\n\r\n<img width=\"869\" height=\"1064\" alt=\"Capture d’écran 2025-12-18 à 16 22 43\" src=\"https://github.com/user-attachments/assets/532cd7fd-c4ed-4329-8c6a-ec1cdbcf7311\" />\r\n\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-12-18T15:22:21Z",
      "mergedAt": null,
      "additions": 149,
      "deletions": 32
    },
    {
      "id": "PR_kwDOMT5cIs65gDZn",
      "title": "fix: bootstrap action/provide format change fix + initPromise fix",
      "author": "odilitime",
      "number": 6261,
      "body": "# Risks\r\n\r\nLow, just fixes\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\n- exposes initPromise so plugins can actually use it (duplicates some of #5718 but smaller and simpler)\r\n- fixes message format (we dropped serverId in favor of messageServerId)\r\n\r\n## What kind of change is this?\r\n\r\nImprovements (misc. changes to existing features)\r\n\r\n## Why are we doing this? Any context or related work?\r\n\r\nWhy wouldn't we\r\n\r\n# Documentation changes needed?\r\n\r\nMy changes do not require a change to the project documentation.\r\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Exposes runtime initPromise and updates bootstrap settings/roles to use worldId/messageServerId with decrypted settings from world metadata.\n> \n> - **Core**\n>   - Add `initPromise` to `IAgentRuntime`.\n> - **Bootstrap Plugin**\n>   - **Settings action/provider**:\n>     - Replace `serverId`/`createUniqueUuid` usage with `worldId` and `messageServerId` where applicable.\n>     - Read settings directly from `world.metadata.settings`; decrypt secrets via `getSalt`/`unsaltWorldSettings`.\n>     - Persist updates via `runtime.updateWorld` and verify with `getWorldSettings`.\n>     - Adjust logs/response payloads to reference `worldId` and updated keys.\n>   - **Roles provider**:\n>     - Use `room.worldId` to fetch world and roles; remove `serverId` path.\n> - **Tests/Mocks**\n>   - Add `initPromise` to mock runtimes across test utilities.\n>   - Update mocks/returns to use `messageServerId` and `worldId`; remove `serverId` fields.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 6088455e3f63524f25ffe7959ecc099abce15e6a. 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-18T04:14:51Z",
      "mergedAt": "2025-12-19T01:01:58Z",
      "additions": 96,
      "deletions": 109
    },
    {
      "id": "PR_kwDOMT5cIs65gGtE",
      "title": "remove reassign runtime.db to individual connection",
      "author": "nguyennk92",
      "number": 6262,
      "body": "# Risks\r\nLow\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\nRemove unnecessary manual acquire/release client from PgPool. Official docs stated that using PgPool's query directly is perfectly fine: https://node-postgres.com/apis/pool#poolquery\r\nThe only exception is when we incorrectly run transaction against PgPool, which is not the case since drizzle already handle that for us\r\n\r\n## What kind of change is this?\r\nBug fixes (non-breaking change which fixes an issue)\r\n\r\n## Why are we doing this? Any context or related work?\r\nWe encountered random `Client was closed and not queryable` error when running db query. It only happened within our repository code, never on eliza's core db access. After some digging we found [pg/adapter.ts](https://github.com/elizaOS/eliza/blob/df5758034ab9843e913b1cc7b327f4dad8bb2e0f/packages/plugin-sql/src/pg/adapter.ts#L84) assigning runtime.db to individual PoolClient\r\n\r\nBy re-assign `runtime.db` to a single connection from connection pool, that connection can get dropped even though it was referenced elsewhere, which would cause intermittent error when implementing database access following the Repository pattern guide",
      "repository": "elizaos/eliza",
      "createdAt": "2025-12-18T04:22:47Z",
      "mergedAt": null,
      "additions": 2,
      "deletions": 14
    }
  ],
  "codeChanges": {
    "additions": 5056,
    "deletions": 566,
    "files": 62,
    "commitCount": 15
  },
  "completedItems": [
    {
      "title": "feat: enhance streaming support in text generation",
      "prNumber": 6212,
      "type": "feature",
      "body": "# Relates to\r\n\r\n- Streaming support for text generation models\r\n- CLI test runner improvements\r\n\r\n# Risks\r\n\r\n**Low**. Changes are additive and backward-compatible:\r\n- New streaming API is opt-in via `stream: true` parameter\r\n\r\n# Background\r",
      "files": [
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/src/utils/test-runner.ts",
        "packages/cli/tests/unit/commands/test/e2e-tests.test.ts",
        "packages/client/src/components/ChatMessageListComponent.tsx",
        "packages/client/src/components/chat.tsx",
        "packages/client/src/hooks/use-query-hooks.ts",
        "packages/client/src/hooks/use-socket-chat.ts",
        "packages/client/src/lib/socketio-manager.ts",
        "packages/core/src/__tests__/message-service.test.ts",
        "packages/core/src/__tests__/runtime.test.ts",
        "packages/core/src/__tests__/utils.test.ts",
        "packages/core/src/elizaos.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/elizaos.ts",
        "packages/core/src/types/model.ts",
        "packages/core/src/types/primitives.ts",
        "packages/core/src/types/runtime.ts",
        "packages/core/src/utils.ts",
        "packages/server/src/api/messaging/core.ts",
        "packages/server/src/services/message.ts",
        "packages/server/src/socketio/index.ts",
        "packages/api-client/src/__tests__/services/sessions.test.ts",
        "packages/api-client/src/services/sessions.ts",
        "packages/api-client/src/types/sessions.ts",
        "packages/core/src/__tests__/elizaos-handlemessage.test.ts",
        "packages/core/src/__tests__/elizaos.test.ts",
        "packages/core/src/__tests__/messaging-types.test.ts",
        "packages/core/src/types/messaging.ts",
        "packages/core/src/types/plugin.ts",
        "packages/server/src/__tests__/integration/message-bus-service.test.ts",
        "packages/server/src/__tests__/unit/api/channels-mode.test.ts",
        "packages/server/src/__tests__/unit/api/response-handlers.test.ts",
        "packages/server/src/__tests__/unit/api/sessions.test.ts",
        "packages/server/src/__tests__/unit/services/message-stream-events.test.ts",
        "packages/server/src/api/messaging/channels.ts",
        "packages/server/src/api/messaging/sessions.ts",
        "packages/server/src/api/shared/constants.ts",
        "packages/server/src/api/shared/response-handlers.ts",
        "packages/server/src/api/shared/validation.ts",
        "packages/server/src/types/server.ts",
        "packages/cli/src/commands/scenario/src/UserSimulator.ts",
        "packages/core/src/__tests__/e2e/core-runtime.test.ts",
        "packages/core/src/__tests__/integration/character-runtime.test.ts",
        "packages/core/src/__tests__/integration/memory-runtime.test.ts",
        "packages/core/src/__tests__/runtime-embedding.test.ts",
        "packages/core/src/__tests__/runtime-streaming.test.ts",
        "packages/core/src/__tests__/streaming-context.test.ts",
        "packages/core/src/__tests__/test-helpers.ts",
        "packages/core/src/index.browser.ts",
        "packages/core/src/index.node.ts",
        "packages/core/src/index.ts",
        "packages/core/src/streaming-context.browser.ts",
        "packages/core/src/streaming-context.node.ts",
        "packages/core/src/streaming-context.ts",
        "packages/plugin-bootstrap/src/actions/reply.ts",
        "packages/core/src/__tests__/utils/streaming.test.ts",
        "packages/core/src/types/index.ts",
        "packages/core/src/types/streaming.ts",
        "packages/core/src/utils/streaming.ts",
        "packages/plugin-bootstrap/src/__tests__/actions.test.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "madjin",
      "avatarUrl": "https://avatars.githubusercontent.com/u/32600939?u=cdcf89f44c7a50906c7a80d889efa85023af2049&v=4",
      "totalScore": 119.70478223148879,
      "prScore": 119.70478223148879,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "madjin: Focused on significant feature development and cleanup within `elizaos.github.io`, notably implementing a profile copy button and renaming the site to HiScores in PR #183, alongside a substantial cleanup effort in PR #181 which involved removing over 6k lines of code. Their work primarily centered on feature development, with additional contributions to bug fixes and refactoring, touching documentation, code, and configuration files."
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 40.472485156329135,
      "prScore": 40.27248515632913,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": "odilitime: Focused on other work, making a single commit that modified 5 files with a net addition of 170 lines of code."
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 27.82301337415359,
      "prScore": 22.48301337415359,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0.33999999999999997,
      "summary": "standujar: Focused on feature work and bug fixes, opening a significant refactor PR in elizaos/eliza#6263 to optimize provider handling, while also contributing 6 commits across 10 files with a primary focus on tests and code."
    },
    {
      "username": "nguyennk92",
      "avatarUrl": "https://avatars.githubusercontent.com/u/30664183?u=d6e579cd25d50bc8e9ec4928d95909d759b841db&v=4",
      "totalScore": 8.902606672028108,
      "prScore": 8.902606672028108,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "nguyennk92: Focused on refining database connection management by opening PR elizaos/eliza#6262, which proposes removing the reassignment of `runtime.db` to individual connections, indicating a focus on foundational code improvements."
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 5,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": "0xbbjoker: No activity today."
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "borisudovicic: Focused on documentation, creating one issue in elizaos/eliza (#6264) to address \"Docs\"."
    }
  ],
  "newPRs": 3,
  "mergedPRs": 1,
  "newIssues": 1,
  "closedIssues": 0,
  "activeContributors": 6
}