# ElizaOS Developer Update - August 2, 2025

## 1. Core Framework

This week saw significant progress on the ElizaOS architecture with critical enhancements to the core messaging system and cloud infrastructure:

### Message Bus Overhaul
A critical bug in the message bus was identified and fixed by cjft where messages were being incorrectly discarded. This issue was causing AI responses to fail entirely, affecting all downstream integrations. The fix ensures proper message handling for reliable agent-client communications.

### ElizaCloud Development
Shaw merged major changes to eliza-cloud, introducing:
- Redis queue integration for job management
- Image and video generation support
- Docker configuration for local Redis and Postgres development environments

Sam-developer successfully deployed ElizaCloud to Railway with full CI/CD integration on the main branch, enabling faster testing cycles and production rollouts.

```bash
# Sample Railway deployment command for ElizaCloud
railway up --service eliza-cloud --with-postgres --with-redis
```

### Database Improvements
Odilitime fixed MySQL support and identified a dedupe bug with names affecting multi-agent configurations. The PR includes a comprehensive test suite to prevent regression.

## 2. New Features

### Sessions API
A new Sessions API (PR #5704) is being developed to simplify messaging between users and agents. This API abstracts away the complexity of servers, channels, and participants:

```javascript
// Create a session
const { sessionId } = await fetch('/api/messaging/sessions', {
  method: 'POST',
  body: JSON.stringify({
    agentId: 'agent-uuid',
    userId: 'user-uuid'
  })
}).then(r => r.json());

// Send a message
await fetch(`/api/messaging/sessions/${sessionId}/messages`, {
  method: 'POST',
  body: JSON.stringify({
    content: 'Hello, agent!'
  })
});

// Poll for responses
const { messages } = await fetch(
  `/api/messaging/sessions/${sessionId}/messages?after=${lastTimestamp}`
).then(r => r.json());
```

### Forms Plugin
Shaw is publishing a new forms plugin with example implementations for creating multi-step forms with callback functionality. This enables complex input gathering and validation through structured agent interactions.

### Auto-install CLI
A new feature has been added (PR #5702) to automatically install `@elizaos/cli` as a dev dependency when running `start` or `dev` commands in non-monorepo environments. This improves developer experience by ensuring consistent tooling:

```bash
# When running in non-monorepo projects, the CLI detects missing dependencies
elizaos start
# "Adding @elizaos/cli as dev dependency for enhanced development experience..."
# "Installing @elizaos/cli with bun..."
# "✓ @elizaos/cli installed successfully"
```

## 3. Bug Fixes

### Message Bus Discarding Issue
cjft identified and fixed a critical bug in the message bus where messages were being incorrectly discarded, causing AI responses to fail. The issue stemmed from an edge case in the message processing pipeline where valid messages were being filtered out before reaching their destination.

### MySQL Support
Odilitime fixed MySQL support and identified a bug with name deduplication. The issue was occurring when two agents with identical names were created, causing unpredictable behavior due to the way ElizaOS generates deterministic UUIDs based on agent names.

### Twitter API Authentication
Users reported 401 errors with Twitter bots, traced to Twitter's authentication system now using keys instead of email addresses. The recommended fix is to ensure your application is subscribed to Twitter's basic plan with read/write permissions explicitly enabled.

## 4. API Changes

### IStorageService Type
Issue #5698 proposes adding an `IStorageService` type to the core package. Current implementations rely on `ServiceType.REMOTE_FILES`, but a dedicated storage service type would better represent the functionality.

```typescript
// Proposed new type in core/services
export interface IStorageService {
  uploadFile(file: Buffer, path: string): Promise<string>;
  downloadFile(path: string): Promise<Buffer>;
  listFiles(prefix?: string): Promise<string[]>;
  deleteFile(path: string): Promise<boolean>;
}
```

### Action Unregistration
Issue #5697 requests adding an `unregisterAction` method to the core runtime to complement the existing registration capabilities:

```typescript
// Current API only allows registration
runtime.registerAction({
  name: "doSomething",
  description: "Does something interesting",
  handler: async () => { /* ... */ }
});

// Proposed addition
runtime.unregisterAction("doSomething");
```

### Build Optimization
PR #5701 removed the docs filter from the main build process for more efficient builds and removed unnecessary dependencies from the core package to reduce bundle size.

## 5. Social Media Integrations

### Twitter Plugin Issues
Users reported 401 errors with the Twitter plugin. The issue appears related to Twitter API's authentication changes, which now require using API keys rather than email addresses. The team recommends ensuring your Twitter developer account has the basic plan subscription with read/write permissions enabled.

### Farcaster Integration
The team is planning a significant refactoring of the plugin-farcaster integration to use Neynar webhooks instead of polling. This change will make the integration more efficient and reliable, reducing rate limit issues.

R0am asked about Spartan's frequent posting behavior, and Odilitime confirmed this was during development. The "inefficient way" and V2 posting engine were causing repetitive posts, but it's now back to normal 90+ minute intervals.

## 6. Model Provider Updates

### Character-Specific Knowledge Paths
Odilitime submitted PR #36 to enhance the plugin-knowledge component to support character-specific knowledge paths. This allows different agents to use separate document collections:

```javascript
// Configure in character settings rather than .env
{
  "name": "Researcher",
  "settings": {
    "KNOWLEDGE_PATH": "./data/research-papers" 
  }
}
```

### System Prompts Implementation
A discussion clarified the benefits of using the system field in Vercel AI SDK:

```javascript
// More effective approach using system role
const response = await ai.generateText({
  system: "You are a helpful assistant that speaks like Shakespeare.",
  messages: [
    { role: "user", content: "Tell me about quantum physics" }
  ]
});
```

## 7. Breaking Changes

### V1 to V2 Migration Issues
While not explicitly mentioned in the recent discussions, developers should note that the project continues to address legacy compatibility issues:

- PR #5701 includes changes to core dependencies that might affect markdown rendering in custom plugins
- The removal of Tauri CI/CD documentation (PR #5700) indicates that mobile deployments now follow a different workflow
- Recent changes to how plugins are namespaced could require updates to existing plugin imports

### Platform Cloud Requirements
Shaw mentioned implementation of container management for platform cloud. When this is deployed, there will be changes to how agents are hosted and managed:

1. The new Railway deployment model requires Redis and Postgres
2. Deployment to Phala cloud has specific requirements detailed by Agent Joshua
3. Future integrations will add authentication via WorkOS and payments through Stripe and x402

Developers should prepare for these changes by reviewing the updated documentation and migration guides as they become available.

[View PR #5704: Sessions API](https://github.com/elizaOS/eliza/pull/5704)  
[View PR #5702: Auto-install CLI](https://github.com/elizaOS/eliza/pull/5702)  
[View Issue #5698: Add IStorageService type](https://github.com/elizaOS/eliza/issues/5698)  
[View Issue #5697: Add unregisterAction](https://github.com/elizaOS/eliza/issues/5697)