# ElizaOS Developer Update - May 22, 2025

## Core Framework
The ElizaOS team is preparing for the highly anticipated v2 release, which is expected to launch within days. This release (also referred to as 1.0.0) represents a significant architectural evolution with a completely redesigned CLI featuring a modular approach for easier agent development and management.

Major framework changes include:
- **Unified Environment System**: Introduced `findNearestEnvFile` utility ([PR #4686](https://github.com/elizaos/eliza/pull/4686)) that standardizes environment file lookup across the CLI, making project configuration more predictable.
- **Plugin Registry Improvements**: Added registry support ([PR #4641](https://github.com/elizaos/eliza/pull/4641)) with proper error handling for malformed entries and timeout functionality ([PR #4678](https://github.com/elizaos/eliza/pull/4678)) to enhance plugin discovery and loading.
- **Agent Runtime Enhancements**: Refactored model handling in AgentRuntime ([PR #4507](https://github.com/elizaos/eliza/pull/4507)) to support provider and priority for better model selection.
- **Database Configuration**: Added support for unique PGLite folder creation ([PR #4695](https://github.com/elizaos/eliza/pull/4695)) to keep database files with the project rather than in global space, preventing configuration conflicts.

Users have reported challenges with v2 implementation, citing installation conflicts and documentation gaps. The team has acknowledged these issues and is prioritizing improvements before the month-end release.

## New Features

### World and Room Management APIs
ElizaOS now provides comprehensive API endpoints for managing multi-agent environments:
```typescript
// Create a new world
POST /api/worlds
{
  "name": "ProjectWorld",
  "description": "Collaborative workspace for project teams"
}

// Create a room in a specific world
POST /api/worlds/:worldId/rooms
{
  "name": "TeamDiscussion",
  "description": "For team coordination"
}

// Get rooms where an agent participates
GET /api/agents/:agentId/rooms
```

### Enhanced RAG Implementation
The knowledge system has been improved with configurable chunking parameters:
```javascript
// config.js example
export default {
  rag: {
    chunkSize: 1500,    // Default: 1000 tokens
    chunkOverlap: 300,  // Default: 200 tokens
    similarityThreshold: 0.75  // Default: 0.7
  }
}
```

### Message API with World Selection
You can now specify which world context to use when sending messages to agents:
```bash
# Send a message in a specific world context
curl -X POST "http://localhost:3000/api/agents/agent-id/message?worldId=world-id" \
  -H "Content-Type: application/json" \
  -d '{"text": "Please summarize our project status"}'
```

### Sentry Integration
Added Sentry logging to core logger errors ([PR #4650](https://github.com/elizaos/eliza/pull/4650)) with configurable environment variables:
```
# .env configuration
SENTRY_DSN=https://your-sentry-dsn
SENTRY_ENVIRONMENT=production
SENTRY_RELEASE=1.0.0
```

## Bug Fixes

### Database and Persistence Issues
- **Foreign Key Constraint Violation**: Fixed issue preventing deletion of agents that had participated in rooms ([PR #4510](https://github.com/elizaos/eliza/pull/4510)). The problem stemmed from cascading constraints not being properly applied to room_participants.
- **Unicode Escape Sequence Errors**: Addressed JSON serialization in PGLite ([PR #4458](https://github.com/elizaos/eliza/pull/4458)) to handle malformed Unicode escape sequences in log entries, particularly with TEXT_LARGE model types.
- **Environment Resolution**: Fixed environment variable handling regression that was causing configuration conflicts ([PR #4547](https://github.com/elizaos/eliza/pull/4547)).

### Agent Message Processing  
- **LLM Response Parsing**: Fixed issues with LLM response parsing ([PR #4580](https://github.com/elizaos/eliza/pull/4580)) to support custom fields and clean up empty message headers.
- **Reply Action Handling**: Updated reply logic ([PR #4608](https://github.com/elizaos/eliza/pull/4608)) to skip LLM calls only when no dynamic providers are involved, preserving provider context.
- **Message Timeout**: Guaranteed completion callback execution in message handlers ([PR #4589](https://github.com/elizaos/eliza/pull/4589)), addressing hanging messages that were never marked as processed.

## API Changes
Several breaking changes have been introduced in the v2 codebase:

### New Agent and Message Endpoints
- Added API to get rooms per agent ([PR #4677](https://github.com/elizaos/eliza/pull/4677))
- Added endpoint to retrieve agent ID on creation ([PR #4634](https://github.com/elizaos/eliza/pull/4634))
- Added APIs for creating and managing worlds ([PR #4667](https://github.com/elizaos/eliza/pull/4667))
- Added chat clear and delete message features ([PR #4659](https://github.com/elizaos/eliza/pull/4659))

### Plugin System Modifications
- Plugin routes are now accessible at `/api/agents/AGENT_UUID_OR_NAME/plugins/PLUGIN_NAME/ROUTE_FROM_PLUGIN` ([PR #4415](https://github.com/elizaos/eliza/pull/4415))
- Removed forced bootstrap plugin addition ([PR #4417](https://github.com/elizaos/eliza/pull/4417)), allowing simpler agent configurations
- Enhanced OpenAI plugin with support for custom embedding endpoints ([PR #4421](https://github.com/elizaos/eliza/pull/4421))

## Social Media Integrations
Social media plugins have undergone significant changes:

### Twitter Integration
- **Timeline Functionality**: Added Twitter timeline interaction capabilities ([PR #4429](https://github.com/elizaos/eliza/pull/4429)), optionally enabled via environment variables:
```
ENABLE_TWITTER_POST_GENERATION=true
ENABLE_TWITTER_TIMELINE_SEARCH=true
ENABLE_TWITTER_AUTO_RETWEET=false
ENABLE_TWITTER_FOLLOW_THANKS=true
```
- **Authentication Improvements**: Fixed issues with Cloudflare errors preventing login, with users advised to try older plugin versions and manual login as a workaround until a permanent fix is deployed.

### Discord Plugin
- Added channel ID environment variables ([PR #4665](https://github.com/elizaos/eliza/pull/4665)) to limit responses to specific channels:
```
DISCORD_CHANNEL_IDS=123456789,987654321
```
- Fixed timeout issues during Discord agent unregistration ([PR #4450](https://github.com/elizaos/eliza/pull/4450))

### Plugin Repository Reorganization
Several social media plugins have been moved to dedicated repositories:
- Twitter: https://github.com/elizaos-plugins/plugin-twitter
- Discord: https://github.com/elizaos-plugins/plugin-discord
- Telegram: https://github.com/elizaos-plugins/plugin-telegram
- Farcaster: https://github.com/elizaos-plugins/plugin-farcaster

## Model Provider Updates
ElizaOS has significantly enhanced its model provider integrations:

### Provider Modularity
- The framework now executes a modular backend for different LLM providers, providing more flexibility in swapping between providers.
- Improved model selection logic now considers both provider and priority when handling requests, allowing more nuanced control over which models are used in different scenarios.

### Performance Optimizations
- Reply action now uses small models ([PR #4416](https://github.com/elizaos/eliza/pull/4416)) for faster response generation, significantly improving performance for simple responses.
- Added model usage events for embeddings and image description in the OpenAI plugin ([PR #4438](https://github.com/elizaos/eliza/pull/4438)), enhancing usage tracking.

### Provider-Specific Changes
Many provider plugins have been moved out of the monorepo and into dedicated repositories:
- Anthropic: Removed from monorepo ([PR #4427](https://github.com/elizaos/eliza/pull/4427))
- OpenAI: Removed from monorepo ([PR #4511](https://github.com/elizaos/eliza/pull/4511))
- Ollama: Removed from monorepo ([PR #4437](https://github.com/elizaos/eliza/pull/4437))
- Groq: Removed from monorepo ([PR #4436](https://github.com/elizaos/eliza/pull/4436))

Users experiencing the "No TEXT_EMBEDDING model registered" error should ensure they have the appropriate plugin installed and properly configured in their character files.

## Breaking Changes

### V1 to V2 Migration Issues
When migrating from v1 to v2, be aware of these breaking changes:

1. **Plugin Compatibility**: Many plugins have been moved to dedicated repositories, requiring explicit installation.
   ```bash
   # Install plugins explicitly
   elizaos plugin install @elizaos/plugin-twitter
   elizaos plugin install @elizaos/plugin-discord
   ```

2. **Character Configuration**: The character configuration format has changed significantly:
   ```json
   // v2 character configuration
   {
     "name": "Assistant",
     "clients": ["twitter"],
     "plugins": [
       "@elizaos/plugin-twitter",
       "@elizaos/plugin-anthropic"
     ],
     "modelProvider": "anthropic",
     "model": "claude-3-haiku-20240307",
     "settings": {
       "twitter": {
         "enable_replies": true,
         "enable_timeline_search": false
       }
     }
   }
   ```

3. **Opus Dependencies**: Removed Discord opus dependencies ([PR #4693](https://github.com/elizaos/eliza/pull/4693)), which may affect audio functionality.

4. **Database Configuration**: Database files are now stored within the project directory ([PR #4695](https://github.com/elizaos/eliza/pull/4695)), requiring database migration for existing projects.

5. **CLI Commands**: Many CLI commands have been restructured, with consolidated functionality and improved parameter handling.

The team recommends reviewing the updated documentation before attempting to migrate existing agents to v2. A more comprehensive migration guide will be published alongside the v2 release.