# ElizaOS Developer Update (2026-01-19 → 2026-01-25)

This week focused on (1) accelerating the V2 runtime effort across Rust/TS/Python, (2) hardening V1.7.x reliability—especially SQL + bootstrap compatibility—and (3) stabilizing social plugins (Discord/Telegram) to align with `@elizaos/core` 1.7.x.

---

## 1) Core Framework

### V2 foundation work: dynamic execution engine + schema-driven runtime
Work continued on the V2 “dynamic execution engine” prototype, moving prompt execution toward **schema-driven structured output** with validation/retry semantics.

- **PR:** V2 dynamic execution engine (prototype) — `dynamicPromptExecFromState` (TS/Python/Rust)  
  https://github.com/elizaos/eliza/pull/6384

Key technical highlights:
- Cross-language API surface:
  - TS: `dynamicPromptExecFromState(...)`
  - Python: `dynamic_prompt_exec_from_state(...)`
  - Rust: `dynamic_prompt_exec_from_state(...)`
- Validation levels (0–3) for detecting truncated/overflowed model outputs via injected UUID validation codes.
- Retry with exponential backoff for parse/validation failure.
- Streaming-aware extraction in TS via `ValidationStreamExtractor` and structured `StreamEvent`s.

> Note: the PR review tooling flagged potential Python-side edge cases in callable invocation/state access and XML parsing. If you are consuming the Python runtime, validate behavior against your schemas before pinning.

### Python bridge: examples + runtime parity improvements (V2 track)
The Python runtime and examples were hardened to better match Rust runtime expectations and reduce footguns.

- **PR:** Python example testing & fixes (includes quickstart docs)  
  https://github.com/elizaos/eliza/pull/6358

Notable runtime/API additions:
- `AgentRuntime.get_available_actions()`
- `AgentRuntime.get_entity()` alias
- `get_memories()` now supports keyword args/params dict patterns more naturally in Python

Docs added:
- `docs/python-quickstart.md` (via PR #6358)

### Runtime initialization performance + correctness (V1.7.x)
Runtime init performance improved via parallelization and atomic upserts.

- **PR:** Optimize runtime initialization with parallelization and atomic upserts  
  (listed in weekly completed items) https://github.com/elizaos/eliza/pull/6342

### SQL plugin architecture: Neon serverless + store refactor
Two notable changes landed/advanced in `plugin-sql`:
- Neon Serverless support + improved RLS posture
  - **PR:** https://github.com/elizaos/eliza/pull/6343
- Refactor: split `BaseDrizzleAdapter` into composable domain stores (maintainability upgrade)
  - **PR:** https://github.com/elizaos/eliza/pull/6366

---

## 2) New Features

### A) Streaming support in Python examples (and OpenAI plugin streaming handlers)
Streaming was extended through the Python example stack and provider implementation.

- **PR:** https://github.com/elizaos/eliza/pull/6358

What you can do now (Python-side):
- Use token-by-token SSE streaming in the A2A FastAPI server example.
- OpenAI plugin includes streaming handlers (where configured).

### B) Skip embedding-dimension probe with `EMBEDDING_DIMENSION`
Agent startup can avoid a costly embedding dimension probe call (~500ms) by specifying dimension explicitly.

- **PR:** https://github.com/elizaos/eliza/pull/6357

Example (character settings or environment-driven, depending on your setup):
```json
{
  "settings": {
    "EMBEDDING_DIMENSION": 1536
  }
}
```

### C) Unified client hooks with multi-transport (HTTP/SSE/WebSocket)
A unified hooks layer landed to normalize chat/client interactions across transports.

- **PR:** https://github.com/elizaos/eliza/pull/6300

If you build custom UIs, this reduces transport-specific branching and aligns naming between `api-client` and `server`.

### D) Website: richer agent profile rendering (Markdown support)
Agent profile summaries now support Markdown formatting in the public-facing site.

- **PR:** https://github.com/elizaos/elizaos.github.io/pull/202

---

## 3) Bug Fixes (with technical context)

### A) `serverId` → `messageServerId` bootstrap/sql compatibility fix
A compatibility issue surfaced where V1.7.0 + older Discord plugin combinations broke due to a field-name migration. Bootstrap actions/providers and SQL schema references were updated to consistently use `messageServerId`.

- **PR:** https://github.com/elizaos/eliza/pull/6333

Why it mattered:
- Discord rooms/worlds were being validated/logged against the deprecated `serverId`, causing mismatches and broken behaviors downstream in role/settings actions.

### B) `plugin-sql`: prevent Postgres `SET LOCAL` from parameterizing (syntax error `$1`)
Postgres `SET` commands don’t support parameterized queries. The fix uses `sql.raw()` for `SET LOCAL ...` to avoid Drizzle auto-parameterization.

- **PR:** https://github.com/elizaos/eliza/pull/6316

Symptoms:
- When `ENABLE_DATA_ISOLATION=true`, migrations/queries could fail with:
  - `syntax error at or near $1`

### C) `plugin-sql`: pool config + error handling + PGLite shutdown correctness
Several crash/connection stability issues were addressed, including returning `null as T` and shutdown behavior in PGLite.

- **PR:** https://github.com/elizaos/eliza/pull/6323  
- Follow-up: skip `pgcrypto` extension for PGLite (removes warnings + incompat behavior)  
  https://github.com/elizaos/eliza/pull/6339

### D) CLI security hardening: prevent shell env leakage into secrets/plugin loading
`dotenv.config()` does not override existing `process.env` by default, which could cause unintended secrets/plugin enablement differences depending on the developer’s shell state.

- **PR:** https://github.com/elizaos/eliza/pull/6360

Impact:
- More deterministic plugin loading and secret handling between local dev, CI, and deployments.

### E) Dev UX: fix infinite rebuild loop in `dev-watch`
A file generator (`generate-version.ts`) was repeatedly touching version output, triggering the watcher endlessly.

- **PR:** https://github.com/elizaos/eliza/pull/6361

---

## 4) API Changes (developer-facing)

### `messageServerId` replaces `serverId` in bootstrap + room/world contexts
While some backward compatibility may exist in types, **new code should migrate now**.

- **PR:** https://github.com/elizaos/eliza/pull/6333

Migration example (TypeScript):
```ts
// Before
const id = room.serverId;

// After
const id = room.messageServerId;
```

### Python runtime convenience methods and signature normalization
From PR #6358:
- `AgentRuntime.get_available_actions()`
- `AgentRuntime.get_entity()` alias
- `get_memories()` now accepts keyword args (more Pythonic integration)

Docs:
- https://github.com/elizaos/eliza/pull/6358 (adds `docs/python-quickstart.md`)

---

## 5) Social Media Integrations (Twitter / Telegram / Discord / Farcaster)

### Discord plugin: stability fixes and version alignment
Developers on Discord reported runtime errors in the recent messages provider and bootstrap flow after upgrading core to 1.7.2; updating the Discord plugin resolved key failures.

- **Plugin PR (core alignment):** https://github.com/elizaos-plugins/plugin-discord/pull/44
- Community-confirmed fix version: `@elizaos/plugin-discord@1.3.8` (fixes bootstrap/private field access errors)

Upgrade command:
```bash
bun add @elizaos/plugin-discord@latest
```

Operational note from Discord support:
- `CHANNEL_IDS` acts as a **channel whitelist** (without it, the agent listens in all channels).
- `DISCORD_LISTEN_CHANNEL_IDS` bypasses filtering and emits events intended for custom filtering logic.

### Telegram plugin: TS error fixes + payload alignment to core 1.7.x
- **PR:** https://github.com/elizaos-plugins/plugin-telegram/pull/24  
Additional refactors + CI/logging standardization:
- https://github.com/elizaos-plugins/plugin-telegram/pull/22
- https://github.com/elizaos-plugins/plugin-telegram/pull/21

Open issue to watch:
- Telegram plugin crash during image processing (TypeError)  
  https://github.com/elizaos-plugins/plugin-telegram/issues/23

### Community ecosystem plugins (external)
- Sportradar plugin v0.01 shared for live NBA data (prediction agents). (Community-shared; verify provenance before production use.)

---

## 6) Model Provider Updates

### Claude in CI and tooling
Claude-powered CI workflows were upgraded (model + workflow improvements):
- **PR:** https://github.com/elizaos/eliza/pull/6324  
Cursor bot trigger allowances:
- **PR:** https://github.com/elizaos/eliza/pull/6328

### Claude Sonnet used in Migration Agent (community report)
Discord discussions confirmed the Migration Agent is currently backed by **Claude Sonnet** (for structured/human-like responses). If you mirror Migration-Agent behavior internally, consider matching model + system prompt characteristics.

### OpenAI streaming handlers (Python)
As part of the Python fixes PR, the OpenAI Python plugin implements streaming handlers that integrate with the new streaming APIs and example servers.
- **PR:** https://github.com/elizaos/eliza/pull/6358

---

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

### V2 is a major architectural shift (not a drop-in upgrade)
The V2 working branch removes non-essentials (app/server/CLI) to focus on the runtime and critical plugins.

- **PR:** V2.0.0 working branch (large-scale refactor)  
  https://github.com/elizaos/eliza/pull/6351

If you depend on:
- `packages/server`, `packages/app`, or CLI-driven workflows,
you should **not** expect V2 to behave as a simple semver bump. Plan for:
- new runtime boundaries (Rust/TS focus),
- re-porting/rehoming of plugins,
- and new execution/validation semantics (dynamic execution engine).

### V1.7.x breaking-ish field rename: `serverId` → `messageServerId`
Even if types remain temporarily compatible, plugin/bootstrap logic has moved. Audit:
- custom providers/actions reading room/world IDs,
- logging/telemetry metadata,
- any schema assumptions in downstream services.

- **PR:** https://github.com/elizaos/eliza/pull/6333

### CLI upgrade pitfalls (1.6.5 → 1.7.2)
Developers reported sticky version conflicts caused by cached package references, leading to SQL migration failures and Discord bootstrap errors until caches were cleared and plugin versions were updated.

Recommended recovery steps (community-confirmed):
```bash
bun pm cache rm
bun uninstall -g @elizaos/cli
bun i -g @elizaos/cli

rm -rf node_modules bun.lock
# then ensure package.json references 1.7.2 (or recreate project)
```

---

## Security Notes (Developer-Relevant)

### Token migration scam pattern (community alert)
Users reported DMs impersonating support asking them to “migrate” by sending tokens to a wallet. This is not a legitimate flow.

Known scam address reported:
- `77qVj3adpxbKjLuD9FoeFvDxHuAsro1cjvLVjuPQcEZ5`

Action for integrators:
- If you operate bots/support agents, add automated detection + warning responses for “send tokens to migrate” language and wallet-address solicitation patterns.

---