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

This update summarizes core engineering work and developer discussions across `elizaos/eliza`, `elizaos-plugins/*`, and community channels for the week ending **2026-01-18** (published **2026-01-19**).

---

## 1) Core Framework

### Runtime initialization performance + determinism
Significant runtime init improvements landed recently and are now the baseline for current work:

- **Parallelized initialization + atomic DB upserts** (cold start ~-30%, warm start ~-40%)  
  PR: https://github.com/elizaos/eliza/pull/6342

- **Skip embedding-dimension discovery call** by configuring `EMBEDDING_DIMENSION` (saves ~500ms/init when the provider would otherwise be queried)  
  PR: https://github.com/elizaos/eliza/pull/6357

**Example: set `EMBEDDING_DIMENSION` in character settings**
```json
{
  "name": "MyAgent",
  "settings": {
    "EMBEDDING_DIMENSION": "1536"
  }
}
```

### SQL adapter architecture refactor (maintainability / testability)
`plugin-sql`’s monolithic `BaseDrizzleAdapter` was broken into composable domain stores without changing the public API, making it substantially easier to reason about isolation (RLS), memory/embedding ops, and messaging storage.

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

If you maintain custom forks of `plugin-sql`, note that internal imports/paths likely changed (even though the adapter’s external methods are intended to remain compatible).

### CI / automation improvements (Claude workflows)
Claude-based review workflows were upgraded and expanded (security + maintenance jobs). While not runtime-facing, this affects contributor experience and PR latency:

- PR: https://github.com/elizaos/eliza/pull/6324  
- Cursor bot trigger fix: https://github.com/elizaos/eliza/pull/6328

---

## 2) New Features

### Neon Serverless support for `plugin-sql` + improved RLS hardening
`plugin-sql` gained a dedicated Neon adapter/manager and additional RLS testing and security improvements.

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

This unlocks lower-friction production deployments on Neon where direct TCP connections aren’t desirable/possible.

### WASM agent runtime for V2 (in progress)
A major V2 capability is under active development: running the **Rust runtime in browser/Node** via WebAssembly, including platform-aware `Send + Sync` handling and a real `WasmAgentRuntime` wrapper around `AgentRuntime`.

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

Developers targeting web embeddings, local-first demos, or sandboxed execution should track this PR closely; it establishes the compilation model and JS interop surface for V2 Rust.

### Python runtime stabilization + streaming APIs (V2 workstream, in progress)
Python example parity work is ongoing and includes a substantial streaming surface area:

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

Notable proposed additions (per PR description):
- `AgentRuntime.use_model_stream()` / `register_streaming_model()`
- `DefaultMessageService.handle_message_stream()` returning `StreamingMessageResult`
- OpenAI plugin streaming handlers
- Python example fixes + `.env` loading

**If you depend on Python examples**: expect changes in plugin exports (dict → `Plugin` object) and method signatures to accept kwargs/params more consistently.

---

## 3) Bug Fixes (with technical context)

### Prevent shell env leakage into secrets / plugin loading decisions
A subtle but serious configuration footgun was fixed: `dotenv.config()` does not override existing `process.env` by default, which could cause host shell variables to unintentionally influence agent secrets and plugin enablement.

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

If you run agents in shared environments (CI runners, dev shells with exported vars, PaaS), upgrade and re-check your `.env` assumptions.

### Fix infinite rebuild loop in `dev-watch` / `bun run dev`
A build system bug caused endless rebuild cycles due to a version generator writing on every build, which the watcher treated as a source change.

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

This should materially improve DX when iterating on core packages locally.

### Reflection evaluator “Entity not found” (closed issue)
A critical memory/facts persistence failure (“Entity not found”) was identified and closed:

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

The reported root cause was missing entity initialization (`ensureConnection()`) prior to saving facts. If you maintain custom evaluators/actions that write memories or contact facts, ensure entity/room/world context is initialized before persistence.

---

## 4) API Changes

### `serverId` → `messageServerId` migration in bootstrap + SQL schema usage
To resolve compatibility issues (notably with Discord integration versions), references were updated across bootstrap actions/providers and SQL schema docs to standardize on `messageServerId`.

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

**What to check in your code:**
- Any custom provider/action reading `message.content.serverId` should be updated to prefer the room/world’s `messageServerId`.
- Logs/telemetry fields keyed by `serverId` may have shifted.

**Typical fix pattern**
```ts
// before
const serverId = message.content.serverId;

// after (preferred)
const room = await runtime.getRoom(message.roomId);
const serverId = room?.messageServerId;
```

---

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

### Discord plugin: voice utilities overhaul (in progress)
Work is underway to modularize and stabilize Discord voice channel utilities:

- PR (open): https://github.com/elizaos-plugins/plugin-discord/pull/42

### Discord plugin: reported compatibility break with ElizaCloud (unresolved)
A developer reported that `elizaos-plugins/plugin-discord` may be broken when used with **ElizaCloud** for provisioning a Discord chatbot (personal server). No root cause or workaround was confirmed in the captured discussion.

- Discord thread summary (2026-01-18): https://discord.com/channels/1253563208833433701/1300025221834739744

**Action item for plugin maintainers**
- Validate the expected runtime contracts for cloud deployments (env var discovery, gateway intents, message server identity mapping, and any differences in filesystem/network constraints).

### Discord plugin: `sendMessage` undefined (new issue)
A critical issue was filed indicating `sendMessage` is undefined (likely breaking message dispatch in some paths):

- Issue: https://github.com/elizaos-plugins/plugin-discord/issues/43

### Telegram plugin stability (tracking)
A crash-level image processing TypeError was reported earlier in the month and remains relevant for anyone building multimodal Telegram bots:

- Issue: https://github.com/elizaos-plugins/plugin-telegram/issues/23

_No substantive Farcaster/Twitter plugin code changes were captured in this week’s dataset; most social discussion centered on branding/activity and community organization._

---

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

### Streaming model support is landing across runtimes (V2 track)
The most impactful provider-facing work in scope is the streaming API surface being added alongside Python parity efforts:

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

Developers building:
- SSE/WebSocket chat UIs,
- token-by-token TTS pipelines,
- or long-form assistant interactions

should anticipate new abstractions around streaming model registration and message handling.

### Documentation initiative: “docs optimized for agent consumption”
Core-devs proposed systematically refactoring docs to be more LLM/agent-readable using kapa.ai guidelines, with Claude assisting in generating per-page improvement plans.

- Discussion reference: https://discord.com/channels/1253563208833433701/1377726087789940836

This is expected to improve model-provider integration outcomes indirectly (fewer prompt/spec mismatches, clearer environment variable contracts, and better plugin onboarding).

---

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

### V2 branch is a structural reset (high migration cost)
The active **V2.0.0** branch is explicitly removing “non-essentials” (app/server/CLI) to focus on core runtimes (Rust + TypeScript) and critical plugins.

- PR (open, large): https://github.com/elizaos/eliza/pull/6351

**Migration implication:** if your project depends on:
- `packages/app`, `packages/server`, `packages/cli`,
- existing monorepo wiring,
- or specific V1 bootstrapping paths,

you should assume you’ll need to re-home those capabilities (or pin to V1) until V2 replacement tooling is published.

### Field rename fallout: `serverId` → `messageServerId`
Even though mitigations exist for backward compatibility, downstream integrations that depend on legacy field names are likely to break in subtle ways (especially in plugin land).

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

**Recommendation:** audit any message-room-world plumbing and standardize on `messageServerId` now to avoid “works locally / fails in cloud” discrepancies.

---

## Links / References
- Core repo: https://github.com/elizaos/eliza  
- Weekly performance + micropayments summary (context): https://github.com/elizaos/knowledge/blob/main/github_summaries_week_latest_2026-01-11.md  
- Discord (core-devs doc initiative): https://discord.com/channels/1253563208833433701/1377726087789940836  
- Discord (plugin-discord + ElizaCloud question): https://discord.com/channels/1253563208833433701/1300025221834739744