{
  "prompt_name": "developer-update",
  "category": "dev",
  "date": "2025-12-22",
  "generated_text": "# ElizaOS Developer Update \u2014 2025-12-15 to 2025-12-21\n\nThis week focused on **real-time streaming across core + Cloud**, continued **messaging API standardization** (moving away from legacy event hooks), and hardening **plugin/version compatibility** in the registry ahead of the Cloud MVP ship.\n\n---\n\n## 1) Core Framework\n\n### Streaming primitives landed across runtime/client/server\nCore streaming support was expanded end-to-end in `elizaos/eliza`:\n\n- **Core runtime**: new/extended streaming types and utilities (`StreamingContext`, stream-aware runtime execution paths)\n- **Server**: stream event plumbing in messaging APIs and Socket.IO\n- **Client**: chat UI now supports progressive token rendering instead of \u201csingle final blob\u201d\n- **CLI**: test runner improvements to validate stream behavior\n\nRelevant PR:\n- **Streaming support in text generation**: https://github.com/elizaos/eliza/pull/6212\n\n### Unified API (serverless-friendly) groundwork\nWork continued on the \u201cUnified API\u201d surface intended to run in serverless + Node.js contexts.\n\nRelevant PR:\n- **Unified API \u2014 serverless/nodejs**: https://github.com/elizaos/eliza/pull/6201\n\n### Monorepo release coordination (Cloud streaming dependency chain)\nA concrete release workflow was reaffirmed for Cloud streaming rollout:\n1) **Release monorepo** (`elizaos/eliza`)  \n2) Review/merge **elizacloud-plugin**  \n3) Update **cloud-v2** to latest core\n\n(From developer discussions; ensure your Cloud deployments pull the matching `@elizaos/core` + plugin versions to avoid runtime mismatches.)\n\n---\n\n## 2) New Features\n\n### Real-time streaming responses (opt-in)\nStreaming is now an **opt-in** behavior (rather than default) and is being standardized across runtime + transport layers.\n\n**What you get**\n- Token-by-token UI updates (client)\n- Stream events over Socket.IO (server)\n- Stream-aware execution in core runtime (core)\n\n**Example: enabling streaming in a message flow**\n> Note: API shape varies slightly depending on whether you\u2019re calling core directly, via server HTTP, or Socket.IO. The key contract is passing `stream: true` and providing a stream handler/context.\n\n```ts\nimport { AgentRuntime } from \"@elizaos/core\";\nimport { plugin as sqlPlugin } from \"@elizaos/plugin-sql\";\nimport { openaiPlugin } from \"@elizaos/plugin-openai\";\n\nconst runtime = new AgentRuntime({\n  character: { name: \"DevBot\", bio: \"Streaming demo bot\" },\n  plugins: [sqlPlugin, openaiPlugin],\n});\n\nawait runtime.initialize();\n\n// Pseudocode illustrating the new streaming intent.\n// Use the stream callbacks/hooks provided by your transport (server/socket/client).\nconst result = await runtime.elizaos.sendMessage({\n  roomId: \"room_123\",\n  content: { text: \"Give me a short summary of streaming in ElizaOS.\" },\n  stream: true,\n  onToken: (token: string) => process.stdout.write(token),\n});\n\nconsole.log(\"\\n\\nFinal:\", result.content?.text);\n```\n\nRelevant PR:\n- https://github.com/elizaos/eliza/pull/6212\n\n### ElizaOS Cloud as the default provider in the CLI (DX improvement)\nCLI now recommends **ElizaOS Cloud first**, including a browser-based login flow to provision credentials more smoothly.\n\nRelevant PR:\n- https://github.com/elizaos/eliza/pull/6208\n\n---\n\n## 3) Bug Fixes\n\n### SQL plugin: automatic local directory creation + migration to messageService API\nA common \u201cfresh project\u201d crash was addressed: developers no longer need to manually create `.eliza/` or PGlite directories in many cases.\n\nAlso included: moving examples and plugin wiring away from deprecated message event patterns to `messageService.handleMessage()`.\n\nRelevant PR:\n- https://github.com/elizaos/eliza/pull/6202  \nRelated historical issue context:\n- https://github.com/elizaos/eliza/issues/6204\n\n### Registry: detect + fix core dependency/version mismatches\nThe plugin registry added checks/logic to prevent broken installs caused by mismatched `@elizaos/core` compatibility ranges.\n\nRelevant PR:\n- https://github.com/elizaos-plugins/registry/pull/244\n\n### Client rendering: markdown spacing fixes\nMultiple UI fixes reduced excessive whitespace in markdown-rendered model output.\n\nRelevant PRs:\n- https://github.com/elizaos/eliza/pull/6197\n- https://github.com/elizaos/eliza/pull/6159\n\n---\n\n## 4) API Changes (Developer-Facing)\n\n### Message ingestion: deprecated event hooks \u2192 `messageService.handleMessage()`\nIf you were relying on legacy patterns like subscribing to a `MESSAGE_RECEIVED` event and manually routing, the ecosystem is moving toward a single, explicit message ingestion point:\n\n- **New preferred path**: `messageService.handleMessage(...)`\n- Applies to examples and the SQL plugin integration paths\n\nRelevant PR:\n- https://github.com/elizaos/eliza/pull/6202\n\n### CLI test harness signature alignment\nThe CLI\u2019s e2e test command was failing due to an API signature mismatch; this was corrected to reflect the current runtime start contract.\n\nRelevant PR:\n- https://github.com/elizaos/eliza/pull/6207\n\n---\n\n## 5) Social Media Integrations\n\n### Discord plugin: refactors + permissioned invite URLs\n- Ongoing internal message handling refactor (preparing for unified messaging patterns)\n- A **tiered permission system for bot invite URLs** was merged (useful for safer deployments across multiple guilds)\n\nRelevant PRs:\n- Refactor (in progress): https://github.com/elizaos-plugins/plugin-discord/pull/32\n- Tiered invite permissions (merged): https://github.com/elizaos-plugins/plugin-discord/pull/33\n\n### Telegram plugin: unified messaging API refactor started\nTelegram began aligning to the same standardized messaging contract as core.\n\nRelevant PR:\n- https://github.com/elizaos-plugins/plugin-telegram/pull/22\n\n### X (Twitter) business integration\nA deal with **X** was confirmed in developer discussion, which likely impacts forthcoming official Twitter/X integration strategy and deployment pathways (details pending public technical spec). Keep an eye on upcoming PRs/issues as this formalizes.\n\n---\n\n## 6) Model Provider Updates\n\n### Streaming rollout across provider plugins (in flight)\nProvider plugins have active work to implement consistent streaming behavior:\n- OpenAI: https://github.com/elizaos-plugins/plugin-openai/pull/21  \n- Anthropic: https://github.com/elizaos-plugins/plugin-anthropic/pull/12  \n- OpenRouter: https://github.com/elizaos-plugins/plugin-openrouter/pull/21  \n\n### OpenRouter plugin: version bump\n- https://github.com/elizaos-plugins/plugin-openrouter/pull/22\n\n### \u201cModel agnostic\u201d direction\nIn developer discussion, the runtime direction remains **provider-agnostic**: streaming and messaging standardization are being implemented in core so that provider plugins can conform with minimal bespoke logic.\n\n---\n\n## 7) Breaking Changes / V1 \u2192 V2 Migration Warnings\n\n### If you still depend on V1-style message events, plan to migrate now\n- Legacy event-driven message intake patterns are being replaced by explicit message service ingestion (`messageService.handleMessage()`).\n- Example migrations are already landing (see #6202), and plugins are being refactored to match (Telegram/Discord PRs above).\n\n**Migration tip (conceptual):**\n```ts\n// Old (conceptual):\nruntime.on(\"MESSAGE_RECEIVED\", (msg) => route(msg));\n\n// New (preferred):\nawait runtime.messageService.handleMessage({\n  roomId,\n  userId,\n  content: { text: incomingText },\n});\n```\n\n### Cloud + core version alignment matters more now\nWith streaming and messaging changes crossing core/server/client boundaries, **version skew** will show up as:\n- missing stream events\n- incompatible message payload shapes\n- broken registry installs (mitigated by registry#244, but you still need to align versions)\n\n**Recommendation**\n- Pin compatible versions across `@elizaos/core`, server/client packages, and your provider plugins.\n- Follow the coordinated release order discussed above when upgrading Cloud deployments.\n\n---\n\n## Links & References\n\n- Core streaming support: https://github.com/elizaos/eliza/pull/6212  \n- SQL plugin messageService migration + dir autocreate: https://github.com/elizaos/eliza/pull/6202  \n- CLI Cloud default provider: https://github.com/elizaos/eliza/pull/6208  \n- Registry core/version mismatch detection: https://github.com/elizaos-plugins/registry/pull/244  \n- Telegram unified messaging API refactor: https://github.com/elizaos-plugins/plugin-telegram/pull/22  \n- Discord refactor: https://github.com/elizaos-plugins/plugin-discord/pull/32  \n- Discord tiered invite permissions: https://github.com/elizaos-plugins/plugin-discord/pull/33  \n- Provider streaming PRs:\n  - OpenAI: https://github.com/elizaos-plugins/plugin-openai/pull/21  \n  - Anthropic: https://github.com/elizaos-plugins/plugin-anthropic/pull/12  \n  - OpenRouter: https://github.com/elizaos-plugins/plugin-openrouter/pull/21",
  "source_references": [
    "2025-12-22\n---\n2025-12-21.md\n---\nFile not found\n---\n2025-12-20.md\n---\n# elizaOS Discord - 2025-12-20\n\n## Overall Discussion Highlights\n\n### Token & Business Updates\n- **Price Concerns**: Community members expressed frustration about ElizaOS token price decline despite the broader market trending upward\n- **Migration Issues**: Ongoing confusion about the migration from AI16z token to ElizaOS token, with the deprecated AI16z token experiencing an unexpected price pump\n- **Business Development**: Team member Borko confirmed a deal signed with X (Twitter)\n- **Roadmap Plans**: Announcement of upcoming Q1/Q2 2026 roadmap after refining the elizaOS codebase\n\n### Technical Developments\n- **Cloud MVP Release**: Team preparing to ship their Cloud MVP product on Monday\n- **Version 1.7.0 Release**: New version released with streaming functionality and npm fixes\n- **Companion Product**: Development of a pocket-sized Eliza companion that \"gives you your attention back\"\n- **Token Utility**: Plans confirmed for implementing elizaOS utility features in upcoming products and token buybacks\n\n### Security Concerns\n- Multiple warnings about scammers targeting community members with suspicious links\n- Community moderators actively preventing users from clicking malicious links\n\n## Key Questions & Answers\n\n**Q: Why is there a 40% price difference when selling on Solana?**  \nA: Omid Sa suggested bridging to BSC chain where liquidity is near 1M.\n\n**Q: Can you migrate tokens if you bought them after Nov 11?**  \nA: Hexx indicated only tokens bought before the snapshot date can be migrated.\n\n**Q: Where can I see the new contract for ElizaOS?**  \nA: Alexei provided contract addresses for multiple chains.\n\n**Q: What model does the agent use?**  \nA: Borko answered it will likely be model agnostic.\n\n**Q: Do you have plans to give people reason to hold elizaOS tokens?**  \nA: Borko confirmed upcoming products will have elizaOS utility and mentioned plans for token buybacks.\n\n**Q: What's the difference between this and playwright/puppeteer?**  \nA: Stan \u26a1 explained it's the same idea, but directly embedded in Claude code.\n\n## Community Help & Collaboration\n\n1. **Token Selling Guidance**\n   - Helper: Omid Sa\n   - Helpee: crypto\n   - Context: User experiencing 40% price difference when selling on Solana\n   - Resolution: Suggested bridging to BSC chain with better liquidity\n\n2. **Scam Prevention**\n   - Helper: Hexx\n   - Helpee: SoCriispy\n   - Context: Warning about scammer sending suspicious links\n   - Resolution: Successfully prevented user from clicking malicious link\n\n3. **Contract Information**\n   - Helper: Alexei\n   - Helpee: mosess01\n   - Context: User needed contract addresses for the new token\n   - Resolution: Provided contract addresses for ElizaOS on multiple chains\n\n4. **Migration Information**\n   - Helper: The Light\n   - Helpee: mosess01\n   - Context: User needed information about migration\n   - Resolution: Directed to the appropriate channel for migration information\n\n5. **Console Log Reading**\n   - Helper: R0am | tip.md\n   - Context: Capability to read console logs\n   - Resolution: Confirmed ability to read console logs but uncertain about other capabilities\n\n## Action Items\n\n### Technical\n- Ship Cloud MVP on Monday (Mentioned by Borko)\n- Implement streaming functionality in v1.7.0 (Mentioned by cjft)\n- Fix npm issues (Mentioned by cjft)\n- Implement token buybacks (Mentioned by Borko)\n\n### Features\n- Develop pocket-sized Eliza companion (Mentioned by Borko)\n- Implement elizaOS utility in upcoming products (Mentioned by Borko)\n- Integration with TradingView for chart functionality (Mentioned by sayonara)\n\n### Documentation\n- Release 2026 Q1 and Q2 roadmap (Mentioned by Borko)\n---\n2025-12-19.md\n---\n# elizaOS Discord - 2025-12-19\n\n## Overall Discussion Highlights\n\n### Token Migration & Ecosystem\n- The community continues to discuss the migration from ai16z to elizaOS tokens, with mixed sentiments\n- February 4, 2026 is the confirmed deadline for token migration, after which unmigrated tokens will be abandoned\n- Some users expressed frustration about price decline while others remain optimistic\n- Clarification that ai16z no longer has utility and elizaOS is the path forward, though ai16z remains tradable on DEXs\n\n### Development Progress\n- **Cloud Streaming Functionality**: Team preparing for Monday release with streaming capabilities\n- **EVM Support**: Ongoing development work on EVM support for Spartan with active PRs\n- **Knowledge Repository**: Updates to the repository providing data for building agents that can reason with activity in the elizaOS ecosystem\n- **GitHub Analytics**: New JSON endpoints for leaderboards and summaries at different time intervals (daily, weekly, monthly)\n- **Plugin Development**: Odilitime shared a GitHub repository for an engagement plugin and mentioned committing recent work\n\n### Technical Infrastructure\n- Monorepo management workflow established: release monorepo first, then review/merge elizacloud-plugin, finally update core version in cloud-v2\n- NPM token issues being addressed as NPM changed their tokens and deleted classic tokens\n- Conversation blocking issue fixed when no summary existed, improving chat creation\n\n## Key Questions & Answers\n\n**Q: What happens to unmigrated tokens after the deadline?**  \nA: The unmigrated tokens will be abandoned in the old contract, and no more tokens will be minted after February 4, 2026, making the supply completely locked. (Kenk)\n\n**Q: How can I migrate my ai16z tokens if I have 0 eligible?**  \nA: Go to the migration-support channel. (Omid Sa)\n\n**Q: Should I buy ai16z?**  \nA: No. (Serikiki)\n\n**Q: What's the elizaOS ticker?**  \nA: It's elizaos. (Serikiki)\n\n**Q: Why is ai16z still pumping despite the migration?**  \nA: The token having no utility doesn't mean it doesn't have a market; it's still available on DEXs so people may pump it for various reasons. (Serikiki)\n\n**Q: Is there anything else remaining for streaming on cloud?**  \nA: Need to release monorepo, review/merge elizacloud-plugin, and use latest core version into cloud-v2, in that order. (Stan \u26a1)\n\n## Community Help & Collaboration\n\n- **Token Migration Support**: Omid Sa directed roybot to the migration-support channel when they couldn't migrate tokens and had \"0 eligible\" showing\n- **Token Status Clarification**: Serikiki and Odilitime helped multiple users understand the current status of ai16z vs elizaOS\n- **EVM Capabilities**: Odilitime shared a PR showing ongoing development work on EVM support in response to Roman V's concerns\n- **Knowledge Repository**: Jin shared updated information on the knowledge repository and various API endpoints for data integration to help Roman V with onchain capabilities\n- **GitHub Analytics**: Jin fixed and merged a feature for JSON endpoints for leaderboard in the knowledge repo submitted by 0xbbjoker\n\n## Action Items\n\n### Technical\n- Release monorepo before merging elizacloud-plugin (Mentioned by Stan \u26a1)\n- Review and merge elizacloud-plugin for streaming on cloud (Mentioned by Stan \u26a1)\n- Update cloud-v2 to use latest core version (Mentioned by Stan \u26a1)\n- Fix core version on elizacloud-plugin to use stable version instead of old alpha (Mentioned by Stan \u26a1)\n- Get new NPM token for release as classic token was deleted (Mentioned by cjft)\n- Complete Monday release with streaming functionality (Mentioned by Borko)\n- Update GitHub repository with latest code for engagement plugin (Mentioned by Odilitime)\n- Review and potentially contribute to the plugin-evm pull request for improved EVM support (Mentioned by Odilitime)\n- Explore the knowledge repository for building agents that can reason with elizaOS ecosystem activity (Mentioned by Jin)\n- Investigate using nano banana pro with knowledge data to generate infographics (Mentioned by Jin)\n\n### Documentation\n- Create clear explanation of token migration process and deadlines (Mentioned by roybot, Error P015-A)\n- Choose a name for the GitHub analytics project (currently considering \"GitScape\") (Mentioned by Jin)\n\n### Feature\n- Develop AI agents for internet support and customer service applications (Mentioned by Error P015-A)\n- Develop plugin-visualization to help make infographics from any data (Mentioned by Odilitime)\n---\n2025-12-21.json\n---\nFile not found\n---\n2025-12-21.md\n---\nFile not found\n---\n2025-12-21.json\n---\nFile not found\n---\n2025-12-21.md\n---\nFile not found\n---\n2025-12-22.md\n---\nFile not found\n---\n2025-12-14.md\n---\n# Overall Project Weekly Summary (Dec 14 - 20, 2025)\n\n## Executive Summary\nThis week, the project advanced on two key fronts: strengthening the platform's core architecture for future growth and laying the groundwork for a major user experience overhaul. Foundational refactoring began in key plugins to improve modularity, while critical bug fixes in the core platform enhanced stability. This work was complemented by a strategic push toward decentralization with the release of a new self-hosted plugin, directly supporting our mission of user autonomy.\n\n### Key Strategic Initiatives & Outcomes\n\n-   **Strengthening the Architectural Foundation**\n    This foundational work is crucial for building a more modular, scalable, and maintainable system, enabling faster development of future capabilities.\n    -   Work began on a significant refactor in the **[elizaos-plugins/plugin-telegram](https://github.com/elizaos-plugins/plugin-telegram)** to create a standardized way for it to communicate with the core framework.\n    -   A similar initiative was started in **[elizaos-plugins/plugin-discord](https://github.com/elizaos-plugins/plugin-discord)** to improve its internal message handling logic, enhancing the codebase's structure.\n\n-   **Advancing Decentralization and User Control**\n    In line with our core philosophy, this initiative reduces reliance on centralized services and gives users greater control over their data and infrastructure.\n    -   A new self-hosted Farcaster plugin was added to the **[elizaos-plugins/registry](https://github.com/elizaos-plugins/registry)**, empowering users to connect to their own Farcaster hub and removing dependency on third-party APIs.\n\n-   **Improving Stability and Planning for a User-Friendly Future**\n    We are focused on ensuring the platform is reliable for current users while strategically planning to make it more accessible for broader adoption.\n    -   A critical fix was merged in **[elizaos/eliza](https://github.com/elizaos/eliza)** to ensure users on older versions have a smooth, error-free data migration when updating the platform.\n    -   A comprehensive plan for a major user experience overhaul was detailed in **[elizaos/eliza](https://github.com/elizaos/eliza)**, with a focus on simplifying onboarding, using more intuitive language, and streamlining agent management.\n\n## Repository Spotlights\n\n### elizaos/eliza\nThe core repository saw a dual focus on immediate stability improvements and strategic planning for a major user experience enhancement.\n-   **Stabilization:**\n    -   The SQL plugin was enhanced to ensure smooth data migration for users updating from older versions, preventing breaking changes ([#6215](https://github.com/elizaos/eliza/pull/6215)).\n    -   A test failure in the CLI was resolved to improve the reliability of the development environment ([#6207](https://github.com/elizaos/eliza/pull/6207)).\n-   **User Experience:**\n    -   Two UI improvements were rapidly implemented to make the plugin selection process more intuitive ([#6235](https://github.com/elizaos/eliza/issues/6235), [#6236](https://github.com/elizaos/eliza/issues/6236)).\n    -   A detailed roadmap for a UI/UX overhaul was established through numerous new issues, with key themes including a redesigned dashboard ([#6222](https://github.com/elizaos/eliza/issues/6222)), guided user onboarding ([#6221](https://github.com/elizaos/eliza/issues/6221)), and simplifying technical jargon like \"Knowledge\" to \"Files\" ([#6237](https://github.com/elizaos/eliza/issues/6237)).\n-   **Future Features:**\n    -   Planning began for significant new capabilities, including web search functionality ([#6246](https://github.com/elizaos/eliza/issues/6246)) and a guide for AI agent payments ([#6244](https://github.com/elizaos/eliza/issues/6244)).\n\n### elizaos-plugins/registry\nThis repository advanced the project's decentralization goals with a key feature release.\n-   A new self-hosted Farcaster plugin was merged ([#243](https://github.com/elizaos-plugins/registry/pull/243)), allowing the system to connect to a user-run hub and reducing reliance on centralized third-party services.\n\n### elizaos-plugins/plugin-telegram\nWork in this repository focused on a strategic architectural improvement to align better with the core framework.\n-   A pull request was opened to begin implementing a unified messaging API ([#22](https://github.com/elizaos-plugins/plugin-telegram/pull/22)), a foundational change to standardize communication and improve modularity.\n\n### elizaos-plugins/plugin-discord\nDevelopment activity was centered on improving the plugin's internal code structure for long-term health.\n-   Work began on refactoring the core message handling logic ([#32](https://github.com/elizaos-plugins/plugin-discord/pull/32)) to enhance the codebase's structure and maintainability.\n---\n2025-12-01.md\n---\n# Overall Project Monthly Summary (December 2025)\n\n## Executive Summary\nDecember was a pivotal month focused on strengthening the ElizaOS foundation and strategically expanding its capabilities. We executed a major push to improve core platform stability and defined a clear vision for a future user experience overhaul. Simultaneously, we expanded our agent ecosystem with key Web3 plugins and initiated a coordinated effort to introduce real-time streaming, making our agents more responsive and interactive.\n\n### Key Strategic Initiatives & Outcomes\n\n**Strengthening the Core Platform for Stability and Scale**\nTo support increasingly complex and autonomous agents, we invested heavily in making the underlying framework more robust, secure, and modern.\n-   A major server refactoring was completed in [elizaos/eliza](https://github.com/elizaos/eliza) to optimize the codebase and improve reliability ([#6199](https://github.com/elizaos/eliza/pull/6199)).\n-   Code quality and type safety were significantly enhanced by resolving build errors across the entire `elizaos/eliza` monorepo ([#6218](https://github.comcom/elizaos/eliza/pull/6218)).\n-   A critical security vulnerability in character secret encryption was fixed, ensuring user data is properly protected ([#6217](https://github.comcom/elizaos/eliza/pull/6217)).\n-   Agent autonomy was improved by enhancing how tools interact with memory in the Master Control Program, laying the groundwork for more sophisticated reasoning ([elizaos-plugins/plugin-mcp](https://github.com/elizaos-plugins/plugin-mcp), [#19](https://github.com/elizaos-plugins/plugin-mcp/pull/19)).\n\n**Expanding the Agent Ecosystem into Web3 and Beyond**\nWe continued to execute on our mission to thrive in both Web2 and Web3 by adding powerful new tools for agents to use.\n-   The [elizaos-plugins/registry](https://github.com/elizaos-plugins/registry) was expanded with three new community plugins, adding capabilities for DeFi ([#235](https://github.com/elizaos-plugins/registry/pull/235)), decentralized social media ([#243](https://github.com/elizaos-plugins/registry/pull/243)), and communication ([#242](https://github.com/elizaos-plugins/registry/pull/242)).\n-   The new self-hosted Farcaster plugin is a key step toward greater agent autonomy, allowing agents to connect directly to the network without relying on third-party APIs ([#243](https://github.com/elizaos-plugins/registry/pull/243)).\n\n**Laying the Groundwork for Real-Time, Responsive Agents**\nFor agents to feel truly interactive, they must process and respond to information as it arrives, not just after a long pause.\n-   Work was initiated across multiple plugins to add streaming support, a foundational feature for enabling real-time, conversational AI. This effort included the [OpenAI](https://github.com/elizaos-plugins/plugin-openai) ([#21](https://github.com/elizaos-plugins/plugin-openai/pull/21)), [Anthropic](https://github.com/elizaos-plugins/plugin-anthropic) ([#12](https://github.com/elizaos-plugins/plugin-anthropic/pull/12)), and [OpenRouter](https://github.com/elizaos-plugins/plugin-openrouter) ([#21](https://github.com/elizaos-plugins/plugin-openrouter/pull/21)) plugins.\n\n**Refining the User Experience and Planning for the Future**\nMaking the platform intuitive is key to growing our community. This month, we cleared existing UI issues and laid out a detailed plan for a major user experience overhaul.\n-   A large number of UI/UX issues were resolved in [elizaos/eliza](https://github.com/elizaos/eliza), streamlining the interface by consolidating navigation ([#6173](https://github.com/elizaos/eliza/issues/6173)) and improving visual feedback ([#6235](https://github.com/elizaos/eliza/issues/6235)).\n-   A comprehensive plan for a redesigned dashboard and guided user onboarding was established through the creation of over 20 new strategic issues in [elizaos/eliza](https://github.com/elizaos/eliza) ([#6221](https://github.com/elizaos/eliza/issues/6221), [#6222](https://github.com/elizaos/eliza/issues/6222)).\n-   The developer experience was simplified by making ElizaOS Cloud the default AI provider in the CLI, complete with a new browser-based login flow ([elizaos/eliza](https://github.com/elizaos/eliza), [#6208](https://github.com/elizaos/eliza/pull/6208)).\n\n### Cross-Repository Coordination\nThis month saw a coordinated push to standardize and modernize key functionalities across the ElizaOS ecosystem.\n-   **Unified Streaming Support:** A parallel effort began across the `plugin-openai`, `plugin-anthropic`, and `plugin-openrouter` repositories to implement streaming. This shared initiative will bring more responsive, real-time interactions to agents regardless of the underlying model provider.\n-   **Architectural Alignment:** Following the modernization of core APIs in `elizaos/eliza`, work began in the `plugin-telegram` ([#22](https://github.com/elizaos-plugins/plugin-telegram/pull/22)) and `plugin-discord` ([#32](https://github.com/elizaos-plugins/plugin-discord/pull/32)) plugins to refactor their messaging systems. This alignment ensures all plugins communicate with the core framework in a standardized, more modular way.\n\n## Repository Spotlights\n\n### elizaos/eliza\nThe core repository saw extensive activity focused on stability, user experience, and future planning.\n-   Completed a major server refactoring to optimize the codebase and API structure ([#6199](https://github.com/elizaos/eliza/pull/6199)).\n-   Resolved TypeScript build errors across the monorepo, significantly improving code stability and type safety ([#6218](https://github.com/elizaos/eliza/pull/6218)).\n-   Updated all project dependencies to their latest versions, resolving compatibility issues ([#6210](https://github.com/elizaos/eliza/pull/6210)).\n-   Fixed a critical security bug in character secret encryption ([#6217](https://github.comcom/elizaos/eliza/pull/6217)).\n-   Streamlined the developer experience by making ElizaOS Cloud the default provider in the CLI, adding a new browser-based login flow ([#6208](https://github.com/elizaos/eliza/pull/6208)).\n-   Closed a large batch of UI/UX issues, including consolidating the sidebar ([#6173](https://github.com/elizaos/eliza/issues/6173)) and adding an \"Unsaved Changes\" warning ([#6183](https://github.com/elizaos/eliza/issues/6183)).\n-   Opened over 20 new issues to define a comprehensive overhaul of the dashboard ([#6222](https://github.com/elizaos/eliza/issues/6222)) and agent creation workflow.\n-   Addressed community concerns regarding token snapshot eligibility for Tangem wallet users ([#6158](https://github.com/elizaos/eliza/issues/6158), [#6211](https://github.com/elizaos/eliza/issues/6211)).\n\n### elizaos-plugins/registry\nThe registry was expanded with new plugins, broadening agent capabilities in Web2 and Web3.\n-   Added the Moralis DeFi plugin (`@pyboom/plugin-moralis-v2`) to provide agents with Moralis v2 functionalities ([#235](https://github.com/elizaos-plugins/registry/pull/235)).\n-   Integrated the OpenChat plugin (`@tonyflam/plugin-openchat`) for agent communication ([#242](https://github.com/elizaos-plugins/registry/pull/242)).\n-   Introduced a self-hosted Farcaster plugin (`plugin-farcaster-local-hub`) that removes dependency on third-party APIs ([#243](https://github.com/elizaos-plugins/registry/pull/243)).\n\n### elizaos-plugins/plugin-mcp\nWork focused on foundational improvements for agent memory and tool interaction.\n-   Refactored memory handling by introducing an optional `mcpText` field and updating `handleToolResponse` to return a `Memory` object, enabling more robust agent configuration ([#19](https://github.com/elizaos-plugins/plugin-mcp/pull/19)).\n\n### elizaos-plugins/plugin-openai\nDevelopment began on a key feature for real-time interaction.\n-   Initiated work to add streaming support, opening a pull request to handle continuous data flows from the OpenAI API ([#21](https://github.com/elizaos-plugins/plugin-openai/pull/21)).\n\n### elizaos-plugins/plugin-anthropic\nWork started on enhancing the plugin's real-time capabilities.\n-   A pull request was opened to introduce streaming support, enabling more dynamic and responsive agent communication ([#12](https://github.com/elizaos-plugins/plugin-anthropic/pull/12)).\n\n### elizaos-plugins/plugin-openrouter\nA significant enhancement was proposed to improve responsiveness.\n-   Work began on adding streaming support and refining the plugin's focus by removing tools support ([#21](https://github.com/elizaos-plugins/plugin-openrouter/pull/21)).\n\n### elizaos-plugins/plugin-telegram\nA major architectural refactor was initiated to improve integration with the core framework.\n-   A pull request was opened to implement a unified messaging API, aiming to standardize communication and enhance modularity ([#22](https://github.com/elizaos-plugins/plugin-telegram/pull/22)).\n\n### elizaos-plugins/plugin-discord\nThe plugin's internal architecture was improved for better maintainability.\n-   Work began on refactoring the message handling system to improve its structure and prepare for future enhancements ([#32](https://github.com/elizaos-plugins/plugin-discord/pull/32)).\n\n### elizaos-plugins/plugin-mysql\nActivity focused on user support and documentation clarification.\n-   Resolved an issue by clarifying that documentation has been centralized in the `elizaos/docs` repository ([#6122](https://github.com/elizaos-plugins/plugin-mysql/issues/6122)).\n-   Provided a helpful tip to users that disabling other plugins may be necessary for successful initial table creation ([#1](https://github.com/elizaos-plugins/plugin-mysql/issues/1)).\n---\n{\n  \"interval\": {\n    \"intervalStart\": \"2025-12-01T00:00:00.000Z\",\n    \"intervalEnd\": \"2026-01-01T00:00:00.000Z\",\n    \"intervalType\": \"month\"\n  },\n  \"repository\": \"elizaos/eliza\",\n  \"overview\": \"From 2025-12-01 to 2026-01-01, elizaos/eliza had 25 new PRs (15 merged), 45 new issues, and 20 active contributors.\",\n  \"topIssues\": [\n    {\n      \"id\": \"I_kwDOMT5cIs7V2Buf\",\n      \"title\": \"Where did packages/docs/ go?\",\n      \"author\": \"LinuxIsCool\",\n      \"number\": 6122,\n      \"repository\": \"elizaos/eliza\",\n      \"body\": \"There was always packages/docs/ where did it get moved to?\",\n      \"createdAt\": \"2025-11-04T18:08:54Z\",\n      \"closedAt\": \"2025-12-01T14:35:46Z\",\n      \"state\": \"CLOSED\",\n      \"commentCount\": 2\n    },\n    {\n      \"id\": \"I_kwDOMT5cIs7cPNBC\",\n      \"title\": \".eliza needed or plugin-sql crashes, should autocreate\",\n      \"author\": \"lalalune\",\n      \"number\": 6204,\n      \"repository\": \"elizaos/eliza\",\n      \"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\",\n      \"createdAt\": \"2025-12-04T14:37:44Z\",\n      \"closedAt\": \"2025-12-08T13:17:08Z\",\n      \"state\": \"CLOSED\",\n      \"commentCount\": 1\n    },\n    {\n      \"id\": \"I_kwDOMT5cIs7cwyy7\",\n      \"title\": \"Snapshot Eligibility Issue + Tangem Wallet Connection Not Supported (Discord Support Compromised)\",\n      \"author\": \"pereslavlland\",\n      \"number\": 6211,\n      \"repository\": \"elizaos/eliza\",\n      \"body\": \"Hi ElizaOS team,\\n\\nI\u2019m trying to complete the AI16Z \u2192 ElizaOS migration, but I\u2019m running into two major issues and Discord support has become unreliable due to impersonators. I need help from the real development team to determine the correct path.\\n\\nMy situation:\\n\\n\u2022 I purchased AI16Z tokens on Oct 26 using my Phantom wallet.\\n\u2022 I then moved them to my Tangem wallet for safety.\\n\u2022 On Nov 11 (snapshot date), the tokens were held inside my Tangem wallet.\\n\u2022 The migration portal shows my Phantom wallet as \u201c0 eligible\u201d (expected since Phantom didn\u2019t hold them during snapshot).\\n\u2022 I cannot connect my Tangem wallet to the migration portal because WalletConnect does not support Tangem.\\n\u2022 My Tangem wallet was created using key cards only, so I do not have a seed phrase to export into Phantom.\\n\\nThe Discord server is currently compromised \u2014 multiple impersonators posing as support are entering tickets and attempting to direct users to send tokens manually. Because of this, I cannot rely on Discord support or email responses that appear to be spoofed.\\n\\nWhat I need from the real team:\\n\\nConfirmation of whether Tangem-held tokens during the snapshot are eligible for migration.\\nWhether a manual backend whitelist update is possible so my Phantom wallet can perform migration safely.\\nIf not, what the official and safe method is for users whose eligible snapshot wallet cannot connect to the portal (Tangem case).\\nAny announcements regarding potential whitelist updates or support for non-exportable wallets.\\nI have NOT sent my tokens anywhere and I have NOT interacted with any unofficial links. My tokens are safe. I\u2019m only seeking official guidance from the verifiable team here on GitHub.\\n\\nThank you \u2014 I appreciate your time. I prefer to resolve this safely through GitHub to avoid Discord impersonation issues.\\n\\nActivity\\n\",\n      \"createdAt\": \"2025-12-07T18:00:25Z\",\n      \"closedAt\": null,\n      \"state\": \"OPEN\",\n      \"commentCount\": 1\n    },\n    {\n      \"id\": \"I_kwDOMT5cIs7V2Gw0\",\n      \"title\": \"Docs\",\n      \"author\": \"borisudovicic\",\n      \"number\": 6128,\n      \"repository\": \"elizaos/eliza\",\n      \"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.\",\n      \"createdAt\": \"2025-11-04T18:15:26Z\",\n      \"closedAt\": \"2025-12-10T14:27:42Z\",\n      \"state\": \"CLOSED\",\n      \"commentCount\": 0\n    },\n    {\n      \"id\": \"I_kwDOMT5cIs7YjZ7G\",\n      \"title\": \"can i use deepseek api?\",\n      \"author\": \"870171594\",\n      \"number\": 6156,\n      \"repository\": \"elizaos/eliza\",\n      \"body\": \"**Is your feature request related to a problem? Please describe.**\\n\\n<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->\\n\\n**Describe the solution you'd like**\\n\\n<!-- A clear and concise description of what you want to happen. -->\\n\\n**Describe alternatives you've considered**\\n\\n<!-- A clear and concise description of any alternative solutions or features you've considered. -->\\n\\n**Additional context**\\n\\n<!-- Add any other context or screenshots about the feature request here. -->\\n\",\n      \"createdAt\": \"2025-11-17T12:36:09Z\",\n      \"closedAt\": \"2025-12-08T13:17:30Z\",\n      \"state\": \"CLOSED\",\n      \"commentCount\": 0\n    }\n  ],\n  \"topPRs\": [\n    {\n      \"id\": \"PR_kwDOMT5cIs64E0uE\",\n      \"title\": \"Eliza Cloud Integration, add MCP + A2A service starter, integrate CLI and starter projects tight\",\n      \"author\": \"lalalune\",\n      \"number\": 6216,\n      \"body\": \"The goal of this PR is to tightly integrate the elizaos cloud plugin, which now can use cloud as a db and storage provider, and encourage users through the CLI to get up and running with elizaos cloud. CLI should auto log them in, provision API key and make sure project is set up.\\r\\n\\r\\nPlease thoroughly review and understand the create -> deploy -> publish and monetize flow, may still need some work\",\n      \"repository\": \"elizaos/eliza\",\n      \"createdAt\": \"2025-12-10T07:26:45Z\",\n      \"mergedAt\": null,\n      \"additions\": 9989,\n      \"deletions\": 101\n    },\n    {\n      \"id\": \"PR_kwDOMT5cIs630tVJ\",\n      \"title\": \"Shaw/chore/deslop\",\n      \"author\": \"lalalune\",\n      \"number\": 6213,\n      \"body\": \"This PR removes a lot of slop\\r\\n\\r\\n- Fixes any and unknown and cast types with real types\\r\\n- Removes try catch\\r\\n- Removes sloppy comments\\r\\n- Removes dead files and code\",\n      \"repository\": \"elizaos/eliza\",\n      \"createdAt\": \"2025-12-09T03:59:26Z\",\n      \"mergedAt\": \"2025-12-09T06:22:34Z\",\n      \"additions\": 9246,\n      \"deletions\": 7105\n    },\n    {\n      \"id\": \"PR_kwDOMT5cIs64kuni\",\n      \"title\": \"Main\",\n      \"author\": \"DevGruGold\",\n      \"number\": 6220,\n      \"body\": \"<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\\r\\n\\r\\n# Relates to\\r\\n\\r\\n<!-- LINK TO ISSUE OR TICKET -->\\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\\n<!--\\r\\nLow, medium, large. List what kind of risks and what could be affected.\\r\\n-->\\r\\n\\r\\n# Background\\r\\n\\r\\n## What does this PR do?\\r\\n\\r\\n## What kind of change is this?\\r\\n\\r\\n<!--\\r\\nBug fixes (non-breaking change which fixes an issue)\\r\\nImprovements (misc. changes to existing features)\\r\\nFeatures (non-breaking change which adds functionality)\\r\\nUpdates (new versions of included code)\\r\\n-->\\r\\n\\r\\n<!-- This \\\"Why\\\" section is most relevant if there are no linked issues explaining why. If there is a related issue, it might make sense to skip this why section. -->\\r\\n<!--\\r\\n## Why are we doing this? Any context or related work?\\r\\n-->\\r\\n\\r\\n# Documentation changes needed?\\r\\n\\r\\n<!--\\r\\nMy changes do not require a change to the project documentation.\\r\\nMy changes require a change to the project documentation.\\r\\nIf documentation change is needed: I have updated the documentation accordingly.\\r\\n-->\\r\\n\\r\\n<!-- Please show how you tested the PR. This will really help if the PR needs to be retested and probably help the PR get merged quicker. -->\\r\\n\\r\\n# Testing\\r\\n\\r\\n## Where should a reviewer start?\\r\\n\\r\\n## Detailed testing steps\\r\\n\\r\\n<!--\\r\\nNone: Automated tests are acceptable.\\r\\n-->\\r\\n\\r\\n<!--\\r\\n- As [anon/admin], go to [link]\\r\\n\u00a0 - [do action]\\r\\n\u00a0 - verify [result]\\r\\n-->\\r\\n\\r\\n<!-- If there is a UI change, please include before and after screenshots or videos. This will speed up PRs being merged. It is extra nice to annotate screenshots with arrows or boxes pointing out the differences. -->\\r\\n<!--\\r\\n## Screenshots\\r\\n### Before\\r\\n### After\\r\\n-->\\r\\n\\r\\n<!-- If there is anything about the deployment, please make a note. -->\\r\\n<!--\\r\\n# Deploy Notes\\r\\n-->\\r\\n\\r\\n<!-- \u00a0Copy and paste command line output. -->\\r\\n<!--\\r\\n## Database changes\\r\\n-->\\r\\n\\r\\n<!-- \u00a0Please specify deploy instructions if there is something more than the automated steps. -->\\r\\n<!--\\r\\n## Deployment instructions\\r\\n-->\\r\\n\\r\\n<!-- If you are on Discord, please join https://discord.gg/ai16z and state your Discord username here for the contributor role and join us in #development-feed -->\\r\\n<!--\\r\\n## Discord username\\r\\n\\r\\n-->\\r\\n\",\n      \"repository\": \"elizaos/eliza\",\n      \"createdAt\": \"2025-12-12T14:04:11Z\",\n      \"mergedAt\": null,\n      \"additions\": 6952,\n      \"deletions\": 840\n    },\n    {\n      \"id\": \"PR_kwDOMT5cIs620Si3\",\n      \"title\": \"feat(auth): implement JWT authentication and user management\",\n      \"author\": \"standujar\",\n      \"number\": 6200,\n      \"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` \u2192 JWT authentication required\\r\\n   - `ENABLE_DATA_ISOLATION=false` \u2192 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\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\\r\\n\u2502                    JWT Verification Flow                         \u2502\\r\\n\u251c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2524\\r\\n\u2502  Request with Bearer token                                       \u2502\\r\\n\u2502       \u2193                                                          \u2502\\r\\n\u2502  JWTVerifierFactory.create()                                     \u2502\\r\\n\u2502       \u2193                                                          \u2502\\r\\n\u2502  Priority: Ed25519 > JWKS > Secret > Disabled                   \u2502\\r\\n\u2502       \u2193                                                          \u2502\\r\\n\u2502  verifier.verify(token)                                          \u2502\\r\\n\u2502       \u2193                                                          \u2502\\r\\n\u2502  Extract payload.sub                                             \u2502\\r\\n\u2502       \u2193                                                          \u2502\\r\\n\u2502  entityId = stringToUuid(sub)  \u2190 Derived, NOT stored in JWT     \u2502\\r\\n\u2502       \u2193                                                          \u2502\\r\\n\u2502  req.entityId = entityId                                         \u2502\\r\\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\\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.\",\n      \"repository\": \"elizaos/eliza\",\n      \"createdAt\": \"2025-12-03T11:55:47Z\",\n      \"mergedAt\": null,\n      \"additions\": 6072,\n      \"deletions\": 354\n    },\n    {\n      \"id\": \"PR_kwDOMT5cIs64fjY5\",\n      \"title\": \"Main\",\n      \"author\": \"DevGruGold\",\n      \"number\": 6219,\n      \"body\": \"<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\\r\\n\\r\\n# Relates to\\r\\n\\r\\n<!-- LINK TO ISSUE OR TICKET -->\\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\\n<!--\\r\\nLow, medium, large. List what kind of risks and what could be affected.\\r\\n-->\\r\\n\\r\\n# Background\\r\\n\\r\\n## What does this PR do?\\r\\n\\r\\n## What kind of change is this?\\r\\n\\r\\n<!--\\r\\nBug fixes (non-breaking change which fixes an issue)\\r\\nImprovements (misc. changes to existing features)\\r\\nFeatures (non-breaking change which adds functionality)\\r\\nUpdates (new versions of included code)\\r\\n-->\\r\\n\\r\\n<!-- This \\\"Why\\\" section is most relevant if there are no linked issues explaining why. If there is a related issue, it might make sense to skip this why section. -->\\r\\n<!--\\r\\n## Why are we doing this? Any context or related work?\\r\\n-->\\r\\n\\r\\n# Documentation changes needed?\\r\\n\\r\\n<!--\\r\\nMy changes do not require a change to the project documentation.\\r\\nMy changes require a change to the project documentation.\\r\\nIf documentation change is needed: I have updated the documentation accordingly.\\r\\n-->\\r\\n\\r\\n<!-- Please show how you tested the PR. This will really help if the PR needs to be retested and probably help the PR get merged quicker. -->\\r\\n\\r\\n# Testing\\r\\n\\r\\n## Where should a reviewer start?\\r\\n\\r\\n## Detailed testing steps\\r\\n\\r\\n<!--\\r\\nNone: Automated tests are acceptable.\\r\\n-->\\r\\n\\r\\n<!--\\r\\n- As [anon/admin], go to [link]\\r\\n\u00a0 - [do action]\\r\\n\u00a0 - verify [result]\\r\\n-->\\r\\n\\r\\n<!-- If there is a UI change, please include before and after screenshots or videos. This will speed up PRs being merged. It is extra nice to annotate screenshots with arrows or boxes pointing out the differences. -->\\r\\n<!--\\r\\n## Screenshots\\r\\n### Before\\r\\n### After\\r\\n-->\\r\\n\\r\\n<!-- If there is anything about the deployment, please make a note. -->\\r\\n<!--\\r\\n# Deploy Notes\\r\\n-->\\r\\n\\r\\n<!-- \u00a0Copy and paste command line output. -->\\r\\n<!--\\r\\n## Database changes\\r\\n-->\\r\\n\\r\\n<!-- \u00a0Please specify deploy instructions if there is something more than the automated steps. -->\\r\\n<!--\\r\\n## Deployment instructions\\r\\n-->\\r\\n\\r\\n<!-- If you are on Discord, please join https://discord.gg/ai16z and state your Discord username here for the contributor role and join us in #development-feed -->\\r\\n<!--\\r\\n## Discord username\\r\\n\\r\\n-->\\r\\n\",\n      \"repository\": \"elizaos/eliza\",\n      \"createdAt\": \"2025-12-12T05:13:08Z\",\n      \"mergedAt\": null,\n      \"additions\": 5104,\n      \"deletions\": 662\n    }\n  ],\n  \"codeChanges\": {\n    \"additions\": 14134,\n    \"deletions\": 6079,\n    \"files\": 286,\n    \"commitCount\": 191\n  },\n  \"completedItems\": [\n    {\n      \"title\": \"fix: markdown spacing compact\",\n      \"prNumber\": 6159,\n      \"type\": \"bugfix\",\n      \"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 \",\n      \"files\": [\n        \"packages/client/src/components/ai-elements/response.tsx\",\n        \"packages/client/src/index.css\"\n      ]\n    },\n    {\n      \"title\": \"refactor(server): optimization and reorganization\",\n      \"prNumber\": 6199,\n      \"type\": \"refactor\",\n      \"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\",\n      \"files\": [\n        \"bun.lock\",\n        \"packages/server/src/__tests__/builders/channel.builder.ts\",\n        \"packages/server/src/__tests__/builders/message.builder.ts\",\n        \"packages/server/src/__tests__/integration/agent-server-interaction.test.ts\",\n        \"packages/server/src/__tests__/integration/database-operations.test.ts\",\n        \"packages/server/src/__tests__/integration/message-bus-service.test.ts\",\n        \"packages/server/src/__tests__/unit/api/crud-uuid.test.ts\",\n        \"packages/server/src/__tests__/unit/api/jobs.test.ts\",\n        \"packages/server/src/__tests__/unit/features/socketio-router.test.ts\",\n        \"packages/server/src/__tests__/unit/services/message-bus-compatibility.test.ts\",\n        \"packages/server/src/__tests__/unit/utils/loader-uuid.test.ts\",\n        \"packages/server/src/__tests__/unit/utils/loader.test.ts\",\n        \"packages/server/src/api/index.ts\",\n        \"packages/server/src/api/messaging/channels.ts\",\n        \"packages/server/src/api/messaging/core.ts\",\n        \"packages/server/src/api/messaging/jobs.ts\",\n        \"packages/server/src/api/messaging/messageServers.ts\",\n        \"packages/server/src/api/messaging/sessions.ts\",\n        \"packages/server/src/api/shared/uploads/index.ts\",\n        \"packages/server/src/index.ts\",\n        \"packages/server/src/services/index.ts\",\n        \"packages/server/src/services/loader.ts\",\n        \"packages/server/src/services/message-bus.ts\",\n        \"packages/server/src/services/message.ts\",\n        \"packages/server/src/socketio/index.ts\",\n        \"packages/server/src/types/server.ts\",\n        \"packages/server/src/utils/config.ts\",\n        \"packages/server/src/utils/index.ts\",\n        \"packages/server/src/utils/media-transformer.ts\",\n        \"packages/server/src/utils/upload.ts\"\n      ]\n    },\n    {\n      \"title\": \"fix(client): improve markdown content spacing\",\n      \"prNumber\": 6197,\n      \"type\": \"bugfix\",\n      \"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\",\n      \"files\": [\n        \"packages/client/src/index.css\"\n      ]\n    },\n    {\n      \"title\": \"feat: Unified API - serverless - nodejs\",\n      \"prNumber\": 6201,\n      \"type\": \"feature\",\n      \"body\": \"\",\n      \"files\": [\n        \"bun.lock\",\n        \"packages/core/src/__tests__/elizaos-sendmessage.test.ts\",\n        \"packages/core/src/__tests__/elizaos.test.ts\",\n        \"packages/core/src/elizaos.ts\",\n        \"packages/core/src/types/elizaos.ts\"\n      ]\n    },\n    {\n      \"title\": \"fix(examples): respect user LOG_LEVEL in standalone-cli-chat\",\n      \"prNumber\": 6203,\n      \"type\": \"bugfix\",\n      \"body\": \"\",\n      \"files\": [\n        \"examples/standalone-cli-chat.ts\"\n      ]\n    },\n    {\n      \"title\": \"fix(plugin-sql): migrate to messageService API and auto-create PGLite directories\",\n      \"prNumber\": 6202,\n      \"type\": \"bugfix\",\n      \"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\",\n      \"files\": [\n        \"examples/standalone-cli-chat.ts\",\n        \"examples/standalone.ts\",\n        \"packages/plugin-sql/src/__tests__/unit/directory-creation.test.ts\",\n        \"packages/plugin-sql/src/index.node.ts\",\n        \"packages/plugin-sql/src/index.ts\"\n      ]\n    },\n    {\n      \"title\": \"feat: Add ElizaOS Cloud as Default AI Provider in CLI\",\n      \"prNumber\": 6208,\n      \"type\": \"feature\",\n      \"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\",\n      \"files\": [\n        \"bun.lock\",\n        \"packages/cli/src/commands/create/actions/setup.ts\",\n        \"packages/cli/src/commands/create/utils/selection.ts\",\n        \"packages/cli/src/commands/deploy/utils/api-client.ts\",\n        \"packages/cli/src/commands/login/README.md\",\n        \"packages/cli/src/commands/login/actions/login.ts\",\n        \"packages/cli/src/utils/get-config.ts\",\n        \"packages/cli/tests/commands/create.test.ts\",\n        \"packages/cli/tests/unit/utils/elizacloud-config.test.ts\",\n        \"packages/cli/tests/unit/utils/selection.test.ts\"\n      ]\n    },\n    {\n      \"title\": \"fix(cli): correct startAgents API signature in e2e-tests\",\n      \"prNumber\": 6207,\n      \"type\": \"bugfix\",\n      \"body\": \"## Summary\\r\\n\\r\\n- Fixed `startAgents` API signature mismatch in CLI's e2e-tests.ts\\r\\n- Fixed unit test mock function name (`getElizaCharacter` \u2192 `getDefaultCharacter`)\\r\\n\\r\\n## Problem\\r\\n\\r\\nThe CLI's `elizaos test` command was failing with:\\r\\n```\\r\\nu\",\n      \"files\": [\n        \"packages/cli/src/commands/test/actions/e2e-tests.ts\",\n        \"packages/cli/tests/unit/commands/test/e2e-tests.test.ts\"\n      ]\n    },\n    {\n      \"title\": \"feat: bump deps, fix drizzle-kit across ecosystem\",\n      \"prNumber\": 6210,\n      \"type\": \"feature\",\n      \"body\": \"## \ud83d\udd04 Update All Dependencies to Latest Versions\\n\\n### Problem\\n\\nFound conflicting `drizzle-orm` versions across the monorepo causing compatibility issues:\\n\\n- `drizzle-orm@0.45.0` (root)\\n- `drizzle-orm@0.44.7` (from `@elizaos/plugin-sql`)\\n- `\",\n      \"files\": [\n        \".github/workflows/cli-tests.yml\",\n        \".github/workflows/client-cypress-tests.yml\",\n        \".github/workflows/jsdoc-automation.yml\",\n        \".github/workflows/release.yaml\",\n        \".github/workflows/tauri-ci.yml\",\n        \".github/workflows/update-news.yml\",\n        \"bun.lock\",\n        \"package.json\",\n        \"packages/api-client/package.json\",\n        \"packages/app/package.json\",\n        \"packages/cli/package.json\",\n        \"packages/cli/tests/commands/agent.test.ts\",\n        \"packages/cli/tests/commands/create.test.ts\",\n        \"packages/cli/tests/commands/dev.test.ts\",\n        \"packages/cli/tests/commands/env.test.ts\",\n        \"packages/cli/tests/commands/monorepo.test.ts\",\n        \"packages/cli/tests/commands/plugins.test.ts\",\n        \"packages/cli/tests/commands/publish.test.ts\",\n        \"packages/cli/tests/commands/start.test.ts\",\n        \"packages/cli/tests/commands/tee.test.ts\",\n        \"packages/cli/tests/commands/test.test.ts\",\n        \"packages/cli/tests/commands/update.test.ts\",\n        \"packages/cli/tests/unit/utils/elizacloud-config.test.ts\",\n        \"packages/client/package.json\",\n        \"packages/config/package.json\",\n        \"packages/core/package.json\",\n        \"packages/plugin-bootstrap/package.json\",\n        \"packages/plugin-dummy-services/package.json\",\n        \"packages/plugin-quick-starter/package.json\",\n        \"packages/plugin-sql/build.ts\",\n        \"packages/plugin-sql/package.json\",\n        \"packages/plugin-starter/package.json\",\n        \"packages/project-starter/package.json\",\n        \"packages/project-tee-starter/package.json\",\n        \"packages/server/package.json\",\n        \"packages/service-interfaces/package.json\",\n        \"packages/test-utils/package.json\"\n      ]\n    },\n    {\n      \"title\": \"feat: enhance streaming support in text generation\",\n      \"prNumber\": 6212,\n      \"type\": \"feature\",\n      \"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      \"files\": [\n        \"packages/cli/src/commands/test/actions/e2e-tests.ts\",\n        \"packages/cli/src/utils/test-runner.ts\",\n        \"packages/cli/tests/unit/commands/test/e2e-tests.test.ts\",\n        \"packages/client/src/components/ChatMessageListComponent.tsx\",\n        \"packages/client/src/components/chat.tsx\",\n        \"packages/client/src/hooks/use-query-hooks.ts\",\n        \"packages/client/src/hooks/use-socket-chat.ts\",\n        \"packages/client/src/lib/socketio-manager.ts\",\n        \"packages/core/src/__tests__/message-service.test.ts\",\n        \"packages/core/src/__tests__/runtime.test.ts\",\n        \"packages/core/src/__tests__/utils.test.ts\",\n        \"packages/core/src/elizaos.ts\",\n        \"packages/core/src/runtime.ts\",\n        \"packages/core/src/services/default-message-service.ts\",\n        \"packages/core/src/services/message-service.ts\",\n        \"packages/core/src/types/elizaos.ts\",\n        \"packages/core/src/types/model.ts\",\n        \"packages/core/src/types/primitives.ts\",\n        \"packages/core/src/types/runtime.ts\",\n        \"packages/core/src/utils.ts\",\n        \"packages/server/src/api/messaging/core.ts\",\n        \"packages/server/src/services/message.ts\",\n        \"packages/server/src/socketio/index.ts\",\n        \"packages/api-client/src/__tests__/services/sessions.test.ts\",\n        \"packages/api-client/src/services/sessions.ts\",\n        \"packages/api-client/src/types/sessions.ts\",\n        \"packages/core/src/__tests__/elizaos-handlemessage.test.ts\",\n        \"packages/core/src/__tests__/elizaos.test.ts\",\n        \"packages/core/src/__tests__/messaging-types.test.ts\",\n        \"packages/core/src/types/messaging.ts\",\n        \"packages/core/src/types/plugin.ts\",\n        \"packages/server/src/__tests__/integration/message-bus-service.test.ts\",\n        \"packages/server/src/__tests__/unit/api/channels-mode.test.ts\",\n        \"packages/server/src/__tests__/unit/api/response-handlers.test.ts\",\n        \"packages/server/src/__tests__/unit/api/sessions.test.ts\",\n        \"packages/server/src/__tests__/unit/services/message-stream-events.test.ts\",\n        \"packages/server/src/api/messaging/channels.ts\",\n        \"packages/server/src/api/messaging/sessions.ts\",\n        \"packages/server/src/api/shared/constants.ts\",\n        \"packages/server/src/api/shared/response-handlers.ts\",\n        \"packages/server/src/api/shared/validation.ts\",\n        \"packages/server/src/types/server.ts\",\n        \"packages/cli/src/commands/scenario/src/UserSimulator.ts\",\n        \"packages/core/src/__tests__/e2e/core-runtime.test.ts\",\n        \"packages/core/src/__tests__/integration/character-runtime.test.ts\",\n        \"packages/core/src/__tests__/integration/memory-runtime.test.ts\",\n        \"packages/core/src/__tests__/runtime-embedding.test.ts\",\n        \"packages/core/src/__tests__/runtime-streaming.test.ts\",\n        \"packages/core/src/__tests__/streaming-context.test.ts\",\n        \"packages/core/src/__tests__/test-helpers.ts\",\n        \"packages/core/src/index.browser.ts\",\n        \"packages/core/src/index.node.ts\",\n        \"packages/core/src/index.ts\",\n        \"packages/core/src/streaming-context.browser.ts\",\n        \"packages/core/src/streaming-context.node.ts\",\n        \"packages/core/src/streaming-context.ts\",\n        \"packages/plugin-bootstrap/src/actions/reply.ts\",\n        \"packages/core/src/__tests__/utils/streaming.test.ts\",\n        \"packages/core/src/types/index.ts\",\n        \"packages/core/src/types/streaming.ts\",\n        \"packages/core/src/utils/streaming.ts\",\n        \"packages/plugin-bootstrap/src/__tests__/actions.test.ts\"\n      ]\n    },\n    {\n      \"title\": \"Shaw/chore/deslop\",\n      \"prNumber\": 6213,\n      \"type\": \"other\",\n      \"body\": \"This PR removes a lot of slop\\r\\n\\r\\n- Fixes any and unknown and cast types with real types\\r\\n- Removes try catch\\r\\n- Removes sloppy comments\\r\\n- Removes dead files and code\",\n      \"files\": [\n        \"build-utils.ts\",\n        \"bun.lock\",\n        \"packages/api-client/src/__tests__/integration/no-content-fix.test.ts\",\n        \"packages/api-client/src/__tests__/services/agents.test.ts\",\n        \"packages/api-client/src/__tests__/services/audio.test.ts\",\n        \"packages/api-client/src/__tests__/services/jobs.test.ts\",\n        \"packages/api-client/src/__tests__/services/media.test.ts\",\n        \"packages/api-client/src/__tests__/services/memory.test.ts\",\n        \"packages/api-client/src/__tests__/services/messaging.test.ts\",\n        \"packages/api-client/src/__tests__/services/server.test.ts\",\n        \"packages/api-client/src/__tests__/services/system.test.ts\",\n        \"packages/api-client/src/lib/base-client.ts\",\n        \"packages/api-client/src/services/agents.ts\",\n        \"packages/api-client/src/services/audio.ts\",\n        \"packages/api-client/src/services/jobs.ts\",\n        \"packages/api-client/src/services/media.ts\",\n        \"packages/api-client/src/services/memory.ts\",\n        \"packages/api-client/src/services/messaging.ts\",\n        \"packages/api-client/src/services/sessions.ts\",\n        \"packages/api-client/src/services/system.ts\",\n        \"packages/api-client/src/types/agents.ts\",\n        \"packages/api-client/src/types/jobs.ts\",\n        \"packages/api-client/src/types/media.ts\",\n        \"packages/api-client/src/types/memory.ts\",\n        \"packages/api-client/src/types/server.ts\",\n        \"packages/api-client/src/types/system.ts\",\n        \"packages/app/README.md\",\n        \"packages/app/eslint.config.js\",\n        \"packages/app/index.html\",\n        \"packages/app/package.json\",\n        \"packages/app/src-tauri/Cargo.toml\",\n        \"packages/app/src-tauri/src/lib.rs\",\n        \"packages/app/src/__tests__/main.test.ts\",\n        \"packages/app/src/main.tsx\",\n        \"packages/app/src/types/bun-test.d.ts\",\n        \"packages/app/vite.config.ts\",\n        \"packages/cli/src/commands/agent/actions/crud.ts\",\n        \"packages/cli/src/commands/agent/actions/lifecycle.ts\",\n        \"packages/cli/src/commands/create/actions/creators.ts\",\n        \"packages/cli/src/commands/create/index.ts\",\n        \"packages/cli/src/commands/create/utils/validation.ts\",\n        \"packages/cli/src/commands/deploy/actions/deploy-ecs.ts\",\n        \"packages/cli/src/commands/deploy/types.ts\",\n        \"packages/cli/src/commands/dev/actions/dev-server.ts\",\n        \"packages/cli/src/commands/publish/types.ts\",\n        \"packages/cli/src/commands/report/generate.ts\",\n        \"packages/cli/src/commands/report/src/analysis-engine.ts\",\n        \"packages/cli/src/commands/scenario/docs/README.md\",\n        \"packages/cli/src/commands/scenario/docs/file-format-spec.md\",\n        \"packages/cli/src/commands/scenario/docs/matrix-testing.md\"\n      ]\n    },\n    {\n      \"title\": \"fix: resolve TypeScript build errors in every packages - first step\",\n      \"prNumber\": 6218,\n      \"type\": \"bugfix\",\n      \"body\": \"\",\n      \"files\": [\n        \"packages/api-client/src/lib/base-client.ts\",\n        \"packages/api-client/src/services/audio.ts\",\n        \"packages/api-client/src/types/agents.ts\",\n        \"packages/client/src/components/agent-action-viewer.tsx\",\n        \"packages/client/src/components/chat.tsx\",\n        \"packages/client/src/config/agent-templates.ts\",\n        \"packages/client/src/hooks/__tests__/use-agent-update.test.tsx\",\n        \"packages/client/src/hooks/use-character-convert.ts\",\n        \"packages/client/src/hooks/use-partial-update.ts\",\n        \"packages/client/src/hooks/use-query-hooks.ts\",\n        \"packages/client/src/hooks/use-socket-chat.ts\",\n        \"packages/client/src/lib/api-type-mappers.ts\",\n        \"packages/client/src/lib/socketio-manager.ts\",\n        \"packages/core/src/entities.ts\",\n        \"packages/core/src/logger.ts\",\n        \"packages/core/src/runtime.ts\",\n        \"packages/core/src/types/events.ts\",\n        \"packages/core/src/types/index.ts\",\n        \"packages/core/src/types/plugin.ts\",\n        \"packages/core/src/types/runtime.ts\",\n        \"packages/core/src/types/state.ts\",\n        \"packages/core/src/utils.ts\",\n        \"packages/plugin-bootstrap/src/actions/choice.ts\",\n        \"packages/plugin-bootstrap/src/actions/followRoom.ts\",\n        \"packages/plugin-bootstrap/src/actions/ignore.ts\",\n        \"packages/plugin-bootstrap/src/actions/imageGeneration.ts\",\n        \"packages/plugin-bootstrap/src/actions/muteRoom.ts\",\n        \"packages/plugin-bootstrap/src/actions/reply.ts\",\n        \"packages/plugin-bootstrap/src/actions/roles.ts\",\n        \"packages/plugin-bootstrap/src/actions/sendMessage.ts\",\n        \"packages/plugin-bootstrap/src/actions/unfollowRoom.ts\",\n        \"packages/plugin-bootstrap/src/actions/unmuteRoom.ts\",\n        \"packages/plugin-bootstrap/src/actions/updateEntity.ts\",\n        \"packages/plugin-bootstrap/src/evaluators/reflection.ts\",\n        \"packages/plugin-bootstrap/src/index.ts\",\n        \"packages/plugin-bootstrap/src/providers/actionState.ts\",\n        \"packages/plugin-dummy-services/src/browser/service.ts\",\n        \"packages/plugin-dummy-services/src/e2e/test-utils.ts\",\n        \"packages/plugin-sql/src/base.ts\",\n        \"packages/plugin-sql/src/index.node.ts\",\n        \"packages/plugin-sql/src/index.ts\",\n        \"packages/plugin-sql/src/migrations.ts\",\n        \"packages/plugin-sql/src/pg/adapter.ts\",\n        \"packages/plugin-sql/src/rls.ts\",\n        \"packages/plugin-sql/src/runtime-migrator/runtime-migrator.ts\",\n        \"packages/plugin-sql/src/runtime-migrator/storage/journal-storage.ts\",\n        \"packages/plugin-sql/src/runtime-migrator/storage/migration-tracker.ts\",\n        \"packages/plugin-sql/src/types.ts\",\n        \"packages/server/src/api/agents/runs.ts\",\n        \"packages/server/src/api/audio/conversation.ts\",\n        \"packages/cli/src/commands/scenario/src/EvaluationEngine.ts\",\n        \"packages/cli/src/commands/scenario/src/LocalEnvironmentProvider.ts\",\n        \"packages/cli/src/commands/scenario/src/TrajectoryReconstructor.ts\",\n        \"packages/cli/src/commands/scenario/src/UserSimulator.ts\",\n        \"packages/cli/src/commands/scenario/src/matrix-orchestrator.ts\",\n        \"packages/cli/src/commands/scenario/src/matrix-runner.ts\",\n        \"packages/cli/src/commands/scenario/src/matrix-schema.ts\",\n        \"packages/cli/src/commands/scenario/src/parameter-override.ts\",\n        \"packages/cli/src/commands/scenario/src/run-isolation.ts\",\n        \"packages/cli/src/commands/scenario/src/runtime-factory.ts\",\n        \"packages/cli/src/commands/test/actions/e2e-tests.ts\",\n        \"packages/cli/src/utils/spinner-utils.ts\",\n        \"packages/core/src/__tests__/settings.test.ts\",\n        \"packages/core/src/__tests__/utils.test.ts\",\n        \"packages/core/src/elizaos.ts\",\n        \"packages/core/src/schemas/character.ts\",\n        \"packages/core/src/settings.ts\",\n        \"packages/plugin-bootstrap/src/__tests__/logic.test.ts\"\n      ]\n    },\n    {\n      \"title\": \"fix: encryption for character secrets in correct order\",\n      \"prNumber\": 6217,\n      \"type\": \"bugfix\",\n      \"body\": \"\",\n      \"files\": [\n        \"packages/core/src/__tests__/elizaos.test.ts\",\n        \"packages/core/src/elizaos.ts\",\n        \"packages/server/src/api/agents/crud.ts\",\n        \"packages/server/src/index.ts\"\n      ]\n    },\n    {\n      \"title\": \"fix(plugin-sql): optimize pre-1.6.5 migration, RLS handling and SQL organisation\",\n      \"prNumber\": 6215,\n      \"type\": \"bugfix\",\n      \"body\": \"# Risks\\r\\n\\r\\n**Low** - All changes are backwards compatible and idempotent. Comprehensive test coverage added. Nothing is destructive\\r\\n\\r\\n# Background\\r\\n\\r\\n## What does this PR do?\\r\\n\\r\\n- Adds smooth migration from pre-1.6.5 (camelCase) to 1.6.5+ \",\n      \"files\": [\n        \".github/workflows/plugin-sql-tests.yaml\",\n        \"examples/test-addagents-auto.ts\",\n        \"packages/plugin-sql/docker-compose.test.yml\",\n        \"packages/plugin-sql/package.json\",\n        \"packages/plugin-sql/scripts/init-test-db.sql\",\n        \"packages/plugin-sql/scripts/run-integration-tests.sh\",\n        \"packages/plugin-sql/src/__tests__/fixtures/test-plugin-schema.ts\",\n        \"packages/plugin-sql/src/__tests__/integration/pglite-e2e.test.ts\",\n        \"packages/plugin-sql/src/__tests__/integration/postgres/pg-adapter-integration.test.ts\",\n        \"packages/plugin-sql/src/__tests__/integration/postgres/pglite-adapter.test.ts\",\n        \"packages/plugin-sql/src/__tests__/integration/postgres/postgres-init.test.ts\",\n        \"packages/plugin-sql/src/__tests__/integration/postgres/rls-entity.test.ts\",\n        \"packages/plugin-sql/src/__tests__/integration/postgres/rls-logs.test.ts\",\n        \"packages/plugin-sql/src/__tests__/integration/postgres/rls-message-server-agents.test.ts\",\n        \"packages/plugin-sql/src/__tests__/integration/postgres/rls-server.test.ts\",\n        \"packages/plugin-sql/src/__tests__/migration/dynamic-migration.test.ts\",\n        \"packages/plugin-sql/src/__tests__/migration/e2e/docker-compose.yml\",\n        \"packages/plugin-sql/src/__tests__/migration/e2e/run-upgrade-test.sh\",\n        \"packages/plugin-sql/src/__tests__/migration/migration-before-1.6.5.test.ts\",\n        \"packages/plugin-sql/src/__tests__/migration/production-scenario.test.ts\",\n        \"packages/plugin-sql/src/__tests__/migration/runtime-migrator.test.ts\",\n        \"packages/plugin-sql/src/__tests__/unit/directory-creation.test.ts\",\n        \"packages/plugin-sql/src/__tests__/unit/index.test.ts\",\n        \"packages/plugin-sql/src/__tests__/unit/pg/adapter.test.ts\",\n        \"packages/plugin-sql/src/__tests__/unit/pglite/adapter.test.ts\",\n        \"packages/plugin-sql/src/base.ts\",\n        \"packages/plugin-sql/src/migrations.ts\",\n        \"packages/plugin-sql/src/pg/manager.ts\",\n        \"packages/plugin-sql/src/rls.ts\",\n        \"packages/plugin-sql/src/runtime-migrator/runtime-migrator.ts\",\n        \"packages/plugin-sql/src/schema/component.ts\",\n        \"packages/plugin-sql/src/schema/log.ts\",\n        \"packages/plugin-sql/src/schema/memory.ts\",\n        \"packages/plugin-sql/src/schema/participant.ts\",\n        \"packages/plugin-sql/src/schema/relationship.ts\",\n        \"packages/plugin-sql/src/schema/room.ts\",\n        \"packages/plugin-sql/src/schema/tasks.ts\",\n        \"packages/plugin-sql/src/schema/world.ts\",\n        \"packages/core/src/__tests__/logger-browser-node.test.ts\",\n        \"packages/plugin-sql/src/__tests__/integration/rls-entity.test.ts\",\n        \"packages/plugin-sql/src/__tests__/migration/actual-runtime-scenario.test.ts\",\n        \"packages/plugin-sql/src/__tests__/migration/initialization-with-plugin.test.ts\",\n        \"packages/plugin-sql/src/__tests__/migration/runtime-simulation.test.ts\",\n        \"packages/plugin-sql/src/__tests__/migration/schema-evolution-tests/06-index-evolution.test.ts\",\n        \"packages/plugin-sql/src/__tests__/migration/schema-evolution-tests/07-foreign-key-evolution.test.ts\",\n        \"packages/plugin-sql/src/__tests__/migration/transaction-and-concurrency.test.ts\",\n        \"packages/plugin-sql/src/__tests__/test-helpers.ts\",\n        \"packages/plugin-sql/src/pglite/manager.ts\",\n        \"packages/plugin-sql/src/runtime-migrator/storage/migration-tracker.ts\",\n        \"packages/server/src/__tests__/fixtures/database.fixture.ts\"\n      ]\n    },\n    {\n      \"title\": \"fix: bootstrap action/provide format change fix + initPromise fix\",\n      \"prNumber\": 6261,\n      \"type\": \"bugfix\",\n      \"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 messa\",\n      \"files\": [\n        \"packages/core/src/types/runtime.ts\",\n        \"packages/plugin-bootstrap/src/__tests__/test-utils.ts\",\n        \"packages/plugin-bootstrap/src/actions/settings.ts\",\n        \"packages/plugin-bootstrap/src/providers/roles.ts\",\n        \"packages/plugin-bootstrap/src/providers/settings.ts\",\n        \"packages/plugin-quick-starter/src/__tests__/test-utils.ts\",\n        \"packages/plugin-starter/src/__tests__/test-utils.ts\",\n        \"packages/project-starter/src/__tests__/utils/core-test-utils.ts\",\n        \"packages/project-tee-starter/src/__tests__/utils/core-test-utils.ts\",\n        \"packages/test-utils/src/mocks/runtime.ts\",\n        \"packages/plugin-bootstrap/src/__tests__/providers.test.ts\"\n      ]\n    }\n  ],\n  \"topContributors\": [\n    {\n      \"username\": \"standujar\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/16385918?u=718bdcd1585be8447bdfffb8c11ce249baa7532d&v=4\",\n      \"totalScore\": 546.35044362221,\n      \"prScore\": 521.19444362221,\n      \"issueScore\": 0,\n      \"reviewScore\": 23,\n      \"commentScore\": 2.1559999999999997,\n      \"summary\": \"standujar: This month, standujar made substantial contributions across the `elizaos` ecosystem, focusing on core system stability, refactoring, and introducing new capabilities. They implemented a new Unified API for serverless Node.js environments (elizaos/eliza#6201) and delivered several complex fixes, most notably optimizing the pre-1.6.5 migration and RLS handling in the SQL plugin (elizaos/eliza#6215), which involved over 28k lines of changes. In addition to merging seven pull requests, they have eight open PRs that introduce significant new features like JWT authentication and widespread streaming support. Their work was distributed across bug fixes, feature development, and refactoring, with a strong emphasis on code and test files.\"\n    },\n    {\n      \"username\": \"madjin\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/32600939?u=cdcf89f44c7a50906c7a80d889efa85023af2049&v=4\",\n      \"totalScore\": 325.1444101641285,\n      \"prScore\": 307.8684101641285,\n      \"issueScore\": 16.4,\n      \"reviewScore\": 0,\n      \"commentScore\": 0.8759999999999999,\n      \"summary\": \"madjin: Focused on enhancing core functionality and maintaining project dependencies this month, merging three pull requests in the `elizaos/elizaos.github.io` repository. They implemented and fixed a new RSS feed feature (#172, #175) and also managed a substantial dependency update by upgrading the AI SDKs in a large PR (#170) with over 3300 new lines. Their work was a mix of bug fixes, feature implementation, and significant maintenance, touching both code and configuration files.\"\n    },\n    {\n      \"username\": \"wtfsayo\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4\",\n      \"totalScore\": 135.9853756199966,\n      \"prScore\": 135.38537561999658,\n      \"issueScore\": 0,\n      \"reviewScore\": 0,\n      \"commentScore\": 0.6000000000000001,\n      \"summary\": \"wtfsayo: Focused on client-side fixes and plugin migrations this month, merging two pull requests in the elizaos/eliza repository. They improved the user experience by fixing markdown content spacing (#6197) and migrated the SQL plugin to the new messageService API (#6202). Additionally, they have begun work on a new core feature for parallel action execution (#6209), with their overall contributions reflecting a primary focus on bug fixes and refactoring.\"\n    },\n    {\n      \"username\": \"ChristopherTrimboli\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4\",\n      \"totalScore\": 130.67356870848266,\n      \"prScore\": 111.17356870848266,\n      \"issueScore\": 0,\n      \"reviewScore\": 19.5,\n      \"commentScore\": 0,\n      \"summary\": \"ChristopherTrimboli: Focused on core feature development and dependency management, introducing ElizaOS Cloud as the default AI provider in the CLI (elizaos/eliza#6208) and executing a significant dependency update across the ecosystem (elizaos/eliza#6210). In addition to merging these two PRs, he supported the team by providing 4 code reviews. His work primarily involved modifications to configuration and test files, reflecting a focus on system health and testing alongside feature work.\"\n    },\n    {\n      \"username\": \"odilitime\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4\",\n      \"totalScore\": 103.6914338220675,\n      \"prScore\": 103.49143382206749,\n      \"issueScore\": 0,\n      \"reviewScore\": 0,\n      \"commentScore\": 0.2,\n      \"summary\": \"odilitime: Undertook a substantial amount of work this month, reflected in 25 commits across 25 files (+2146/-592 lines). While this work has not yet been merged via a pull request, their coding activity shows a focus on bugfixes and refactoring. They also contributed by creating an issue in elizaos-plugins/plugin-mysql (#1).\"\n    },\n    {\n      \"username\": \"0xbbjoker\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4\",\n      \"totalScore\": 93.62077794993351,\n      \"prScore\": 56.120777949933505,\n      \"issueScore\": 2,\n      \"reviewScore\": 35.5,\n      \"commentScore\": 0,\n      \"summary\": \"0xbbjoker: This month, 0xbbjoker's work was primarily focused on bug fixes, contributing a significant volume of code changes across 68 files (+3655/-1134 lines). They merged one feature enhancement to the MCP provider (elizaos-plugins/plugin-mcp#19) and proactively opened an issue to improve the agent creator's file handling (elizaos/eliza#6245). In addition to their direct code contributions, they were an active collaborator, providing 6 code reviews for their peers.\"\n    },\n    {\n      \"username\": \"lalalune\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/18633264?u=e2e906c3712c2506ebfa98df01c2cfdc50050b30&v=4\",\n      \"totalScore\": 88.7855477931522,\n      \"prScore\": 84.7855477931522,\n      \"issueScore\": 4,\n      \"reviewScore\": 0,\n      \"commentScore\": 0,\n      \"summary\": \"lalalune: Made a substantial contribution this month by merging a large-scale chore/refactor in the elizaos/eliza repository (PR #6213), which involved over 16,000 lines of code changes. They also began work on a major new feature with the \\\"Eliza Cloud Integration\\\" pull request (#6216) and identified a crash condition that was subsequently resolved (elizaos/eliza#6204). Their activity shows a primary focus on a mix of bugfixes, feature work, and refactoring across the codebase.\"\n    },\n    {\n      \"username\": \"borisudovicic\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/31806472?u=8935f4d43fd7e4eb9bf5ff92d54d4d2f8ac8a786&v=4\",\n      \"totalScore\": 84,\n      \"prScore\": 0,\n      \"issueScore\": 84,\n      \"reviewScore\": 0,\n      \"commentScore\": 0,\n      \"summary\": \"borisudovicic: Focused entirely on product definition and quality assurance for the elizaos/eliza repository this month. They created 41 issues, identifying a wide range of bugs, user experience enhancements, and new feature proposals. This work included documenting critical fixes like the container deployment bug (#6187) and proposing significant UX changes such as redesigning the dashboard (#6222) and consolidating navigation (#6173). All activity was concentrated on identifying and scoping improvements for the elizaos/eliza application.\"\n    },\n    {\n      \"username\": \"DevGruGold\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/181147699?u=4258e430ad766ca1d11778ab9e7d91ecfa0e110c&v=4\",\n      \"totalScore\": 80.8515477931522,\n      \"prScore\": 80.8515477931522,\n      \"issueScore\": 0,\n      \"reviewScore\": 0,\n      \"commentScore\": 0,\n      \"summary\": \"DevGruGold: This month, DevGruGold initiated new work in the elizaos/eliza repository, opening two pull requests (#6220, #6219). While no contributions were merged, these open PRs represent a substantial effort, containing over 1900 lines of code changes across 13 commits. This work, a mix of bug fixes and other tasks, was primarily focused on modifying configuration, documentation, and test files.\"\n    },\n    {\n      \"username\": \"0xtechdean\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/16443050?u=d1347a48b94a4c011e872424ea1940f3a0a8331d&v=4\",\n      \"totalScore\": 35.89159695492178,\n      \"prScore\": 35.89159695492178,\n      \"issueScore\": 0,\n      \"reviewScore\": 0,\n      \"commentScore\": 0,\n      \"summary\": null\n    },\n    {\n      \"username\": \"AntoineVergne\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/151149734?v=4\",\n      \"totalScore\": 33.983573590279974,\n      \"prScore\": 29.28357359027997,\n      \"issueScore\": 0,\n      \"reviewScore\": 4.5,\n      \"commentScore\": 0.2,\n      \"summary\": \"AntoineVergne: This month, AntoineVergne's work focused on expanding the plugin ecosystem by adding the new 'plugin-farcaster-local-hub' to the registry (elizaos-plugins/registry#243). This feature contribution consisted of a single-line update to a configuration file. They also provided one comment on a pull request.\"\n    },\n    {\n      \"username\": \"todoencadena\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/198127898?u=4c012fe538dffffc28d03890eda7d63746ae1ff2&v=4\",\n      \"totalScore\": 24.27972435596375,\n      \"prScore\": 24.27972435596375,\n      \"issueScore\": 0,\n      \"reviewScore\": 0,\n      \"commentScore\": 0,\n      \"summary\": \"todoencadena: Activity this month was focused on bot integration, opening a pull request to fix the Telegram bot for Railway (elizaos/eliza#6214). This work involved a single commit with minor changes to a configuration file.\"\n    },\n    {\n      \"username\": \"Tonyflam\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/150600391?u=0c905a5f627ff99389fc79e9978f1dc47546456e&v=4\",\n      \"totalScore\": 22.218573590279973,\n      \"prScore\": 22.218573590279973,\n      \"issueScore\": 0,\n      \"reviewScore\": 0,\n      \"commentScore\": 0,\n      \"summary\": \"Tonyflam: This month, their contribution focused on expanding the plugin ecosystem by adding the new `@tonyflam/plugin-openchat` plugin to the registry via PR elizaos-plugins/registry#242. This work consisted of a minor update to a configuration file.\"\n    },\n    {\n      \"username\": \"nguyennk92\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/30664183?u=d6e579cd25d50bc8e9ec4928d95909d759b841db&v=4\",\n      \"totalScore\": 8.902606672028108,\n      \"prScore\": 8.902606672028108,\n      \"issueScore\": 0,\n      \"reviewScore\": 0,\n      \"commentScore\": 0,\n      \"summary\": \"nguyennk92: This month, their focus was on refactoring database connection logic in the `elizaos/eliza` repository. They opened a pull request (#6262) proposing to remove the reassignment of the runtime database to individual connections. This work represents a targeted effort to improve connection management.\"\n    },\n    {\n      \"username\": \"github-advanced-security\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/in/57789?v=4\",\n      \"totalScore\": 4.5,\n      \"prScore\": 0,\n      \"issueScore\": 0,\n      \"reviewScore\": 4.5,\n      \"commentScore\": 0,\n      \"summary\": \"github-advanced-security: No activity this month.\"\n    },\n    {\n      \"username\": \"linear\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/in/20150?v=4\",\n      \"totalScore\": 4,\n      \"prScore\": 0,\n      \"issueScore\": 4,\n      \"reviewScore\": 0,\n      \"commentScore\": 0,\n      \"summary\": \"linear: Focused on server reliability by identifying and documenting an issue related to concurrent connection timeouts in elizaos/eliza (#6198).\"\n    },\n    {\n      \"username\": \"pereslavlland\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/247946180?v=4\",\n      \"totalScore\": 2.2,\n      \"prScore\": 0,\n      \"issueScore\": 2,\n      \"reviewScore\": 0,\n      \"commentScore\": 0.2,\n      \"summary\": \"pereslavlland: This month, pereslavlland's activity was focused on bug reporting within the elizaos/eliza repository. They identified and opened issue #6211 to document a problem with snapshot eligibility and Tangem wallet connections, and also contributed one comment to an issue.\"\n    },\n    {\n      \"username\": \"tdnupe3\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/25161668?u=94680b6bcbcfce954c7a9dd09d667a3919953041&v=4\",\n      \"totalScore\": 2,\n      \"prScore\": 0,\n      \"issueScore\": 2,\n      \"reviewScore\": 0,\n      \"commentScore\": 0,\n      \"summary\": \"tdnupe3: This month, tdnupe3's efforts were directed towards planning new payment functionalities. They initiated this work by creating issue elizaos/eliza#6244, which proposes an implementation guide for integrating Circle and Coinbase APIs for AI agent payments.\"\n    },\n    {\n      \"username\": \"otaku-x402\",\n      \"avatarUrl\": \"https://avatars.githubusercontent.com/u/242004857?u=1325b26d380eec4a0b8d84e8e249c523eebd28dc&v=4\",\n      \"totalScore\": 0.2,\n      \"prScore\": 0,\n      \"issueScore\": 0,\n      \"reviewScore\": 0,\n      \"commentScore\": 0.2,\n      \"summary\": null\n    }\n  ],\n  \"newPRs\": 25,\n  \"mergedPRs\": 15,\n  \"newIssues\": 45,\n  \"closedIssues\": 53,\n  \"activeContributors\": 20\n}\n---\n[\"AntoineVergne_day_2025-12-16\", \"AntoineVergne\", \"day\", \"2025-12-16\", \"AntoineVergne: No activity today.\", \"2025-12-17T05:25:17.424Z\"]\n[\"actions-user_day_2025-12-16\", \"actions-user\", \"day\", \"2025-12-16\", \"actions-user: No activity today.\", \"2025-12-17T05:25:17.760Z\"]\n[\"0xbbjoker_day_2025-12-16\", \"0xbbjoker\", \"day\", \"2025-12-16\", \"0xbbjoker: Today, 0xbbjoker initiated a new feature by creating issue elizaos/eliza#6245, \\\"Pre-upload files in agent creator for rag,\\\" and provided two reviews, including one change request, indicating engagement with ongoing development.\", \"2025-12-17T05:25:17.948Z\"]\n[\"lalalune_day_2025-12-16\", \"lalalune\", \"day\", \"2025-12-16\", \"lalalune: Focused on significant code changes, modifying 4353 files with a net addition of over 52,000 lines across 39 commits, primarily in \\\"other work\\\" and refactoring efforts.\", \"2025-12-17T05:25:18.010Z\"]\n[\"standujar_day_2025-12-16\", \"standujar\", \"day\", \"2025-12-16\", \"standujar: Focused on feature work, modifying 33 files with 8 commits (+1135/-579 lines), indicating active development across various file types.\", \"2025-12-17T05:25:18.180Z\"]\n[\"borisudovicic_day_2025-12-16\", \"borisudovicic\", \"day\", \"2025-12-16\", \"borisudovicic: Focused on enhancing user experience and functionality within elizaos/eliza by creating issues to implement toggle selection for plugins (#6236), improve plugin selection visual feedback (#6235), and introduce a \\\"Web Search\\\" feature (#6246).\", \"2025-12-17T05:25:18.303Z\"]\n[\"wtfsayo_day_2025-12-16\", \"wtfsayo\", \"day\", \"2025-12-16\", \"wtfsayo: No activity today.\", \"2025-12-17T05:25:18.322Z\"]\n[\"tungpun_day_2025-12-17\", \"tungpun\", \"day\", \"2025-12-17\", \"tungpun: Focused on bugfix work, making a single commit that modified 157 files with a substantial change of +5176/-1946 lines across various file types.\", \"2025-12-18T01:11:47.649Z\"]\n[\"standujar_day_2025-12-17\", \"standujar\", \"day\", \"2025-12-17\", \"standujar: Focused on feature work, modifying 21 files with 2 commits (+1271/-319 lines) and providing 1 PR comment.\", \"2025-12-18T01:11:47.684Z\"]\n[\"lalalune_day_2025-12-17\", \"lalalune\", \"day\", \"2025-12-17\", \"lalalune: Focused on other work, making 16 commits that modified 2266 files with a net addition of over 260,000 lines, indicating significant development across various file types.\", \"2025-12-18T01:11:47.728Z\"]\n[\"odilitime_day_2025-12-18\", \"odilitime\", \"day\", \"2025-12-18\", \"odilitime: Focused on other work, making a single commit that modified 5 files with a net addition of 170 lines of code.\", \"2025-12-18T01:11:47.779Z\"]\n[\"borisudovicic_day_2025-12-17\", \"borisudovicic\", \"day\", \"2025-12-17\", \"borisudovicic: Demonstrated a strong focus on product refinement and user experience by creating 31 issues, with 17 already closed, addressing a wide range of improvements from UI/UX enhancements like \\\"Rename \\\"Knowledge\\\" section to \\\"Files\\\"\\\" (elizaos/eliza#6237) and \\\"Add three-dot menu to agent cards\\\" (elizaos/eliza#6234) to critical bug fixes and performance investigations.\", \"2025-12-18T01:11:47.817Z\"]\n[\"madjin_day_2025-12-17\", \"madjin\", \"day\", \"2025-12-17\", \"madjin: Focused on enhancing the `elizaos.github.io` project's functionality and maintainability, notably implementing an RSS feed across multiple PRs (e.g., #175, #172, #178) and improving fork-friendliness by making values configurable via environment variables (#180). Their work primarily involved bug fixes, refactoring, and feature development, touching a significant amount of code across 90 files.\", \"2025-12-18T01:11:47.905Z\"]\n[\"odilitime_day_2025-12-17\", \"odilitime\", \"day\", \"2025-12-17\", \"odilitime: Focused on other work and refactoring, making 17 commits that modified 17 files with a net change of +297 lines.\", \"2025-12-20T02:12:06.725Z\"]\n[\"0xbbjoker_day_2025-12-18\", \"0xbbjoker\", \"day\", \"2025-12-18\", \"0xbbjoker: No activity today.\", \"2025-12-20T02:12:06.834Z\"]\n[\"actions-user_day_2025-12-19\", \"actions-user\", \"day\", \"2025-12-19\", \"actions-user: No activity today.\", \"2025-12-20T02:12:06.954Z\"]\n[\"lalalune_day_2025-12-18\", \"lalalune\", \"day\", \"2025-12-18\", \"lalalune: No activity today.\", \"2025-12-20T02:12:07.032Z\"]\n[\"ChristopherTrimboli_day_2025-12-19\", \"ChristopherTrimboli\", \"day\", \"2025-12-19\", \"ChristopherTrimboli: Focused on other work, making a single commit that modified 119 files with a net change of +923 lines, indicating a broad set of changes across various file types.\", \"2025-12-20T02:12:07.073Z\"]\n[\"borisudovicic_day_2025-12-18\", \"borisudovicic\", \"day\", \"2025-12-18\", \"borisudovicic: Focused on documentation, creating one issue in elizaos/eliza (#6264) to address \\\"Docs\\\".\", \"2025-12-20T02:12:07.084Z\"]\n[\"odilitime_day_2025-12-19\", \"odilitime\", \"day\", \"2025-12-19\", \"odilitime: Focused on feature development, successfully merging PR elizaos-plugins/plugin-discord#33 which added a tiered permission system for bot invite URLs, demonstrating a primary focus on bugfix work, other work, and feature work across 81 files.\", \"2025-12-20T02:12:07.203Z\"]\n[\"lalalune_day_2025-12-19\", \"lalalune\", \"day\", \"2025-12-19\", \"lalalune: Today, lalalune made 15 commits, modifying 1819 files with a net change of +118940 lines, primarily focusing on other work (53%), bugfix work (27%), and refactor work (13%).\", \"2025-12-20T02:12:07.298Z\"]\n[\"madjin_day_2025-12-19\", \"madjin\", \"day\", \"2025-12-19\", \"madjin: Focused on enhancing the `elizaos.github.io` repository by implementing new static JSON API endpoints for summaries and leaderboards, as evidenced by merged PRs #186 (+966/-412 lines) and #184 (+402/-0 lines), while also contributing to other work, bug fixes, and feature development across 35 files.\", \"2025-12-20T02:12:07.323Z\"]\n[\"nguyennk92_day_2025-12-18\", \"nguyennk92\", \"day\", \"2025-12-18\", \"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.\", \"2025-12-20T02:12:07.432Z\"]\n[\"madjin_day_2025-12-18\", \"madjin\", \"day\", \"2025-12-18\", \"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.\", \"2025-12-20T02:12:07.444Z\"]\n[\"wtfsayo_day_2025-12-19\", \"wtfsayo\", \"day\", \"2025-12-19\", \"wtfsayo: Focused on enhancing the registry's robustness by merging PR elizaos-plugins/registry#244, which introduced detection and fixes for version/core dependency mismatches, contributing to bugfix and other work across 2 files with 2 commits.\", \"2025-12-20T02:12:07.673Z\"]\n[\"wtfsayo_day_2025-12-18\", \"wtfsayo\", \"day\", \"2025-12-18\", \"wtfsayo: Focused on bugfix work, modifying 60 files with a net addition of 4430 lines across one commit, indicating a substantial effort in addressing existing issues.\", \"2025-12-20T02:12:07.686Z\"]\n[\"standujar_day_2025-12-18\", \"standujar\", \"day\", \"2025-12-18\", \"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.\", \"2025-12-20T02:12:07.698Z\"]\n[\"standujar_day_2025-12-21\", \"standujar\", \"day\", \"2025-12-21\", \"standujar: No activity today.\", \"2025-12-21T23:14:52.984Z\"]\n[\"0xbbjoker_day_2025-12-20\", \"0xbbjoker\", \"day\", \"2025-12-20\", \"0xbbjoker: Modified 12 files with 2 commits, focusing on tests work and other tasks, resulting in a net reduction of 136 lines of code.\", \"2025-12-21T23:14:53.063Z\"]\n[\"ChristopherTrimboli_day_2025-12-20\", \"ChristopherTrimboli\", \"day\", \"2025-12-20\", \"ChristopherTrimboli: No activity today.\", \"2025-12-21T23:14:52.920Z\"]\n[\"0xbbjoker_day_2025-12-21\", \"0xbbjoker\", \"day\", \"2025-12-21\", \"0xbbjoker: Focused on routine maintenance, merging a version bump in elizaos-plugins/plugin-openrouter via PR #22, which involved minor configuration changes.\", \"2025-12-21T23:14:53.442Z\"]\n[\"cursoragent_day_2025-12-21\", \"cursoragent\", \"day\", \"2025-12-21\", \"cursoragent: Focused on feature work, modifying 6 files with a net addition of 278 lines in a single commit.\", \"2025-12-21T23:14:53.144Z\"]\n[\"lalalune_day_2025-12-20\", \"lalalune\", \"day\", \"2025-12-20\", \"lalalune: Focused on tests and other work, making two commits that modified 572 files with a net change of +1967 lines.\", \"2025-12-21T23:14:53.190Z\"]\n[\"0xtechdean_day_2025-12-21\", \"0xtechdean\", \"day\", \"2025-12-21\", \"0xtechdean: Focused on documentation and agent development, with an open pull request in elizaos/eliza (#6265) related to cursor/twitter agent AVS documentation.\", \"2025-12-21T23:14:53.166Z\"]\n[\"madjin_day_2025-12-20\", \"madjin\", \"day\", \"2025-12-20\", \"madjin: Initiated a significant architectural discussion by creating \\\"RFC: Data Pipeline Architecture Improvements\\\" (elizaos/elizaos.github.io#187), while also contributing to feature work, bug fixes, and other tasks across 21 files with 10 commits, modifying nearly 1000 lines of code.\", \"2025-12-21T23:14:53.325Z\"]\n---\n2025-12-22T02:16:50.841307Z\n---\n2025-12-22\n---\nai_news_elizaos_discord_md_2025-12-20\n---\nai_news_elizaos_discord_md_2025-12-19\n---\ngithub_summaries_week_latest_2025-12-14.md\n---\ngithub_summaries_month_latest_2025-12-01.md\n---\nai_news_elizaos_discord_md_2025-12-21\n---\nai_news_elizaos_daily_json_2025-12-21\n---\nai_news_elizaos_daily_md_2025-12-21\n---\nai_news_elizaos_daily_discord_json_2025-12-21\n---\nai_news_elizaos_daily_discord_md_2025-12-21\n---\ngithub_summaries_daily_2025-12-22"
  ]
}