# ElizaOS Developer Update - Week of June 1 to June 7, 2025

## Core Framework

The ElizaOS framework has undergone significant architectural improvements this week with the official release of version 1.0.0. The most notable changes include:

- **Message Server Refactoring**: The message server has been completely separated from the agent runtime and is now a standalone component with its own database. This architectural change improves modularity and allows for more scalable messaging between agents and services. ([PR #4864](https://github.com/elizaos/eliza/pull/4864))

- **Plugin Specification System**: Formal plugin specifications have been added to the core framework, establishing a standardized API for plugin development while maintaining backward compatibility. This enables future versioning of the plugin API (v2, v3, etc.) with clear migration paths. ([PR #4851](https://github.com/elizaos/eliza/pull/4851))

- **Workspace Dependency Resolution**: Fixed plugin loading to properly resolve workspace dependencies, improving reliability across different development environments and making it easier to develop plugins within a monorepo structure. ([PR #4888](https://github.com/elizaos/eliza/pull/4888))

- **Mobile Support**: Added responsive mobile design with improved sidebar handling and upgraded to Tailwind v4, enhancing the user experience across different device sizes. ([PR #4866](https://github.com/elizaos/eliza/pull/4866))

## New Features

### Plugin Development Enhancements

The plugin system has received significant improvements, making it easier to develop and integrate new plugins:

```typescript
// Creating a new plugin using the improved TEE starter template
// Run this command in your terminal:
npx elizaos create -t tee my-tee-plugin

// Using the new plugin specification system in your plugin:
import { Plugin } from "@elizaos/core/v1";

export class MyPlugin implements Plugin {
  // New standardized interface
  name = "my-plugin";
  version = "1.0.0";
  
  // New handler registration pattern
  register(runtime) {
    runtime.registerAction("myAction", this.handleMyAction.bind(this));
  }
  
  async handleMyAction(params, context) {
    // Action implementation
    return { result: "Action completed" };
  }
}
```

### Improved API for Room Management

Added a missing API endpoint for retrieving room information, making it easier to build applications that need specific room data:

```typescript
// Example of using the new room API endpoint
const fetchRoomData = async (agentId, roomId) => {
  const response = await fetch(`/api/agents/${agentId}/rooms/${roomId}`);
  const roomData = await response.json();
  
  // Now you can access room participants, history, and metadata
  console.log(`Room ${roomData.name} has ${roomData.participants.length} participants`);
  
  return roomData;
};
```

## Bug Fixes

### Twitter Plugin Issues Resolved

A critical issue with the Twitter plugin has been fixed that was causing Cloudflare blocks and cookie handling problems:

```javascript
// Before fix: Twitter plugin would trigger Cloudflare blocks
const agent = new ElizaAgent({
  plugins: ["@elizaos-plugins/plugin-twitter"]
});
// Error: "Cannot read properties of undefined (reading 'id_str')"
// Error: Cloudflare blocks requests

// After fix (v1.0.1/1.0.2): Improved cookie handling and TypeScript support
// Install the fixed version:
npx elizaos plugins add @elizaos-plugins/plugin-twitter
```

The update includes better error handling for Twitter API responses and fixes to prevent maximum call stack size errors when stopping Twitter agents.

### CLI and Plugin Loading Improvements

Fixed multiple issues with plugin loading and CLI functionality:

- Resolved initialization errors when creating new plugins from templates (removed unnecessary Telegram/Discord config requirements)
- Fixed failing CLI test suites, achieving 100% test success rate
- Optimized plugin loading to reduce startup log spam with smarter import strategy selection

## API Changes

### Core Package API Restructuring

The core package build process has been enhanced to provide dedicated entry points for different API versions, improving modularity and forward compatibility:

```typescript
// Old import pattern (still supported)
import { Plugin } from "@elizaos/core-plugin-v1";

// New versioned import pattern (recommended)
import { Plugin } from "@elizaos/core/v1"; 

// Future versions will be accessible like this:
// import { PluginV2 } from "@elizaos/core/v2";
```

### Message Server API

The message server now uses a standalone architecture with its own database, introducing a new API for centralized messaging:

```typescript
// New message server API example
import { MessageServer } from "@elizaos/core/server";

// Create server instance
const server = new MessageServer({
  database: "postgres", // or "sqlite"
  connectionString: process.env.DATABASE_URL
});

// Register a channel handler
server.registerChannel("general", {
  onMessage: async (message) => {
    console.log(`New message in general: ${message.content}`);
    // Process message content
  }
});
```

## Social Media Integrations

### Twitter Plugin Update (v1.0.1 and v1.0.2)

The Twitter plugin has received critical updates to fix Cloudflare blocking issues and improve cookie handling:

```typescript
// Configuration options for the updated Twitter plugin
const twitterConfig = {
  // Posting frequency controls
  TWITTER_POST_INTERVAL_MIN: 30, // minutes
  TWITTER_POST_INTERVAL_MAX: 120, // minutes
  
  // Target user configuration
  TWITTER_TARGET_USERS: "user1,user2,user3",
  
  // Action processing settings
  ACTION_PROCESSING: true,
  ACTION_INTERVAL: 30 // seconds
};

// Using the updated plugin to create tweets with links and screenshots
const tweet = await agent.actions.sendTweet({
  text: "Check out this new feature in ElizaOS!",
  mediaUrls: ["https://example.com/screenshot.png"],
  linkUrl: "https://eliza.how/docs"
});
```

The documentation for Twitter interactions has been updated to clarify behavior of configuration parameters like `TWITTER_TARGET_USERS`, `TWITTER_POST_INTERVAL_MIN/MAX`, and `ACTION_INTERVAL`.

## Model Provider Updates

No significant model provider updates were made this week, but a new method for integrating custom models through the plugin system has been established. This approach improves the extensibility of the core framework by moving model provider integrations to plugins.

## Breaking Changes

### V1 to V2 Migration Issues

ElizaOS v2 has been quietly released and is being finalized for official announcement. Developers should be aware of these critical migration points:

1. **Plugin API Changes**: The plugin system now uses a formal specification. While backward compatibility is maintained, plugins should migrate to the new import pattern:
   ```typescript
   // Update your imports from
   import { Plugin } from "@elizaos/core-plugin-v1";
   // to
   import { Plugin } from "@elizaos/core/v1";
   ```

2. **Twitter Plugin Compatibility**: The latest Twitter plugin (v1.0.2) is not compatible with ElizaOS v0.25.19. You must update to ElizaOS v1.0.2 or later to use the fixed Twitter plugin.

3. **Message Server Architecture**: Applications relying on the previous message handling flow need to be updated to work with the new standalone message server. This affects how messages are stored, retrieved, and processed.

4. **Action Processing**: The action planning system in v2 is still linear rather than parallel. While it plans multiple actions in sequence, it executes them one at a time to maintain accuracy.

5. **API Endpoint Changes**: Several API endpoints have been updated or replaced. Make sure to update your client applications to use the latest API routes, particularly for room and agent management.

For assistance with migration issues, refer to the updated documentation at https://eliza.how/docs/quickstart or join the discussion in our Discord channel.