# ElizaOS Developer Update (2025-12-28 → 2026-01-01)

This update covers core runtime + plugin ecosystem changes shipped or actively in review during the last week, plus key implementation notes from developer Discord discussions.

---

## 1) Core Framework

### Reliable persistence for streaming model calls
A critical fix landed to ensure *streaming* LLM interactions are consistently recorded in the database, improving observability and post-mortem debugging for agents using streamed tokens.

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

**Why it matters**
- Prior to this fix, token-streamed completions could partially bypass normal logging paths, leading to gaps in conversation history and incomplete traces when diagnosing agent/tool behavior.
- After this change, you should see consistent DB records for streamed sessions, which also improves replay/testing workflows.

### Server route standardization (internal messaging surface)
Internal server message routes were standardized to reduce mismatch errors across services and plugins.

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

**Developer impact**
- If you have custom services calling internal endpoints, verify route names against the updated conventions after pulling latest `main`.

### CLI modernization (Bun-native process execution)
CLI tooling was updated to use faster native alternatives aligned with Bun, improving DX and execution performance.

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

---

## 2) New Features

### Unified Hooks: multi-transport (HTTP / SSE / WebSocket)
Work-in-progress but actively discussed: a unified hooks layer supporting multiple transports, with fixes for duplicate event delivery.

- PR (in progress): https://github.com/elizaos/eliza/pull/6300 (referenced in dev Discord)

**Intended usage**
- One hook publisher, multiple subscribers via:
  - **HTTP** (webhooks)
  - **SSE** (streaming event consumption)
  - **WebSocket** (bidirectional realtime)

**Example: consuming agent events via SSE (conceptual)**
```ts
const es = new EventSource("https://your-eliza-host.example/hooks/sse?agentId=AGENT_ID");

es.onmessage = (evt) => {
  const event = JSON.parse(evt.data);
  console.log("hook event:", event.type, event.payload);
};
```

### Chat UX: rename sessions
Users can rename chat sessions, enabling better organization for multi-thread workflows and evaluation runs.

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

---

## 3) Bug Fixes

### Agent chat duplication + incorrect conversation selection
Multiple issues were resolved to prevent duplicated conversations when switching agents and to ensure clicking an agent opens the most recent chat.

- Issues:
  - https://github.com/elizaos/eliza/issues/6282
  - https://github.com/elizaos/eliza/issues/6281
  - https://github.com/elizaos/eliza/issues/6295

**Technical context**
- These were primarily state/selection bugs in the chat UX layer where conversation identity and “last active” ordering could desync during agent switching.
- If you maintain custom UI wrappers around the core chat, retest agent-switch flows and ensure you aren’t caching stale conversation IDs.

### OpenAI plugin: image generation + media caching
The OpenAI plugin received fixes for image generation, plus caching to avoid redundant media processing (image/audio handlers).

- PR: https://github.com/elizaos-plugins/plugin-openai/pull/23

**Why it matters**
- Prevents repeated processing for identical inputs (cost + latency reduction).
- Stabilizes image generation flows that previously failed or produced inconsistent results.

---

## 4) API Changes (Developer-Visible)

### Internal route naming normalized
As noted above, internal message route naming was standardized.

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

**Action**
- If you call ElizaOS internal services directly (reverse proxies, custom gateways, sidecars), confirm your paths after upgrading.

### Messaging + reasoning architecture discussions (forward-looking)
Two architecture discussions were opened (not fully shipped this week, but important for roadmap alignment):

- Chain-of-Thought support discussion: https://github.com/elizaos/eliza/issues/6294  
- Messaging API refactor discussion: https://github.com/elizaos/eliza/issues/6298

**Note**
- Expect potential interface changes as these land (especially around message envelopes, event IDs, and tool/memory plumbing). Track these issues if you maintain deep integrations.

---

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

### Twitter plugin: OAuth2 PKCE (security upgrade)
Work began to migrate Twitter authentication toward OAuth2 PKCE, improving security and simplifying credential handling (especially for distributed deployments).

- PR: https://github.com/elizaos-plugins/plugin-twitter/pull/46  
- Dev note (Discord): cookie-based auth is **not** supported.

### Discord plugin: logging improvements (in progress)
A Discord plugin PR was submitted to improve logging; dev discussion also suggested logging by **character name** with fallback to **agentId** for reliability.

- PR (referenced): plugin-discord #36 (link not provided in dataset; track in repo PR list)
- Implementation note: keep `agentId` as canonical identifier; names are user-editable and should be treated as display labels.

### Farcaster: richer embed/media processing
Recently delivered (late week context): embed/media processing support for Farcaster casts, improving content fidelity.

- PR: https://github.com/elizaos-plugins/plugin-farcaster/pull/16 (referenced by contributor summary)

---

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

### OpenAI: media pipeline stability + caching
See OpenAI plugin fix above:
- https://github.com/elizaos-plugins/plugin-openai/pull/23

### Streaming support (ecosystem direction)
Streaming support has been an ongoing cross-provider initiative (OpenAI/Anthropic/OpenRouter), and this week’s core logging fix (#6296) is an important prerequisite for reliable streamed session tracing.

- Core streaming logging fix: https://github.com/elizaos/eliza/pull/6296  
- (Background refs from December):  
  - OpenAI streaming: https://github.com/elizaos-plugins/plugin-openai/pull/21  
  - Anthropic streaming: https://github.com/elizaos-plugins/plugin-anthropic/pull/12  
  - OpenRouter streaming: https://github.com/elizaos-plugins/plugin-openrouter/pull/21

---

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

### No new “hard breaks” merged in core during Dec 31 → Jan 1
GitHub activity in `elizaos/eliza` was minimal during the final 24h window of the year (no new PRs opened/merged in that interval). However, several *in-flight* efforts may introduce breaking surfaces soon.

### Watch-outs for upcoming migration friction
1. **Messaging API refactor (planned)**  
   Track: https://github.com/elizaos/eliza/issues/6298  
   If you depend on internal message shapes, event IDs, or custom transports, expect changes when this refactor lands.

2. **Hooks unification (planned / in review)**  
   Track: https://github.com/elizaos/eliza/pull/6300  
   If you built custom webhook consumers, confirm event de-dup semantics after upgrading.

3. **Plugin versioning discipline**
   Devs are currently bumping versions per plugin PR; CI automation (e.g., release-please style) was discussed but not yet enforced. If you publish plugins to the registry, plan to bump versions consistently to avoid downstream resolution surprises.

---

## Relevant Docs / References

- Token docs (updated/mentioned in Discord): https://docs.elizaos.ai/tokenomics
- DegenAI / Spartan OSS reference (mentioned): https://github.com/elizaos/spartan
- Jeju OAuth3 testnet site (backend progress demo): https://oauth3.testnet.jejunetwork.org

---