# ElizaOS Developer Update - June 24, 2025

## Core Framework

This week saw the completion of a significant architectural milestone with the separation of server functionality into a dedicated `@elizaos/server` package ([#5122](https://github.com/elizaos/eliza/pull/5122)). This change maintains backward compatibility with CLI integrations while enabling independent usage of server components. Developers building on ElizaOS can now import server functionality directly:

```typescript
import { createServer } from '@elizaos/server';

const server = await createServer({
  port: 3000,
  agents: myAgents
});
```

Character validation has been substantially improved with the implementation of Zod-based schemas ([#5167](https://github.com/elizaos/eliza/pull/5167)). This provides robust validation and safe JSON parsing for characters:

```typescript
// Define a character with validation
const myCharacter = {
  name: 'Herbert',
  plugins: ['@elizaos/plugin-sql', '@elizaos/plugin-openai'],
  settings: {
    OPENAI_API_KEY: process.env.OPENAI_API_KEY,
    OPENAI_MODEL: 'gpt-4o'
  }
};

// Character is validated against schema during loading
```

Project loading logic has been consolidated to eliminate duplication between CLI and server ([#5169](https://github.com/elizaos/eliza/pull/5169)), streamlining how agents and characters are loaded.

## New Features

### Ollama Integration

ElizaOS now supports Ollama as a fourth AI provider option ([#5160](https://github.com/elizaos/eliza/pull/5160)). You can select Ollama during project creation with:

```bash
elizaos create myproject
# Select Ollama when prompted for AI provider
```

### Enhanced Channel APIs

New API endpoints have been added for managing agents across channels ([#5113](https://github.com/elizaos/eliza/pull/5113)), making it easier to programmatically manage multi-agent interactions:

```typescript
// Add an agent to a channel
await fetch('/api/channels/:channelId/agents', {
  method: 'POST',
  body: JSON.stringify({ agentId: 'agent-uuid' })
});

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

### GUI Chat Title Functionality

The chat interface now supports custom titles ([#5179](https://github.com/elizaos/eliza/pull/5179)), improving chat organization and navigation:

```typescript
// Set a custom title for a chat
setChannelTitle(channelId, "Project Discussion");
```

## Bug Fixes

Several critical bugs were fixed this week:

* **GUI Stuck Issue**: Resolved a problem where the UI would get stuck in "agent is thinking" state after certain responses ([#5151](https://github.com/elizaos/eliza/pull/5151))

* **Message Filtering**: Fixed message filtering to properly scope messages to the current chat/channel ([#5149](https://github.com/elizaos/eliza/pull/5149)), preventing messages from appearing in the wrong conversations

* **Circular References**: Added protection against infinite recursion in JSON sanitizer by detecting circular references ([#5152](https://github.com/elizaos/eliza/pull/5152))

* **Windows Project Loading**: Resolved an issue where projects failed to load properly on Windows development machines ([#5156](https://github.com/elizaos/eliza/pull/5156))

## API Changes

The CLI command structure has been consolidated for agent management ([#5175](https://github.com/elizaos/eliza/pull/5175)). The standalone `elizaos stop` command has been merged into `elizaos agent stop --all` for more consistent command organization:

```bash
# Old way (still works but deprecated)
elizaos stop

# New way
elizaos agent stop --all
```

The REST API has seen several fixes, including resolution of issues where room creation via REST API returned success but rooms were not actually created ([#4955](https://github.com/elizaos/eliza/issues/4955)). The missing agent rooms endpoint ([#5121](https://github.com/elizaos/eliza/issues/5121)) has also been fixed.

## Social Media Integrations

**Twitter Plugin Update**: The team is addressing issues with the Twitter plugin not running correctly with both plugin and client ([#5172](https://github.com/elizaos/eliza/issues/5172)). As noted in Discord, Eliza's Twitter account needs restoration, and there are reported problems with Shaw's Farcaster account access for logged-out users.

Since Twitter plugin functionality is currently undergoing maintenance, the documentation has been updated with deprecation notices ([#5046](https://github.com/elizaos/eliza/pull/5046)).

## Model Provider Updates

In addition to adding Ollama support, the team has been actively working on addressing issues with Knowledge Management (RAG) functionality that was reported as not working in version 1.0.6 ([#5004](https://github.com/elizaos/eliza/issues/5004)). This has now been resolved in the latest version.

Some users reported issues with the CLI reverting to local models instead of using Grok, which the team is investigating. For those experiencing issues with model selection, updating to version 1.0.11 and editing the .env file is recommended, followed by running:

```bash
bun run build
bun run start
```

## Breaking Changes

While V2 has already been released (though not officially announced as mentioned by Dr. Neuro in Discord), developers should be aware of the following migration issues:

1. **CLI Package Manager**: If using npm to install the CLI, you may experience version conflicts. Uninstall the npm version and reinstall with bun:
   ```bash
   npm uninstall -g @elizaos/cli
   bun i -g @elizaos/cli
   ```

2. **WebSocket Connection Issues**: When migrating to V2, you may encounter issues with WebSocket connections and response handling. Check implementation examples in the eliza-nextjs-starter and eliza client repositories.

3. **Character Loading**: Make sure your project is properly configured to load custom characters. After upgrading, some users have reported that only the default Eliza character is displayed.

The team continues to work on the Spartan prototype, which is nearing completion and could potentially bring positive market impact once released.