{
  "interval": {
    "intervalStart": "2025-11-02T00:00:00.000Z",
    "intervalEnd": "2025-11-09T00:00:00.000Z",
    "intervalType": "week"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-11-02 to 2025-11-09, elizaos/eliza had 8 new PRs (2 merged), 22 new issues, and 9 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7V2H1G",
      "title": "Support Tasks",
      "author": "borisudovicic",
      "number": 6131,
      "repository": "elizaos/eliza",
      "body": "* Collaborate with CJ on anonymous ID + free inference architecture.",
      "createdAt": "2025-11-04T18:16:47Z",
      "closedAt": "2025-11-08T12:37:51Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7V2Hh0",
      "title": "Voice Infrastructure",
      "author": "borisudovicic",
      "number": 6130,
      "repository": "elizaos/eliza",
      "body": "* Test browser-based voice generation (client-side).\n* Prepare optional **server voice endpoint** for paid users.\n* Support Compute embeddings integration.",
      "createdAt": "2025-11-04T18:16:25Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7V2HTC",
      "title": "Plugin-Cloud Testing",
      "author": "borisudovicic",
      "number": 6129,
      "repository": "elizaos/eliza",
      "body": "* Test plugin-cloud within Eliza Framework.\n* Verify tool registration + documentation accuracy.",
      "createdAt": "2025-11-04T18:16:06Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7V2Gw0",
      "title": "Docs",
      "author": "borisudovicic",
      "number": 6128,
      "repository": "elizaos/eliza",
      "body": "* Build new /docs UI (public, not auth-locked).\n* Include:\n  * OpenAI-style API explorer.\n  * Character setup & API key usage examples.\n  * Overview of Cloud architecture.",
      "createdAt": "2025-11-04T18:15:26Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7V2Gcb",
      "title": "Eliza Chat",
      "author": "borisudovicic",
      "number": 6127,
      "repository": "elizaos/eliza",
      "body": "* Debug and finalize agent chat responsiveness (speed, model routing).\n* Fix async model issues (switch to faster models via Groq / Kimi).\n* Ensure inference reliability and log monitoring.",
      "createdAt": "2025-11-04T18:14:58Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 1
    }
  ],
  "topPRs": [
    {
      "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_kwDOMT5cIs6xVUO6",
      "title": "feat: x402 middleware",
      "author": "odilitime",
      "number": 6114,
      "body": "pulled enhanced response & health check from Otaku\r\n\r\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Introduces x402 payment protection for plugin routes (EVM/Solana), adds core payment types, integrates verification and x402scan 402 responses, plus config registry, docs, and tests.\n> \n> - **Server (x402 middleware)**:\n>   - Add payment middleware (`x402/`) with EVM (EIP-712/ERC-3009) and Solana verification, facilitator payment ID support, and x402scan-compliant 402 responses.\n>   - Integrate into plugin routing to auto-wrap routes with `x402` config (`createPaymentAwareHandler`, `applyPaymentProtection`).\n>   - Expose middleware/types via `middleware/index.ts` and `x402/index.ts`.\n> - **Core Types**:\n>   - Add payment types (`PaymentEnabledRoute`, `X402Config`, validators, OpenAPI helpers) in `@elizaos/core` (`types/payment.ts` and export in `types/index.ts`).\n> - **Config & Utilities**:\n>   - Add payment config registry (`payment-config.ts`) with built-in configs (`base_usdc`, `solana_usdc`, `polygon_usdc`), CAIP-19 generation, pricing helpers, health reporting.\n>   - Define strict x402 schemas (`x402-types.ts`) and request/response/runtime types (`types.ts`).\n> - **API Integration**:\n>   - Update `api/index.ts` to use payment-aware handlers for plugin routes.\n> - **Docs & Tests**:\n>   - Add comprehensive README for x402 usage.\n>   - Add extensive tests for amount conversion, verification logic, integration, config, and schema validation.\n> - **Dependencies**:\n>   - Add `viem`, `@solana/web3.js`, and `cors` to server; lockfile updates.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit d64e2a5e1045bc204ffb435d0ef74a044efe1287. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-11-04T06:10:07Z",
      "mergedAt": null,
      "additions": 5434,
      "deletions": 10
    },
    {
      "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": 4618,
      "deletions": 1062
    },
    {
      "id": "PR_kwDOMT5cIs6xr7AQ",
      "title": "fix: entity names array serialization for PostgreSQL",
      "author": "0xbbjoker",
      "number": 6133,
      "body": "Fix entity creation failures by normalizing the names field to ensure it's\r\nalways a proper array before database operations. Handles Set objects by\r\nconverting them with Array.from().\r\n\r\n- Add normalization in createEntities() and updateEntity()\r\n- Add test suite with 9 comprehensive tests\r\n- All 491 plugin-sql tests pass\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Normalizes `Entity.names` to a proper string array in create/update operations and adds extensive integration tests covering diverse input types.\n> \n> - **Backend (plugin-sql)**:\n>   - Add `private normalizeEntityNames()` in `src/base.ts` to coerce `Entity.names` into a string array (handles strings, arrays, Sets, Maps/iterables, non-iterables, null/undefined; stringifies elements).\n>   - Apply normalization and default `metadata: {}` in `createEntities()` and `updateEntity()`.\n>   - Enhance error logging in `createEntities()` with stack trace on failure.\n> - **Tests**:\n>   - Add `__tests__/integration/entity-array-fix.test.ts` covering creation/update with single/multiple/empty names, Sets, batch insert, special/unicode chars.\n>   - Expand `__tests__/integration/entity-methods.test.ts` with normalization scenarios: string (no char-splitting), Set, Map, custom iterables, numbers/booleans/objects/null/undefined, mixed-type arrays/Sets, and update paths.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 749e83062f833482b41c2b5c2399bdc968b03a70. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-11-05T15:47:36Z",
      "mergedAt": "2025-11-05T17:06:38Z",
      "additions": 819,
      "deletions": 2
    },
    {
      "id": "PR_kwDOMT5cIs6xVNKQ",
      "title": "feat: Framework for adjusting prompts to best fix model contexts",
      "author": "odilitime",
      "number": 6113,
      "body": "# Risks\r\n\r\nLow, new feature, uses some memory but I put configurable limit on it\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nIt add a dynamic prompt execution system\r\n\r\n## What kind of change is this?\r\n\r\nFeatures (non-breaking change which adds functionality)\r\n\r\n## Why are we doing this? Any context or related work?\r\n\r\nPeople may use models with lower context and get hallucination, this helps detect when the context is blown out.\r\n\r\n# Documentation changes needed?\r\n\r\nMy changes require a change to the project documentation.\n\n<!-- CURSOR_SUMMARY -->\n---\n\n> [!NOTE]\n> Introduces a schema-based dynamic prompt executor with validation/retries/metrics and replaces ad-hoc prompting in message flows, plus supporting types/utils and test updates.\n> \n> - **Core Runtime**:\n>   - Add `runtime.dynamicPromptExecFromState(...)` for schema-driven prompt execution (XML/JSON parsing, UUID validation codes, retries, Handlebars state injection, token estimations).\n>   - Track execution metrics via `modelSchemaMetrics` and `modelMetrics` with optional LRU eviction (`DYNAMIC_PROMPT_MAX_ENTRIES`) and retry policy (`VALIDATION_LEVEL`).\n>   - Expose metrics getters/clearers; helper methods for cache/keys; minor logging adjustments.\n> - **Message Service**:\n>   - Replace manual `useModel` + XML parsing with `dynamicPromptExecFromState` in:\n>     - `shouldRespond` evaluation (small model).\n>     - Single-shot handler (requires `thought`, `actions`).\n>     - Multi-step decision loop and final summary.\n>   - Improve error logging and minor flow tweaks.\n> - **Types/Utils**:\n>   - Export `SchemaRow` and `State` from `types`; extend `IAgentRuntime` with `dynamicPromptExecFromState`.\n>   - Export `upgradeDoubleToTriple` and `composeRandomUser` from `utils`.\n> - **Tests/Test Utils**:\n>   - Update `message-service` tests to mock `dynamicPromptExecFromState` responses.\n>   - Add mock implementation in test runtime; minor logger formatting changes.\n> \n> <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 5905b5f9ab86dd7b7d727d92060575f42a8fc707. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup>\n<!-- /CURSOR_SUMMARY -->",
      "repository": "elizaos/eliza",
      "createdAt": "2025-11-04T05:53:02Z",
      "mergedAt": null,
      "additions": 807,
      "deletions": 87
    }
  ],
  "codeChanges": {
    "additions": 896,
    "deletions": 37,
    "files": 7,
    "commitCount": 67
  },
  "completedItems": [
    {
      "title": "fix: entity names array serialization for PostgreSQL",
      "prNumber": 6133,
      "type": "bugfix",
      "body": "Fix entity creation failures by normalizing the names field to ensure it's\r\nalways a proper array before database operations. Handles Set objects by\r\nconverting them with Array.from().\r\n\r\n- Add normalization in createEntities() and updateEn",
      "files": [
        "packages/plugin-sql/src/__tests__/integration/entity-array-fix.test.ts",
        "packages/plugin-sql/src/__tests__/integration/entity-methods.test.ts",
        "packages/plugin-sql/src/base.ts"
      ]
    },
    {
      "title": "feat(core): add skipMigrations option to runtime.initialize() for ser…",
      "prNumber": 6132,
      "type": "feature",
      "body": "- Add optional skipMigrations parameter to initialize() method in IAgentRuntime interface\r\n- Implement skipMigrations logic in AgentRuntime.initialize() to conditionally skip plugin migrations\r\n- Default behavior unchanged - migrations run ",
      "files": [
        "bun.lock",
        "packages/core/src/__tests__/runtime.test.ts",
        "packages/core/src/runtime.ts",
        "packages/core/src/types/runtime.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 260.61262832690966,
      "prScore": 260.0726283269097,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.54,
      "summary": null
    },
    {
      "username": "Freytes",
      "avatarUrl": "https://avatars.githubusercontent.com/u/4147278?u=89aa9570e6f8b4a8e9e41e8f908c16fb69c5a43f&v=4",
      "totalScore": 232.1658694828805,
      "prScore": 232.1658694828805,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "standujar",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4",
      "totalScore": 118.75269555221574,
      "prScore": 108.55269555221574,
      "issueScore": 0,
      "reviewScore": 10,
      "commentScore": 0.2,
      "summary": "standujar: Focused on significant new feature development, opening several substantial pull requests to implement entity-level row-level security (elizaos/eliza#6107) and integrate a unified messaging API (elizaos-plugins/plugin-discord#24). The complexity of this work is highlighted by the extensive code changes (+4640/-1654 lines across 187 files). This activity shows a primary focus on feature implementation and refactoring, supported by a significant amount of new test code."
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 103.01710255012722,
      "prScore": 98.01710255012722,
      "issueScore": 0,
      "reviewScore": 5,
      "commentScore": 0,
      "summary": "0xbbjoker: Made progress on development work this week, committing changes across 9 files (+596/-384) with a focus on bugfixes. In addition to this unsubmitted work, they also supported the team by providing one PR approval."
    },
    {
      "username": "borisudovicic",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4",
      "totalScore": 36,
      "prScore": 0,
      "issueScore": 36,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "borisudovicic: Focused on planning future work in the elizaos/eliza repository by creating three issues. These issues outline potential new features and architectural considerations, including \"Points / Leaderboard\" (#6110), \"Background tasks\" (#6109), and \"Parallel actions\" (#6108)."
    },
    {
      "username": "madjin",
      "avatarUrl": "https://avatars.githubusercontent.com/u/32600939?u=cdcf89f44c7a50906c7a80d889efa85023af2049&v=4",
      "totalScore": 23.146346309695485,
      "prScore": 23.146346309695485,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "madjin: This week, madjin focused on expanding the project's data pipeline by updating its configuration. They merged a pull request in elizaos/elizaos.github.io (#169) that added 12 new active repositories. This contribution consisted entirely of configuration changes."
    },
    {
      "username": "ai16x402",
      "avatarUrl": "https://avatars.githubusercontent.com/u/241517257?u=db5e37fbc5cfc2fc78bd2de767f7235704dc2b0f&v=4",
      "totalScore": 18.743735902799724,
      "prScore": 18.305735902799725,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0.43799999999999994,
      "summary": "ai16x402 focused on expanding the plugin ecosystem by submitting the new \"AI16z Trading Insights\" plugin. They opened two pull requests in elizaos-plugins/registry (#238, #239) to add the plugin. This work consisted of several commits modifying configuration files."
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 16,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 16,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "otaku-x402",
      "avatarUrl": "https://avatars.githubusercontent.com/u/242004857?u=1325b26d380eec4a0b8d84e8e249c523eebd28dc&v=4",
      "totalScore": 11.897573590279972,
      "prScore": 11.897573590279972,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "LinuxIsCool",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31582215?u=b8eb5d3849bf877a3a0b686cf1632aca92e744ae&v=4",
      "totalScore": 4,
      "prScore": 0,
      "issueScore": 4,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "samarth30",
      "avatarUrl": "https://avatars.githubusercontent.com/u/48334430?u=1fc119a6c2deb8cf60448b4c8961cb21dc69baeb&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "linear",
      "avatarUrl": "https://avatars.githubusercontent.com/in/20150?v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": "linear: This week, linear's activity was focused on planning, where they created an issue to define entity-level row-level security (elizaos/eliza#6112)."
    }
  ],
  "newPRs": 8,
  "mergedPRs": 2,
  "newIssues": 22,
  "closedIssues": 3,
  "activeContributors": 9
}