Skip to content

chore: prepare 2.0.0-beta.0 release#7391

Merged
lalalune merged 132 commits into
developfrom
shaw/eliza-beta-prep
May 6, 2026
Merged

chore: prepare 2.0.0-beta.0 release#7391
lalalune merged 132 commits into
developfrom
shaw/eliza-beta-prep

Conversation

@lalalune
Copy link
Copy Markdown
Member

@lalalune lalalune commented May 5, 2026

Summary

  • bump monorepo package versions to 2.0.0-beta.0 and update example/template manifests from alpha to beta
  • switch release workflows toward tag-driven beta/latest publishing and reject alpha release events
  • update runtime release stream types, plugin registry fields, installer behavior, and workspace dependency replacement helpers for beta

Verification

  • git diff --check
  • git diff --cached --check
  • parsed all package.json and lerna.json files with node
  • narrow release-path alpha scan still reports legacy helper comments/docs; leaving this draft pending full lint/build/typecheck/test

Note: this branch was prepared in the beta-prep worktree and is currently behind develop by the commits that landed after the worktree was created.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 5, 2026

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0ef9eb24-97ca-43b8-a5cc-89eec4c8ab88

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch shaw/eliza-beta-prep

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@lalalune lalalune force-pushed the shaw/eliza-beta-prep branch from e95381e to 1a51521 Compare May 5, 2026 08:02
Shaw added 9 commits May 5, 2026 02:46
# Conflicts:
#	lerna.json
#	packages/app-core/package.json
#	packages/app-core/src/registry/entries/plugins/form.json
#	packages/app-core/src/registry/entries/plugins/robot-voice.json
#	packages/browser-bridge/scripts/release-version.test.ts
#	packages/native-plugins/agent/package.json
#	packages/native-plugins/appblocker/package.json
#	packages/native-plugins/camera/package.json
#	packages/native-plugins/canvas/package.json
#	packages/native-plugins/contacts/package.json
#	packages/native-plugins/gateway/package.json
#	packages/native-plugins/location/package.json
#	packages/native-plugins/messages/package.json
#	packages/native-plugins/mobile-signals/package.json
#	packages/native-plugins/phone/package.json
#	packages/native-plugins/screencapture/package.json
#	packages/native-plugins/swabble/package.json
#	packages/native-plugins/system/package.json
#	packages/native-plugins/talkmode/package.json
#	packages/native-plugins/websiteblocker/package.json
#	packages/native-plugins/wifi/package.json
#	packages/shared/package.json
#	packages/ui/package.json
#	plugins/app-lifeops/test/lifeops-simulator.test.ts
#	plugins/plugin-browser-bridge/src/packaging.test.ts
#	plugins/plugin-form/package.json
#	plugins/plugin-n8n-workflow/package.json
#	plugins/plugin-robot-voice/package.json
#	test/mocks/__tests__/mock-runtime-seeding.test.ts
Comment thread packages/app-core/vitest.config.ts Fixed
Shaw and others added 9 commits May 5, 2026 07:29
# Conflicts:
#	cloud/package.json
#	packages/core/package.json
#	plugins/plugin-n8n-workflow/src/lib/n8n-clarification.ts
#	plugins/plugin-n8n-workflow/src/register-routes.ts
#	plugins/plugin-n8n-workflow/src/routes/n8n-routes.ts
#	plugins/plugin-n8n-workflow/src/utils/generation.ts
#	plugins/plugin-social-alpha/package.json
# Conflicts:
#	packages/examples/_plugin/package.json
#	packages/examples/a2a/package.json
#	packages/examples/app/capacitor/backend/package.json
#	packages/examples/app/electron/backend/package.json
#	packages/examples/autonomous/package.json
#	packages/examples/avatar/package.json
#	packages/examples/aws/package.json
#	packages/examples/bluesky/package.json
#	packages/examples/browser-extension/chrome/package.json
#	packages/examples/chat/package.json
#	packages/examples/cloudflare/package.json
#	packages/examples/convex/package.json
#	packages/examples/discord/package.json
#	packages/examples/elizagotchi/package.json
#	packages/examples/farcaster/package.json
#	packages/examples/form/package.json
#	packages/examples/game-of-life/package.json
#	packages/examples/gcp/package.json
#	packages/examples/lp-manager/package.json
#	packages/examples/mcp/package.json
#	packages/examples/moltbook/package.json
#	packages/examples/next/package.json
#	packages/examples/react/package.json
#	packages/examples/rest-api/elysia/package.json
#	packages/examples/rest-api/express/package.json
#	packages/examples/rest-api/hono/package.json
#	packages/examples/roblox/package.json
#	packages/examples/telegram/package.json
#	packages/examples/text-adventure/package.json
#	packages/examples/tic-tac-toe/package.json
#	packages/examples/town/package.json
#	packages/examples/trader/package.json
#	packages/examples/twitter-xai/package.json
#	packages/examples/vercel/package.json
`docs/runtime/core.md` documents `DISABLE_IMAGE_DESCRIPTION` (set by the
runtime when `features.vision === false`) as a global flag that prevents
image description even when the cloud plugin is loaded. Today only
`plugin-discord/attachments.ts` honors it at the call site, so other
callers (agent-orchestrator's task validator, vision, lifeops, farcaster,
telegram) burn rate-limit budget regardless of the user's vision toggle.

Honor the flag at the cloud handler so any caller short-circuits with
the same answer.
The previous retry loop fired up to 3 attempts with hardcoded 2s/4s
waits between them. With elizacloud's redis-based rate-limiter (which
counts 429-rejected requests toward the same window), each retry inside
a 60s rate-limit window consumed another bucket slot and pushed the
reset clock further out. One user-intent call became 3 wasted slots.

Honor the upstream's retryAfter (header first, body's `retryAfter`
second). Only retry once when the signal indicates a short transient
burst (≤5s); on long windows, bail immediately with a 429-specific
error so callers can fail fast and the bucket recovers naturally.

Mirrors the pattern already used in `models/embeddings.ts`.
The runtime cloud proxy returns rate-limit errors with both an
application code (`code: "rate_limit_exceeded"`) and a numeric
`retryAfter` in the JSON body, on top of the standard `Retry-After`
HTTP header. Today `ApiError` only preserves `status` and `message` —
the discriminator and the recovery hint are dropped on the way to
callers.

Add optional `code` and `retryAfter` fields to `ApiError`, plus an
`isRateLimitedError()` type guard. Population in `client-base.ts`
follows in a separate commit.
…y/headers

When constructing `ApiError` for non-OK responses, parse `code` from
the JSON body and `retryAfter` from both the body's `retryAfter` field
(Eliza Cloud's shape) and the standard `Retry-After` HTTP header.
Falls through cleanly when neither is present.

Pairs with the prior commit that added the fields. UI consumers
(`isRateLimitedError`, dashboard countdown, etc.) follow.
`forwardSummary` previously fired two parallel upstream requests on
every dashboard refresh: `/api/v1/credits/summary` and
`/api/crypto/status`. The latter changes rarely (it advertises whether
crypto top-ups are enabled), so caching it amortises the second slot
against the per-key rate-limit. Cuts billing-summary upstream calls
roughly in half during steady-state.

Separately, when forwarding a 429 to the dashboard, set the HTTP
`Retry-After` header from the body's `retryAfter` field. The upstream
only emits the JSON field; setting the header lets standard client
tooling (and `fetch`-based retry helpers) honour it.
…y + in-flight de-dupe

When elizacloud rate-limits the account, today's dashboard shows the
raw upstream message ("Too many requests") with no recovery cue and
allows the user to keep clicking refresh — each click extending the
upstream's denial window further (the rate-limiter counts 429-rejected
requests).

Detect rate-limit errors specifically via `isRateLimitedError` (added
in earlier commits), set a `rateLimitedUntilMs` deadline from the
parsed `retryAfter`, and:

- render a friendly countdown banner ("Eliza Cloud is rate-limiting
  this account; retrying in Ns") in both overview and billing views
- disable the refresh button while the countdown is running
- auto-retry once when the window expires
- preserve last-known balance/settings during the wait so the UI
  doesn't flicker to "—"
- de-dupe in-flight `fetchBillingData` calls so concurrent renders
  don't double-fire (additional bucket pressure)
Shaw added 28 commits May 5, 2026 20:49
# Conflicts:
#	.github/workflows/mobile-build-smoke.yml
#	packages/core/src/__tests__/description-compressed-lint.test.ts
# Conflicts:
#	packages/core/src/__tests__/description-compressed-lint.test.ts
#	plugins/plugin-n8n-workflow/src/lib/n8n-clarification.ts
#	plugins/plugin-n8n-workflow/src/routes/n8n-routes.ts
#	plugins/plugin-n8n-workflow/src/utils/generation.ts
# Conflicts:
#	.github/workflows/vault-ci.yaml
#	packages/app-core/src/components/shell/RuntimeGate.tsx
#	plugins/plugin-action-bench/package.json
#	plugins/plugin-calendly/package.json
#	plugins/plugin-google-meet-cute/package.json
#	plugins/plugin-nvidiacloud/package.json
#	plugins/plugin-vertex/package.json
#	plugins/plugin-xmtp/package.json
@lalalune lalalune merged commit eaf8483 into develop May 6, 2026
6 of 7 checks passed
@lalalune lalalune deleted the shaw/eliza-beta-prep branch May 6, 2026 05:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants