# ElizaOS Developer Update (2026-02-09 → 2026-02-15)

This update summarizes core engineering work and developer-facing changes discussed/landed through **2026-02-11** (mid-week snapshot).

---

## 1) Core Framework

### Per-request / per-entity settings via `RequestContext`
Multi-tenant deployments continue to harden around isolating user-specific settings (API keys, OAuth tokens, etc.). This week’s key architectural addition is **`RequestContext`** (AsyncLocalStorage-backed) to resolve settings based on the *originating entity* without threading IDs through every callsite.

- PR: **feat(core): add request context for per-user entity settings** — https://github.com/elizaos/eliza/pull/6457

**Why it matters**
- Prevents “shared runtime” leakage (e.g., two users talking to the same agent but inadvertently sharing provider credentials).
- Changes the semantics of `runtime.getSetting()` (now checks request context first, then falls back to agent/global settings).

**Typical usage**
```ts
import { RequestContext } from "@elizaos/core";

// Wrap inbound message handling (HTTP, socket, platform adapter, etc.)
await RequestContext.withEntity(entityId, async () => {
  const openaiKey = runtime.getSetting("OPENAI_API_KEY");
  // openaiKey is now entity-scoped when set, otherwise falls back
  await runtime.processMessage(message);
});
```

---

### Prompt bloat reduction: relevance-based action filtering
Large agents with 200+ actions/providers are now being optimized to avoid sending an oversized tool/action list to the LLM every turn.

- PR: **feat: ActionFilterService — vector search + BM25 reranking for action/provider filtering** — https://github.com/elizaos/eliza/pull/6475

**What changed**
- A new **ActionFilterService** performs:
  1) vector similarity prefilter
  2) BM25 reranking
- Net effect: reduce the action list exposed to the model to ~15 highly relevant actions, improving latency and cost while reducing tool confusion.

**Integration sketch (TypeScript runtime/bootstrap)**
```ts
// Pseudocode showing intent; exact wiring may differ per runtime entrypoint.
const filtered = await actionFilterService.rankActions({
  query: state.latestUserMessage,
  actions: runtime.actions,
  limit: 15,
});

state.availableActions = filtered;
```

---

### V2 “next” branch continues (multi-language core)
Work continues on the **Eliza v2** direction: Rust + Python + TypeScript core packages, ported plugins, and removal of the default app/server/CLI from the “core” distribution.

- PR: **next** — https://github.com/elizaos/eliza/pull/6474  
- PR: **feat: next generation multi-language Eliza…** — https://github.com/elizaos/eliza/pull/6485  
- PR: **V2.0.0** — https://github.com/elizaos/eliza/pull/6351  
- PR: **V2.0.0: dynamic execution engine…** — https://github.com/elizaos/eliza/pull/6384

These are not fully merged at the time of this snapshot, but developers should track them closely if building deep runtime integrations.

---

## 2) New Features

### JWT authentication & user management (data isolation mode)
JWT auth landed behind a feature flag for deployments needing authenticated, multi-user behavior.

- PR: **feat(auth): implement JWT authentication and user management** — https://github.com/elizaos/eliza/pull/6200

**Activation**
- Requires `ENABLE_DATA_ISOLATION=true` (per PR notes).

**Docs**
- Environment variables reference (server auth token, etc.): https://github.com/elizaos/eliza/pull/6377

---

### “MESSAGE_SENT” lifecycle event correctness
If you maintain plugins that subscribe to message lifecycle events, the server now correctly emits `EventType.MESSAGE_SENT` after sending to the central server endpoint.

- PR: **fix(server): emit MESSAGE_SENT event after sending to central server** — https://github.com/elizaos/eliza/pull/6378  
- Issue fixed: **EVENT MESSAGE SENT not working** — https://github.com/elizaos/eliza/issues/5216

**Plugin-side listener example**
```ts
import { EventType } from "@elizaos/core";

runtime.on(EventType.MESSAGE_SENT, (evt) => {
  // evt should now fire for payloads submitted to /api/messaging/submit
  // Use this for analytics, retries, audit logs, downstream routing, etc.
});
```

---

### Developer tooling surfaced in Discord: “agent-tail”
A dev tool concept (“agent-tail”) was shared that wraps dev server commands and exposes browser/server logs to agents via installed skills, giving agents richer execution context during debugging.

- Mentioned in Discord daily summary (2026-02-10): https://discord.com/channels/1253563208833433701/1377726087789940836

This is not yet a canonical ElizaOS package in the provided GitHub data, but it’s relevant for teams building code/debug agents on top of Eliza.

---

## 3) Bug Fixes (Critical)

### CI stability: bootstrap cache memory leak + test failures
Core devs reported CI failures tied to bootstrap cache behavior; a fix was submitted.

- PR (reported): **#6477 CI fix** — referenced in core-devs Discord  
  https://discord.com/channels/1253563208833433701/1377726087789940836

**Impact**
- Prevents CI churn and reduces risk of shipping regressions due to flaky pipelines.

---

### Runtime crash hardening in core + plugin-bootstrap
Several high-frequency crashers caused by `Object.entries(null|undefined)` / missing object guards were addressed.

- PR: **fix: add null checks to Object.entries calls in settings utilities** — https://github.com/elizaos/eliza/pull/6471  
- PR: **fix(plugin-bootstrap): add null check for runtime.providers** — https://github.com/elizaos/eliza/pull/6473  

Additional robustness work also landed in:
- PR: **feat(plugin-bootstrap): comprehensive optimization and robustness improvements** — https://github.com/elizaos/eliza/pull/6476

**Why this mattered in practice**
- Users reported fresh installs crashing during provider execution; these guardrails keep agents responsive instead of failing fast when partial/null metadata is present.

---

### Reported (not yet confirmed merged): Agent Skills provider crash
Discord reports indicate a crash in the agent skills instructions provider:
- `skill.description.toLowerCase is not a function` (fresh milaidy VPS install)

This appears to be in `@elizaos/plugin-agent-skills` (mentioned as known bug by Odilitime), but no linked PR was provided in the data. Track/patch recommendation: normalize `skill.description` to string before lowercasing and/or validate schema at plugin boundary.

---

## 4) API Changes (Developer Attention Required)

### `runtime.getSetting()` resolution order changed (RequestContext)
If you rely on settings being strictly global/agent-scoped, note that `getSetting()` now consults the request context first when present (multi-tenant correctness).

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

**Migration guidance**
- Ensure your platform adapter (Discord/Twitter/Telegram/etc.) wraps message handling in `RequestContext.withEntity(...)` where appropriate.
- If you intentionally want global settings, either:
  - avoid setting entity-scoped overrides, or
  - access a lower-level config source (if your deployment defines one) rather than `getSetting()`.

---

### Message event emission semantics fixed (`MESSAGE_SENT`)
If you previously implemented workarounds for missing `MESSAGE_SENT`, remove duplication to avoid double-processing.

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

---

## 5) Social Media Integrations

### Farcaster: Babylon “share” link rendering bug (reported)
A bug was reported: Babylon feedback’s “share to farcaster” link displays incorrectly.

- Report (Discord core-devs): https://discord.com/channels/1253563208833433701/1377726087789940836

**Suggested debugging starting points**
- Validate URL encoding/templating (especially `%` encoding and `?text=` payload assembly).
- Confirm the share endpoint format expected by Warpcast has not changed.

---

### Twitter plugin limitations (quote repost behavior)
Developers reported that “quote repost” doesn’t produce native quote tweets; instead it posts quoted text plus a link. An issue/PR was suggested but not linked in the dataset.

**Practical guidance**
- If your agent needs native quote-tweet behavior, confirm whether the plugin is using the correct API endpoint/fields (varies by Twitter API tier) and update accordingly.

---

### Telegram / WhatsApp / onboarding competitiveness (requests)
Community feedback compared ElizaOS unfavorably to OpenClaw’s “4-minute wizard” onboarding and WhatsApp/Telegram integrations. WhatsApp integration remains a recurring request; no PR linked this week.

---

## 6) Model Provider Updates

### Claude Code reverse engineering: hidden SDK URL flag (WebSocket client enablement)
A reverse-engineered Claude Code binary reportedly exposed a hidden SDK URL flag enabling WebSocket client functionality from browsers/mobile.

- Mentioned in daily summary (2026-02-10): https://discord.com/channels/1253563208833433701/1377726087789940836

This is not an ElizaOS provider change by itself, but it’s relevant for:
- alternative client transports
- mobile-first agent consoles
- web-based debugging UIs over WS instead of SSE

---

### Model selection confusion (reported)
Discord reports indicated configured models being ignored (example: claude-haiku-3.5 selected despite different configuration). No linked issue/PR in the provided GitHub set; treat as an active investigation area for runtime config precedence (especially with new RequestContext behavior and multi-provider setups).

---

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

V2 workstreams (`#6351`, `#6474`, `#6485`, `#6384`) are explicitly targeting a leaner, multi-language runtime and **removing** several “default” components from the core distribution (app/server/CLI), with examples and bootstrapping patterns replacing monolithic defaults.

**If you maintain tooling around `elizaos/eliza` (V1-style monorepo expectations):**
- Do not assume the default webapp/server/CLI live in the same places going forward.
- Expect re-homing of “bootstrap” behavior into core runtimes with capability flags (as described in PR #6474/#6485).
- Pin versions in production until you’ve validated:
  - agent startup lifecycle
  - plugin loading paths
  - environment variable names/docs parity
  - transport differences (SSE/WS) if you embed clients

**Track:**
- https://github.com/elizaos/eliza/pull/6474  
- https://github.com/elizaos/eliza/pull/6485  
- https://github.com/elizaos/eliza/pull/6351  

---

## References / Useful Links

- Core docs bundle: https://github.com/elizaos/eliza/pull/6356  
- Environment variables docs: https://github.com/elizaos/eliza/pull/6377  
- Duplicate LLM calls when URL is present (open issue): https://github.com/elizaos/eliza/issues/6486  
- Character file & prompt engineering tracking: https://github.com/elizaos/eliza/issues/6447  
- Discord (core-devs): https://discord.com/channels/1253563208833433701/1377726087789940836  
- Discord (coders): https://discord.com/channels/1253563208833433701/1300025221834739744  
- Discord (discussion): https://discord.com/channels/1253563208833433701/1253563209462448241