Skip to content

chore: sync dev with main#2040

Merged
Hugo0 merged 11 commits into
devfrom
main
May 15, 2026
Merged

chore: sync dev with main#2040
Hugo0 merged 11 commits into
devfrom
main

Conversation

@chip-peanut-bot

Copy link
Copy Markdown
Contributor

Branch Sync

main is 11 commits ahead of dev.

Commits to sync:

• chore: enable full maintenance mode for prod release migrations
• Merge pull request #1985 from peanutprotocol/chore/enable-maintenance-for-release
• Merge pull request #1984 from peanutprotocol/dev
• chore: disable maintenance mode post-release
• Merge pull request #2036 from peanutprotocol/chore/disable-maintenance-post-release
• fix(card): bind session-key approval to user's real wallet address
• Merge pull request #2037 from peanutprotocol/hotfix/grant-session-key-legacy-address
• hotfix(carousel): hide bug-bounty CTA once SUPPORT_SURVIVOR badge earned
• Merge pull request #2038 from peanutprotocol/hotfix/hide-bug-bounty-cta-after-grant
• fix(history): route SEND_LINK_CLAIM through sendLink strategy
• Merge pull request #2039 from peanutprotocol/hotfix/transformer-send-link-claim


Auto-generated by Chip 🐿️

Hugo0 and others added 11 commits May 12, 2026 21:09
Flips enableFullMaintenance to true so all routes redirect to /maintenance
while we run the decomplexify ledger cutover migrations on prod DB.

Merge this PR immediately before kicking off migrations. To exit
maintenance, either revert this PR or wait for the dev->main release PR
to merge (note: dev still has enableFullMaintenance: false, so the
release merge will conflict on this file — resolve to false).
…-for-release

chore: enable full maintenance mode for prod release
Production Release: Peanut Card UI + Decomplexify + Native app + Manteca collateral
The decomplexify cutover migrations + backfill completed successfully
at 2026-05-14 19:50 UTC. BE PR #747 + FE PR #1984 merged. Flipping
maint off so users come out of the /maintenance redirect.

Why this needs a separate PR: PR #1985 (enable maint) was merged into
main but never synced to dev. When PR #1984 merged dev -> main, the
3-way merge kept main's true (dev didn't touch the line).
…e-post-release

chore: disable maintenance mode post-release
Pre-2025-09-18 users sit at a legacy V0_0_2-derived smart-account
address (migrated in place to V0_0_3 by `createKernelMigrationAccount`,
which forces the historical address). Their actual on-chain wallet
and USDC live at that address.

The grant flow built the session-key kernel via plain
`createKernelAccount({plugins: {sudo: newValidator}})` with no
address override, so the resulting counterfactual address was the
natural V0_0_3-of-new-validator hash — a brand-new, never-funded
address that the rebalancer would later try to deploy and transfer
from. Simulation reverted with `ERC20: transfer amount exceeds
balance` and auto-balance was broken for every pre-migration user.

Forcing `address: kernelClient.account!.address` binds the approval
to the real wallet for both cohorts (post-migration users already
had address == natural counterfactual, so no behavior change there).
…-legacy-address

hotfix(card): bind session-key approval to real wallet address
The server enforces a lifetime cap of one grant per user. Without this gate
the CTA stays visible after a successful claim and the next tap just bounces
off 'already_granted' — confusing for the user and noisy for support.
…ta-after-grant

hotfix(carousel): hide bug-bounty CTA once SUPPORT_SURVIVOR badge earned
Post-decomplexify the BE splits a single SEND_LINK into two intents —
SEND_LINK (sender's deposit) and SEND_LINK_CLAIM (recipient's claim).
The registry was never updated to map the new kind, so claimed-link
entries fell through to intentFallback, emitting an "unhandled
TRANSACTION_INTENT kind" Sentry warn (PEANUT-UI-QCX, 3 events / 2 users
since cutover) and rendering as a degraded "Transaction" card.

The existing sendLink strategy already handles the RECIPIENT branch
correctly (`direction: 'receive'`, sender identifier as nameForDetails),
so the fix is a one-line mapping. Baseline snapshot fixture for
send_link_claim-peanut-completed-recipient updated — the old expected
values captured the broken fallback output, not the correct
receive-side rendering.
…link-claim

fix(history): route SEND_LINK_CLAIM through sendLink strategy
@vercel

vercel Bot commented May 15, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
peanut-wallet Ready Ready Preview, Comment May 15, 2026 8:05am

Request Review

@github-actions

Copy link
Copy Markdown
Contributor

🧪 UI test report — ✅ all green

Suites

  • unit: 1073 ran, 0 failed, 0 skipped, 18.7s

📊 Coverage (unit)

metric %
statements 46.3%
branches 27.4%
functions 27.0%
lines 46.1%
⏱ 10 slowest test cases
time test
0.4s src/app/actions/__tests__/api-headers.test.ts › should include Content-Type in updateUserById
0.3s src/app/actions/__tests__/api-headers-extended.test.ts › should not include apiKey in updateUserById body
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle valid 9-digit US account
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle too long for US account
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle invalid ETH address (too short)
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle invalid ETH address (missing 0x prefix)
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle valid German IBAN
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle valid US account with spaces 2
0.1s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Perk claim in progress shows disabled button + progress
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle valid Italian IBAN
📍 Inline annotations are in the **Unit test report** check above. Coverage artifact: `coverage-unit`. Generated by `.github/workflows/tests.yml`.

@Hugo0 Hugo0 merged commit 329cf6a into dev May 15, 2026
18 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants