# ElizaOS Developer Update: Week of June 16 to June 23, 2025

## Core Framework

This week marked a significant milestone with the **successful separation of server functionality into its own package**. PR [#5122](https://github.com/elizaos/eliza/pull/5122) extracted server components into `@elizaos/server` while maintaining backward compatibility with existing CLI integrations. This architectural shift enables more flexible deployment options and cleaner separation of concerns.

Character validation received a major overhaul through the implementation of **Zod-based schema validation** in PR [#5167](https://github.com/elizaos/eliza/pull/5167). This adds robust type checking with safe JSON parsing to prevent runtime errors from malformed character files.

Project loading logic was consolidated in PR [#5169](https://github.com/elizaos/eliza/pull/5169), eliminating code duplication between CLI and server components. This refactoring streamlines character loading and improves maintainability.

The CLI command structure was simplified by merging `elizaos stop` into `elizaos agent stop --all` in PR [#5175](https://github.com/elizaos/eliza/pull/5175), creating a more consistent developer experience.

## New Features

### Ollama Integration

ElizaOS now supports **Ollama as a fourth AI provider** option alongside OpenAI, Anthropic, and LocalAI in the `elizaos create` command. This integration, added in PR [#5160](https://github.com/elizaos/eliza/pull/5160), gives developers more flexibility when choosing AI backends:

```bash
# Create a new project with Ollama as the AI provider
elizaos create my-project --ai-provider ollama
```

### Enhanced Chat Interface

The GUI chat experience received significant improvements with PR [#5179](https://github.com/elizaos/eliza/pull/5179), which adds title functionality to chat sessions. Media content handling was enhanced in PR [#5165](https://github.com/elizaos/eliza/pull/5165) with better color contrast and formatting:

```javascript
// Example of retrieving a chat title 
const chatTitle = await api.get(`/api/channels/${channelId}/title`);
```

### Agent Management APIs

PR [#5113](https://github.com/elizaos/eliza/pull/5113) added new API endpoints for managing agents across channels, enabling programmatic control of agent participation:

```typescript
// Add an agent to a channel
await fetch(`/api/agents/${agentId}/channels/${channelId}`, {
  method: 'POST'
});

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

## Bug Fixes

### Memory and Message Filtering

A critical bug in message filtering was resolved in PR [#5149](https://github.com/elizaos/eliza/pull/5149), ensuring messages are properly scoped to the current chat/channel. This prevents the confusing scenario where messages from one conversation appeared in another.

The issue with the GUI getting stuck in a perpetual "agent is thinking" state was fixed in PR [#5151](https://github.com/elizaos/eliza/pull/5151). This resolves cases where an agent selecting IGNORE or sending an empty response would block further user interaction.

### Windows Compatibility

Project loading failures on Windows development machines, reported in issue [#5155](https://github.com/elizaos/eliza/issues/5155), were addressed in PR [#5156](https://github.com/elizaos/eliza/pull/5156). The fix properly handles path separators in project imports, ensuring cross-platform compatibility.

### Bootstrap Evaluator Callbacks

PR [#5129](https://github.com/elizaos/eliza/pull/5129) fixed a critical issue with bootstrap evaluator callbacks that were previously unhandled. The fix forwards the callback handler to `runtime.evaluate()` instead of passing an empty closure, ensuring proper execution flow.

## API Changes

The Postman collection was comprehensively updated in PR [#5120](https://github.com/elizaos/eliza/pull/5120) to include all missing API endpoints, providing complete documentation for the 90+ REST endpoints now available.

Character loading APIs now use a standardized response format, with consistent error handling and validation. Developers should note that character validation is stricter in this release - malformed character files will be rejected with clear error messages.

Several endpoints received query parameter enhancements for filtering:
- Agent logs: Added roomId, type, count, and offset parameters
- Messages: Improved filtering by channelId, timestamp, and source

## Social Media Integrations

The Twitter plugin is currently undergoing maintenance, as noted in documentation updates from PR [#5046](https://github.com/elizaos/eliza/pull/5046). Developers are advised to check the documentation for the latest status before implementing Twitter integrations.

Environment variable configuration for social connectors was standardized in PR [#5055](https://github.com/elizaos/eliza/pull/5055), replacing legacy username/password authentication with API-based authentication using keys, tokens, and secrets.

## Model Provider Updates

### Anthropic Claude Prompt Updates

PR [#5094](https://github.com/elizaos/eliza/pull/5094) improved action ordering and descriptions in prompts to ensure consistent behavior with the Claude model. This addresses occasional issues where actions weren't being correctly prioritized.

### OpenAI Integration Optimization

Several performance optimizations were applied to the OpenAI provider, including improved error handling and rate limit management. Testing revealed a 15% reduction in token usage for complex queries.

## Breaking Changes

### V1 to V2 Migration Notes

As ElizaOS transitions from V1 to V2, developers should be aware of several breaking changes that may affect existing projects:

1. **Plugin Loading Strategy**: The plugin loading mechanism has been completely refactored in V2. Plugins that relied on the old loading strategy may need to be updated. Use the following pattern to ensure compatibility:

```typescript
// V1 (deprecated)
const myPlugin = {
  // plugin code
};

// V2 (recommended)
export default {
  name: 'my-plugin',
  version: '1.0.0',
  // plugin code
};
```

2. **Character Validation**: V2 enforces stricter character validation. Characters that worked in V1 may be rejected in V2 if they don't conform to the schema. Use the `elizaos character validate` command to check existing characters.

3. **Server Path Changes**: With the separation of server functionality into its own package, import paths have changed. Update imports from `@elizaos/cli/server` to `@elizaos/server`.

4. **Command Consolidation**: The standalone `elizaos stop` command has been removed in favor of `elizaos agent stop --all`. Update any scripts or documentation accordingly.

For a complete migration guide, please refer to the updated documentation at [eliza.how/docs/migration-guide](https://eliza.how/docs/migration-guide).