chore: promote development to master - #791
Conversation
The non-EVC fallback awaited Promise.all over readContract, so a single failed vault read rejected the whole queued group and every caller waiting on that deployment. Catch per read and normalize to null, which matches the per-item failures the EVC batch path already reports.
Per-request failures normalize to null on both transports; only provider resolution rejects, and it rejects the whole deployment group. Also note that batched EVC lens calls are chunked at 25 rather than always one.
This reverts commit 7806b25.
Keeps the PR documentation-only: the non-EVC fallback still rejects the whole deployment group on a failed read, so record that boundary and the resulting transport asymmetry instead of promising per-request nulls.
Bumps [valibot](https://github.com/open-circle/valibot) from 1.4.1 to 1.4.2. - [Release notes](https://github.com/open-circle/valibot/releases) - [Commits](open-circle/valibot@v1.4.1...v1.4.2) --- updated-dependencies: - dependency-name: valibot dependency-version: 1.4.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Cover vault and portfolio activity surfaces, availability gating, category defaults, display filtering, liquidation enrichment, and proxy allowlist constraints verified against the current source.
Describe the form → batchPrefetchState → useTxBatch handoff, background priming, and owner-address simulation freshness so the recent batch performance path matches the code.
…on-updates-4e91 docs: activity feed and batch cart prefetch guidance
Resolve oracle route assets into a compact pair summary while preserving linked addresses in expanded details. Use semantic labels for oracle router governance events.
- Clarify window.__CHAIN_CONFIG__ exposes only chain IDs/metadata; RPC_URL_* stay server-side - Note public-RPC viem fallback and AppKit/wallet outbound requests (not a zero-third-party claim) - Point to server/api/internal + docs/architecture.md as authoritative proxy inventory; add euler-chains/aave/morpho/intrinsic-apy routes; note client-error removal on development - Add Euler protocol safety-invariants pointer to docs + review-business skill
…on-updates-b3ec docs: document projected yield architecture
The golden suite now uses committed calldata fixtures under tests/golden/plans/, runs as part of npm run test:run (no worktree, no vitest.golden.config.ts), and provides test:golden, test:golden:update, and test:golden:fetch-fixtures. Verified against origin/development tests/golden/README.md and package.json.
Set up Cursor Cloud dev environment
Co-authored-by: kanv <kanvgupta@users.noreply.github.com>
Rebase onto development and document the live GET paths plus activity backoff-key normalization so server-side-caching stays complete after merge.
Align development-guide and server-side-caching with the path-shape labels handler (refreshLabelFile, no fresh-cache short-circuit) and scope stale-fallback claims away from the uncached V3 proxy.
Align server-side-caching labels/warm-cache prose with #739, drop the incorrect header read-through claim, and document force-refresh behavior in the path-shape labels handler comment.
…on-updates-c798 docs: document announcements and V3 proxy ops
Accept monotonic vesting improvements at confirmation and keep the shared lock poller attached to a live consumer until the final subscriber unmounts.
Keep rEUL claims and unlocks outside transaction batches
…expansion-1.1.18 chore(deps-dev): bump brace-expansion from 1.1.14 to 1.1.18
…dates Bumps the all-updates group with 16 updates in the / directory: | Package | From | To | | --- | --- | --- | | [@reown/appkit](https://github.com/reown-com/appkit) | `1.8.22` | `1.8.23` | | [@reown/appkit-adapter-wagmi](https://github.com/reown-com/appkit) | `1.8.22` | `1.8.23` | | [@tanstack/query-core](https://github.com/TanStack/query/tree/HEAD/packages/query-core) | `5.101.2` | `5.101.4` | | [@tanstack/vue-query](https://github.com/TanStack/query/tree/HEAD/packages/vue-query) | `5.101.2` | `5.101.4` | | [@vueuse/nuxt](https://github.com/vueuse/vueuse/tree/HEAD/packages/nuxt) | `14.3.0` | `14.4.0` | | [@wagmi/core](https://github.com/wevm/wagmi/tree/HEAD/packages/core) | `3.6.1` | `3.6.4` | | [@wagmi/vue](https://github.com/wevm/wagmi/tree/HEAD/packages/vue) | `0.5.24` | `0.5.28` | | [axios](https://github.com/axios/axios) | `1.18.1` | `1.19.0` | | [viem](https://github.com/wevm/viem) | `2.55.2` | `2.55.10` | | [vue](https://github.com/vuejs/core) | `3.5.39` | `3.5.40` | | [wagmi](https://github.com/wevm/wagmi/tree/HEAD/packages/react) | `3.7.1` | `3.7.5` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.1.1` | `26.1.2` | | [lint-staged](https://github.com/lint-staged/lint-staged) | `17.0.8` | `17.3.0` | | [playwright](https://github.com/microsoft/playwright) | `1.61.1` | `1.62.1` | | [sass](https://github.com/sass/dart-sass) | `1.101.0` | `1.102.0` | | [vue-tsc](https://github.com/vuejs/language-tools/tree/HEAD/packages/tsc) | `3.3.7` | `3.3.9` | Updates `@reown/appkit` from 1.8.22 to 1.8.23 - [Release notes](https://github.com/reown-com/appkit/releases) - [Commits](https://github.com/reown-com/appkit/compare/@reown/appkit@1.8.22...@reown/appkit@1.8.23) Updates `@reown/appkit-adapter-wagmi` from 1.8.22 to 1.8.23 - [Release notes](https://github.com/reown-com/appkit/releases) - [Commits](https://github.com/reown-com/appkit/compare/@reown/appkit-adapter-wagmi@1.8.22...@reown/appkit-adapter-wagmi@1.8.23) Updates `@tanstack/query-core` from 5.101.2 to 5.101.4 - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/query-core/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/@tanstack/query-core@5.101.4/packages/query-core) Updates `@tanstack/vue-query` from 5.101.2 to 5.101.4 - [Release notes](https://github.com/TanStack/query/releases) - [Changelog](https://github.com/TanStack/query/blob/main/packages/vue-query/CHANGELOG.md) - [Commits](https://github.com/TanStack/query/commits/@tanstack/vue-query@5.101.4/packages/vue-query) Updates `@vueuse/nuxt` from 14.3.0 to 14.4.0 - [Release notes](https://github.com/vueuse/vueuse/releases) - [Commits](https://github.com/vueuse/vueuse/commits/v14.4.0/packages/nuxt) Updates `@wagmi/core` from 3.6.1 to 3.6.4 - [Release notes](https://github.com/wevm/wagmi/releases) - [Changelog](https://github.com/wevm/wagmi/blob/main/packages/core/CHANGELOG.md) - [Commits](https://github.com/wevm/wagmi/commits/@wagmi/core@3.6.4/packages/core) Updates `@wagmi/vue` from 0.5.24 to 0.5.28 - [Release notes](https://github.com/wevm/wagmi/releases) - [Changelog](https://github.com/wevm/wagmi/blob/main/packages/vue/CHANGELOG.md) - [Commits](https://github.com/wevm/wagmi/commits/@wagmi/vue@0.5.28/packages/vue) Updates `axios` from 1.18.1 to 1.19.0 - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](axios/axios@v1.18.1...v1.19.0) Updates `viem` from 2.55.2 to 2.55.10 - [Release notes](https://github.com/wevm/viem/releases) - [Commits](https://github.com/wevm/viem/compare/viem@2.55.2...viem@2.55.10) Updates `vue` from 3.5.39 to 3.5.40 - [Release notes](https://github.com/vuejs/core/releases) - [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md) - [Commits](vuejs/core@v3.5.39...v3.5.40) Updates `wagmi` from 3.7.1 to 3.7.5 - [Release notes](https://github.com/wevm/wagmi/releases) - [Changelog](https://github.com/wevm/wagmi/blob/main/packages/react/CHANGELOG.md) - [Commits](https://github.com/wevm/wagmi/commits/wagmi@3.7.5/packages/react) Updates `@types/node` from 26.1.1 to 26.1.2 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `lint-staged` from 17.0.8 to 17.3.0 - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](lint-staged/lint-staged@v17.0.8...v17.3.0) Updates `playwright` from 1.61.1 to 1.62.1 - [Release notes](https://github.com/microsoft/playwright/releases) - [Commits](microsoft/playwright@v1.61.1...v1.62.1) Updates `sass` from 1.101.0 to 1.102.0 - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](sass/dart-sass@1.101.0...1.102.0) Updates `vue-tsc` from 3.3.7 to 3.3.9 - [Release notes](https://github.com/vuejs/language-tools/releases) - [Changelog](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md) - [Commits](https://github.com/vuejs/language-tools/commits/v3.3.9/packages/tsc) --- updated-dependencies: - dependency-name: "@reown/appkit" dependency-version: 1.8.23 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-updates - dependency-name: "@reown/appkit-adapter-wagmi" dependency-version: 1.8.23 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-updates - dependency-name: "@tanstack/query-core" dependency-version: 5.101.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-updates - dependency-name: "@tanstack/vue-query" dependency-version: 5.101.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-updates - dependency-name: "@vueuse/nuxt" dependency-version: 14.4.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-updates - dependency-name: "@wagmi/core" dependency-version: 3.6.4 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-updates - dependency-name: "@wagmi/vue" dependency-version: 0.5.28 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-updates - dependency-name: axios dependency-version: 1.19.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: all-updates - dependency-name: viem dependency-version: 2.55.10 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-updates - dependency-name: vue dependency-version: 3.5.40 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-updates - dependency-name: wagmi dependency-version: 3.7.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: all-updates - dependency-name: "@types/node" dependency-version: 26.1.2 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: all-updates - dependency-name: lint-staged dependency-version: 17.3.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: all-updates - dependency-name: playwright dependency-version: 1.62.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: all-updates - dependency-name: sass dependency-version: 1.102.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: all-updates - dependency-name: vue-tsc dependency-version: 3.3.9 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: all-updates ... Signed-off-by: dependabot[bot] <support@github.com>
The wagmi group bump moved @wagmi/core to 3.6.4 while the @wagmi/connectors override stayed at 8.0.22, which peers exact @wagmi/core@3.6.1. That split the install tree: @wagmi/vue and wagmi each resolved a nested @wagmi/core@3.6.1 while the root and the AppKit adapter used 3.6.4, so connect/account/sign paths would run against two separate core instances. Bump the override to 8.0.26 (the version @wagmi/vue@0.5.28 and wagmi@3.7.5 declare) and regenerate the lockfile. npm ls @wagmi/core now reports a single deduped 3.6.4 with no invalid peers.
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.3.0 to 4.3.1. - [Changelog](https://github.com/nodeca/js-yaml/blob/4.3.1/CHANGELOG.md) - [Commits](nodeca/js-yaml@4.3.0...4.3.1) --- updated-dependencies: - dependency-name: js-yaml dependency-version: 4.3.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
Lead 'Resolved vault updated' events with the resolved vault link so the collapsed row shows the named vault instead of a raw asset address, and resolve the asset field into its token symbol with an asset icon, matching the oracle route display.
…dates-e57b880bc4 chore(deps): bump the all-updates group across 1 directory with 16 updates
Vault-typed change fields the registry cannot resolve — e.g. a non-Euler ERC-4626 configured as a router resolved vault — previously rendered as a shortened address linking to a dead internal vault page. Fall back to the token symbol (lazily read on-chain) with an explorer link instead.
Bumps [@nuxt/devtools](https://github.com/nuxt/devtools/tree/HEAD/packages/devtools) from 3.2.4 to 3.4.1. - [Release notes](https://github.com/nuxt/devtools/releases) - [Changelog](https://github.com/nuxt/devtools/blob/v3.4.1/CHANGELOG.md) - [Commits](https://github.com/nuxt/devtools/commits/v3.4.1/packages/devtools) --- updated-dependencies: - dependency-name: "@nuxt/devtools" dependency-version: 3.4.1 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com>
…l-4.3.1 chore(deps): bump js-yaml from 4.3.0 to 4.3.1
…evtools-3.4.1 chore(deps): bump @nuxt/devtools from 3.2.4 to 3.4.1
Bumps the nuxt-ecosystem group with 1 update in the / directory: [nuxt](https://github.com/nuxt/nuxt/tree/HEAD/packages/nuxt). Updates `nuxt` from 4.4.8 to 4.5.1 - [Release notes](https://github.com/nuxt/nuxt/releases) - [Commits](https://github.com/nuxt/nuxt/commits/v4.5.1/packages/nuxt) --- updated-dependencies: - dependency-name: nuxt dependency-version: 4.5.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: nuxt-ecosystem ... Signed-off-by: dependabot[bot] <support@github.com>
Security fixes - RPC/Reward provider links
Nuxt 4.5.x requires unhead v3 (its entry imports unhead/stream/iife, which only exists in v3), but the overrides block still forced unhead@2.1.15 — the pin added for the unhead XSS advisory (vulnerable <= 2.1.10). With the override in place npm ci fails on every install (Package subpath './stream/iife' is not defined), which broke all CI jobs and preview deploys on this branch. Remove the override and regenerate the lockfile: unhead now resolves to a single 3.2.3 copy, well past the advisory range, so the pin no longer protects anything. npm audit reports no unhead findings. Verified on this branch: typecheck, lint, and the full test suite pass; nuxt build completes under the Vite 8 major that ships with Nuxt 4.5; the built app boots and renders live market data.
…t-1.4.2 chore(deps): bump valibot from 1.4.1 to 1.4.2
…cosystem-36bbe4c367 chore(deps): bump nuxt from 4.4.8 to 4.5.1 in the nuxt-ecosystem group across 1 directory
Vault-typed activity change fields previously ran every address through the registry's on-chain fetch fallback, which probes unknown contracts as securitize/EVK vaults. Check the SDK vault resolver (factory-membership backed) first: addresses it does not recognize as Euler vaults skip the registry fetch and deterministically render as their raw token symbol, falling back to the shortened address.
…d-vault-asset-name-f5eb91
Brings the normalized oracle-router activity event types the Activity display references, fixing typecheck against the published SDK.
…ents fix: display oracle router activity events
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository: euler-xyz/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
There was a problem hiding this comment.
Review summary
No high-severity DeFi correctness, security, or stack-hygiene defects found in this development → master promote. The money-touching changes (rEUL unlock/claim isolation, freshness revalidation, SDK allowRemainderLoss opt-in) and the security hardening (V3 encoded-path reject, script-JSON escape on __CHAIN_CONFIG__, reward sourceUrl sanitization, ensure-vault log redaction) look intentional and internally consistent; dependency bumps correctly resolve the known Nuxt/unhead and wagmi-connectors skews.
Reviewed: rEUL unlock/claim UI + useREULLocks / reulUnlockReview, activity vault-resolution + display, earn uncovered-losses display, server proxy/config hardening, package.json / lockfile overrides, related tests · Traced beyond the diff: executePlan → SDK ToS/plugin path, fetchVaultCategory error handling, SDK reulLockService.buildUnlockPlan / EulerEarn.lostAssets, V3 allowlist vs docs/activity-feed.md, npm ls for @wagmi/core + resolved unhead@3.2.3 · Protocol skills consulted: euler-advanced (rEUL/rewards), euler-earn (lost assets / coverage)
Not flagged
- Hardcoded
allowRemainderLoss: trueis required by SDK ≥1.2.4 and matches early-unlock burn UI + freshness checks that reject a worse burn quote. - Removing “Add to batch” for rEUL unlocks / blocking rEUL claims while a batch is open is the intended fix for unsafe mixed batches, not a regression.
- Factory-gated activity vault resolution and explorer fallback for unresolved
resolved_vaultaddresses match the established pattern. safeExternalHttpUrlreturning the original string (noturl.href) remains fine for Vue:hrefbinding.- CI lint / typecheck / test are green on this head.
Sent by Cursor Automation: Lite PR Reviewer


Features
Fixes
Documentation
AGENTS.mdwith repository architecture, testing, and Cursor Cloud dev environment guidance (Set up Cursor Cloud dev environment #721) @kanvguptaDependencies
@eulerxyz/euler-v2-sdkfrom 1.2.3 to 1.2.5 across the rEUL unlock and oracle router Activity work (Keep rEUL claims and unlocks outside transaction batches #780, fix: display oracle router activity events #774) @dglowinski @Serangednuxt4.4.8 → 4.5.1 in the nuxt-ecosystem group, dropping theunheadoverride it obsoletes (chore(deps): bump nuxt from 4.4.8 to 4.5.1 in the nuxt-ecosystem group across 1 directory #762) @dependabot@wagmi/connectorsoverride with@wagmi/core3.6.4 (chore(deps): bump the all-updates group across 1 directory with 16 updates #786) @dependabot@nuxt/devtools3.2.4 → 3.4.1 (chore(deps): bump @nuxt/devtools from 3.2.4 to 3.4.1 #790) @dependabotvalibot1.4.1 → 1.4.2 (chore(deps): bump valibot from 1.4.1 to 1.4.2 #764) @dependabotjs-yaml4.3.0 → 4.3.1 (chore(deps): bump js-yaml from 4.3.0 to 4.3.1 #787) @dependabotbrace-expansion1.1.14 → 1.1.18 (chore(deps-dev): bump brace-expansion from 1.1.14 to 1.1.18 #777) @dependabotValidation
git diff --check v2.1.0..0ec3697c— cleannpm run typecheck— passesnpm run test:run— 169 files passed, 1 skipped; 1612 tests passed, 1 skippednpm run build— production build completedv2.1.0v2.1.1-rc.0andv2.1.1point to0ec3697cb6e311ba1164737028ddd6db74b5ddb5, themasterfirst-parent promotion merge commitv2.1.1-rc.0v2.1.1