# ElizaOS Developer Update - November 15, 2025

## Core Framework

We've made significant improvements to the ElizaOS core framework this week, enhancing both stability and flexibility:

### Runtime Improvements
- **Fixed agent settings persistence** across restarts, ensuring that runtime-generated configuration is no longer lost ([PR #6106](https://github.com/elizaos/eliza/pull/6106))
- **Added ElizaOS reference to runtime**, laying groundwork for the unified messaging API ([PR #6111](https://github.com/elizaos/eliza/pull/6111))
- **Added `initPromise` to `IAgentRuntime`** to improve startup sequence management and provide better initialization control ([PR #6143](https://github.com/elizaos/eliza/pull/6143))
- **Added `skipMigrations` option to runtime.initialize()** for server customization, allowing conditional migration execution ([PR #6132](https://github.com/elizaos/eliza/pull/6132))

### Security & Database Enhancements
- **Fixed Row-Level Security (RLS) validation** that was incorrectly blocking all users when RLS isolation was disabled ([PR #6139](https://github.com/elizaos/eliza/pull/6139))
- **Implemented entity-level row security** (in progress), enhancing data access controls ([PR #6107](https://github.com/elizaos/eliza/pull/6107))
- **Added MySQL plugin support** alongside PostgreSQL, with conditional selection based on environment variables ([PR #6143](https://github.com/elizaos/eliza/pull/6143))
- **Fixed entity names array serialization** for PostgreSQL by normalizing names fields ([PR #6133](https://github.com/elizaos/eliza/pull/6133))

## New Features

### Headless React Hooks

A new `@elizaos/react` package is being developed to provide headless React hooks for building custom UIs for ElizaOS agents ([PR #6093](https://github.com/elizaos/eliza/pull/6093)). This will enable external developers to create their own interfaces while maintaining type safety.

```tsx
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import { ElizaReactProvider, useAgents, useStartAgent } from '@elizaos/react';

const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <ElizaReactProvider baseUrl="http://localhost:3000">
        <AgentList />
      </ElizaReactProvider>
    </QueryClientProvider>
  );
}

function AgentList() {
  const { data: agents, isLoading } = useAgents();
  const startAgent = useStartAgent({
    onSuccess: () => toast.success('Agent started!'),
  });

  if (isLoading) return <div>Loading...</div>;

  return (
    <div>
      {agents?.map((agent) => (
        <div key={agent.id}>
          <h3>{agent.name}</h3>
          <button onClick={() => startAgent.mutate(agent.id)}>
            Start
          </button>
        </div>
      ))}
    </div>
  );
}
```

### x402 Payment Protection

Work is in progress to implement x402 payment protection for plugin routes ([PR #6114](https://github.com/elizaos/eliza/pull/6114)), allowing monetization of API endpoints:

```typescript
// Example of protected route configuration
const protectedRoute = createPaymentAwareHandler({
  handler: myPluginHandler,
  x402: {
    paymentId: "plugin.example.action",
    tokenAddress: "0x1234...5678", // USDC contract
    amount: "0.10",    // 10 cents per call
    chain: "base"      // Base network
  }
});
```

## Bug Fixes

Several critical bugs were fixed this week:

1. **Environment variable loading** was fixed to properly load from `process.env` instead of relying solely on `.env` files, solving issues with `runtime.getSetting()` returning `undefined` ([PR #6141](https://github.com/elizaos/eliza/pull/6141))

2. **Entity creation failures** were fixed by normalizing the names field to ensure proper array serialization before database operations ([PR #6133](https://github.com/elizaos/eliza/pull/6133))

3. **TypeScript declaration generation errors** were resolved for the plugin-sql package, fixing typing issues when importing the package ([PR #6146](https://github.com/elizaos/eliza/pull/6146))

4. **Package exports in plugin-sql** were corrected, fixing the types path from `./types/index.d.ts` to `./dist/index.d.ts` ([PR #6134](https://github.com/elizaos/eliza/pull/6134))

## API Changes

### LangChain Migration

A PR is open to migrate from LangChain v0.3 to the newer `@langchain/textsplitters` v1.0 package ([PR #6152](https://github.com/elizaos/eliza/pull/6152)). Developers using LangChain components should prepare for this change:

```typescript
// Old import (will be deprecated)
import { RecursiveCharacterTextSplitter } from "langchain/text_splitter";

// New import (use this instead)
import { RecursiveCharacterTextSplitter } from "@langchain/textsplitters";
```

## Social Media Integrations

Developers noted issues with Twitter (X) post functionality from ElizaOS agents:

1. Some users reported X posts from agents not working correctly while custom Python agents continued to work
2. The team is working on restoring affected X accounts before EFDevcon

Discord discussions indicated that the team is developing a rebuilt X-like platform with AI agents for prediction markets, with a demo planned for the upcoming Devconnect event.

## Model Provider Updates

Work is underway to update the Anthropic plugin (PR #11) to support Claude 3.5 models. Additionally, PR #6152 is adding an OpenRouter embedding option to the command-line interface (CLI), expanding our model provider integrations.

Developers should also note that there's ongoing development to improve the design of Vector DB options for onchain data, focusing on transparency and verifiability of embeddings.

## Breaking Changes

### Token Migration

The AI16Z to ElizaOS token migration is actively ongoing with several points to note:

1. Migration snapshot was taken on November 11 at 11:40 UTC
2. Conversion ratio is 1:6 (1 AI16Z = 6 ElizaOS)
3. The migration portal will remain active for 90 days
4. The ElizaOS token is available on multiple chains: Solana, Ethereum, Base, and BSC
5. Special cases (tokens in liquidity pools during snapshot) require support tickets

Developers building wallet integrations should implement proper contract addresses across all supported chains and ensure proper price display, as users have reported visibility issues in some wallets.