# elizaOS Developer Update - 2025-10-08

## Core Framework

The core framework has undergone significant transformations this week with a major migration effort that removes constraints and enables new workflows. Key changes include:

### Agent Identification Overhaul
- **UUID-based Agent Identification**: Migrated from name-based to UUID-based agent identification, allowing duplicate agent names and improving multitenancy support (PR #6036)
- **Schema Improvements**: Added comprehensive Zod descriptions to character schemas with detailed validation rules (PR #6044)

### Runtime Enhancements
- **Plugin Reloading**: Fixed critical bug where agent plugins weren't reloading when updated via the PATCH API endpoint (PR #6040)
- **Service Lifecycle**: Resolved race condition during service stop operations that caused initialization errors (PR #6040)
- **State Management**: Exposed the runtime `stateCache` and refactored bootstrap multistep usage to properly consume it (PR #6045)

### Configuration System Refactor
- **Config Modules**: Added configuration utilities for character parsing/validation, environment loading, and secrets management (PR #6037)
- **Plugin Management**: Implemented auto-install, loading, validation, and dependency resolution for plugins (PR #6037)

## New Features

### Memory Pagination
The SQL plugin now supports database-level pagination for memory retrieval, essential for agents with large memory stores:

```typescript
// Before: Only limit parameter
const memories = await database.getMemories({
  limit: 10
});

// Now: Both limit and offset parameters
const memories = await database.getMemories({
  limit: 10, 
  offset: 20  // Skip first 20 results
});
```

### Mention Context Interface
A new platform-agnostic `mentionContext` interface improves the agent's ability to understand conversation context:

```typescript
// Define mention context in message
const message = {
  content: "Can you help me with this?",
  mentionContext: {
    wasMentioned: true,
    mentionedAgents: ["agent-uuid-123"],
    isDirectMessage: false,
    wasReplyToAgent: false
  }
};

// Access in shouldRespond provider
export const shouldRespondProvider: ShouldRespondProvider = async (
  runtime: IAgentRuntime,
  message: Message
) => {
  if (message.mentionContext?.wasMentioned) {
    return { shouldRespond: true, reason: "Agent was mentioned" };
  }
  // Other logic...
};
```

### Serverless Architecture Components
- **Eliza Serverless PoC**: Completed and deployed to production
- **AI Character Creator**: New interface for creating and managing agent characters
- **Media Gallery**: Storage and display system for agent-generated media content

## Bug Fixes

### Runtime Initialization 
Fixed a critical bug in `AgentRuntime` initialization where services were attempting to access methods before the runtime was fully initialized:

```typescript
// Before: Race condition in checkTasks
checkTasks() {
  if (!this.tasks) {
    this.tasks = this.adapter.getTasks(); // Error when adapter not ready
  }
}

// After: Safe initialization with proper checks
checkTasks() {
  if (!this.adapter?.getTasks) {
    return Promise.resolve([]);
  }
  if (!this.tasks) {
    this.tasks = this.adapter.getTasks();
  }
}
```

### CLI Improvements
- **SERVER_PORT Support**: Added environment variable support for server port configuration (PR #6038)
- **Port Validation**: Improved validation of port values from CLI arguments and environment variables (PR #6046)
- **Import Errors**: Investigating and fixing a critical issue (#6031) where new projects created with `elizaos create` (v1.6.1) fail with module import errors

### Boolean Parsing
Fixed utility function to handle both text representations and actual boolean values:

```typescript
// Before
function parseBooleanFromText(value: string): boolean {
  if (!value) return false;
  const normalizedValue = value.trim().toUpperCase();
  return ['YES', 'Y', 'T', '1', 'ON', 'ENABLE'].includes(normalizedValue);
}

// After
function parseBooleanFromText(value: string | boolean): boolean {
  if (typeof value === 'boolean') return value;
  if (!value) return false;
  const normalizedValue = value.trim().toUpperCase();
  return ['YES', 'Y', 'T', '1', 'ON', 'ENABLE'].includes(normalizedValue);
}
```

### Bootstrap Response Handling
Fixed an issue where `BOOTSTRAP_KEEP_RESP` wasn't being applied consistently, causing responses to be discarded when newer messages arrived (PR #6041).

## API Changes

### Database Interface Updates
- Added `offset` parameter to `getMemories` function in `IDatabaseProvider`:

```typescript
interface MemoryQueryParams {
  offset?: number;  // New optional parameter
  limit?: number;
  orderBy?: string;
  orderDirection?: 'ASC' | 'DESC';
  // other existing parameters...
}
```

### Character Schema Validation
Enhanced character schema validation with better type definitions and descriptive error messages:

```typescript
// Example of improved schema validation
const characterSchema = z.object({
  id: z.string().uuid().optional()
    .describe("Unique identifier for the character. If not provided, a UUID will be generated."),
  name: z.string().min(1).max(50)
    .describe("The character's display name, between 1-50 characters."),
  // Additional fields...
});

// Validation now provides clearer error messages
try {
  const character = characterSchema.parse(inputData);
} catch (error) {
  console.error("Character validation failed:", error.errors);
  // Error message example: "name: String must contain at least 1 character(s)"
}
```

## Social Media Integrations

### Twitter/X Plugin
- The Twitter plugin version 1.0.7 addresses issues with rate limiting and X's anti-spam system
- Users have reported blocking issues when posting without an official API key
- Due to legal constraints (lawsuit), elizaOS won't have an official X account, but community can follow https://x.com/elizaOSc

### Alternative Platforms
- The team is focusing on Reddit, TikTok, and Instagram as acquisition channels for Eliza Cloud
- The "Getting Started with elizaOS" event was postponed due to team illness and will resume next week

## Model Provider Updates

### DeepSeek Integration
- The DeepSeek v3.1 DeepInfra endpoint has been taken offline due to free traffic impacting paid traffic
- Users should consider alternative model endpoints until service stability is restored

## Breaking Changes

### Token Migration
- The migration portal for AI16Z to the new elizaOS token is expected to launch this month
- Only spot holdings will be included in the migration (not futures positions)
- Users should only follow links from the elizaOS.eth mirror for security
- There's uncertainty about which exchanges will support automatic migration
- Users with holdings on CEXs are advised to contact their exchanges directly

### Plugin Architecture
- A new multitenant MCP/Plugin architecture is under development
- Work continues on moving CLI/server components to core/wrapper (approximately 30% complete)
- When upgrading, ensure your plugins are compatible with the new architecture

---

For detailed information and to track progress on specific issues, please refer to the corresponding GitHub issues and PRs mentioned in this update. All developers are encouraged to test their integrations with these changes and report any issues on our Discord server.