chore: prepare 2.0.0-beta.0 release#7391
Merged
Merged
Conversation
Contributor
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
e95381e to
1a51521
Compare
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
# 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)
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Verification
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.