-
Notifications
You must be signed in to change notification settings - Fork 198
chore: release v1.967.0 #11168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: release v1.967.0 #11168
Conversation
fix: restore translaton strings
* feat: near affiliate fees * feat: add referral * feat: cleanup
feat: regenerate asset data 11/23/2025 Co-authored-by: asset-generation-bot <action@github.com>
fix: restore translaton strings
* feat: react compiler * feat: proper semver * feat: more semver bits * feat: one more * feat: cleanup * feat: go ham * feat: clean shit up * feat: more clean more up * fix: unrug trade page after #11050 Added 'use no memo' directive to TopAssetsCarousel component to opt it out of React Compiler optimization. The component's useTopAssets hook conditionally calls different query hooks based on category (via CATEGORY_TO_QUERY_HOOK), which violates the Rules of Hooks. This pattern causes React Compiler's useMemoCache to allocate different cache sizes on different renders, resulting in: - "Expected a constant size argument for each invocation of useMemoCache" error - "React has detected a change in the order of Hooks" error - Trade page crashes The 'use no memo' directive follows the same opt-out pattern used for 13 other components in the React Compiler integration (PR #11006). TODO: Refactor useTopAssets to call all hooks unconditionally to enable compiler optimization in the future. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: resolve TCY stale state bug with React Compiler Added 'use no memo' directives to TCY components to opt out of React Compiler optimization. Root Cause: The StakeInput component had a stale closure issue where form validation state (isValid from react-hook-form) and React Query state (isEstimatedFeesDataError) weren't updating through React Compiler's memoization boundaries. This caused the Confirm button to show red error state on initial Stake tab load. The bug occurred because: - Form renders with empty values on initial mount - React Query's estimateFees is disabled (enabled: false) - isEstimatedFeesDataError starts as undefined - React Compiler aggressively memoizes this initial state - Form validation runs AFTER first render - Button's isValid prop gets stale value from compiler memo - Button shows red because it thinks form is invalid Tab switching fixed it temporarily by forcing component unmount/remount, confirming the state initialization race condition. Components opted out: - StakeInput.tsx (critical - has the confirm button with complex state) - UnstakeInput.tsx (consistency - similar structure to StakeInput) - useSendThorTx.tsx (60+ line estimateFeesArgs useMemo, complex state) - Widget.tsx (tab container managing switching state) This follows the same opt-out pattern used for 13+ other components in PR #11006. TODO: Investigate if useSendThorTx can be refactored to avoid the giant useMemo chain and enable compiler optimization. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * fix: add 'use no memo' to TCY form providers (Stake/Unstake) Completes the React Compiler opt-out chain for TCY components by adding 'use no memo' to the parent form provider components. Root Cause Analysis: The previous commit added 'use no memo' to StakeInput/UnstakeInput (child components), but the parent components Stake.tsx and Unstake.tsx (which contain FormProvider and useForm hooks) were still being compiled by React Compiler. React Compiler's optimization was interfering with React Hook Form's Proxy-based formState reactivity system. The Proxy needs proper initialization timing to track which properties (like isValid) are accessed and make them reactive. Why it failed: 1. Stake.tsx creates useForm with empty defaultValues 2. React Compiler memoizes the methods object aggressively 3. FormProvider wraps children 4. StakeInput calls useFormContext() to access formState.isValid 5. Proxy doesn't initialize correctly due to compiler optimization 6. isValid = false (WRONG - empty string should pass validation) Why tab switching "fixed" it: - Tab switch triggers re-render of component tree - FormProvider re-initializes without stale memoization - Proxy works correctly on second mount - isValid = true (CORRECT) The Fix: Added 'use no memo' to Stake.tsx and Unstake.tsx to prevent React Compiler from optimizing the form initialization layer, allowing React Hook Form's Proxy to initialize correctly on first mount. This completes the full opt-out chain: - Widget.tsx ✅ (tab container) - Stake.tsx ✅ (form provider) - NEW - StakeInput.tsx ✅ (form consumer) - Unstake.tsx ✅ (form provider) - NEW - UnstakeInput.tsx ✅ (form consumer) - useSendThorTx.tsx ✅ (complex hook) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> * feat: aaaand more --------- Co-authored-by: Jibles <premiumjibles@gmail.com> Co-authored-by: Claude <noreply@anthropic.com>
* add new routes * move * move views router for wallet * remove unused onClose * Update MobileWalletDialog.tsx
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ 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 |
feat: bring new wallet switcher to mobile app (#11135)
feat: react compiler PoC (#11006)
fix: restore translation strings (#11167)
feat: regenerate asset data 11/21/2025 (#11163)
feat: near affiliate fees (#11164)
fix: restore translation strings (#11162)
fix: extract gridplus sdk from the build bundle (#11155)