# Developer Update - Week of September 15-18, 2025

## 1. Core Framework

This week saw substantial progress in refining ElizaOS's core architecture and addressing critical framework issues:

### ElizaOS 1.5.10 Release
We released version 1.5.10 to fix critical dependency issues in version 1.5.9. The core problem involved the server component not properly depending on the client in the build process, causing build failures and "death loop" errors:

```typescript
// Fixed in turbo.json with proper dependency order
{
  "$schema": "https://turbo.build/schema.json",
  "pipeline": {
    "build": {
      "dependsOn": ["^build"],
      // Ensuring server depends on client
      "outputs": ["dist/**"]
    }
  }
}
```

### TypeScript Configuration Improvements
We've addressed several TypeScript build errors, particularly with missing declaration files for the `@elizaos/server` module. The solution involved updating TypeScript configuration parameters:

```bash
# Correct way to run TypeScript for declarations
tsc --project tsconfig.declarations.json
```

### Browser Compatibility Enhancement
Major progress on making plugins work in browser environments by leveraging the "browser" field in package.json:

```json
{
  "name": "@elizaos/plugin-sql",
  "exports": {
    ".": {
      "browser": "./dist/index.browser.js",
      "node": "./dist/index.node.js",
      "default": "./dist/index.js"
    }
  }
}
```

This allows developers to explicitly specify imports from "@elizaos/core/browser" or "@elizaos/core/node", with the default "@elizaos/core" resolving based on the bundler's preference.

## 2. New Features

### Browser PGLite Support
We've added browser-safe build for `@elizaos/plugin-sql` using PGLite WASM, enabling the same PGLite instance that runs in Node.js to work in browsers without logical code changes:

```typescript
// In browser code
import sqlPlugin from '@elizaos/plugin-sql';

// Automatically uses PGLite WASM implementation
const character = {
  plugins: [sqlPlugin],
  // ...
};
```

### Action Visualization in Chat UI
Real-time tool execution and results are now displayed in the chat UI, providing better visibility into agent operations:

```typescript
// Example event emitted for tool execution
runtime.emit('tool:executing', {
  type: 'tool:executing',
  data: {
    toolName: 'generateImage',
    toolParams: { prompt: 'a sunset over mountains' }
  }
});

// Later followed by results
runtime.emit('tool:executed', {
  type: 'tool:executed',
  data: {
    toolName: 'generateImage',
    result: { url: 'https://...' }
  }
});
```

### Farcaster Plugin Completion
The Farcaster plugin development has been completed, allowing integration with the Farcaster social network:

```typescript
import farcasterPlugin from '@elizaos/plugin-farcaster';

const character = {
  name: 'FarcasterAgent',
  plugins: [farcasterPlugin],
  settings: {
    FARCASTER_API_KEY: 'your-api-key',
    // other Farcaster-specific settings
  }
};
```

## 3. Bug Fixes

### Critical Dependency Issue Fixed
Version 1.5.10 addressed a critical dependency problem where the server component wasn't properly depending on the client in the build process. This issue caused a "death loop" after updating to 1.5.9 with the client dist path not being found:

```
Error: Client dist path not found at: /path/to/node_modules/@elizaos/server/dist/client
```

The fix ensures proper dependency ordering in the build system and correct inclusion of client files in the server package.

### Image Generation in Discord
Fixed a persistent issue where generated images were displaying in the web UI but not appearing in Discord channels:

```typescript
// Before: Image paths were local file paths
return {
  url: imagePath, // local file path not accessible to Discord
  ...
};

// After: Transform to API URLs for Discord
return {
  url: transformToApiUrl(imagePath), // accessible URL
  ...
};
```

### Environment Variable Fixes
Addressed issues with environment variable configuration, particularly for model selection in the Anthropic plugin:

```
# Example .env configuration with correct environment variables
ANTHROPIC_SMALL_MODEL=claude-3.5-sonnet
ANTHROPIC_LARGE_MODEL=claude-opus-4-20250514
```

## 4. API Changes

### New ElizaOS Class API
A significant refactoring effort is moving all business logic from the CLI to the server package, introducing a new `ElizaOS` orchestration class:

```typescript
// New ElizaOS orchestration class API
const eliza = new ElizaOS({
  config: {
    // Configuration options
  },
  plugins: [
    // Plugin instances
  ]
});

// Start the ElizaOS instance
await eliza.start();
```

### Plugin API Enhancements
The PGLite integration now works seamlessly across Node.js and browser environments without requiring separate code paths:

```typescript
// Same code works in both Node.js and browser
const result = await runtime.sql.query(
  "SELECT * FROM memories WHERE similarity(embedding, $1) > 0.8 LIMIT 5",
  [embedding]
);
```

### Media Transformation API
Added new API utilities for transforming local file paths to API URLs:

```typescript
import { transformToApiUrl } from '@elizaos/core';

// Convert a local file path to an API URL
const apiUrl = transformToApiUrl('/path/to/local/image.png');
// Result: 'http://localhost:3000/api/media/files/image.png'
```

## 5. Social Media Integrations

### Farcaster Plugin
The team has completed development of the Farcaster plugin, enabling ElizaOS agents to interact with the Farcaster network. This plugin allows agents to:
- Read and post to Farcaster
- React to posts
- Follow/unfollow users
- Process mentions

### Discord Plugin Improvements
Fixed image generation in Discord channels, ensuring that images created by agents properly appear in Discord messages:

```typescript
// Discord plugin now correctly transforms image paths
discord.sendMessage({
  channelId: '123456789',
  content: 'Here is the image you requested:',
  files: [{
    attachment: transformedImageUrl,
    name: 'image.png'
  }]
});
```

### MCP Payment System for Solana
MCP is now live for USDC tipping on Solana via x402, enabling financial transactions within social interactions:

```typescript
// Example of tipping implementation
await mcp.sendTip({
  recipient: 'user123',
  amount: '5.00',
  currency: 'USDC',
  network: 'solana',
  message: 'Thanks for your help!'
});
```

## 6. Model Provider Updates

### Anthropic Claude Updates
The Anthropic plugin now properly supports Claude Opus 4 through environment variable configuration:

```
# Correct environment variables for using Claude Opus
ANTHROPIC_API_KEY=your-api-key
ANTHROPIC_SMALL_MODEL=claude-3.5-sonnet
ANTHROPIC_LARGE_MODEL=claude-opus-4-20250514
```

### GPT-5 Pricing Update
GPT-5 is now 50% off on OpenRouter for a week, along with new features like native web search and organization usage tracking. To take advantage of this:

```typescript
import openRouterPlugin from '@elizaos/plugin-openrouter';

const character = {
  plugins: [openRouterPlugin],
  settings: {
    OPENROUTER_API_KEY: 'your-api-key',
    OPENROUTER_DEFAULT_MODEL: 'openai/gpt-5'
  }
};
```

### Local LLM Integration
Improved Ollama integration with clearer environment variable configuration:

```
# Add this to your .env file for local Ollama connection
OLLAMA_API_ENDPOINT=http://localhost:11434
```

## 7. Breaking Changes

### Plugin Compatibility Issues
Several users reported problems with the web search plugin, browser plugin, and custom plugins in elizaOS 1.x. If you're experiencing these issues:

1. The web search plugin is **not compatible** with elizaOS 1.x
2. Alternative solutions:
   - Use the composio plugin with Tavily integration
   - Use the browser plugin (may require Playwright dependencies)

```typescript
// Instead of web search plugin, use composio with Tavily
import composioPlugin from '@elizaos/plugin-composio';

const character = {
  plugins: [composioPlugin],
  settings: {
    COMPOSIO_API_KEY: 'your-api-key',
    // Enable Tavily integration
    TAVILY_API_KEY: 'your-tavily-key'
  }
};
```

### V1 to V2 Migration
As we prepare for the ElizaOS 2.0 release (planned for approximately two weeks from now), keep these migration points in mind:

1. The 2.0 release will feature React hooks and improved browser plugin compatibility
2. For character migration from V1, use the character-migrator tool:

```bash
# Add debug logging for better visibility
LOG_LEVEL=debug elizaos character-migrator --source v1-character.json --target v2-character.json
```

3. The core business logic is being centralized in the server package, so custom integrations with the CLI may need updates

---

Remember to follow the legal developments in the Eliza Labs vs X Corporation lawsuit (case #59802131) for potential impacts on our Twitter plugin functionality.