# ElizaOS Developer Update (2026-05-03 → 2026-05-09)

This week focused on consolidating Cloud into the main monorepo, hardening self-hosted/runtime reliability (especially headless Linux), and expanding monetization + automation UX primitives.

---

## 1) Core Framework

### Monorepo consolidation + Cloud import
ElizaCloud has been consolidated into the main repository (`github.com/elizaOS/eliza`) and the hosting stack is migrating away from Vercel toward cheaper container-based infra (Discord update, 2026-05-06). This aligns with the large consolidation PR that pulled Cloud + plugins into the monorepo and removed legacy Rust/Python surfaces.

- Monorepo consolidation: **PR #7235** “add cloud and plugins, remove rust and python”  
  https://github.com/elizaos/eliza/pull/7235

### Cross-platform secrets: `@elizaos/vault`
A major architectural addition is the new **cross-platform secrets vault** with OS-keychain integration, wired through Settings UI and runtime operations.

- Vault feature: **PR #7197**  
  https://github.com/elizaos/eliza/pull/7197
- Headless Linux hardening for keychain access (prevents native segfaults when Secret Service is unavailable): **PR #7230**  
  https://github.com/elizaos/eliza/pull/7230

Key design points developers should understand:
- Secrets are encrypted at rest (AES-256-GCM) with a master key sourced from:
  1) OS keychain (macOS Keychain / Windows Credential Manager / Linux Secret Service), or
  2) passphrase-derived master key for headless/server environments.
- Settings “save API key” flows now mirror sensitive values into the vault and prefer vault reads on reveal.

Docs: `packages/vault/README.md` (in-repo, added by #7197)

---

## 2) New Features

### (A) Monetized Cloud apps: app-scoped chat + managed domains
Cloud now supports app-scoped monetized chat and Cloudflare-managed domain flows for containerized apps.

- **PR #7376** “support monetized container app domains”  
  https://github.com/elizaos/eliza/pull/7376  
  Adds (selected):
  - `POST /api/v1/apps/:appId/chat` (app-scoped chat, monetization metadata, credit reconciliation)
  - Domain flows: `/api/v1/apps/:id/domains/{check,buy,status,sync,verify}`, DNS record routes
  - Container control-plane reconciliation so deployments progress to `running` when healthy
  - Skill/docs updates for the build → auth → domain → monetized chat lifecycle

**Example: calling app-scoped chat**
```bash
curl -X POST "https://api.elizacloud.ai/api/v1/apps/$APP_ID/chat" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $ELIZA_API_KEY_OR_SESSION" \
  -d '{
    "messages": [
      { "role": "user", "content": "Summarize my app usage today." }
    ],
    "stream": false
  }'
```

> Note: review “Bug Fixes” + “Breaking Changes” below for important caveats around auth error mapping and credit reconciliation edge cases flagged in review notes on #7376.

Docs (in repo, updated by #7376):
- `cloud/packages/docs/building-a-monetized-app.md`
- `cloud/packages/docs/agent-skill-build-monetized-app.md`

---

### (B) Slack connector now lives in the monorepo
Slack was migrated from the standalone plugin repository into `plugins/plugin-slack`.

- **PR #7375** “migrate plugin-slack into the monorepo”  
  https://github.com/elizaos/eliza/pull/7375

What you get:
- Socket Mode service, multi-account helpers
- 11 actions (send/edit/delete message, list/read channels, pin/unpin, react, list pins, emoji list, get user info)
- 3 providers (channel state, member list, workspace info)
- Unit tests included (120 tests)

---

### (C) Automations (n8n): end-to-end clarification loop + UI
The n8n workflow generation path now supports a full clarification round-trip and improved UX rendering.

- Host route + types: **PR #7316** “clarification roundtrip route”  
  https://github.com/elizaos/eliza/pull/7316
- Automations overview restoration: **PR #7317**  
  https://github.com/elizaos/eliza/pull/7317
- Clarification quick-pick UI: **PR #7341**  
  https://github.com/elizaos/eliza/pull/7341
- Plugin prompt/typing improvements (ClarificationRequest + ID-based directives): **PR #7373**  
  https://github.com/elizaos/eliza/pull/7373

**Example: handling `needs_clarification`**
If you integrate directly with the host route used by Automations, expect a structured “clarification needed” response that you can render as buttons or a free-form input:
```ts
type NeedsClarification = {
  status: "needs_clarification";
  clarification: {
    prompt: string;
    options?: Array<{ label: string; value: string }>;
    paramPath?: string; // may be absent for free-form clarifications
  };
};

// Pseudocode
const res = await fetch("/api/n8n/workflows/generate", { method: "POST", body: JSON.stringify(req) });
const data = await res.json();

if (data.status === "needs_clarification") {
  renderClarificationPanel(data.clarification);
} else {
  renderGeneratedWorkflow(data.workflow);
}
```

---

### (D) Discord connector target enumeration service
A new `ConnectorTargetCatalog` service surfaces real Discord guilds/channels for routing and clarifications.

- **PR #7315** “connector-target-catalog service (Discord)”  
  https://github.com/elizaos/eliza/pull/7315

---

## 3) Bug Fixes (critical, with technical context)

### (A) Headless Linux segfault on boot (vault/keyring/libsecret)
**Fixed:** runtime could hard-crash (native segfault) when `@napi-rs/keyring` attempted to use `libsecret` without a running Secret Service / D-Bus session.

- Fix: **PR #7230**  
  https://github.com/elizaos/eliza/pull/7230
- Related issue noted in weekly summary: **#7231** (headless Linux segfaults)  
  https://github.com/elizaos/eliza/issues/7231

Impact:
- Self-hosted agents on Linux servers now avoid keychain access paths that can crash the process, using headless fallback mechanisms instead.

---

### (B) Telegram polling races causing silent message loss
Two Telegraf consumers polling the same bot token can split `getUpdates`, dropping ~50% of messages with no obvious error.

- Root-cause analysis: **Issue #7245**  
  https://github.com/elizaos/eliza/issues/7245

If you run Telegram in custom wrappers, ensure **only one poller** owns a bot token at a time (either the connector plugin or your wrapper, not both).

---

### (C) Cloud auth regressions + SIWE correctness on Workers
Multiple Cloud auth issues were resolved after the Cloud → monorepo migration:
- Re-apply lost auth hotfixes: **PR #7288**  
  https://github.com/elizaos/eliza/pull/7288
- SIWE unblocked when cache singleton disabled: **PR #7324**  
  https://github.com/elizaos/eliza/pull/7324
- SIWE domain correctness on Workers (use `c.env`): **PR #7327**  
  https://github.com/elizaos/eliza/pull/7327

---

### (D) Cloud frontend: CLI-login deadlocks / render loops
Several issues in `cloud/apps/frontend` around login completion effects and billing fetch loops were fixed:
- CLI login completion effect deadlock: **PR #7367**  
  https://github.com/elizaos/eliza/pull/7367
- Follow-up race fix for active flag cleanup: **PR #7377**  
  https://github.com/elizaos/eliza/pull/7377
- Billing fetch render-loop in `CloudDashboard`: **PR #7374**  
  https://github.com/elizaos/eliza/pull/7374

---

### (E) n8n robustness fixes (parsing + clarification resolution)
- Tolerate prose appended after JSON output: **PR #7369**  
  https://github.com/elizaos/eliza/pull/7369
- Support free-form clarifications with no `paramPath`: **PR #7370**  
  https://github.com/elizaos/eliza/pull/7370

---

## 4) API Changes (developer-facing)

### Vault + Secrets Manager APIs (new)
Introduced by **PR #7197**:
- Secrets manager routing and preferences endpoints:
  - `GET /api/secrets/manager/backends`
  - `GET|PUT /api/secrets/manager/preferences`
- Plugin settings save flow mirrors sensitive params into vault; reveal is “vault-first”.

**Operational change:** runtime operations increasingly persist **references** to secrets (e.g., `apiKeyRef`) instead of raw key material.

---

### Cloud monetized apps APIs (new/expanded)
From **PR #7376**:
- `POST /api/v1/apps/:id/chat`
- Domain and DNS management routes under `/api/v1/apps/:id/domains/...`
- Public app metadata route: `/api/v1/apps/:id/public`

---

### Automations (n8n) clarification route (new)
From **PR #7316**:
- Host-side clarification roundtrip routes for workflow generation (used by UI + plugin).

---

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

### Slack
- Migrated into monorepo: **PR #7375**  
  https://github.com/elizaos/eliza/pull/7375

### Telegram
- Critical reliability issue identified: duplicate pollers race (silent message loss)  
  Issue: **#7245** https://github.com/elizaos/eliza/issues/7245  
- Ongoing community question: Hyperfy connectivity status was asked but not answered (Discord coders, 2026-05-06). Track integration status in the main repo going forward.

### Discord
- Added Discord connector target catalog service for enumerating guilds/channels: **PR #7315**  
  https://github.com/elizaos/eliza/pull/7315

### Twitter / X
- Community asked about costs/feasibility for running Eliza as a Twitter bot (Discord coders, 2026-05-06) but no official sizing guidance was posted this week. If you publish a reference deployment, consider documenting:
  - expected token/turn volume
  - queueing/backoff strategy
  - storage choice (PGLite vs Postgres)
  - container sizing for your model/provider mix

---

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

### Anthropic SDK bump
- `@anthropic-ai/sdk` updated: **PR #7218**  
  https://github.com/elizaos/eliza/pull/7218

### AI SDK / OpenAI provider plumbing updates
A series of dependency bumps landed (AI SDK + OpenAI provider utils). If you maintain provider plugins, re-run your integration tests after updating:
- Example: `@ai-sdk/openai` bumps (e.g. **#7214**, **#7223**, **#7227**)  
  https://github.com/elizaos/eliza/pull/7214  
  https://github.com/elizaos/eliza/pull/7223  
  https://github.com/elizaos/eliza/pull/7227

### eliza-1 model training (R&D update from Discord)
Shaw shared ongoing work on the **eliza-1** model effort:
- Base model: **Qwen**
- Training harness: purpose-built for Eliza
- Performance/efficiency work: *dflash speculative decoding*, *caveman compression* applied to “thinking” processes, *turboquant* quantization
- Mentioned release cadence: `v2.0.0-beta.0` noted in discussion (Discord, 2026-05-05)

(These are R&D notes; no corresponding upstream PRs were referenced in the provided activity.)

---

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

### (A) Repo structure + deployment assumptions changed
- **Cloud is now inside** `elizaos/eliza` (Discord update 2026-05-06; consolidation in **PR #7235**).
- Migration away from **Vercel** toward container hosting may break assumptions in downstream deployment scripts or docs that reference Vercel-specific paths/artifacts.

Action:
- If you have CI/CD pinned to the old Cloud repo layout, update paths to `cloud/*` under the monorepo.
- Re-check build contexts for Docker, wrangler configs, and any infra automation that depended on the standalone Cloud repository.

### (B) Secrets handling: prefer vault references over plaintext keys
With `@elizaos/vault`:
- Sensitive config values may now be stored as **references** (e.g., `apiKeyRef`) and resolved at runtime.
- If you wrote custom tooling that reads `config.env.*` expecting plaintext secrets, update it to use the vault/manager APIs or the same reveal flows the UI uses.

### (C) Node version drift (plugin-local)
- `plugin-agent-wallet` updated Node to v24 (**PR #7239**)  
  https://github.com/elizaos/eliza/pull/7239  
If your plugin/tooling is pinned to Node 20/22, validate workspace constraints before upgrading.

---

## Payments / Monetization Note (x402 routes)
From Discord (2026-05-06): **elizaOS and DegenAI were added as default payment methods for x402 routes**, marking a milestone in payment infrastructure integration.

No PR/issue link was provided in the aggregated data; track follow-ups in `elizaos/eliza` once the implementation PRs are referenced publicly.

---