{
  "interval": {
    "intervalStart": "2025-12-04T00:00:00.000Z",
    "intervalEnd": "2025-12-05T00:00:00.000Z",
    "intervalType": "day"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-12-04 to 2025-12-05, elizaos/eliza had 3 new PRs (3 merged), 1 new issues, and 3 active contributors.",
  "topIssues": [
    {
      "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": null,
      "state": "OPEN",
      "commentCount": 1
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs623me3",
      "title": "feat: Unified API - serverless - nodejs",
      "author": "standujar",
      "number": 6201,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-12-03T16:15:31Z",
      "mergedAt": "2025-12-04T13:22:56Z",
      "additions": 324,
      "deletions": 88
    },
    {
      "id": "PR_kwDOMT5cIs63BWDH",
      "title": "fix(plugin-sql): migrate to messageService API and auto-create PGLite directories",
      "author": "wtfsayo",
      "number": 6202,
      "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. Adding automatic PGLite data directory creation in the SQL plugin with comprehensive tests\n\n## Changes\n\n### Examples ( & )\n- ✅ Replace deprecated `MESSAGE_RECEIVED` event with `messageService.handleMessage()` API\n- ✅ Set `LOG_LEVEL` to `'silent'` for cleaner console output\n- ✅ Remove manual file system directory creation (now handled by SQL plugin)\n- ✅ Remove unused `EventType` and `fs` imports\n- ✅ Fix `messageServerId` to be properly converted to UUID in `standalone-cli-chat.ts`\n- ✅ Improve response handling with fallback to `result.responseContent.text`\n- ✅ Update inline documentation and comments\n\n### SQL Plugin\n- ✅ Add automatic directory creation in `createDatabaseAdapter()` (both `index.ts` and `index.node.ts`)\n  - Creates directories for file paths only (not for `memory://`, `idb://`, or other special URIs)\n  - Skips directory creation when using PostgreSQL\n  - Uses `mkdirSync(dataDir, { recursive: true })` to ensure parent directories are created\n- ✅ Add comprehensive unit tests in `__tests__/unit/directory-creation.test.ts`:\n  - Tests directory creation for new file paths\n  - Tests that existing directories don't cause errors\n  - Tests that special URIs (`memory://`, `idb://`) don't trigger directory creation\n  - Tests that PostgreSQL usage doesn't trigger directory creation\n\n## Testing\n\n- [x] All existing tests pass\n- [x] New unit tests added for directory creation logic\n- [ ] Manual testing of `standalone.ts` example\n- [ ] Manual testing of `standalone-cli-chat.ts` example\n\n## Type of Change\n\n- [x] Bug fix (non-breaking change which fixes deprecation warnings)\n- [x] Improvement (better directory handling and error prevention)\n- [x] Test coverage improvement\n\n## Related Issues\n\n- Fixes deprecation warnings in example files\n- Improves developer experience by auto-creating required directories\n- Prevents runtime errors from missing PGLite data directories\n\n## Migration Guide\n\nUsers of the examples will now benefit from:\n- Cleaner, non-deprecated API usage\n- Automatic directory creation (no manual setup needed)\n- Better error messages and response handling\n\nNo breaking changes - fully backward compatible.\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Updates examples to use messageService.handleMessage and adds automatic PGLite directory creation in the SQL plugin with tests.\n> \n> - **Examples**:\n>   - Replace deprecated `EventType.MESSAGE_RECEIVED` with `runtime.messageService.handleMessage()` in `examples/standalone.ts` and `examples/standalone-cli-chat.ts`.\n>   - Set `process.env.LOG_LEVEL = 'silent'`; remove manual FS dir creation and unused imports.\n>   - Ensure `messageServerId` uses UUID in `standalone-cli-chat.ts`; improve response fallback handling.\n> - **SQL Plugin**:\n>   - In `packages/plugin-sql/src/index.ts` and `index.node.ts`, auto-create PGLite data directory via `mkdirSync(dataDir, { recursive: true })` when `dataDir` is a filesystem path.\n>   - Skip directory creation for `memory://`, `idb://`, and when `postgresUrl` is provided.\n>   - Add unit tests `__tests__/unit/directory-creation.test.ts` covering new directory-creation behavior.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 3048a2784c05991f85f6a7cfab8a892b7fbd1043. 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-04T09:58:20Z",
      "mergedAt": "2025-12-04T11:02:34Z",
      "additions": 160,
      "deletions": 49
    },
    {
      "id": "PR_kwDOMT5cIs63G23O",
      "title": "fix(service): enhance simple response detection logic",
      "author": "standujar",
      "number": 6205,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-12-04T16:25:14Z",
      "mergedAt": null,
      "additions": 6,
      "deletions": 1
    },
    {
      "id": "PR_kwDOMT5cIs63EVvw",
      "title": "fix(examples): respect user LOG_LEVEL in standalone-cli-chat",
      "author": "standujar",
      "number": 6203,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-12-04T13:21:31Z",
      "mergedAt": "2025-12-04T13:22:23Z",
      "additions": 1,
      "deletions": 1
    },
    {
      "id": "PR_kwDOMT5cIs6xETJ-",
      "title": "feat: implement entity-level row level security",
      "author": "standujar",
      "number": 6107,
      "body": "",
      "repository": "elizaos/eliza",
      "createdAt": "2025-11-02T16:12:48Z",
      "mergedAt": null,
      "additions": 0,
      "deletions": 0
    }
  ],
  "codeChanges": {
    "additions": 485,
    "deletions": 138,
    "files": 10,
    "commitCount": 10
  },
  "completedItems": [
    {
      "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"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 48.567768826793674,
      "prScore": 48.36776882679367,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 25.58902691517397,
      "prScore": 25.58902691517397,
      "issueScore": 0,
      "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": 3,
  "mergedPRs": 3,
  "newIssues": 1,
  "closedIssues": 0,
  "activeContributors": 3
}