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

This update covers core framework and ecosystem changes landed (or actively in-flight) during the week leading up to **2026-01-23**, plus key developer-relevant incidents discussed on Discord.

---

## 1) Core Framework

### V2 foundation work (in progress)
Eliza V2 is actively taking shape as a *runtime-first* distribution (Rust + TypeScript, with critical plugins ported), with non-essentials (app/server/CLI) being removed from the v2 branch to keep the core tight and portable.

- **V2.0.0 working branch:** “removes app, server, CLI and all non-essentials; focus on runtime in Rust/TypeScript”  
  PR: https://github.com/elizaos/eliza/pull/6351

### Dynamic execution engine prototype (V2, in progress)
A schema-driven “dynamic prompt execution” path is being prototyped across TS/Python/Rust with validation codes to detect truncated/overflowed outputs, plus retries/backoff and optional streaming extractors.

- PR: https://github.com/elizaos/eliza/pull/6384

**Why this matters:** if you depend on ad-hoc parsing of LLM outputs today, expect V2 to formalize “structured output + validation + retry” as a first-class runtime primitive.

### WASM runtime (V2, in progress)
Rust core is being made WASM-compatible so the runtime can execute in browsers/Node via WebAssembly, using conditional compilation to avoid `Send + Sync` requirements on wasm targets.

- PR: https://github.com/elizaos/eliza/pull/6363

---

## 2) New Features (with examples)

### A) True streaming interfaces (TypeScript + Python)
The Python example and runtime plumbing landed alongside new streaming model types and message-service streaming handlers.

- PR (merged): https://github.com/elizaos/eliza/pull/6358

**Key additions:**
- Streaming model types (e.g., `ModelType.TEXT_*_STREAM`)
- Runtime APIs such as `AgentRuntime.use_model_stream()` / `register_streaming_model()` (naming per PR)
- Message service streaming handler returning a `StreamingMessageResult`
- OpenAI plugin streaming handlers updated accordingly (as part of the merged work)

**TypeScript (conceptual) usage:**
```ts
import { AgentRuntime, ModelType } from "@elizaos/core";

runtime.registerStreamingModel(ModelType.TEXT_LARGE_STREAM, async (req, onToken) => {
  // provider-specific streaming call…
  // call onToken(chunk) as tokens arrive
});

const stream = await runtime.useModelStream(ModelType.TEXT_LARGE_STREAM, {
  prompt: "Explain Jeju actions architecture in one paragraph.",
});

for await (const evt of stream) {
  // evt.token / evt.delta depending on implementation
  process.stdout.write(evt.delta);
}
```

### B) Python quickstart + fixed chat example (with in-memory DB)
The Python chat example now loads `.env` and includes an in-memory DB plugin to ensure memory persistence works out of the box.

- PR (merged): https://github.com/elizaos/eliza/pull/6358  
- New doc: `docs/python-quickstart.md` (in-repo via PR)

**Run the Python chat example**
```bash
cd examples/chat/python
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python chat.py
```

**Minimal `.env` sketch:**
```bash
OPENAI_API_KEY=...
# other provider keys...
```

### C) Faster initialization by skipping embedding-dimension probe
Core now supports setting the embedding dimension explicitly to avoid an extra embedding API call during init (reported ~500ms avoided per agent init).

- PR (merged): https://github.com/elizaos/eliza/pull/6357

**Character setting example:**
```json
{
  "name": "my-agent",
  "settings": {
    "EMBEDDING_DIMENSION": 1536
  }
}
```

---

## 3) Bug Fixes (critical)

### A) Data integrity: TOCTOU race condition in streaming credit deduction
A critical race condition was resolved where credits could be deducted incorrectly under high-traffic streaming scenarios.

- Issue: https://github.com/elizaos/eliza/issues/6338

**Impact:** developers running production streaming workloads should see improved financial/accounting correctness under concurrency.

### B) plugin-sql: Postgres `SET LOCAL` parameterization bug
PostgreSQL `SET` statements do not accept parameterized queries. The SQL plugin previously parameterized these via Drizzle templates, causing runtime errors like:
> `syntax error at or near $1` (especially with `ENABLE_DATA_ISOLATION=true`)

- Fix (merged): https://github.com/elizaos/eliza/pull/6316  
- CI regression coverage (merged): https://github.com/elizaos/eliza/pull/6330

**Developer note:** if you run with RLS / isolation contexts, ensure you’re on a build including these fixes.

### C) plugin-sql: Neon serverless support + RLS improvements
Community debugging on Discord showed repeated schema/migration failures on some Postgres providers; switching to **Neon** resolved issues for affected users (see Discord notes below). This week also landed official Neon serverless adapter support and RLS hardening.

- PR (merged): https://github.com/elizaos/eliza/pull/6343

### D) Docs/API pipeline reliability (elizaos.github.io)
Production 404s were caused by pipeline/export edge cases:
- Missing `SITE_URL` prevented exporting the API index and **1,433 contributor profiles**
- Daily overall summary endpoint returned 404 on “no activity” days (should be “no activity recorded”)

Fixes were applied so:
- `SITE_URL` is detected dynamically in workflow
- summaries always generate, even on inactivity days
- stats exports occur *after* summaries are generated (fixing null contributor summaries)

Reference (daily report page):  
https://elizaos.github.io/api/summaries/overall/day/2026-01-22.json

Related site PRs/issues (from weekly summary):
- Markdown agent profile rendering: https://github.com/elizaos/elizaos.github.io/pull/202

---

## 4) API Changes (developer-facing)

### A) `serverId` → `messageServerId` migration (bootstrap + sql)
Field naming alignment work continued; code paths were updated to stop relying on deprecated `serverId` and instead use `messageServerId` consistently in bootstrap providers/actions and SQL schema.

- PR (merged): https://github.com/elizaos/eliza/pull/6333

**What to change in your code:**
- Any logic reading `message.content.serverId` or `room.serverId` should move to `room.messageServerId` / `world.messageServerId` (depending on context).

### B) New runtime helpers (Python parity improvements)
As part of the Python stabilization work:

- `AgentRuntime.get_available_actions()`
- `AgentRuntime.get_entity()` alias
- `get_memories()` updated to accept keyword args in Python

- PR (merged): https://github.com/elizaos/eliza/pull/6358

### C) Environment variable precedence / secret filtering hardening (CLI + core)
A fix landed to prevent shell env vars from unexpectedly influencing plugin loading decisions or agent secrets when using dotenv (dotenv does not override by default).

- PR (merged): https://github.com/elizaos/eliza/pull/6360

---

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

### Discord plugin: version alignment + ongoing regression investigation
- Discord plugin was bumped/synchronized with core to remain compatible with `@elizaos/core` 1.7.x:
  - PR: https://github.com/elizaos-plugins/plugin-discord/pull/44  
  - Version cited on Discord as working baseline: **elizaos 1.7.2 + plugin-discord 1.3.7**

**Known issue (reported on Discord, under investigation):**
- `recentMessagesProvider` error after upgrading to 1.7.2:
  > `Cannot access invalid private field (evaluating 'this.#conversationLength')`
- Symptoms: agent does not respond in channels or DMs.
- Discussion context: Discord #coders (2026-01-22), 0xbbjoker investigating.  
  Also clarified: `CHANNEL_IDS` acts as a whitelist; without it the agent listens in all channels.

**Config reminder:**
```bash
# Whitelist channels the agent should listen to (Discord)
CHANNEL_IDS=1234567890,9876543210
```

### Telegram plugin: compatibility + refactors
Telegram plugin received compatibility updates and internal API refactors aligned to core 1.7.x.

- Core alignment PR: https://github.com/elizaos-plugins/plugin-telegram/pull/24  
- Logging/CI standardization PR: https://github.com/elizaos-plugins/plugin-telegram/pull/21  
- Messaging API refactor PR: https://github.com/elizaos-plugins/plugin-telegram/pull/22

*(No Farcaster-specific plugin activity surfaced in this week’s aggregated notes.)*

---

## 6) Model Provider Updates (OpenAI, Anthropic, DeepSeek, etc.)

### OpenAI: streaming handlers integrated
Streaming support landed end-to-end in the Python example work, including OpenAI plugin streaming handlers and core type exports.

- PR (merged): https://github.com/elizaos/eliza/pull/6358

### Cerebras provider: registry addition (in-flight)
A PR was submitted to add a **Cerebras plugin** to the plugin registry (not confirmed merged in the provided data).

- Mentioned in 2026-01-22 progress notes (PR link not included in the dataset)

### RLM provider/plugin work (community-driven, in progress)
A new contributor (“Momo”) announced work on an **RLM plugin for Eliza v2** on Discord (first major OSS contribution). Treat as early-stage/in-progress until a PR lands.

- Discussion: Discord #discussion (2026-01-22)

---

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

### A) `serverId` rename fallout
Even though some layers keep compatibility shims, this is a practical breaking change for many downstream integrations and custom providers/actions.

- Merged change: https://github.com/elizaos/eliza/pull/6333

**Migration guidance:**
- Grep your codebase for `serverId` usage and migrate to `messageServerId`.
- Update any serialized assumptions in stored data, logs, or adapters that parse old field names.

### B) V2 packaging is runtime-first (app/server/CLI removed from v2 branch)
If you currently depend on monorepo “batteries included” paths, plan for:
- separate runtime consumption (Rust/TS/WASM targets)
- a reduced default distribution
- plugins being the primary extension surface

- V2 branch PR: https://github.com/elizaos/eliza/pull/6351

### C) Dynamic execution engine will change how you prompt
If you rely on “free-form” XML/JSON parsing from model outputs, V2’s schema-driven validation/retry path will likely become the recommended interface.

- PR (in progress): https://github.com/elizaos/eliza/pull/6384

---

## Notes from Discord (developer-relevant incidents)

### ElizaCloud intermittent server-side exceptions
Multiple users reported:
> “Application error: a server-side exception has occurred”  
and intermittent login failures (hard refresh sometimes helped).

- Discussion: Discord #coders (2026-01-22)

### Database migration failures: Aiven/Postgres vs Neon
A persistent migration error was reported:
> `CREATE SCHEMA IF NOT EXISTS migrations` failing

Resolution (user-reported): switching to **Neon** fixed the issue, after troubleshooting pgvector/provider compatibility.

- Discussion: Discord #coders (2026-01-22)

### Security: token migration scam pattern (process, not code)
Users were asked (by scammers) to send tokens to an external wallet “for migration.” Support clarified this is a scam; legitimate migration does **not** require sending tokens to arbitrary addresses.

- Discussion: Discord #discussion (2026-01-22)

---

## Useful links
- CLI reference overview: https://docs.elizaos.ai/cli-reference/overview  
- Daily overall summary API (example): https://elizaos.github.io/api/summaries/overall/day/2026-01-22.json  
- V2.0.0 branch PR: https://github.com/elizaos/eliza/pull/6351  
- Python quickstart + streaming + inmemorydb fixes: https://github.com/elizaos/eliza/pull/6358  
- `serverId` → `messageServerId` migration PR: https://github.com/elizaos/eliza/pull/6333  
- Discord plugin bump: https://github.com/elizaos-plugins/plugin-discord/pull/44  
- Telegram plugin core alignment: https://github.com/elizaos-plugins/plugin-telegram/pull/24