# ElizaOS Developer Update - May 31, 2025

## 1. Core Framework

The ElizaOS team has achieved a significant milestone with the transition from beta to v1.0.0 release. This represents a foundational shift in the architecture and capability of the platform.

### 1.0.0 Release Status
- The team successfully completed the main branch swap, moving old v0 code to a 0.x branch and updating plugins to 1.x branches
- The release required coordinating changes across approximately 175 repositories simultaneously
- A soft launch to partners is currently underway to gather feedback before wider announcement
- Final release is now scheduled for Tuesday/Wednesday next week (delayed from May 30) to ensure a cleaner, more stable launch

### Agent Runtime Improvements
- The new agent terminal can be accessed through the CLI with:
  ```bash
  elizaos create
  elizaos start
  ```
  Then visit localhost:3000 to access the web-based terminal interface

- Significant memory system enhancements improving agent intelligence
- Refactored model handling in AgentRuntime to support provider and priority:
  ```typescript
  // New ModelHandler type with provider and priority
  type ModelHandler = {
    provider: string;
    priority?: number;
    // other properties...
  };
  ```

- Enhanced shouldRespond logic to consider potential actions and support configurable bypass types:
  ```
  # Configure bypass types via environment variables
  SHOULD_RESPOND_BYPASS_TYPES=TYPE1,TYPE2
  SHOULD_RESPOND_BYPASS_SOURCES=SOURCE1,SOURCE2
  ```

## 2. New Features

### WebSocket-based Log Streaming
- Added real-time log streaming with intelligent fallback to API polling
- Implementation includes a live mode toggle for instant log updates

```javascript
// Example log streaming client implementation
const connectWebSocket = () => {
  const ws = new WebSocket(`ws://${window.location.host}/api/logs/stream`);
  
  ws.onmessage = (event) => {
    const log = JSON.parse(event.data);
    addLogToView(log);
  };
  
  ws.onclose = () => {
    if (isLiveModeEnabled) {
      setTimeout(connectWebSocket, 3000); // Reconnect after delay
    } else {
      fallbackToPolling(); // Use API polling if live mode disabled
    }
  };
};
```

### Comprehensive Image and Video Chat Support
- Full multimedia support in chat interface for both sharing and processing content
- AI-powered image description generation with automatic formatting:
  ```typescript
  const result = await describeImage(imageUrl, {
    generateTitle: true,     // Creates a concise title
    categoryDetection: true, // Detects content categories
    detailLevel: "high"      // Controls description verbosity
  });
  ```

### TEE Project Starter Template 
- Rapid deployment template for Trusted Execution Environment cloud providers
- Currently supports Phala Network with extended CLI commands:
  ```bash
  elizaos tee phala  # Installs Phala CLI tools
  ```

### Enhanced Knowledge Management
- Migrated knowledge functionality to plugin-knowledge for optional RAG capabilities
- Added support for PDF document processing with intelligent chunking
- New knowledge graph view for visualizing memory relationships

## 3. Bug Fixes

### Critical Response Handling
- Fixed a critical issue where dynamic providers weren't being processed in reply actions
- Resolved JSON parsing problems with nested objects using improved regex normalization
- Added handling for malformed Unicode escape sequences that were causing database errors

### Registry and Environment Issues
- Fixed environment variable resolution to properly handle shared .env files
- Improved registry integration with fallback to rawgit when Vercel is unavailable
- Fixed hardcoded registry URLs throughout the codebase, now using elizaos-plugins/registry

### Twitter Integration Fixes
- Significantly improved Twitter/X integration with timeline support
- Fixed formatting of tweets with better whitespace handling:
  ```typescript
  // Improved tweet text formatting with double newlines between sentences
  const formatTweetText = (text) => {
    return text
      .replace(/\.\s+/g, '.\n\n')  // Add double newline after periods
      .replace(/\n{3,}/g, '\n\n'); // Normalize multiple newlines
  };
  ```

### PostgreSQL Support
- Fixed issue with agent database transitions from SQLite to PostgreSQL
- Improved PostgreSQL vector extension support for knowledge processing
- Added configurable `PGLITE_DATA_DIR` with proper isolation between projects:
  ```
  # Configure database directory in .env
  PGLITE_DATA_DIR=./data/elizadb
  ```

## 4. API Changes

### New Endpoints
- Created new API endpoints for room management:
  - `/api/agents/:agentId/rooms` - Create new rooms
  - `/api/agents/:agentId/rooms/participant` - Get rooms where agent participates
  - `/api/worlds` - Create and manage conversation worlds
  - `/api/agents/:agentId/message?worldId=X` - Optional worldId parameter

- Added support for parameterized routes in plugins:
  ```javascript
  // Now supports routes like:
  plugin.routes.add('GET', '/items/:id', (req, res) => {
    const itemId = req.params.id;
    // Handle request...
  });
  ```

### Database Batch Operations
- Enhanced database API with support for batch operations:
  ```typescript
  // Previous single entity API
  const entity = await runtime.getEntityById(id);
  
  // New batch API
  const entities = await runtime.getEntitiesByIds([id1, id2, id3]);
  ```

- Added comprehensive integration tests for all major database operations

## 5. Social Media Integrations

### Twitter Enhancement
- Added Twitter timeline support with configurable polling intervals:
  ```
  # Environment variables for Twitter timeline interaction
  TWITTER_TIMELINE_ENABLE=true
  TWITTER_TIMELINE_POLL_INTERVAL=300000
  ```

- Improved tweet text formatting with better handling of newlines
- Fixed Cloudflare blockage issues in Twitter client

### Discord Improvements
- Added support for channel-specific responses with CHANNEL_IDS environment variable
- Fixed timeout issues during Discord agent unregistration
- Enhanced error handling and logging throughout the plugin

## 6. Model Provider Updates

### AI/ML API Provider
- Added complete support for AI/ML API as a model provider
- Enhanced model usage events tracking for embeddings and image description in OpenAI plugin

### Custom Embedding Support
- Extended OpenAI plugin to support custom embedding endpoints:
  ```
  # Configure separate endpoint for embeddings
  OPENAI_EMBEDDING_BASE_URL=https://custom-embedding-api.example.com/v1
  ```

## 7. Breaking Changes

### V1 Migration Notes
- The CLI package has been renamed from beta to stable (1.0.0)
- Command usage now follows the simplified format:
  ```bash
  elizaos [command]  # Previously npx elizaos [command]
  ```

- Knowledge is now handled by the plugin-knowledge package instead of being built into core
- Plugins have been moved out of the monorepo to dedicated repositories under elizaos-plugins
- The server process now creates a full .env file with example configuration on startup

### Plugin System Changes
- Plugin dependencies are now properly supported, allowing transitive dependencies
- Plugin route handling now supports parameterized routes with path parameters
- Registry URLs have moved from elizaos/registry to elizaos-plugins/registry

With the full 1.0.0 release coming next week, we encourage all developers to test against the current v2-develop branch to ensure compatibility and provide any last-minute feedback before the public launch.