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

## 1) Core Framework

### Renovate unblocked (dependency automation restored)
A critical Renovate configuration issue that was preventing PR creation in `elizaos/eliza` was resolved (GitHub activity noted Feb 17). If you rely on Renovate-driven dependency hygiene (cargo + npm/yarn groups), expect PR flow to normalize again.

### Database layer refactor in flight (major separation-of-concerns)
Work is underway on a large DB architecture update: **“chore: the great database refactor”** ([elizaos/eliza#6509](https://github.com/elizaos/eliza/pull/6509)). Key technical themes:

- **Core no longer couples to Drizzle**: DB/ORM-specific details are moved out of `@elizaos/core`.
- **Unifying SQL plugins**: proposal to make `plugin-sql` effectively a *Drizzle-backed* plugin, and **merge `plugin-mysql` into `plugin-sql`** (net effect: fewer “which SQL plugin do I need?” decisions, but likely migration work for existing installs).
- **Batch-first CRUD API** + improved return types; single-item wrappers moved into `AgentRuntime`.
- **Upsert + pagination primitives** (limit/offset) added to key query methods.
- **Plugin storage** introduced so plugins can persist custom data without importing Drizzle types.
- Claimed performance improvements (referenced benchmark deltas in PR description).

This PR is not merged yet, but it will affect anyone implementing storage adapters or depending on existing DB method signatures.

### RequestContext support for per-user entity settings
`@elizaos/core` gained per-request context propagation using `AsyncLocalStorage` ([elizaos/eliza#6457](https://github.com/elizaos/eliza/pull/6457)). This allows runtime methods to access “originating entity context” without threading parameters through every call.

Typical pattern:

```ts
import { withEntityContext } from "@elizaos/core";

await withEntityContext({ entityId: "user_123" }, async () => {
  // runtime/settings reads can now resolve per-entity values implicitly
  const result = await runtime.processMessage(message);
});
```

### ActionFilterService reduces prompt bloat (action/provider filtering)
Action selection can now be dynamically filtered before LLM invocation via **ActionFilterService** ([elizaos/eliza#6475](https://github.com/elizaos/eliza/pull/6475)):

- Vector search (cosine similarity) for candidate actions/providers
- BM25 reranking for better relevance
- Intended to cut “200+ actions in prompt” down to ~15 relevant ones

If you build large plugin stacks, this is a core cost/perf lever—especially for long-context models.

### plugin-bootstrap optimization and hardening
The bootstrap plugin received comprehensive robustness + caching improvements ([elizaos/eliza#6476](https://github.com/elizaos/eliza/pull/6476)), plus a targeted null-safety fix for `runtime.providers` ([elizaos/eliza#6473](https://github.com/elizaos/eliza/pull/6473)). Expect slightly different initialization behavior (banner + internal caching) and fewer runtime crashes in partially-configured environments.

---

## 2) New Features

### elizaos.news: automated daily video generation pipeline (PlayCanvas)
The `elizaos.news` platform shipped a major iteration: **100% automated video generation** using **PlayCanvas rendering** (explicitly *not* AI video rendering), with:
- automated subtitles
- agent narration
- “spread” layout selected after design experimentation (Discord discussion Feb 17)

Roadmap item in active development:
- **1:1 interview mode** — users chat with a bot; the conversation is transformed into an interview-style show combining human + AI elements (Discord references: [#discussion](https://discord.com/channels/1253563208833433701/1253563209462448241))

This matters for developers embedding ElizaOS agents into content pipelines: it’s a concrete example of an agent-driven “generate → render → publish” flow that’s deterministic and game-engine-based.

### Registry growth: new plugin proposal(s)
The plugin ecosystem continues to expand; a new proposal for `@elizaos/plugin-buzz-bd` landed in `elizaos-plugins/registry` (Feb 17 activity mention). Track proposals/merges here:
- https://github.com/elizaos-plugins/registry/pulls

---

## 3) Bug Fixes (critical/impactful)

### Runtime crash prevention: defensive null checks
Two fixes eliminate common “undefined/null” runtime crashes:

- Settings utilities now guard `Object.entries()` calls ([elizaos/eliza#6471](https://github.com/elizaos/eliza/pull/6471))
- `plugin-bootstrap` now null-checks `runtime.providers` ([elizaos/eliza#6473](https://github.com/elizaos/eliza/pull/6473))

These are especially relevant when running minimal runtimes, custom bootstraps, or partially-loaded plugin sets.

### Server event emission correctness
`EventType.MESSAGE_SENT` is now emitted after sending responses to the central server bus ([elizaos/eliza#6378](https://github.com/elizaos/eliza/pull/6378)). If you have downstream automation keyed off MESSAGE_SENT, this fixes missing triggers.

### CLI reliability for remote auth + local development
Several CLI fixes improve developer ergonomics and reduce setup flakiness:

- `.env` loading in `elizaos agent *` commands for remote auth token usage ([elizaos/eliza#6376](https://github.com/elizaos/eliza/pull/6376))
- Directory validation to avoid opaque ENOENT errors ([elizaos/eliza#6379](https://github.com/elizaos/eliza/pull/6379))
- `elizaos create` uses `'latest'` for `@elizaos/*` deps to avoid missing alpha versions on npm ([elizaos/eliza#6362](https://github.com/elizaos/eliza/pull/6362))

### Known open bug to watch: duplicate LLM calls on URL messages
A cost-amplifying bug remains open: URL-containing messages can trigger duplicate LLM calls (processed as both text and attachment preview) ([elizaos/eliza#6486](https://github.com/elizaos/eliza/issues/6486)). If you see doubled output in SSE streams, track this issue; consider client-side URL preview suppression as a temporary mitigation.

---

## 4) API Changes (developer-facing)

### Database API evolution (pending merge)
If [#6509](https://github.com/elizaos/eliza/pull/6509) merges, expect API-level changes across core + plugins that touch storage:

- New/expanded **upsert** methods for agents/entities/rooms/worlds
- Query methods supporting **pagination** (`limit`/`offset`)
- Plugin authors should prepare to migrate away from Drizzle-specific typing in core-facing interfaces (core schema definitions become generic)

### Request-scoped entity configuration
With [#6457](https://github.com/elizaos/eliza/pull/6457), APIs that previously required explicit `entityId`/settings parameters may increasingly rely on ambient request context. This is good for correctness in multi-tenant servers, but be careful in:
- background jobs
- cron-like runners
- queue workers

You must set context explicitly in non-request flows.

---

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

### Twitter plugin: auth loop fix + media upload support
The Twitter integration received a substantial stability and capability update (merged earlier in the week per contributor log):
- Fixes an authentication retry loop
- Adds media upload support  
Ref: `elizaos-plugins/plugin-twitter` PR [#48](https://github.com/elizaos-plugins/plugin-twitter/pull/48)

### Farcaster + other plugins: Spartan install pain points
Spartan setup reports indicate missing plugins (including `plugin-farcaster`) can cause `bun install` to hang until plugins are manually cloned:
- `@elizaos/plugin-evm`
- `plugin-farcaster`
- `plugin-jupiter`
- `plugin-knowledge`
- `plugin-mysql`
- `plugin-solana`

Notes from core team: **plugin installation order does not matter**, but **Spartan setup is not polished** and Docker files exist but are currently non-functional (Discord: [#discussion](https://discord.com/channels/1253563208833433701/1253563209462448241)).

---

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

### Anthropic: Sonnet 4.6 announced (1M context in beta)
Claude **Sonnet 4.6** was announced in the developer channels (Discord references: [core-devs](https://discord.com/channels/1253563208833433701/1377726087789940836), [coders](https://discord.com/channels/1253563208833433701/1300025221834739744)). Reported improvements include coding, long-context reasoning, planning, computer use, and design—with a **1M token context window (beta)**.

No ElizaOS provider-side changes were confirmed this week, but if you maintain model routing/selection logic, plan for:
- larger-context prompt assembly strategies
- cost controls (ActionFilterService + scenario cost evaluators are increasingly relevant)

### OpenAI provider: custom endpoint request is open
Feature request to support configurable OpenAI-compatible base URLs remains open ([elizaos/eliza#6490](https://github.com/elizaos/eliza/issues/6490)). This is important for “OpenAI-compatible” vendors (e.g., SiliconFlow) that require a different `baseURL`.

---

## 7) Breaking Changes (V1 → V2 migration warnings)

### V2 branches remove “non-essentials” (app/server/CLI) and shift the center of gravity
Two large WIP PRs—**V2.0.0** ([elizaos/eliza#6351](https://github.com/elizaos/eliza/pull/6351)) and **next-gen multi-language** ([elizaos/eliza#6485](https://github.com/elizaos/eliza/pull/6485))—signal a major packaging/architecture break from V1:

- Removes default **app, server, CLI** from the main distribution focus (runtime-first)
- Adds **Rust + Python + TypeScript** core packages + ports of key plugins
- Runtime behavior changes mentioned in PR description:
  - agents can respond without `roomId/worldId`
  - `planningMode` can be disabled to force a single-action path (useful for games/simple agents)
  - actions can take arguments (tool-like invocation)

If you are migrating:
- do not assume `elizaos create` / bundled server scaffolding exists in the same shape in V2
- audit plugin dependencies that assumed Node-only or Drizzle types in core
- expect refactors around DB plugin naming/merging if [#6509](https://github.com/elizaos/eliza/pull/6509) lands

### Spartan packaging is currently brittle
Spartan is still sensitive to plugin availability and repo layout; documentation and Docker workflows are explicitly called out as incomplete. Treat Spartan as “developer preview” unless you vendor-lock the plugin set and provide your own reproducible build instructions.

---

## Links / References
- DB refactor (WIP): https://github.com/elizaos/eliza/pull/6509  
- ActionFilterService: https://github.com/elizaos/eliza/pull/6475  
- RequestContext: https://github.com/elizaos/eliza/pull/6457  
- plugin-bootstrap optimizations: https://github.com/elizaos/eliza/pull/6476  
- Null-safety fixes: https://github.com/elizaos/eliza/pull/6471 , https://github.com/elizaos/eliza/pull/6473  
- MESSAGE_SENT emission fix: https://github.com/elizaos/eliza/pull/6378  
- CLI fixes: https://github.com/elizaos/eliza/pull/6376 , https://github.com/elizaos/eliza/pull/6379 , https://github.com/elizaos/eliza/pull/6362  
- Open URL duplicate-call bug: https://github.com/elizaos/eliza/issues/6486  
- OpenAI custom endpoint request: https://github.com/elizaos/eliza/issues/6490  
- V2 efforts: https://github.com/elizaos/eliza/pull/6351 , https://github.com/elizaos/eliza/pull/6485  
- Twitter plugin update: https://github.com/elizaos-plugins/plugin-twitter/pull/48  
- Registry PRs: https://github.com/elizaos-plugins/registry/pulls  
- Discord threads (context):  
  - Discussion: https://discord.com/channels/1253563208833433701/1253563209462448241  
  - Core devs: https://discord.com/channels/1253563208833433701/1377726087789940836  
  - Coders: https://discord.com/channels/1253563208833433701/1300025221834739744