# ElizaOS Developer Update (2026-04-01 → 2026-04-08)

This week skewed toward **runtime / prompt encapsulation hardening** and **dev-host ergonomics**, with several substantial PRs opened but **no merges landed** yet. Discord activity included first-time agent deployments (Hatcher.host + Groq), early planning for ai-news backfills with fallback models + credit monitoring, and a live report of X/Twitter login failures in `plugin-twitter`.

---

## 1) Core Framework (architecture, plugin system, agent runtime)

### TOON encapsulation + DefaultMessageService fixes (open PR)
PR: **“Fix/toon action params”** (elizaos/eliza **#6709**)  
Link: https://github.com/elizaos/eliza/pull/6709

Key runtime/service-level changes proposed:

- **TOON schema now asks the LLM for `params`** (action parameters) explicitly.
  - Prior behavior: connectors using TOON encapsulation could emit actions but **miss required params** (e.g., `RUN_IN_TERMINAL.command`), because the schema didn’t request them.
  - Proposed fix: add `params` to the single-shot TOON response schema, then parse it on the TOON path.

- **Stop “continuation loops” after async terminal/task actions**
  - Adds async task-oriented actions to the “terminal action set” used by `shouldContinueAfterActions`, including:
    - `CREATE_TASK`, `START_CODING_TASK`, `CODE_TASK`, `SPAWN_AGENT`, `SPAWN_CODING_AGENT`
  - Motivation: these actions return quickly while work continues in a PTY/session; without treating them as terminal, the runtime may emit repeated filler messages during the background run.

Technical context: this is specifically impactful for **non-streaming connectors** (Discord/Milady-style flows) where the runtime relies on single-shot schemas and post-action continuation logic.

### Runtime composition helpers + local dev harness (open PR; medium risk)
PR: **“feat: add agent/ like starter in develop”** (elizaos/eliza **#6702**)  
Link: https://github.com/elizaos/eliza/pull/6702

Proposes a new **`agent/` workspace** acting as a repo “boot harness” (stdin/stdout REPL) built around `@elizaos/core`, plus runtime composition helpers:

- `loadCharacters(...)` expanded to support **JSON file paths** (with `cwd` support for relative resolution).
- `createRuntimes(...)` threads through a new `checkShouldRespond` option to influence respond/ignore behavior at runtime composition time.
- Adds scripts to support local plugin development via **git submodules** (e.g., `plugin-sql`, `plugin-ollama`, `plugin-local-ai`) and workspace rewrites.

**Developer note:** review feedback (Greptile) flags install/CI risk if workspace entries for submodules remain in committed `package.json` without submodules initialized. If this lands, expect a short period of “fresh clone” friction unless the workflow is tightened.

---

## 2) New Features (with examples)

> None merged this week; the items below are **new capabilities proposed in open PRs** that you can track/review.

### A. TOON action parameter extraction (proposed)
PR: https://github.com/elizaos/eliza/pull/6709

If merged, TOON connectors should start seeing structured parameters in responses, e.g.:

```text
toon:
  actions:
    - RUN_IN_TERMINAL
  params:
    RUN_IN_TERMINAL:
      command: "ls -la"
```

Practical impact: actions with required params stop failing silently on TOON-based connectors.

### B. Character loading from JSON paths (proposed)
PR: https://github.com/elizaos/eliza/pull/6702

The runtime host can be composed from character file paths (instead of only in-memory objects). Example (conceptual usage based on the PR description):

```ts
import { loadCharacters, createRuntimes } from "@elizaos/core/runtime-composition";

const characters = await loadCharacters([
  "./characters/default.character.json",
  "./characters/support.character.json",
], { cwd: process.cwd() });

const runtimes = await createRuntimes(characters, {
  checkShouldRespond: (ctx) => ctx.message.text.length > 0,
});
```

This is aimed at making hosts (and CI) more repeatable by treating characters as artifacts.

### C. Local REPL harness for repo bring-up (proposed)
PR: https://github.com/elizaos/eliza/pull/6702

Intended flow:

```bash
# (If merged) from repo root
bun run dev
# starts agent/ REPL harness, loads a character, routes stdin → messageService → stdout
```

---

## 3) Bug Fixes (critical fixes with context)

> No bugfixes were merged, but two high-impact bugfix PRs/issues were surfaced.

### A. TOON connectors dropping required action params (open fix)
PR: https://github.com/elizaos/eliza/pull/6709

**Symptom:** actions that require parameters (notably terminal/tooling actions) may execute with missing inputs when invoked via TOON encapsulation, because the schema doesn’t require the LLM to emit params.

**Fix approach:** extend the TOON response schema to include a `params` object and parse it in the TOON path.

### B. Windows checkout failures due to PGlite artifacts (open fix in plugin-openrouter)
Repo PR list: https://github.com/elizaos-plugins/plugin-openrouter/pulls  
Context (from GitHub activity aggregation): a PR was opened to fix **PGlite memory artifacts** that block Windows Git checkouts (typically caused by committed/generated binary-ish state or problematic files produced during local runs).

If you develop on Windows and are seeing checkout/index errors, track that PR and avoid committing runtime-generated PGlite artifacts.

### C. `elizaos create` failing on macOS due to transitive `bun` dependency (open issue)
Issue: **“elizaos create fails with ‘Bun’s postinstall script was not run’ on macOS”** (elizaos/eliza **#6704**)  
Link: https://github.com/elizaos/eliza/issues/6704

Root cause described: the `bun` npm package being included as a runtime dependency causes broken installs in scenarios where postinstall scripts are skipped or bun’s binary extraction expectations differ (esp. on Apple Silicon). Proposed mitigation: move bun to dev-only (types) rather than runtime.

---

## 4) API Changes (developer-facing modifications)

> Not merged yet; treat as **pending API changes** if the associated PRs merge.

### A. `loadCharacters` signature expansion (pending)
PR: https://github.com/elizaos/eliza/pull/6702

- `loadCharacters` now accepts file paths + options (e.g., `cwd`) rather than only pre-parsed character objects.
- Downstream hosts relying on the older call shape should be prepared to update imports/call sites if the function overloads are introduced.

### B. `createRuntimes` / `AgentRuntime` composition option: `checkShouldRespond` (pending)
PR: https://github.com/elizaos/eliza/pull/6702

- Adds a host-level gate to centralize “should respond” policy during runtime creation.
- If you currently implement respond/ignore heuristics inside connectors, you may want to migrate that logic upward (once merged) to keep behavior consistent across channels.

---

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

### X (Twitter) login failure report (Discord)
Discord thread reference (coders channel): https://discord.com/channels/1253563208833433701/1300025221834739744

- A developer reported their `eliza-agent` **cannot log into X** and hits a “page not found” error after retries, even with cookies.
- Maintainer response requested version info for both **ElizaOS core** and **`plugin-twitter`**, suggesting a potentially **version-specific break** (likely upstream X flow/UI changes or cookie/session handling divergence across plugin versions).

**Action for plugin-twitter users:** when reporting, include:
- eliza version / commit
- plugin-twitter version
- auth mode (cookies vs OAuth)
- whether the error is a 404 on a specific endpoint vs a redirect loop

### Discord connectors + TOON format (in-flight)
PR: https://github.com/elizaos/eliza/pull/6709 mentions testing against Discord/Milady connectors; if you run Discord connectors with TOON encapsulation, track this PR closely.

---

## 6) Model Provider Updates (OpenAI, Anthropic, DeepSeek, Groq, OpenRouter, etc.)

### Groq in production deployments (community report)
Discord discussion: https://discord.com/channels/1253563208833433701/1253563209462448241

- A community member successfully deployed their first agent via **Hatcher.host one-click deployment**, using **Groq** as the model backend.
- Notable operational UX: dashboard + **live logs**, smooth first-run experience.

While not a core repo change, this is a useful signal that Groq-backed deployments are behaving well in hosted environments.

### OpenRouter plugin: Windows checkout fix (open PR)
Repo: https://github.com/elizaos-plugins/plugin-openrouter  
PR list: https://github.com/elizaos-plugins/plugin-openrouter/pulls

- PR opened to remove/mitigate PGlite artifacts that interfere with Windows Git operations.

### ai-news regeneration: fallback models + credit monitoring (planned)
Discord summary: https://discord.com/channels/1253563208833433701/1253563209462448241

- Planned work: regenerate ~1 week of AI news data with:
  - **fallback model routing**
  - improved **credit usage monitoring** (to prevent unexpected spend / exhaustion)

If you maintain model-provider plugins or run batch generation jobs, this is aligned with the broader “spend governance” direction highlighted in the prior weekly summary.

---

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

No V1→V2 breaking change was merged this week, but **two open PRs are large enough to create migration friction** if merged without guardrails:

1) **Prompt encapsulation / format shifts (XML → TOON)**
   - PR: https://github.com/elizaos/eliza/pull/6709
   - Risk surface:
     - Connectors that assume XML-only parsing paths
     - Custom prompt templates that rely on legacy XML fields or parsing behavior
   - Mitigation: ensure your connector/runtime sets `preferredEncapsulation` explicitly and validate action param extraction end-to-end.

2) **Repo/workspace layout changes via submodule-based plugin dev workflow**
   - PR: https://github.com/elizaos/eliza/pull/6702
   - Risk surface:
     - Fresh clones failing `bun install` if workspaces reference submodule paths that aren’t present
     - Lockfile (`bun.lock`) mismatches between registry-resolved deps and `workspace:*`
   - Mitigation: if/when merged, expect updated contributor docs and stricter CI checks to ensure “no submodule workspaces committed” unless submodules are required.

---

## References (PRs / Issues / Docs)

- PR (open): TOON action params + async action continuation suppression — https://github.com/elizaos/eliza/pull/6709
- PR (open): `agent/` dev harness + runtime composition changes — https://github.com/elizaos/eliza/pull/6702
- Issue (open): `elizaos create` fails on macOS (bun postinstall) — https://github.com/elizaos/eliza/issues/6704
- Issue (open): Delegation chains for autonomous agents (scoped authority/spend limits/revocation) — (opened this week; track in repo issues) https://github.com/elizaos/eliza/issues
- PR list: plugin-openrouter (Windows checkout / PGlite artifacts fix) — https://github.com/elizaos-plugins/plugin-openrouter/pulls
- Discord (discussion; deployments + ai-news plans) — https://discord.com/channels/1253563208833433701/1253563209462448241
- Discord (coders; X login failure report) — https://discord.com/channels/1253563208833433701/1300025221834739744