# ElizaOS Developer Update - June 15, 2025

## 1. Core Framework

ElizaOS has undergone significant architectural improvements with the release of versions 1.0.8 and 1.0.9 this week. These releases include comprehensive refactoring of the core architecture and messaging system.

### Runtime and Message Service Improvements
- Completely revamped the message server to be standalone and separate from agents. This provides better isolation and prevents cross-interference between agents ([PR #4864](https://github.com/elizaos/eliza/pull/4864))
- Fixed a critical agent cross-interference issue that was causing multiple agents to respond to messages intended for a single agent ([PR #4935](https://github.com/elizaos/eliza/pull/4935))
- Resolved self-response infinite loops in the message service that created endless back-and-forth conversations ([PR #4934](https://github.com/elizaos/eliza/pull/4934))
- Added central message bus response storage to memory for better message tracking ([PR #5102](https://github.com/elizaos/eliza/pull/5102))

### Type System Refactoring
- Split monolithic `types.ts` into granular files for better organization and maintainability ([PR #4999](https://github.com/elizaos/eliza/pull/4999))
- Added `target` property to the Content type for improved message routing ([PR #5026](https://github.com/elizaos/eliza/pull/5026))
- Added service interfaces for common service types to enhance plugin interoperability ([PR #5020](https://github.com/elizaos/eliza/pull/5020))

### Directory Structure and File Management
- Centralized directory detection with monorepo support ([PR #5011](https://github.com/elizaos/eliza/pull/5011))
- Migrated all generated files into standardized `.eliza` folder for better organization ([PR #5043](https://github.com/elizaos/eliza/pull/5043))

## 2. New Features

### Enhanced Plugin System
- Implemented dynamic loading of database tables and rebuilt plugin-sql for better extensibility ([PR #5018](https://github.com/elizaos/eliza/pull/5018)):
```typescript
// Example of using the new dynamically loaded database tables
import { SqlService } from '@elizaos/plugin-sql';

// Automatically migrates and manages tables based on model definition
const messages = await runtime.services.get(SqlService).table('messages');
const result = await messages.findMany({
  where: { roomId: activeRoom.id },
  orderBy: { createdAt: 'asc' }
});
```

- Added dummy service implementations for testing, making plugin development easier ([PR #5030](https://github.com/elizaos/eliza/pull/5030))
- Enhanced plugin installation with environment variable prompting ([PR #4945](https://github.com/elizaos/eliza/pull/4945))

### UI/UX Improvements
- Enhanced chat UI with improved styling, animated markdown, and code block components ([PR #5111](https://github.com/elizaos/eliza/pull/5111))
- Added retry button for user messages to facilitate conversation recovery ([PR #4973](https://github.com/elizaos/eliza/pull/4973))
- Improved mobile experience with responsive design for character form and chat interface ([PR #4974](https://github.com/elizaos/eliza/pull/4974))
- Added comprehensive API endpoints for managing agents across channels ([PR #5113](https://github.com/elizaos/eliza/pull/5113))

### CLI Enhancements
- Migrated CLI prompts from legacy library to modern `@clack/prompts` for better UX ([PR #5016](https://github.com/elizaos/eliza/pull/5016)):
```typescript
// Example of new CLI prompt usage
import { intro, text, confirm, select, outro } from '@clack/prompts';

intro('Welcome to ElizaOS!');
const name = await text({ message: 'What is your agent name?', placeholder: 'Eliza' });
const model = await select({ 
  message: 'Select a model provider:', 
  options: [
    { value: 'openai', label: 'OpenAI' },
    { value: 'anthropic', label: 'Anthropic' },
    { value: 'local', label: 'Local LLM' },
  ]
});
const confirm = await confirm({ message: 'Ready to create your agent?' });
```

- Optimized CLI project creation with Bun offline mode for faster installations ([PR #5087](https://github.com/elizaos/eliza/pull/5087))
- Implemented action prompt logging to better understand agent decision-making ([PR #5099](https://github.com/elizaos/eliza/pull/5099))

## 3. Bug Fixes

### Critical Message Handling Fixes
- Fixed agent database migration error with PostgreSQL schema creation in v1.0.8 ([Issue #5004](https://github.com/elizaos/eliza/issues/5004))
- Resolved issue with custom characters not loading after upgrading to 1.0.7 ([Issue #5039](https://github.com/elizaos/eliza/issues/5039))
- Fixed a foreign key constraint violation in `ensureConnections` function when handling chat messages ([PR #4936](https://github.com/elizaos/eliza/pull/4936)):
```typescript
// Previous implementation (fixed)
// The issue was the order of operations - trying to insert participants 
// before ensuring the room exists
async function ensureConnections(roomId, participants) {
  await insertParticipants(roomId, participants); // Was failing due to FK constraint
  await ensureRoomExists(roomId);
}

// Fixed implementation
async function ensureConnections(roomId, participants) {
  await ensureRoomExists(roomId); // Ensure room exists first
  await insertParticipants(roomId, participants); // Now works with valid FK
}
```

### File and Media Handling
- Fixed file upload functionality in GUI ([Issue #5116](https://github.com/elizaos/eliza/issues/5116))
- Resolved transcription API issues for audio processing ([PR #5118](https://github.com/elizaos/eliza/pull/5118))

### API and Authentication
- Updated Content Security Policy for better browser compatibility ([PR #5058](https://github.com/elizaos/eliza/pull/5058))
- Fixed incorrect API URL used for message server when SERVER_PORT is not 3000 ([PR #4980](https://github.com/elizaos/eliza/pull/4980))

## 4. API Changes

### Reorganized API Structure
- Complete reorganization of API routes into logical domain-based structure ([PR #5010](https://github.com/elizaos/eliza/pull/5010)):
```
/api
├── agents                  # Agent management endpoints
│   ├── [agentId]
│   │   ├── activate
│   │   ├── deactivate
│   │   ├── rooms          # Room management for specific agent
│   │   │   └── [roomId]
│   │   └── messages       # Messages for specific agent
│   └── ...
├── channels                # Channel management endpoints
│   ├── [channelId]
│   │   ├── messages
│   │   └── participants
│   └── ...
├── audio                   # Audio processing endpoints
├── memory                  # Memory management endpoints
└── ...
```

- Added comprehensive Postman collection with 90+ REST API endpoints ([PR #5047](https://github.com/elizaos/eliza/pull/5047), [PR #5120](https://github.com/elizaos/eliza/pull/5120))
- Fixed missing GET `/api/agents/:agentId/rooms/:roomId` API endpoint ([PR #4860](https://github.com/elizaos/eliza/pull/4860))

### New Endpoints
- Added API endpoints for managing channels and agent participation ([PR #5113](https://github.com/elizaos/eliza/pull/5113)):
```typescript
// Example of using the new API endpoints
// Add an agent to a channel
await fetch(`/api/channels/${channelId}/participants`, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ entityId: agentId, type: 'agent' })
});

// Remove an agent from a channel
await fetch(`/api/channels/${channelId}/participants/${agentId}`, {
  method: 'DELETE'
});
```

- Implemented real-time message deletion via SocketIO ([PR #4968](https://github.com/elizaos/eliza/pull/4968))

## 5. Social Media Integrations

### Twitter Plugin Updates
The ElizaOS Twitter account (149K followers) has been suspended due to API policy violations. The team is working urgently to resolve this situation while preparing alternative platforms.

- Updated Twitter plugin to use the PRO $200/month plan for individual users ([Discord discussion](https://discord.com/channels/00000000))
- Fixed formatting issues in Twitter replies that were incorrectly adding "\n\n" ([Community fix](https://discord.com/channels/00000000)):
```javascript
// Fix for Twitter plugin formatting issues
// Delete these lines from node_modules/@elizaos/plugin-twitter/dist/index.js
// Lines causing the issue with \n\n in replies
```

- Added improved context filtering to prevent responding to inappropriate content ([Issue discussion](https://discord.com/channels/00000000))
- Fixed retweeting behavior by respecting retweet settings ([PR discussion](https://discord.com/channels/00000000))

### Farcaster Integration
- Preparing Farcaster as a backup platform for communications ([Discord announcement](https://discord.com/channels/00000000))
- Accelerating development to ensure continuity of communications across multiple platforms

## 6. Model Provider Updates

### Integration with New Models
- Request opened for AWS Bedrock integration as an LLM option ([Issue #5117](https://github.com/elizaos/eliza/issues/5117))
- Proposal for Gemini/VertexAI plugin for working with ML models for satellite images and carbon credit MRV ([Discord discussion](https://discord.com/channels/00000000))

### Plugin Communication Enhancements
- Fixed callback issue where non-REPLY actions weren't reaching end users ([PR #4954](https://github.com/elizaos/eliza/pull/4954))
- Optimized message bus response handling for improved performance ([PR #5102](https://github.com/elizaos/eliza/pull/5102))

## 7. Breaking Changes

### V1 to V2 Migration Issues
- Knowledge management (RAG) functionality is not fully implemented in 1.0.6+ ([Issue #5004](https://github.com/elizaos/eliza/issues/5004))
  - This affects users upgrading from pre-1.0.6 who relied on document embedding and retrieval
  - The team is working on implementing this functionality in future releases

- Custom character loading issue after upgrading to 1.0.7 ([Issue #5039](https://github.com/elizaos/eliza/issues/5039))
  - Fixed in 1.0.8, but requires users to follow specific upgrade steps
  - If experiencing this issue, ensure your agent initialization follows the new pattern:
  ```typescript
  // New pattern for agent initialization in 1.0.7+
  const myAgent: ProjectAgent = {
    character: myCharacter,
    init: async (runtime: IAgentRuntime) => {
      // Your initialization code
      return true;
    }
  };
  
  const project: Project = {
    agents: [myAgent]
  };
  ```

- The action-callback mechanism has been substantially refactored ([PR #5050](https://github.com/elizaos/eliza/pull/5050))
  - This could affect plugins that rely on the previous callback approach
  - Update plugins to use the new response-based pattern:
  ```typescript
  // Old callback pattern (deprecated)
  const action: Action = {
    name: 'MY_ACTION',
    execute: async (inputs, callback) => {
      const result = await doSomething(inputs);
      callback(null, result);
    }
  };
  
  // New response-based pattern
  const action: Action = {
    name: 'MY_ACTION',
    execute: async (inputs) => {
      const result = await doSomething(inputs);
      return { success: true, data: result };
    }
  };
  ```

- Runtime initialization and database adapter handling has been refactored ([PR #5092](https://github.com/elizaos/eliza/pull/5092))
  - This affects plugins that directly interact with database adapters
  - Update your code to use the new service-based approach for database access

We are developing migration tools using LLMs to help transition plugins from V1 to V2 automatically. More details will be provided in future updates.