# ElizaOS Developer Update (2025-12-14 → 2025-12-20)

This update covers core runtime work landed this week plus high-signal in-flight PRs and developer Discord findings relevant to teams shipping agents in production.

---

## 1) Core Framework

### Streaming support expanded end-to-end (core/server/client/api-client)
PR **#6212** (“feat: enhance streaming support in text generation”) was merged and is the primary core runtime change this week. It extends streaming through:

- `@elizaos/core` runtime + message services
- server messaging endpoints + Socket.IO stream events
- client chat rendering (incremental tokens instead of “all-at-once”)
- api-client session/messaging typings + tests

Links:
- PR: https://github.com/elizaOS/eliza/pull/6212

**Known follow-up:** In Discord, streaming is confirmed working for “simple messages and actions” in monorepo, but **Actions UI still renders text all at once** in some cloud contexts (rendering issue rather than generation issue). Track this if you embed Actions in custom UIs.

### Provider pipeline refactor in progress (MultiStep parallelism + timeouts)
PR **#6263** is open and proposes a meaningful runtime behavior change in `default-message-service` MultiStep provider handling:

- providers executed **in parallel** (instead of serial)
- configurable **timeout** (debated default: ~1s)
- pipeline abort behavior if providers exceed timeout
- warning logs for slow providers were requested (e.g. “Provider X took 2500ms - consider caching”)

Links:
- PR: https://github.com/elizaOS/eliza/pull/6263

**Developer guidance from core-dev discussion:** providers are expected to be **fast** and ideally read from **caches** (not perform network API calls inline). If your provider does external I/O, plan to:
- prefetch asynchronously into memory/DB
- serve provider reads from that cache
- add explicit timeouts and graceful degradation

### Runtime DB lifecycle cleanup in progress
PR **#6262** is open and removes reassignment of `runtime.db` to an “individual connection”. This is aimed at making DB handling more predictable across plugins/services and reducing side effects from swapping the DB handle mid-runtime.

Link:
- PR: https://github.com/elizaOS/eliza/pull/6262

---

## 2) New Features

### Streaming text generation (opt-in)
With **#6212**, streaming is now a first-class option for text generation flows that support it.

Conceptually, you should treat streaming as **incremental deltas** delivered via the message service / server transport (Socket.IO / HTTP depending on your integration), rather than waiting for a single completed response.

Example (illustrative) – request streaming generation:
```ts
import { ElizaOS } from "@elizaos/core";

const eliza = new ElizaOS({ /* runtime config */ });

const res = await eliza.generateText({
  prompt: "Summarize the last 20 messages in this room.",
  stream: true, // opt-in streaming (added/standardized by #6212)
});

// Depending on your integration, `res` may be an async iterable / evented stream.
// Use the server/client streaming events if you're consuming via the API/UI layer.
```

If you are building a custom UI, ensure your renderer handles:
- partial token events
- final “complete” event
- cancellation/timeout events

### Provider parallel execution + timeout controls (in review)
If **#6263** lands, you should expect provider evaluation to become:
- parallel by default
- bounded by a timeout (default under discussion; proposed ~1s)

This is a performance win for teams with multiple providers, but it increases the importance of provider determinism and speed.

Example (illustrative) – configuring provider timeout (exact API may change while PR is open):
```ts
const runtime = new AgentRuntime({
  // ...
  messageService: {
    providerTimeoutMs: 1000, // proposed default
    // providerParallelism: "parallel", // (if exposed)
  },
});
```

---

## 3) Bug Fixes (critical / high-impact)

### Bootstrap action/provide format and initPromise regression fix (pending)
PR **#6261** is open and addresses two operational issues:

1) **bootstrap action/provide format change fix**  
   Teams updating `@elizaos/plugin-bootstrap` / action definitions reported type conversion / format drift across action files.

2) **`initPromise` fix**  
   This appears to address a runtime initialization ordering/race that can manifest as “agent initializes inconsistently” depending on plugin load order.

Link:
- PR: https://github.com/elizaOS/eliza/pull/6261

**Why this matters:** if your agent sometimes boots without all actions/providers registered, watch this PR closely and test your plugin order after it merges.

### Ongoing TS compatibility pain in external plugins (Starknet plugin case study)
In Discord, an in-progress Starknet plugin integration hit TypeScript incompatibilities:
- mismatch between `AgentRuntime` and `IAgentRuntime` in action files
- action handler missing for a delegate type when running `DEPLOY_STARKNET_UNRUGGABLE_MEME_TOKEN`

While not in a merged PR yet, the takeaway for plugin authors:
- align on the runtime interface types exported by `@elizaos/core` for your target version
- avoid copying action templates from older major/minor versions without updating signatures

---

## 4) API Changes (developer-facing)

### Streaming-related surface area expanded
**#6212** touches a wide set of packages (`core`, `server`, `client`, `api-client`) and introduces/standardizes streaming-related types and events.

Links:
- PR: https://github.com/elizaOS/eliza/pull/6212

**Action item for API consumers:** if you have a custom Socket.IO client or API client pinned to older types, re-run typecheck after bumping to the version containing #6212 and ensure you handle stream events.

### Provider execution semantics may change (pending)
If **#6263** merges, provider execution order is no longer a reliable “serial chain”. Providers must be:
- side-effect free (or explicitly synchronized)
- tolerant of parallel execution
- fast, cache-backed, and timeout-safe

Link:
- PR: https://github.com/elizaOS/eliza/pull/6263

---

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

### Discord plugin: large PR awaiting merge
A long-running Discord plugin PR (reported as **66 commits**, open ~3 weeks) is ready to merge pending review bandwidth.

Link:
- plugin-discord PR #30: https://github.com/elizaos-plugins/plugin-discord/pull/30

**Operational recommendation:** if you run production Discord agents, test this PR in a staging bot first—large diffs often include event/intent/permission edge cases.

### Telegram + Discord plugins: messaging API refactor in progress
Weekly activity notes indicate ongoing refactor work to unify/migrate messaging APIs in:
- `elizaos-plugins/plugin-telegram` (PR #22)
- `elizaos-plugins/plugin-discord` (PR #32)

(Links not provided in the dataset; reference your plugin repos by PR number.)

### Farcaster: local hub plugin added to registry
The plugin ecosystem expanded with **`plugin-farcaster-local-hub`** added to the registry.

Link:
- registry PR #243: https://github.com/elizaos-plugins/registry/pull/243

### Twitter plugin status (known issue)
The long-standing Twitter plugin DB issue remains active (historical reference):
- Issue: https://github.com/elizaos-plugins/plugin-twitter/issues/39

---

## 6) Model Provider Updates (OpenAI / Anthropic / DeepSeek / Eliza Cloud)

### Streaming support is now provider-aware across the stack
While **#6212** is not a single-provider integration, it materially improves compatibility with providers that emit token streams (e.g., OpenAI-style incremental deltas) by carrying streaming through core → server → client.

Link:
- PR: https://github.com/elizaOS/eliza/pull/6212

### Provider performance expectations tightened (pending)
The **#6263** work and the core-dev discussion effectively sets a stronger contract:
- providers should not block pipelines with slow calls
- “provider = cache reader” is the preferred pattern
- timeouts + warning logs will push implementations toward predictable latency

Link:
- PR: https://github.com/elizaOS/eliza/pull/6263

---

## 7) Breaking Changes & Migration Warnings (V1 → V2 and related)

### Message/event system migration: avoid deprecated event patterns
ElizaOS has been moving away from older event-driven patterns toward `messageService.handleMessage()` and more explicit messaging APIs (reinforced by recent examples/plugin work earlier in December). If you still rely on legacy message events, plan a migration path.

Practical guidance:
- centralize inbound messages through the message service
- keep Actions/Evaluators deterministic and compatible with streaming/partial updates
- re-run scenario tests if your bot logic depends on “final text only”

### Provider parallelism (potential breaking behavior)
If **#6263** merges, it can surface latent bugs in providers that rely on:
- execution order
- shared mutable state
- long network calls

Treat this as a “soft breaking change” even if the API is unchanged.

### Package versioning policy: do not use `latest` for `@elizaos/*`
Core-dev consensus this week: plugins should **pin specific versions** of `@elizaos/*` rather than using `latest`, to prevent silent breakage when core types/runtime semantics change.

Example:
```json
{
  "dependencies": {
    "@elizaos/core": "1.x.y",
    "@elizaos/plugin-bootstrap": "1.x.y"
  }
}
```

### Docs gap: migration + provider best practices
A new docs placeholder issue was opened:
- Issue **#6264** (“Docs”): https://github.com/elizaOS/eliza/issues/6264

Additionally, Discord feedback indicates two urgent doc needs:
- a clearer AI16Z → ELIZAOS migration guide (community-facing)
- developer-facing “provider best practices” (cache-first, timeouts, no inline I/O)

---

### Reference Links (this week’s highest-signal items)
- Streaming merged: https://github.com/elizaOS/eliza/pull/6212  
- Provider parallelism/timeout (open): https://github.com/elizaOS/eliza/pull/6263  
- Bootstrap/init fixes (open): https://github.com/elizaOS/eliza/pull/6261  
- runtime.db reassignment removal (open): https://github.com/elizaOS/eliza/pull/6262  
- Docs issue: https://github.com/elizaOS/eliza/issues/6264  
- Discord plugin PR: https://github.com/elizaos-plugins/plugin-discord/pull/30  
- Farcaster local hub registry addition: https://github.com/elizaos-plugins/registry/pull/243