# ElizaOS Developer Update: June 7-13, 2025

## Core Framework

Major architectural improvements have been implemented in the ElizaOS core this week, focusing on modularization and extensibility:

### Type System Refactoring
- Split monolithic type definitions into granular, domain-specific files for better maintainability and developer experience ([#4999](https://github.com/elizaos/eliza/pull/4999), [#5020](https://github.com/elizaos/eliza/pull/5020))
- Added target property to Content type for improved message routing ([#5026](https://github.com/elizaos/eliza/pull/5026))

### Service Interface Improvements
- Added dummy services for testing and created shared service types for plugin development ([#5030](https://github.com/elizaos/eliza/pull/5030))
- Added agentId to MessageBusService log output for better debugging ([#5088](https://github.com/elizaos/eliza/pull/5088))

### Directory Structure Standardization 
- Centralized generated files into a hidden `.eliza` folder for consistent project organization ([#5043](https://github.com/elizaos/eliza/pull/5043))
- Implemented dynamic database loading and improved CLI commands to load plugin dependencies ([#5018](https://github.com/elizaos/eliza/pull/5018))

## New Features

### CLI Experience Enhancements
```typescript
// New CLI prompt system using modern @clack/prompts
import { confirm, intro, note, outro, select, text } from '@clack/prompts';

// Old approach with legacy 'prompts' library:
const response = await prompts({
  type: 'text',
  name: 'value',
  message: 'Enter plugin name'
});

// New approach with @clack/prompts:
const pluginName = await text({
  message: 'Enter plugin name',
  validate: (value) => value.length === 0 ? 'Plugin name cannot be empty' : undefined
});
```

- Migrated CLI prompts from legacy `prompts` library to modern `@clack/prompts` for enhanced UX ([#5016](https://github.com/elizaos/eliza/pull/5016))
- Optimized CLI project creation with Bun offline mode for faster installations in CI environments ([#5087](https://github.com/elizaos/eliza/pull/5087))
- Added lockfile cleanup for GitHub fallback installations to prevent circular dependency issues ([#5009](https://github.com/elizaos/eliza/pull/5009))

### UI Components
- Added reusable SplitButton component with dropdown functionality for grouping related actions ([#5000](https://github.com/elizaos/eliza/pull/5000))
- Added responsive horizontal scrolling for character form to improve mobile experience ([#4988](https://github.com/elizaos/eliza/pull/4988))
- Implemented retry button for user messages in chat ([#4973](https://github.com/elizaos/eliza/pull/4973))

### Agent Capabilities
- Enhanced agent discovery and enabled automatic loading of project agents ([#5044](https://github.com/elizaos/eliza/pull/5044))
- Improved action descriptions and fixed prompt ordering for consistent behavior ([#5094](https://github.com/elizaos/eliza/pull/5094))
- Excluded text embedding from debug logs for better log readability ([#5003](https://github.com/elizaos/eliza/pull/5003))

## Bug Fixes

### Agent Communication Issues
Fixed critical agent communication problems that were causing infinite loops and cross-interference:

```typescript
// Fixed logic in processMessage to properly check message origin
if (
  message.type === 'agent_response' && 
  message.metadata?.agentId === this.agentId
) {
  // Skip processing our own agent_response messages to prevent infinite loops
  logger.debug(`Skipping own agent_response message to prevent loop`);
  return;
}
```

- Fixed agent cross-interference in DM channels where multiple agents would respond to messages intended for a single agent ([#4935](https://github.com/elizaos/eliza/pull/4935))
- Resolved agent self-response infinite loop in message service ([#4934](https://github.com/elizaos/eliza/pull/4934))
- Fixed "Agent not a participant in channel" error when sending messages through the API ([#4972](https://github.com/elizaos/eliza/pull/4972))

### UI and UX Fixes
- Resolved error that occurred when refreshing the browser on an agent chat page ([#4927](https://github.com/elizaos/eliza/pull/4927))
- Fixed issue with inactive agents incorrectly shown as active in sidebar ([#4929](https://github.com/elizaos/eliza/pull/4929))
- Fixed chat history selector reloads ([#5034](https://github.com/elizaos/eliza/pull/5034))
- Fixed empty logs display when data was present ([#5006](https://github.com/elizaos/eliza/pull/5006))

### Configuration and Runtime Fixes
- Addressed LOG_LEVEL from .env not working in version 1.0.6 ([#5005](https://github.com/elizaos/eliza/pull/5005))
- Fixed entity creation failure when initializing agents ([#5095](https://github.com/elizaos/eliza/pull/5095))
- Fixed plugin list in GUI settings displaying duplicates ([#5086](https://github.com/elizaos/eliza/pull/5086))
- Resolved issue with loading custom characters after upgrading to 1.0.7 ([#5039](https://github.com/elizaos/eliza/pull/5039))

## API Changes

### Domain-based API Restructuring
The API routes have been reorganized into a logical domain-based structure for improved scalability and maintainability ([#5010](https://github.com/elizaos/eliza/pull/5010)):

```typescript
// Before: Flat structure
app.get('/api/agents/:agentId/messages', getMessagesHandler);
app.post('/api/agents/:agentId/messages', sendMessageHandler);

// After: Domain-based organization
import { registerAgentRoutes } from './domains/agents';
import { registerMessagingRoutes } from './domains/messaging';

registerAgentRoutes(app);
registerMessagingRoutes(app);
```

- Added comprehensive Postman collection with 90+ REST API endpoints covering all Eliza framework APIs ([#5047](https://github.com/elizaos/eliza/pull/5047))
- Fixed missing GET `/agents/:agentId/rooms/:roomId` API endpoint ([#4860](https://github.com/elizaos/eliza/pull/4860))
- Improved error handling and status codes across API routes ([#5058](https://github.com/elizaos/eliza/pull/5058))

### Real-time Messaging
- Implemented real-time message deletion via SocketIO ([#4968](https://github.com/elizaos/eliza/pull/4968))
- Added messageDeleted and channelCleared SocketIO events for client synchronization
- Fixed chat UI to properly remove messages on delete ([#5035](https://github.com/elizaos/eliza/pull/5035))

## Social Media Integrations

### Twitter Integration Updates
- Twitter plugin and client integration are currently undergoing maintenance ([#5046](https://github.com/elizaos/eliza/pull/5046))
- Updated Twitter plugin configuration to replace legacy username/password-based authentication with API-based authentication ([#5055](https://github.com/elizaos/eliza/pull/5055))
- Added deprecation notices to Twitter plugin and client documentation
- Removed Twitter from main intro/README featured connectors lists

### Other Social Integrations
- Fixed choice action validation in social media plugins to return false instead of throwing errors ([#4904](https://github.com/elizaos/eliza/pull/4904))
- Ensured client-side message handling consistency across all social media platforms
- Fixed callback issues from plugin actions reaching end users ([#4919](https://github.com/elizaos/eliza/pull/4919), [#4954](https://github.com/elizaos/eliza/pull/4954))

## Model Provider Updates

### Integration Improvements
- Fixed GPT-4o access error with OpenAI API key ([#5023](https://github.com/elizaos/eliza/pull/5023))
- Removed truncation for Twitter posts since this is now handled properly by the Twitter plugin ([#5028](https://github.com/elizaos/eliza/pull/5028))
- Added support for handling streaming responses with model providers ([#5060](https://github.com/elizaos/eliza/pull/5060))

### Performance Optimizations
- Excluded text embedding from debug logs to reduce noise and improve log readability ([#5003](https://github.com/elizaos/eliza/pull/5003))
- Fixed Content Security Policy issues that were affecting Safari localhost SSL handling ([#5073](https://github.com/elizaos/eliza/pull/5073))
- Improved model provider response handling with better error messaging

## Breaking Changes

As part of the ongoing migration from V1 to V2 of the ElizaOS framework, teams should be aware of the following breaking changes:

### Knowledge System Changes
- Knowledge management (RAG) system is not currently working in version 1.0.6 as reported in issue [#5004](https://github.com/elizaos/eliza/issues/5004)
- The implementation is pending, with placeholder code in place for future development
- Projects relying on knowledge management should continue using version 1.0.5 until this is resolved

### Custom Character Loading
- Custom character loading mechanism changed in 1.0.7, requiring updates to agent initialization code
- Fixed in version 1.0.8 to properly load character files ([#5039](https://github.com/elizaos/eliza/issues/5039))
- If upgrading from <1.0.5, the CLI has switched from npm to bun as the primary package manager, requiring migration steps ([#4979](https://github.com/elizaos/eliza/pull/4979))

### Action Callback Changes
- Action handling has been refactored from callback-based to response-based patterns ([#5050](https://github.com/elizaos/eliza/pull/5050))
- This change provides better control over responses but requires updates to custom actions
- The removal of callback was temporarily reverted due to blocking other actions from accessing the callback ([#5056](https://github.com/elizaos/eliza/pull/5056))

Version 1.0.8 was released during this period ([#5051](https://github.com/elizaos/eliza/pull/5051)), incorporating numerous fixes and improvements to core functionality.