# ElizaOS Developer Update — December 12th, 2025

## 1. Core Framework Updates

The core ElizaOS framework received significant stability and type system improvements this week. PR #6218 fixed critical issues in the monorepo after a major code cleanup had broken types, tests, and try/catch blocks. The framework's character secrets encryption order has been corrected, ensuring proper security of sensitive information. WebSocket log retrieval was fixed after a regression caused by the removal of pino logging.

Performance issues with pglite were identified in swarm environments, with response times increasing from 10ms to 900ms. This remains under investigation with likely causes being data volume or I/O contention. The ElizaOS client build size was also discussed, with large JavaScript files for syntax highlighting and mermaid charts contributing 2.6MB of minified code.

Notably, Shaw's PR #6213 made substantial quality improvements to the codebase:
```typescript
// Before cleanup:
try {
  const result: any = await someFunction();
  return result as unknown;
} catch (e) {
  console.log("Error occurred", e);
}

// After cleanup:
const result = await someFunction();
return result;
```

## 2. New Features

### Parallel Action Execution
A major performance enhancement has been introduced with PR #6209, implementing parallel action execution within the `processActions()` method:

```typescript
// New execution model in runtime.ts
const actionPromises = actions.map(action => 
  this.executeAction(action, initialStateSnapshot)
);
const results = await Promise.allSettled(actionPromises);
// Merge all action results after parallel batch completes
```

This allows multiple actions in a single response batch to execute simultaneously with the same initial state snapshot, significantly improving performance for multi-action responses.

### JWT Authentication System
PR #6200 introduces a comprehensive JWT authentication system with multiple verification strategies:
- Ed25519 (highest priority) for self-signed JWTs
- JWKS (medium priority) for external providers like Auth0, Clerk, Privy
- Secret (lowest priority) for simple HS256 symmetric key verification

Configuration is managed through environment variables:
```
ENABLE_DATA_ISOLATION=true
JWT_SECRET=your-secret-key
JWT_PUBLIC_KEY_ED25519=MCowBQYDK2Vw...
JWT_JWKS_URI=https://auth0.com/.well-known/jwks.json
JWT_ISSUER_WHITELIST=https://auth0.com/,https://clerk.dev
```

### ElizaOS Cloud Integration
PR #6216 tightly integrates ElizaOS cloud as a database and storage provider, with CLI improvements to automatically provision API keys and set up projects. The CLI now offers ElizaOS Cloud as the recommended option in the `elizaos create` AI model selection.

## 3. Bug Fixes

A critical security vulnerability was identified where the server wasn't properly requiring `ELIZA_SERVER_AUTH_TOKEN`, allowing attackers to extract secrets via API endpoints. This vulnerability was introduced in version 1.6.4 and fixed in 1.6.5-alpha.8.

Multiple database-related issues have been addressed:
- PR #6215 optimizes migration from pre-1.6.5 (camelCase) to 1.6.5+ (snake_case) schema
- The `.eliza` directory is now automatically created when using `plugin-sql`
- Foreign key constraint errors with plugin-sql and plugin-twitter were fixed

Other notable fixes:
- Markdown rendering issues in the client UI were resolved, addressing excessive vertical spacing
- TypeScript build errors across packages were fixed in PR #6218
- Twitter plugin errors related to SQL issues are now resolved

## 4. API Changes

The `plugin-sql` package has undergone significant improvements, including:
1. Optimization of RLS (row-level security) handling
2. Removal of dead code in RuntimeMigrator
3. Improved table filtering
4. Fixed schema indexes and foreign key definitions

The standalone example files have been migrated from the deprecated `MESSAGE_RECEIVED` event system to the new `messageService.handleMessage()` API:

```typescript
// Old approach
agent.on('MESSAGE_RECEIVED', async (message) => {
  // Handle message
});

// New approach
messageService.handleMessage(message).then(response => {
  // Process response
});
```

## 5. Social Media Integrations

The TypeScript fix in recent builds resolves SQL errors users were facing with the Twitter plugin. Previously, users were experiencing "No text content in response, skipping tweet reply" for every reply attempt.

Additionally, guidance was provided for users trying to connect ElizaOS to Telegram through the `plugin-telegram` package, available at https://github.com/elizaos-plugins/plugin-telegram.

## 6. Model Provider Updates

Support for DeepSeek AI models has been improved. Users can now use DeepSeek API keys with the OpenAI plugin by replacing the endpoint URL:

```
# For DeepSeek key owners who don't have OpenRouter credits
# Add to your .env file:
OPENAI_API_KEY=your-deepseek-key
OPENAI_API_BASE_URL=https://api.deepseek.com/v1
```

Alternatively, users can access DeepSeek models through OpenRouter, which provides them as part of its model lineup.

The system now also better supports Perplexity's Sonar-Pro LLM through both plugin-openai and plugin-openrouter by adjusting environment variables to point to Perplexity's servers.

## 7. Breaking Changes

The ongoing migration from AI16Z to ELIZA tokens continues to cause frustration, particularly for users on the Bithumb exchange in Korea. The team is working on a solution but indicated they're waiting for action from Bithumb.

For developers migrating from v1 to v2, note these changes:
- Database schema has changed from camelCase to snake_case in version 1.6.5+
- The AUTH_TOKEN requirement is now more strictly enforced for security
- Action execution model has changed to parallel within a batch (previously sequential)

For the best experience, it's recommended to:
- Use PostgreSQL instead of PGLite when experiencing database connection issues
- Update your `.env` file with proper authentication tokens
- Move tokens from exchanges to personal wallets for better control
- When building agents that need sequential action execution, split actions across multiple response batches

The Babylon repository has moved to a new GitHub location: https://github.com/BabylonSocial/babylon and will be launching as a web browser game rather than requiring local installation.

---
**Links:**
- Plugin SQL Repository: https://github.com/elizaos/eliza/tree/develop/packages/plugin-sql
- Telegram Plugin: https://github.com/elizaos-plugins/plugin-telegram
- OpenAI Plugin: https://github.com/elizaos-plugins/plugin-openai
- Babylon Repository: https://github.com/BabylonSocial/babylon