# ElizaOS Developer Update - August 30, 2025

## 1. Core Framework

### Browser Core Compatibility
The core module has been significantly enhanced to support browser environments without polyfills. PR [#5828](https://github.com/elizaos/eliza/pull/5828) introduces browser-compatible exports with dedicated entry points:

```javascript
// Now you can import with environment-specific paths
import { ... } from '@elizaos/core/browser'  // Browser environments
import { ... } from '@elizaos/core/node'     // Node.js environments
```

This includes custom SHA1 implementation for browser compatibility to maintain existing agent IDs. TypeScript declarations have also been fixed in [#5846](https://github.com/elizaos/eliza/pull/5846), resolving incorrect source file references that were causing compilation errors in dependent packages.

### Runtime Improvements
Several critical enhancements to the agent runtime were merged:

- Added `initPromise` property to track runtime initialization state [#5827](https://github.com/elizaos/eliza/pull/5827)
- Ensured runtime is always included in emitted events for consistent event handling
- Added `getServiceLoadPromise` interface to runtime [#5801](https://github.com/elizaos/eliza/pull/5801)
- Reverted `processActions` to correctly use `cacheState` for retrieving action results [#5815](https://github.com/elizaos/eliza/pull/5815)

### Logging System Overhaul
The logging system has been refactored to support both browser and Node.js environments:

```typescript
// Cross-platform logging is now available
import { logger } from '@elizaos/core'

// Environment-specific features are automatically enabled
logger.info({ msg: 'Operation completed', details: { /* ... */ } })
```

PR [#5797](https://github.com/elizaos/eliza/pull/5797) replaces Pino with Adze for logging, offering namespaces and colored output.

## 2. New Features

### Multi-Step Workflow Execution System
A comprehensive multi-step workflow system has been implemented with configurable strategy modes:

```typescript
// Example of multi-step action configuration
const multiStepAction = {
  name: 'COMPLEX_TASK',
  description: 'Perform a complex task with multiple steps',
  parameters: {
    /* ... */
  },
  strategy: 'sequential', // or 'adaptive', 'parallel'
  steps: [
    { name: 'analyze', /* ... */ },
    { name: 'process', /* ... */ },
    { name: 'finalize', /* ... */ }
  ]
}
```

PR [#5825](https://github.com/elizaos/eliza/pull/5825) moves core templates (`multiStepDecisionTemplate` and `multiStepSummaryTemplate`) to the core layer, allowing characters to define their own template overrides.

### Sessions API
A new Sessions API has been implemented in [#5799](https://github.com/elizaos/eliza/pull/5799) providing enhanced session management with timeout configuration and lifecycle control:

```typescript
// Create a new session
const session = await api.sessions.create({
  agentId: 'agent-uuid',
  metadata: { 
    ethAddress: '0x123...', 
    source: 'telegram'
  }
});

// Send a message in this session
await api.sessions.sendMessage(session.id, {
  content: 'Hello agent!',
  type: 'text'
});
```

Session metadata is now properly propagated throughout the message processing pipeline, enabling plugins to access custom session data like `ethAddress` or `source` ([#5805](https://github.com/elizaos/eliza/pull/5805)).

### Async Embedding Generation
Performance improvements for message processing latency with [#5793](https://github.com/elizaos/eliza/pull/5793):

- Moved embedding generation to an async queue service
- Reduced message processing latency by 500ms+ per message
- Added fallback behavior for backward compatibility

## 3. Bug Fixes

### Critical Type Definition Issue
A critical issue in Core@1.5.0 where exported types incorrectly referenced source files has been fixed in [#5846](https://github.com/elizaos/eliza/pull/5846):

```typescript
// Before: import from missing files
// Type references: "../src/types/memory"

// After: Correct references to compiled output
// Type references: "./types/memory"
```

This resolves compilation errors in plugins using the core package.

### Multi-Step Action Result Handling
Fixed value passing between steps in multi-step actions ([#5841](https://github.com/elizaos/eliza/pull/5841)):

```typescript
// Fixed interface definition
interface MultiStepActionResult {
  decision: string;
  nextStep?: string;
  values?: Record<string, any>; // Previously missing
}
```

### Build System Fixes
- Moved starter build scripts locally in [#5845](https://github.com/elizaos/eliza/pull/5845) to fix the `elizaos create` command build failure
- Fixed SQL parameter mismatch in entity creation ([#5791](https://github.com/elizaos/eliza/pull/5791))
- Resolved XML parsing issues in CI environment ([#5792](https://github.com/elizaos/eliza/pull/5792))

## 4. API Changes

### Core API Updates
Several API changes have been made in the core package:

```typescript
// New method to get service load promise
const loadPromise = runtime.getServiceLoadPromise('serviceName');

// Enhanced event emission with runtime context
runtime.emit('custom-event', { data, runtime });

// Enhanced action result interface
interface ActionResult {
  // ...existing fields
  values?: Record<string, any>; // New field for multi-step actions
}
```

### Build System Migration
The project has migrated from tsup to Bun for builds ([#5807](https://github.com/elizaos/eliza/pull/5807)):

```bash
# Old build command
npx tsup

# New build command
bun run build
```

Package scripts should be updated accordingly, with `package.json` referencing the new build script:

```json
"scripts": {
  "build": "bun run build.ts"
}
```

## 5. Social Media Integrations

### Twitter/X API Issues
There are significant issues with the Twitter integration:

- Multiple ElizaOS agent accounts have been suspended on X
- A legal dispute has been initiated between ElizaOS and X regarding API access and account suspensions
- Older versions of the Twitter plugin (1.0.7/1.0.9) still support user/pass/email authentication, while newer versions require paid API access

### Farcaster Plugin
The Farcaster plugin is recommended as an alternative to Twitter. PR discussions mentioned the need to add Farcaster webhook support to reduce neynar compute units.

## 6. Model Provider Updates

### OpenAI Models
- GPT-4o significantly outperforms Opus-3 for ElizaOS tasks (2-3 minutes vs 8-10 minutes completion time)
- Using `OPENAI_SMALL_MODEL="gpt-4o-mini"` is recommended for resolving certain model issues
- When working with GPT-5-nano, use `max_completion_tokens` instead of `max_tokens`

### OpenRouter Update
OpenRouter announced a 49-minute outage due to their database provider (Supabase) going down. They're working on improving redundancy and removing single points of failure.

### Anthropic Updates
Sonnet 4 is rolling out with 1 million context length capability.

## 7. Breaking Changes

### V1 to V2 Migration Issues
- The removal of the specs system from the core package may affect plugins using those types
- Twitter plugin authentication changes require updating to paid API access or reverting to earlier versions

### Build System Changes
Projects using the old tsup configuration need to migrate to the new Bun-based build system:

1. Create a `build.ts` file in your project:
```typescript
import { build } from '../../build-utils';
await build();
```

2. Update your package.json scripts:
```json
"scripts": {
  "build": "bun run build.ts",
  "dev": "bun run build.ts --watch"
}
```

3. For standalone projects, copy the build utilities locally to avoid dependency issues.