# ElizaOS Developer Update: December 1-7, 2025

## 1. Core Framework

We've made significant progress on the ElizaOS architecture this week, with a focus on performance optimizations and developer experience improvements:

### Parallel Action Execution
A new draft PR ([#6209](https://github.com/elizaOS/eliza/pull/6209)) introduces parallel action execution within the `processActions()` method. This optimization enables actions within a single response batch to execute in parallel using `Promise.allSettled()`, providing significant performance improvements for multi-action responses.

```javascript
// Before: Sequential execution
for (const action of actions) {
  const result = await executeAction(action, state);
  state = { ...state, ...result.values };
}

// After: Parallel execution with shared initial state
const actionPromises = actions.map(action => executeAction(action, initialState));
const results = await Promise.allSettled(actionPromises);
state = mergeResults(initialState, results);
```

The implementation maintains backward compatibility while ensuring that:
- All actions in a batch receive the same initial state snapshot
- State accumulates sequentially between response batches
- All `ActionResult.values` are merged after a parallel batch completes
- System remains fault-tolerant: if one action fails, others still complete

### Server Architecture Optimization
PR [#6199](https://github.com/elizaOS/eliza/pull/6199) (merged) delivered major server-side improvements:

- **Socket.IO Configuration**: Optimized `pingInterval` (25s), `pingTimeout` (20s), and `connectTimeout` (10s)
- **HTTP Server Timeouts**: Added proper timeout handling to prevent hanging connections
- **Socket Disconnection Guards**: Improved handling of disconnected clients
- **Parallel Database Operations**: Implemented `Promise.all` for independent DB queries
- **Code Reorganization**: Restructured server components following clean architecture principles

These changes have substantially improved server performance, particularly for scenarios with multiple concurrent users.

## 2. New Features

### ElizaOS Cloud Integration
The most significant new feature this week is the addition of ElizaOS Cloud as the default AI provider in the CLI ([#6208](https://github.com/elizaOS/eliza/pull/6208), merged). This update:

- Sets ElizaOS Cloud as the top/recommended option in the `elizaos create` AI model selection
- Integrates a browser-based login flow for seamless API key setup
- Standardizes environment variable naming to `ELIZAOS_CLOUD_API_KEY`

The new user flow is now:

```
◆  Which AI model would you like to use?
│  ● ElizaOS Cloud (Recommended)
│  ○ Local AI (Ollama)
│  ○ OpenAI
│  ...

◆  How would you like to authenticate?
│  ● Login with browser (recommended)
│  ○ Enter API key manually
│  ○ Skip for now
```

### Unified API for Serverless Functions
PR [#6201](https://github.com/elizaOS/eliza/pull/6201) (merged) introduced a unified API for serverless Node.js environments, making it easier to deploy ElizaOS agents to various serverless platforms. This implementation standardizes the interface for handling agent messages across different deployment environments.

## 3. Bug Fixes

Several critical bugs were fixed this week:

### PGLite Directory Auto-Creation
PR [#6202](https://github.com/elizaOS/eliza/pull/6202) resolved a persistent issue where the SQL plugin would crash if the `.eliza` directory didn't exist. The fix:

- Automatically creates required directories for PGLite databases
- Prevents the common "ENOENT: no such file or directory" error
- Simplifies developer onboarding by removing manual directory setup

This addresses the issue reported in [#6204](https://github.com/elizaOS/eliza/issues/6204) where developers were forced to manually add directory creation code:

```javascript
// No longer needed with the fix
import fs from "fs";
if (!fs.existsSync(".eliza")) {
    fs.mkdirSync(".eliza");
}
```

### Markdown Rendering Improvements
Two PRs ([#6159](https://github.com/elizaOS/eliza/pull/6159) and [#6197](https://github.com/elizaOS/eliza/pull/6197)) fixed long-standing issues with markdown rendering in the ElizaOS client:

- Fixed excessive vertical spacing in AI-generated responses
- Added proper spacing for headings and separators
- Reduced blockquote vertical margins for more compact display

These visual improvements create a more polished and professional UI for end users.

## 4. API Changes

### JWT Authentication Implementation
PR [#6200](https://github.com/elizaOS/eliza/pull/6200) implements a comprehensive JWT authentication system with multiple verification strategies:

- **JWT Verifier Factory** with priority-based selection:
  - Ed25519 (highest priority) for self-signed JWTs
  - JWKS (medium priority) for external providers (Auth0, Clerk, Privy, Supabase, Google)
  - Secret (lowest priority) for simple HS256 symmetric key verification

- **Entity ID derivation** from JWT `sub` claim:
  ```javascript
  entityId = stringToUuid(payload.sub)
  ```

- **Dual authentication modes**:
  - `ENABLE_DATA_ISOLATION=true` → JWT authentication required
  - `ENABLE_DATA_ISOLATION=false` → X-Entity-Id header (legacy mode)

These changes lay the groundwork for full multi-tenant support in ElizaOS, enabling proper data isolation between different users and organizations.

### Message Service API Migration
Examples and plugins have been updated to use the new `messageService.handleMessage()` API instead of the deprecated `MESSAGE_RECEIVED` event system. This modernization improves type safety and provides better error handling.

```javascript
// Old approach (deprecated)
runtime.on(EVENTS.MESSAGE_RECEIVED, async (message) => {
  // Handle message
});

// New approach
runtime.messageService.handleMessage(message);
```

## 5. Social Media Integrations

No significant updates to social media integrations this week. However, Discord discussions indicated interest in Twitter AI agent integration, with user SecretRecipe asking "Who's still using Eliza for a Twitter AI agent?" This suggests potential community demand for enhanced Twitter functionality.

## 6. Model Provider Updates

The addition of ElizaOS Cloud as the default AI provider in the CLI represents a strategic shift in our model provider priorities. ElizaOS Cloud now takes precedence over other options like OpenAI, Anthropic, and local providers in the CLI wizard.

This change aligns with the ongoing development of ElizaCloud, which was mentioned in Discord discussions as coming "soon(tm)" according to team member Odilitime.

## 7. Breaking Changes

While there are no immediate breaking changes in this update, developers should be aware of these upcoming migrations:

### Migration from AI16Z to ElizaOS
Discord discussions revealed ongoing confusion around the token migration process. Key points developers should communicate to users:

- AI16Z has been deprecated and replaced by ElizaOS tokens
- Price movements in AI16Z are likely due to market manipulation and not reflective of project value
- Users should complete migration through official channels only to avoid scams
- A snapshot was taken on November 11, 2025, determining migration eligibility

### Message API Transition
The transition from the event-based messaging system to the `messageService` API is ongoing. While backward compatibility is maintained, developers are encouraged to update their code to the new pattern for improved type safety and future compatibility.

For additional information on any of these topics, please refer to our [developer documentation](https://docs.elizaos.com/) or join the [ElizaOS Discord](https://discord.gg/elizaos).