# ElizaOS Developer Update (2026-02-21 → 2026-02-27)

This update summarizes core engineering changes and developer-facing implications observed across GitHub activity and developer Discord discussions during the week.

---

## 1) Core Framework

### Per-request entity context propagation (AsyncLocalStorage)
ElizaOS core now supports request-scoped context propagation via `AsyncLocalStorage`, allowing runtime code to access the originating “entity” (tenant/user) without threading IDs through every call.

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

**Why it matters**
- Enables cleaner multi-tenant / per-user configuration.
- Reduces parameter plumbing in providers, actions, and runtime services.
- Establishes a standard for server middleware to wrap request handlers with entity context.

**Example usage (Node/TS)**
```ts
import { RequestContext } from "@elizaos/core";

// In your server/middleware boundary:
app.use((req, _res, next) => {
  const entityId = req.headers["x-entity-id"]?.toString();
  RequestContext.withEntity(entityId ?? "public", () => next());
});

// Deep inside runtime/services later:
const entity = RequestContext.getEntity(); // no explicit parameter passing
```

---

### Prompt bloat reduction via action filtering (vector search + BM25 reranking)
A new `ActionFilterService` was introduced to reduce the number of actions/providers shown to the model by dynamically selecting the most relevant tools.

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

**Technical notes**
- Two-stage ranking:
  1) vector similarity search (cosine similarity on embeddings)
  2) BM25 reranking for lexical relevance
- Typical reduction cited in PR: ~200+ actions down to ~15 relevant ones, lowering prompt tokens and improving tool-selection accuracy.

**Developer implications**
- If you rely on “long tail” actions being always available to the LLM, you should ensure:
  - action names/descriptions include strong keywords
  - your action metadata is specific (avoid generic descriptions)
  - you validate that your action remains discoverable under the filter

---

### Bootstrap plugin performance/robustness work
Significant optimizations and robustness improvements landed in the bootstrap plugin.

- PR: **feat(plugin-bootstrap): comprehensive optimization and robustness improvements**  
  https://github.com/elizaos/eliza/pull/6476

This work includes caching and provider initialization improvements (see PR for file-level changes across `packages/plugin-bootstrap/src/providers/*`).

---

## 2) New Features

### Action selection now scales better with large plugin sets
The `ActionFilterService` (above) is the major developer-facing capability this week. If you are building “tool-heavy” agents, the practical changes you should expect:

- Lower prompt size and latency on tool selection steps
- Fewer “wrong tool” calls due to reduced choice overload
- More importance placed on well-authored action schemas/descriptions

**Action authoring recommendation**
```ts
export const MyAction = {
  name: "fetch_token_price",
  description: "Fetch real-time token price by symbol from the configured price provider (supports SOL/ETH/BTC).",
  // Keep description concrete: data source + parameters + supported assets.
  // Avoid: "Gets data" / "Fetches info"
};
```

### Core docs baseline is now available (if you’re onboarding contributors)
Core documentation guides were added (architecture, concepts, plugin dev, deployment, API reference).

- PR: **docs: core documentation guides**  
  https://github.com/elizaos/eliza/pull/6356

Key entry points:
- `docs/ARCHITECTURE.md`
- `docs/CORE_CONCEPTS.md`
- `docs/PLUGIN_DEVELOPMENT.md`
- `docs/API_REFERENCE.md`
- `docs/DEPLOYMENT_GUIDE.md`

---

## 3) Bug Fixes (critical/impactful)

### Prevent runtime crashes due to null/undefined settings handling
Defensive checks were added to core settings utilities to avoid runtime exceptions from `Object.entries()` on null/undefined.

- PR: **fix: add null checks to Object.entries calls in settings utilities**  
  https://github.com/elizaos/eliza/pull/6471

**Symptom**
- Agents could crash when settings blobs were absent/partially loaded.

**Fix**
- Guards added before enumerating settings structures.

---

### Bootstrap provider null guard
A null check was added for `runtime.providers` to prevent a crash in bootstrap providers.

- PR: **fix(plugin-bootstrap): add null check for runtime.providers**  
  https://github.com/elizaos/eliza/pull/6473

**Symptom**
- `TypeError: Cannot read properties of null (reading 'filter')`

**Context**
- Common during early runtime initialization or custom runtime wiring where providers aren’t yet attached.

---

### Server event emission correctness: MESSAGE_SENT after bus send
Server now emits `EventType.MESSAGE_SENT` after sending the agent response to the central server API.

- PR: **fix(server): emit MESSAGE_SENT event after sending to central server**  
  https://github.com/elizaos/eliza/pull/6378  
- Issue: https://github.com/elizaos/eliza/issues/5216

**Why it matters**
- Downstream consumers that rely on MESSAGE_SENT (telemetry, integration relays, UI state) now get consistent signaling in centralized deployments.

---

### Discord-reported: Twitter input issues (triage in progress)
A developer reported issues with Twitter input handling; core dev requested clarification on product/version before proceeding.

- Discord (💬-coders): https://discord.com/channels/1253563208833433701/1300025221834739744

**Action required from affected devs**
- Provide:
  - ElizaOS version (v1.x vs v2 branch)
  - plugin-twitter version
  - auth mode (cookie/session/OAuth)
  - whether issue is inbound mentions, DMs, streaming, or polling

---

## 4) API Changes

### RequestContext (new core API surface)
`RequestContext` is now part of core and should be considered the preferred mechanism for request-scoped values (entity/tenant). See PR #6457.

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

**Developer guidance**
- Use it at service boundaries (HTTP handlers, socket handlers, job processors) rather than passing entity IDs through every runtime function.
- Avoid storing entity state in globals; prefer request context or runtime-scoped state.

### Environment variable documentation available (reference update)
- PR: **docs: add environment variables documentation**  
  https://github.com/elizaos/eliza/pull/6377  
- Doc: `docs/environment-variables.md`

---

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

### Twitter plugin: reliability + media support (merged earlier this month; relevant to current support load)
The Twitter plugin received substantial fixes including resolving an authentication retry loop and adding media upload capability.

- PR: https://github.com/elizaos-plugins/plugin-twitter/pull/48

**Known current state**
- Despite the above improvements, Discord reports indicate at least one unresolved “Twitter input” malfunction pending version details (see Bug Fixes section).

### Other social integrations
No concrete Telegram/Discord/Farcaster plugin code changes were present in the provided activity for this specific week; ongoing infra planning items exist in the repo issue tracker from earlier cycles.

---

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

### OpenAI-compatible endpoint support requested (not yet implemented)
A feature request is open to allow configuring a custom OpenAI endpoint URL for OpenAI-compatible providers (e.g., SiliconFlow).

- Issue: **Support custom OpenAI endpoint URL for OpenAI provider**  
  https://github.com/elizaos/eliza/issues/6490

**Developer workaround (until implemented)**
- If you operate an OpenAI-compatible endpoint, you’ll need a custom provider wrapper or reverse proxy that maps to the default OpenAI base URL expectations.

No other provider changes (Anthropic/DeepSeek/etc.) were evidenced in the provided week’s dataset.

---

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

### Branch hygiene incident: `develop` contained 2.0.0 code unexpectedly
Discord discussion reported that the `develop` branch unexpectedly contained **2.0.0** code instead of **1.x**, with no clear traceability via normal PR/commit history. The mitigation was to create a **`v2-develop`** branch to preserve 1.x for users still migrating.

- Discord summary (2026-02-25): version control issue + mitigation noted  
  (source: internal Discord summary data for 2026-02-25)

**Impact**
- If you track `develop` expecting v1 semantics, you may pull in v2-breaking changes unintentionally.

**Recommended developer actions**
```bash
# If you are a v1.x consumer:
git fetch origin
git checkout <v1-stable-branch-or-tag>

# If you are migrating to v2:
git checkout v2-develop
```

### V2 architectural shift (runtime-first, multi-language, reduced “default app/server/CLI” assumptions)
Large in-flight PRs describe a next-generation ElizaOS with Rust/Python/TypeScript core packages and a runtime-first approach.

- PR: **feat: next generation multi-language Eliza with Rust, Python and TypeScript support**  
  https://github.com/elizaos/eliza/pull/6485  
- PR: **next**  
  https://github.com/elizaos/eliza/pull/6474  
- PR: **V2.0.0**  
  https://github.com/elizaos/eliza/pull/6351

**Migration risk areas to watch**
- Tool/action calling semantics may differ (v2 notes mention argumented actions and planning mode toggles).
- “Default” app/server scaffolding assumptions may no longer hold (v2 PR text explicitly removes non-essentials to focus on runtime).
- Plugin portability: ensure you know which runtime (TS vs Rust vs Python) your plugin targets.

---

## Links & References (mentioned this week)
- Core request context: https://github.com/elizaos/eliza/pull/6457  
- ActionFilterService: https://github.com/elizaos/eliza/pull/6475  
- Bootstrap optimization: https://github.com/elizaos/eliza/pull/6476  
- Settings null-guards: https://github.com/elizaos/eliza/pull/6471  
- Bootstrap providers null-guard: https://github.com/elizaos/eliza/pull/6473  
- MESSAGE_SENT emission fix: https://github.com/elizaos/eliza/pull/6378  
- Custom OpenAI endpoint request: https://github.com/elizaos/eliza/issues/6490  
- Twitter plugin fixes + media upload: https://github.com/elizaos-plugins/plugin-twitter/pull/48  
- Discord Twitter input report: https://discord.com/channels/1253563208833433701/1300025221834739744