# ElizaOS Developer Update (2026-01-18 → 2026-01-24)

This week focused on laying more of the technical groundwork for **Eliza V2** (multi-language runtime + structured/validated execution), while hardening **V1.7.x** integrations (Discord/Telegram) and improving database portability and reliability.

---

## 1) Core Framework

### V2 groundwork: Dynamic execution engine prototype (schema-driven + validation-aware)
A first-pass **dynamic execution engine** prototype was introduced for V2 work, adding a schema-driven prompt execution path with validation codes and retry/backoff logic across TS/Python/Rust runtimes.  
- PR: https://github.com/elizaos/eliza/pull/6384

Key idea: instead of ad-hoc parsing, prompts are executed against a declared schema and validated (including detection of truncated outputs / context-window blow-ups) using embedded checkpoint codes.

Conceptually, you can now drive structured execution like:

```ts
import { dynamicPromptExecFromState } from "@elizaos/core"; // naming may vary by package

const result = await dynamicPromptExecFromState(state, {
  format: "xml",
  rows: [
    { key: "answer", required: true },
    { key: "confidence", required: true },
  ],
}, {
  validationLevel: 2,     // 0..3
  maxRetries: 3,
  backoffMs: { base: 250, max: 2000 },
});
```

> Notes for reviewers: the PR spans TS/Python/Rust, and the Python side was flagged in review tooling as needing additional correctness passes before relying on it in production (callable invocation + state templating + XML regex edge cases).

### V2 reach: Python bridge progress (examples + runtime parity fixes)
The Python runtime/examples were stabilized and expanded with quickstart docs, correct plugin object exports, safer character provider access, and improved memory adapter behavior.  
- PR (merged): https://github.com/elizaos/eliza/pull/6358  
- Docs: https://github.com/elizaos/eliza/blob/main/docs/python-quickstart.md

### Performance & runtime initialization improvements (V1.7.x line)
Runtime initialization was optimized via parallelization and more atomic upserts (cold/warm start improvements referenced in weekly work).  
- PR (merged): https://github.com/elizaos/eliza/pull/6342

### Agent discovery + public identity standardization
Work continued on **public agent URLs** and discovery in ElizaCloud/dashboard:
- Issues:  
  - https://github.com/elizaos/eliza/issues/6302  
  - https://github.com/elizaos/eliza/issues/6304  

---

## 2) New Features

### True streaming support across core + providers (not just “chunked text”)
Python work included **token-by-token streaming** with explicit streaming model types and runtime registration APIs.  
- PR (merged): https://github.com/elizaos/eliza/pull/6358

Core concepts introduced in that PR include:
- New streaming model types (e.g., `ModelType.TEXT_*_STREAM`)
- Runtime streaming entry points (e.g., `use_model_stream()` / `register_streaming_model()`)
- Message service streaming handler(s) (e.g., `handle_message_stream()` returning a `StreamingMessageResult`)

Illustrative usage pattern:

```py
# Pseudocode to show the intent of the API additions

runtime.register_streaming_model(
  model_type="TEXT_LARGE_STREAM",
  handler=openai_stream_handler,
)

async for event in runtime.use_model_stream("TEXT_LARGE_STREAM", prompt):
    if event.type == "token":
        yield event.text
```

### Faster startup for embedding-heavy agents via `EMBEDDING_DIMENSION`
You can now set an embedding dimension explicitly to skip an otherwise expensive provider call during initialization (commonly ~500ms).  
- PR (merged): https://github.com/elizaos/eliza/pull/6357

Example (character config / env-driven, depending on your setup):

```json
{
  "settings": {
    "EMBEDDING_DIMENSION": 1536
  }
}
```

### Plugin ecosystem expansion: Sportradar (NBA live data)
A new community plugin shipped to provide **live NBA data** for prediction agents:
- Plugin announcement in Discord (coders channel): https://discord.com/channels/1253563208833433701/1300025221834739744
- Registry note (added this week per project summary): see overall day summary reference https://elizaos.github.io/api/summaries/overall/day/2026-01-23.json

This enables near-real-time sports ingestion for market-making/prediction agents without bespoke scraping.

---

## 3) Bug Fixes (critical)

### Discord plugin: private field access / proxy binding failure
A critical Discord integration breakage was resolved in **@elizaos/plugin-discord v1.3.8**, addressing failures like:
- `Cannot access invalid private field (evaluating 'this.#conversationLength')`
- Missing audit log permission warnings causing degraded moderation metadata

Fix guidance (confirmed working for server responses):
```bash
bun add @elizaos/plugin-discord@1.3.8
```

Discord thread context (coders channel):  
- https://discord.com/channels/1253563208833433701/1300025221834739744

**Remaining issue to track:** DM flows still reported role provider errors:  
> “User has no name or username, skipping.”  
Action item remains open from Discord discussion.

### PostgreSQL migration / adapter confusion (PGLite ↔ Postgres)
Multiple reports described the system incorrectly attempting to use a local PGLite path (`.eliza/.elizadb`) while configured for Postgres, failing on schema/migrations. Community mitigation included updating core/plugin versions and recreating the database. Discord context:
- 2026-01-21 discussion: https://discord.com/channels/1253563208833433701/1300025221834739744 (and daily transcript summary)

On the core side, SQL plugin work in January (still relevant to the failures people hit this week) includes:
- Fixing PGLite shutdown + pool configuration + safer error handling  
  - PR: https://github.com/elizaos/eliza/pull/6323
- Avoiding invalid parameterization of `SET LOCAL ...` in Postgres isolation mode  
  - PR: https://github.com/elizaos/eliza/pull/6316
- Adding Neon serverless support + improved RLS posture  
  - PR: https://github.com/elizaos/eliza/pull/6343

---

## 4) API Changes (developer-facing)

### `serverId` → `messageServerId` migration in messaging context
To align cross-platform message semantics, internal room/world/provider plumbing moved from `serverId` to `messageServerId` (and plugins were updated accordingly).
- PR (merged): https://github.com/elizaos/eliza/pull/6333

If you have custom actions/providers reading `message.content.serverId` or `world.serverId`, update to the newer field:

```ts
// before
const serverId = message.content.serverId;

// after
const messageServerId = room.messageServerId ?? world.messageServerId;
```

**Impact surface:**
- plugin-bootstrap actions/providers
- plugin-sql schema docs/comments + test fixtures
- downstream plugins that depended on the old field name

> While some compatibility shims may exist in core types, you should treat this as a required migration for custom integrations that join on “server identity”.

---

## 5) Social Media Integrations

### Discord
- **plugin-discord v1.3.8** fixes the private-field/proxy binding regression and restores server responsiveness.  
  Update:
  ```bash
  bun add @elizaos/plugin-discord@1.3.8
  ```
- Known outstanding: DM + role provider edge case (“no name or username”) still reported after upgrading.

Additional context PR (version alignment earlier in week):
- https://github.com/elizaos-plugins/plugin-discord/pull/44

### Telegram
Telegram plugin work this week focused on aligning with `@elizaos/core 1.7.x` and resolving TypeScript payload/type issues.
- PR (merged): https://github.com/elizaos-plugins/plugin-telegram/pull/24  
Additional maintenance/logging standardization:
- https://github.com/elizaos-plugins/plugin-telegram/pull/21  
Messaging API refactor:
- https://github.com/elizaos-plugins/plugin-telegram/pull/22

Open issue worth tracking if you ship images through Telegram:
- https://github.com/elizaos-plugins/plugin-telegram/issues/23

### Twitter/X / Farcaster
No merged code changes were captured in the provided GitHub activity for X/Farcaster plugins this week; Discord discussion did flag an unanswered dependency: availability of an X API key for integrations (needs follow-up in developer docs / ops).

---

## 6) Model Provider Updates

### Claude Sonnet used in Migration Agent
Discord confirmed the Migration Agent is running on **Claude Sonnet**, selected for structured responses and better conversational tone.  
- Discussion reference: https://discord.com/channels/1253563208833433701/1253563209462448241

### OpenAI plugin: streaming handlers
As part of the Python runtime stabilization work, the OpenAI plugin implemented streaming handlers and core exports were updated to include streaming types.
- PR (merged): https://github.com/elizaos/eliza/pull/6358

### CI model usage (developer tooling)
Claude-powered CI workflows were upgraded (Opus 4.5) and expanded with security/maintenance automation:
- PR: https://github.com/elizaos/eliza/pull/6324  
Cursor bot trigger allowance fix:
- PR: https://github.com/elizaos/eliza/pull/6328

(These don’t change runtime inference providers directly, but they do affect contributor experience and review automation.)

---

## 7) Breaking Changes / V1 → V2 Migration Warnings

### V2 branch direction: “runtime-first”, multi-language core, fewer bundled essentials
Active V2 work is trending toward a **lean runtime distribution** (Rust + TypeScript focus, with critical plugins ported) and intentionally stripping non-essentials from the main bundle.
- PR (open, large): https://github.com/elizaos/eliza/pull/6351

**What to expect if you’re building on V1 today:**
- V2 will likely not ship the same “batteries included” shape (app/server/CLI parity may differ).
- Plugin APIs and runtime composition patterns are evolving toward schema-driven execution and cross-language portability (TS/Python/Rust), which may require refactors in custom plugins.

### Immediate “breaking-like” change you must handle now (even on V1.7.x)
- `serverId` → `messageServerId` propagation (see API Changes above).  
If your plugins/actions depend on the old field, update immediately to avoid silent misrouting of context and permissions.

---

### References / Further Reading
- Weekly engineering summary (Jan 18–24): https://github.com/elizaos/knowledge (see `2026-01-18.md` in provided dataset)
- Discord daily threads:
  - 2026-01-23 coders: https://discord.com/channels/1253563208833433701/1300025221834739744
  - 2026-01-23 discussion: https://discord.com/channels/1253563208833433701/1253563209462448241