Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
335 commits
Select commit Hold shift + click to select a range
428b893
Merge pull request #2742 from peanutprotocol/ds/10-eslint-zero
jjramirezn Aug 18, 2026
f2ed06b
ci: run the ds-lint debt ratchet on every PR (TASK-21450)
jjramirezn Aug 18, 2026
5b1882c
ci: ban useSearchParams + hand-built query-string pushes (DS 10 ratch…
jjramirezn Aug 18, 2026
1378824
ci: don't persist checkout credentials in the ds-lint job (CodeRabbit)
jjramirezn Aug 18, 2026
d8c6bbb
refactor: route all peanut-api calls through apiFetch (TASK-21450)
jjramirezn Aug 18, 2026
f38a2a5
ci: plain checkout for ds-lint — no submodules, no token (code review)
jjramirezn Aug 18, 2026
6a4ffda
chore(lint): scope PublicProfile's exemption to its two justified sel…
jjramirezn Aug 18, 2026
f3eb227
fix: demo-aware card auth headers + harden the apiFetch gate (CodeRab…
jjramirezn Aug 18, 2026
581f7c8
fix: demo-route correctness after apiFetch migration + widen the gate…
jjramirezn Aug 18, 2026
226b20f
fix: demo-api edge behavior + whitespace-tolerant gate matcher (TASK-…
jjramirezn Aug 18, 2026
89e28f4
Merge pull request #2744 from peanutprotocol/ds/10-counts-ratchet
jjramirezn Aug 18, 2026
836474c
Merge pull request #2745 from peanutprotocol/ds/10-nuqs-rule
jjramirezn Aug 18, 2026
e98a78c
Merge pull request #2746 from peanutprotocol/ds/10-apifetch-migration
jjramirezn Aug 18, 2026
1c14258
ds 09: receipt views redone to the TX Details board composition
kushagrasarathe Aug 19, 2026
b6c2c2f
ds 09: keyboard semantics on the clickable receipt-head avatar (CodeR…
kushagrasarathe Aug 19, 2026
7dc39c1
ds 14: activity surfaces — states board rules, list restyle, ?tx= dra…
kushagrasarathe Aug 19, 2026
7aec3d0
ds 14: drop orphaned test mock var (lint)
kushagrasarathe Aug 19, 2026
7d7bdea
ds 14: address code-review — failed-refund strike carve-out, shared s…
kushagrasarathe Aug 19, 2026
e7d86c8
ds 14: write the drawer-mount ref in an effect, not during render (Co…
kushagrasarathe Aug 19, 2026
e79d7d0
Merge pull request #2727 from peanutprotocol/ds/07-home-rebuild
kushagrasarathe Aug 19, 2026
92ce286
Merge pull request #2748 from peanutprotocol/ds/14-activity-surfaces
kushagrasarathe Aug 19, 2026
8f5b75e
Merge pull request #2733 from peanutprotocol/ds/19-remaining-components
kushagrasarathe Aug 19, 2026
1b71ed7
Merge origin/dev into feat/design-system
kushagrasarathe Aug 19, 2026
5dc0240
chore: regen ds tokens after safe-area spacing tokens landed in @theme
kushagrasarathe Aug 19, 2026
9c35e30
fix: post-merge alignment — one fetch path, capacitor mocks, prettier
kushagrasarathe Aug 19, 2026
6587178
fix: eslint merge intersections — catalog aria-label, allowlist dev's…
kushagrasarathe Aug 19, 2026
06976e0
fix: /code-review findings on the merge resolution
kushagrasarathe Aug 19, 2026
3d611a3
Merge pull request #2751 from peanutprotocol/merge/dev-into-design-sy…
Hugo0 Aug 19, 2026
9dafa4d
ds apply: add-money + add/withdraw shared views on semantic tokens
kushagrasarathe Aug 20, 2026
94894e8
ds apply: withdraw, profile, settings, notifications on semantic tokens
kushagrasarathe Aug 20, 2026
e62ef65
ds apply: rewards, invites, points, card surfaces on semantic tokens
kushagrasarathe Aug 20, 2026
516a6a4
ds apply: limits, claim, request, qr-claim, recover-funds on semantic…
kushagrasarathe Aug 20, 2026
8cefc63
ds apply: shared flow components on semantic tokens
kushagrasarathe Aug 20, 2026
3213d9e
ds apply: setup views class-level token pass
kushagrasarathe Aug 20, 2026
9e1ae04
ds apply: last stock-palette stragglers in qr claim + semantic reques…
kushagrasarathe Aug 20, 2026
11c0e9a
ds ratchet: lower the lint baseline to the post-apply counts
kushagrasarathe Aug 20, 2026
b96393a
ds apply: keep AmountInput digits on the repo's 3rem text-6xl
kushagrasarathe Aug 20, 2026
a6204a3
ds ratchet: baseline includes the deliberate text-6xl keep in AmountI…
kushagrasarathe Aug 20, 2026
7dcc562
ds apply: review fixes — keep DS text tokens out of twMerge
kushagrasarathe Aug 20, 2026
b54f12d
ds apply: drop twMerge imports orphaned by the review fixes
kushagrasarathe Aug 20, 2026
e251d40
ds apply: settings page shell, recover-funds blank fix, ExchangeRateW…
kushagrasarathe Aug 20, 2026
e866228
ds apply: settings root needs w-full — AppShell inner centers flex items
kushagrasarathe Aug 20, 2026
b356819
ds decisions: ErrorAlert -> Notification (38 files, component deleted…
kushagrasarathe Aug 20, 2026
c8799e1
ds decisions: InfoCard -> Notification (component deleted)
kushagrasarathe Aug 20, 2026
c8c1c5e
ds decisions: one SlideToConfirm (board 17785:11764, both old impls d…
kushagrasarathe Aug 20, 2026
df3e57f
ds decisions: marquee banners out of the app shell — maintenance/conn…
kushagrasarathe Aug 20, 2026
93e3a03
ds decisions: PaymentInfoRow kept as the label/value/copy wrapper, to…
kushagrasarathe Aug 20, 2026
61bfacd
ds decisions: ActionListCard deleted - consumers render ListItem dire…
kushagrasarathe Aug 20, 2026
c4118c2
ds decisions: standalone app links render LinkButton
kushagrasarathe Aug 20, 2026
ebe5285
ds decisions: orphan sweep — beta banner i18n keys removed, SearchInp…
kushagrasarathe Aug 20, 2026
161c344
ds fix: /dev/ds/patterns/amount-input crashed (react 130) - only patt…
kushagrasarathe Aug 20, 2026
c993030
setup: invite step - Next becomes the full-width primary cta under th…
kushagrasarathe Aug 20, 2026
febea81
feat(kyc): show a region screen instead of a support dead end
innolope-dev Aug 20, 2026
9807d3c
refactor(kyc): render one region screen, not two copies of it
innolope-dev Aug 20, 2026
2c59dd5
fix(kyc): stop offering a retry that can never pass
innolope-dev Aug 20, 2026
c299364
dev: /dev/devices viewport harness, reachable on preview builds
kushagrasarathe Aug 21, 2026
dda130b
qa: delete dead RouteExpiryTimer, one ProgressBar primitive (0_Bruddl…
kushagrasarathe Aug 21, 2026
78439bd
qa: SegmentedControl primitive, board pressed states, sliding bottom-…
kushagrasarathe Aug 21, 2026
45301c8
qa: filled-icon knockout fix, icon-size sweep, pill logout buttons, b…
kushagrasarathe Aug 21, 2026
b314776
qa: per-page maintenance banner targeting, badge/kyc drawer heads on …
kushagrasarathe Aug 21, 2026
aac0709
home IA: add/send bottom drawers + destination page alignment (figma …
kushagrasarathe Aug 21, 2026
827b69e
qa: spacing sweep to board 17291:2772 anatomy
kushagrasarathe Aug 21, 2026
6a7bf69
Merge remote-tracking branch 'origin/ds/apply-remaining-pages' into d…
kushagrasarathe Aug 21, 2026
4b3fb2b
lint: Mercado Pago brand title via const (copy-props-from-catalog wan…
kushagrasarathe Aug 21, 2026
ad7e134
review: coderabbit round 1
kushagrasarathe Aug 21, 2026
8848583
review: /code-review round — geo-race gate, claim-flow isolation, dra…
kushagrasarathe Aug 21, 2026
7d66de0
review: single navigation on the send-link cta (coderabbit out-of-dif…
kushagrasarathe Aug 21, 2026
3222e62
fix: submenu pressed state uses action-primary (button board 17308:13…
kushagrasarathe Aug 21, 2026
2625444
qa: home top-left avatar one size down (48 -> 32) per Vlad follow-up;…
kushagrasarathe Aug 21, 2026
a448b65
Merge pull request #2758 from peanutprotocol/ds/apply-remaining-pages
kushagrasarathe Aug 21, 2026
3694056
Merge pull request #2780 from peanutprotocol/ds/home-ia-add-send
kushagrasarathe Aug 21, 2026
a67c04a
Merge origin/dev into feat/design-system
kushagrasarathe Aug 21, 2026
6869205
prettier: DS-branch tailwind class order on merged dev files
kushagrasarathe Aug 21, 2026
deecb3b
ds-lint: rebase baseline after dev back-merge
kushagrasarathe Aug 21, 2026
d8f14a5
home IA: add drawer is bank transfer + crypto only (product ruling)
kushagrasarathe Aug 21, 2026
abc5bd4
bottom nav: drag the active pill along the bar to switch tabs
kushagrasarathe Aug 21, 2026
b256dae
Merge remote-tracking branch 'origin/feat/design-system' into merge/d…
kushagrasarathe Aug 21, 2026
f336997
Merge pull request #2781 from peanutprotocol/merge/dev-into-design-sy…
kushagrasarathe Aug 21, 2026
8550c67
feat(setup): mirror setup step in URL and emit signup_step_viewed
innolope-dev Aug 21, 2026
f3a50bf
feat(setup): add residence step with restricted-country heads-up
innolope-dev Aug 21, 2026
e0c3b53
feat(setup): tiered residence restrictions with partial heads-up
innolope-dev Aug 21, 2026
62f1415
feat(home): gate card and unlock offers by residence restrictions
innolope-dev Aug 21, 2026
739ca04
feat(profile): Unlock payments screen replaces Unlocked Regions
innolope-dev Aug 21, 2026
e24a9b4
feat(profile): drop the 1-more-step chip; pending keeps Processing
innolope-dev Aug 21, 2026
ea9b436
feat(profile): complete the unlock-payments simplifications
innolope-dev Aug 21, 2026
b3f32cf
feat(home): 3-item getting-started checklist replaces the funnel card
innolope-dev Aug 21, 2026
c393678
chore(home): drop the ActionModal import orphaned by the chooser removal
innolope-dev Aug 21, 2026
c7c2691
Merge remote-tracking branch 'origin/claude/kyc-rejection-screen-ru-c…
innolope-dev Aug 21, 2026
9fdf7fb
chore(test): drop the posthog import orphaned by the spend-chooser te…
innolope-dev Aug 21, 2026
2a1ba93
feat(kyc): in-review status, deposit ETAs, and a verification-outage …
innolope-dev Aug 21, 2026
38fe35f
chore(ci): let CodeRabbit review PRs targeting dev
innolope-dev Aug 21, 2026
b9891cd
fix(review): address CodeRabbit full-review findings
innolope-dev Aug 21, 2026
ac0e63b
fix(review): popstate ignored while URL sync disabled; pure state upd…
innolope-dev Aug 21, 2026
b3ad51e
feat(ui): device-test feedback round — limits merge, residence fallba…
innolope-dev Aug 22, 2026
7634238
feat(unlock): South/North America groups, confirmed copy, backup accu…
innolope-dev Aug 22, 2026
a654966
feat(profile): Unlock payments joins the invite block with a bank icon
innolope-dev Aug 22, 2026
497ab2a
feat(avatar): generated dot-face for the user's own avatar; scope res…
innolope-dev Aug 22, 2026
efa6251
fix(pwa): meta theme-color so the status strip updates without a mani…
innolope-dev Aug 22, 2026
947dca2
Center the dot-face avatar and move the backup warning up
innolope-dev Aug 22, 2026
54cb633
Compress profile menu row height
innolope-dev Aug 22, 2026
0cb089b
Merge per-country unlock rows and refresh card state on residence change
innolope-dev Aug 22, 2026
5563e11
Show the KYC prep checklist before the SDK ever opens
innolope-dev Aug 22, 2026
89efb47
Finish the honest KYC arc: account-ready screen, softer gates, copy e…
innolope-dev Aug 22, 2026
96b3178
fix(ds-qa): notification list layout, profile-edit form rhythm, icon …
kushagrasarathe Aug 24, 2026
8976309
fix(ds-qa): bank-form labels, language flags, unified profile chips, …
kushagrasarathe Aug 24, 2026
caf8b88
fix(ds-qa): bottom-nav slide starts from rest; exchange-rate contrast…
kushagrasarathe Aug 24, 2026
7e9188f
fix(ds-qa): Notification items actually renders
kushagrasarathe Aug 24, 2026
d15b66b
fix(ds-qa): Save sticks to the viewport; region locales get the globe
kushagrasarathe Aug 24, 2026
5213f4b
chore(ds-qa): drop Icon imports orphaned by the Notification items mi…
kushagrasarathe Aug 24, 2026
c4746e4
fix(ds-qa): restore accessible names, stop empty banners, keep /shhhh…
kushagrasarathe Aug 24, 2026
c1c6af4
fix(ds-qa): don't wipe typed input on auth hydration; items=[] suppre…
kushagrasarathe Aug 24, 2026
a28f658
fix(ds-qa): checklist notifications drop the (i) and go back to prod …
kushagrasarathe Aug 24, 2026
37cef2c
fix(ds-qa): the nav pill knows where it is going before it starts
kushagrasarathe Aug 24, 2026
405836a
fix(ds-qa): swap the send drawer person icons
kushagrasarathe Aug 24, 2026
1c561f2
fix(ds-qa): the es-419 row flies the Spain flag
kushagrasarathe Aug 24, 2026
cc96b4a
fix(ds-qa): profile Save goes back inline, under the last field
kushagrasarathe Aug 24, 2026
04978e0
fix(ds-qa): the /shhhhh back button overlays the pink fold
kushagrasarathe Aug 24, 2026
f3834f9
fix(ds-qa): the profile row is called "Regions and verification"
kushagrasarathe Aug 24, 2026
8037d6f
docs(ds-qa): the nav block comment stops claiming a repro it never had
kushagrasarathe Aug 24, 2026
20a34fa
fix(ds-qa): the profile dirty check compares against what the form lo…
kushagrasarathe Aug 24, 2026
355932e
fix(ds): twMerge was deleting the DS type tokens it did not recognise
kushagrasarathe Aug 24, 2026
fad1c17
fix(ds): anatomy divergences the class list could not show
kushagrasarathe Aug 25, 2026
97b40c0
fix(ds): NavHeader title reads Heading/S from the token, not by coinc…
kushagrasarathe Aug 25, 2026
173979f
fix(ds): Avatar initials take their type from the board, not from stock
kushagrasarathe Aug 25, 2026
60ed3a9
fix(ds): a bare font-weight class cannot lose to a caller's type token
kushagrasarathe Aug 25, 2026
c5c2644
fix(ds): DrawerTitle stopped overriding the heading its callers ask for
kushagrasarathe Aug 25, 2026
cb9aefb
chore: drop the scratch anatomy spec notes that should never have bee…
kushagrasarathe Aug 25, 2026
1adb59b
Merge pull request #2799 from peanutprotocol/ds/qa-round-3-fixes
kushagrasarathe Aug 25, 2026
039f320
fix(tw): camelCase type tokens and extraBlack weight escaped the twMe…
kushagrasarathe Aug 25, 2026
3b70b31
fix(ds): safe-area vars, 44px touch targets, localized dismiss label
kushagrasarathe Aug 25, 2026
c968e73
Merge origin/dev into feat/design-system (release PR #2813 conflict r…
kushagrasarathe Aug 25, 2026
a9cf038
fix(ds): ListItem disabled tokens, NavHeader title overrides, carouse…
kushagrasarathe Aug 25, 2026
62f5592
fix(tw): register the remaining custom-token families in twMerge
kushagrasarathe Aug 25, 2026
7ae1380
fix(ds): NavHeader long titles stop colliding with the side buttons
kushagrasarathe Aug 25, 2026
eb2cc7f
fix(ds): recover-funds shows the ds empty state when nothing is recov…
kushagrasarathe Aug 25, 2026
9519e6c
fix(ds): bottom-nav strip goes transparent — pill and qr button float
kushagrasarathe Aug 25, 2026
48cf4d4
ds 04: regenerate the audit inventory against today's branch
kushagrasarathe Aug 25, 2026
c495665
ds(phase-2): add the missing composition recipes — PageStack, Section…
kushagrasarathe Aug 25, 2026
bb46926
ds(phase-2): tier-2 legacy color-class sweep — semantic tokens in, de…
kushagrasarathe Aug 25, 2026
851b8d3
ds(phase-2): ratchet the phase-2 finish lines — legacyColorClasses + …
kushagrasarathe Aug 25, 2026
2ebbc84
ds(phase-2): tier-3 batch 1 — card triple, settings, backup, qr succe…
kushagrasarathe Aug 25, 2026
d3ea438
ds(phase-2): tier-3 batch 2 — page shells and list positions compose …
kushagrasarathe Aug 25, 2026
943226c
ds(phase-2): comment hygiene on the migrated pages — narration out, c…
kushagrasarathe Aug 25, 2026
4d9b5f3
ds(phase-2): tier-3 batch 3 — centered-content blocks compose PageSta…
kushagrasarathe Aug 25, 2026
6010426
ds(phase-2): legacy metric excludes the shadow-primary/secondary offs…
kushagrasarathe Aug 25, 2026
b6d38f0
ds(phase-2): smell pass — CardEligibilityCheckScreen adopts PageStack…
kushagrasarathe Aug 25, 2026
e309987
ds(phase-2): /code-review fixes — alert-modal icon bubbles, ratchet h…
kushagrasarathe Aug 25, 2026
607e776
Show the prep checklist on the cross-region unlock too
innolope-dev Aug 25, 2026
d6bf44a
ds(phase-2): legacy kill complete — figma primitive ramp in, colors +…
kushagrasarathe Aug 25, 2026
f859685
ds(phase-2): second /code-review round — repair the sweep's collatera…
kushagrasarathe Aug 25, 2026
37faf6f
ds(phase-2): the last app-surface stock-text stragglers move to the t…
kushagrasarathe Aug 25, 2026
f2d6aa2
Surface the residence-change cooldown before the user hits it
innolope-dev Aug 25, 2026
6c34c9a
Tint the inline limit lines lavender
innolope-dev Aug 25, 2026
843df91
Merge pull request #2818 from peanutprotocol/ds/phase-2-styling-cleanup
kushagrasarathe Aug 25, 2026
2dcdb2d
Merge remote-tracking branch 'origin/feat/design-system' into ds/04-a…
kushagrasarathe Aug 25, 2026
a9a56b3
ds 04: carry the audit counts across the phase-2 base
kushagrasarathe Aug 25, 2026
00081d4
fix(ds): settings pinned footer, invites empty states, limits retry t…
kushagrasarathe Aug 25, 2026
537c2a4
chore: delete the /notifications page
kushagrasarathe Aug 25, 2026
09d46d5
fix(ds): restore desktop headers, stop history-wide re-renders, recei…
kushagrasarathe Aug 25, 2026
8af1978
Merge pull request #2814 from peanutprotocol/ds/04-audit-data-refresh
kushagrasarathe Aug 25, 2026
7fcbea9
audit-data: drop deleted notifications page path from ad-hoc text-lin…
kushagrasarathe Aug 25, 2026
bc084ae
chore: delete the orphaned /settings root page
kushagrasarathe Aug 25, 2026
b89d4b6
dev: named app states behind ?__fixture=, so any screen renders with …
kushagrasarathe Aug 25, 2026
befe67b
qa: capture every fixture at four phone widths, and diff two captures
kushagrasarathe Aug 25, 2026
128f6ba
dev: fixtures now show what they claim, or they are gone
kushagrasarathe Aug 25, 2026
1375a9c
ci: drop the e2e job that tested nothing, add an advisory visual diff
kushagrasarathe Aug 25, 2026
f29dd40
qa: keep the four specs that assert something, delete the 14 that did…
kushagrasarathe Aug 25, 2026
86fdf20
dev: drop the three fixtures whose routes the design system deleted
kushagrasarathe Aug 26, 2026
1d245c8
proxy: /dev tooling answers 404 on peanut.me, not 200
kushagrasarathe Aug 25, 2026
921bbbd
layout: a backend outage keeps the error screen, instead of sending u…
kushagrasarathe Aug 25, 2026
63488ba
rewards: a failed points fetch shows an error, instead of a spinner f…
kushagrasarathe Aug 26, 2026
8d8e438
bottom nav: links not draggable so native link-drag doesn't fight the…
kushagrasarathe Aug 26, 2026
d7839a7
Merge branch 'feat/design-system' of https://github.com/peanutprotoco…
kushagrasarathe Aug 26, 2026
c4d0313
setup: skip button reads foreground-over-color-secondary (sits on col…
kushagrasarathe Aug 26, 2026
4a8f150
Merge remote-tracking branch 'origin/dev' into ds-final-2813
kushagrasarathe Aug 26, 2026
3336068
Merge origin/dev into feat/design-system (status page)
kushagrasarathe Aug 26, 2026
b70943f
qa: apply review — guard the real session cookie, run the kept specs …
kushagrasarathe Aug 26, 2026
213588f
fix: close the native gate gap on src/app/dev, apply the rest of review
kushagrasarathe Aug 26, 2026
872a789
Bigger avatars, tidier account management, and an About page
innolope-dev Aug 26, 2026
d7f698b
Move Personal details into the card and badges menu block
innolope-dev Aug 26, 2026
4315194
Regroup the profile menu
innolope-dev Aug 26, 2026
9dfa61d
Lead the residence question with legal residence, regroup the menu again
innolope-dev Aug 26, 2026
3710602
Double the home chip avatar and tighten the pill padding
innolope-dev Aug 26, 2026
89b06a4
Max out the chip avatar without growing the pill
innolope-dev Aug 26, 2026
dbd3fa0
Dual-residence awareness, frontend only
innolope-dev Aug 26, 2026
c43ff60
Drop an unused eslint-disable
innolope-dev Aug 26, 2026
b7f19ca
Review fixes: region gate on Unlock payments, returnTo through countr…
innolope-dev Aug 26, 2026
c1f3060
Merge remote-tracking branch 'origin/dev' into claude/app-registratio…
innolope-dev Aug 26, 2026
ca291a1
Merge dev and regenerate the marketing message subsets
innolope-dev Aug 26, 2026
404bc6a
Merge remote-tracking branch 'origin/feat/design-system' into qa/visu…
kushagrasarathe Aug 27, 2026
a417f70
fix(slide-to-confirm): money control commits only at 100%, resets aft…
kushagrasarathe Aug 27, 2026
64bd8db
qa: apply jjramirezn's review — make ds-shots reachable from the DS t…
kushagrasarathe Aug 27, 2026
70239db
fix(ds): restore styling the token sweep silently deleted
kushagrasarathe Aug 27, 2026
998a9a5
fix(input): component-owned states per the input board — black rest b…
kushagrasarathe Aug 27, 2026
09e6da5
fix(ds): figma-1:1 pass on board components — radii, modal close, gly…
kushagrasarathe Aug 27, 2026
b483e5d
fix(ds): token graveyard cleared + the machinery that keeps it clear
kushagrasarathe Aug 27, 2026
5efe010
qa: unbreak the first real CI run — ratchet allowlist, spec resilienc…
kushagrasarathe Aug 27, 2026
8e7c090
fix(ds): consistency round — one network list, home drawer parity, AP…
kushagrasarathe Aug 27, 2026
eaf18c5
test(ds): the checks that guard behavior instead of green paint
kushagrasarathe Aug 27, 2026
50788f0
qa: CI 404s every /dev page — set NEXT_PUBLIC_BASE_URL on the build
kushagrasarathe Aug 27, 2026
a1061fd
Merge remote-tracking branch 'origin/feat/design-system' into qa/visu…
kushagrasarathe Aug 27, 2026
433d450
qa: adopt the DS showcase sweep into the regression net
kushagrasarathe Aug 27, 2026
93d21c1
dev/ds: root section counts derive from nav-config — the third hand l…
kushagrasarathe Aug 27, 2026
140e4e2
Merge origin/dev into feat/design-system
kushagrasarathe Aug 27, 2026
db90efd
feat(ds): inline field errors per the form-field board (ruling 19)
kushagrasarathe Aug 27, 2026
8e85811
fix(ds): restore the AmountInput bordered container (ruling 20)
kushagrasarathe Aug 27, 2026
57f007d
feat(ds): bottom nav full-width gutter + backdrop-blur experiment (ru…
kushagrasarathe Aug 27, 2026
60a6bee
feat(ds): full DS conformance for /dev/ds chrome (ruling 16)
kushagrasarathe Aug 27, 2026
4577563
refactor(ds): F-12 inline-style taxonomy — 167 -> 50 sites
kushagrasarathe Aug 27, 2026
9bbcd8d
dev/ds: FieldError showcase page + nav entry — the new component foll…
kushagrasarathe Aug 27, 2026
98aa55d
dev/ds: FieldError nav entry — the previous commit's config edit sile…
kushagrasarathe Aug 27, 2026
93abcbf
feat(ds): bottom nav 'content dissolves' — transparent bar, scroll co…
kushagrasarathe Aug 27, 2026
a6f99f4
chore: remove the offramp migration deposit path
kushagrasarathe Aug 27, 2026
699f54a
Revert "feat(ds): bottom nav 'content dissolves' — transparent bar, s…
kushagrasarathe Aug 27, 2026
434bbe1
chore: review fixes — orphaned analytics comment, stale redirect fixt…
kushagrasarathe Aug 27, 2026
8f6f322
feat(ds): bottom nav — solid bar with soft elevation shadow (replaces…
kushagrasarathe Aug 27, 2026
e7ea9bb
feat(ds): bottom nav sits on a background-page fade — content dissolv…
kushagrasarathe Aug 27, 2026
2790915
fix(ds): receipts word the direction; open requests drop the pending …
kushagrasarathe Aug 27, 2026
84d851c
fix(ds): drop Mercado Pago from the send-to-friends method list
kushagrasarathe Aug 27, 2026
bea76dc
feat(ds): bottom nav — back to the soft elevation shadow, gradient dr…
kushagrasarathe Aug 27, 2026
d23f878
fix(ds): receipt titles match the TX Details board copy — 'Paid to' i…
kushagrasarathe Aug 27, 2026
4af4da4
refactor(ds): /dev/ds chrome dogfoods the DS components it documents
kushagrasarathe Aug 27, 2026
49b50a2
fix(ds): ContributorsDrawer link zeroes both press translates — the h…
kushagrasarathe Aug 27, 2026
8185b9d
perf(ds): build-time gate strips /dev/ds/audit data from prod bundles
kushagrasarathe Aug 27, 2026
ed261ba
fix(ds): badge-unlock drawer drops 32px of extra head padding
kushagrasarathe Aug 27, 2026
c69a707
Merge origin/dev into feat/design-system (FX rate-freeze, KYC docs lo…
kushagrasarathe Aug 27, 2026
86cc458
Merge pull request #2819 from peanutprotocol/qa/visual-shots
kushagrasarathe Aug 27, 2026
3559638
Merge pull request #2820 from peanutprotocol/qa/prod-bugs
kushagrasarathe Aug 27, 2026
a1ec394
fix(ds): receipt titles survive raw-address counterparties; self-desc…
kushagrasarathe Aug 27, 2026
f24f52c
fix(ci): audit build-gate env no longer clobbers the ds-shots preview…
kushagrasarathe Aug 27, 2026
2c05c68
fix(ds): DocSection content column owns its stack gap (L/16)
kushagrasarathe Aug 27, 2026
ba8d7f6
Merge origin/dev into feat/design-system (payment-network explorer, c…
kushagrasarathe Aug 27, 2026
068cd18
Merge pull request #2841 from peanutprotocol/chore/remove-offramp-mig…
jjramirezn Aug 27, 2026
683ee49
Merge origin/feat/design-system into integration/ds-onboarding
innolope-dev Aug 28, 2026
32915c5
Merge origin/feat/app-registration-onboarding into integration/ds-onb…
innolope-dev Aug 28, 2026
0fc04e3
style(ds): migrate the onboarding surfaces onto the semantic tokens
innolope-dev Aug 28, 2026
bfd273d
feat(ds): sign incoming amounts, and put the generated face on the av…
innolope-dev Aug 28, 2026
0a52b26
fix(lint): route the merged-in files through the DS twMerge wrapper
innolope-dev Aug 28, 2026
6e4031f
fix(residence): promoting the second document country swaps the pair
innolope-dev Aug 28, 2026
6e816b4
fix: send the residence swap to the server, and keep the CI token awa…
innolope-dev Aug 28, 2026
3d3d220
fix(ci): stop handing PR-editable code our secrets, and stop interpol…
innolope-dev Aug 28, 2026
f17a276
fix(ci): the BE baseline fetch has never worked — make it say so inst…
innolope-dev Aug 28, 2026
3a07ee8
test(render-snapshot): make the BE baseline fetch mean something
innolope-dev Aug 28, 2026
b79e429
ci: point the BE baseline fetch at MONO_READ_TOKEN
innolope-dev Aug 28, 2026
0797cee
ci: fetch the BE baseline in an isolated job, never beside PR code
innolope-dev Aug 28, 2026
831e543
fix(residence): take the second document country from the API, not th…
innolope-dev Aug 28, 2026
54aab88
ci(ds-shots): drop the job to read-only — PR code must not reach a wr…
innolope-dev Aug 28, 2026
8221161
Merge origin/dev into integration/ds-onboarding (local-rail nudge loc…
innolope-dev Aug 28, 2026
06550b0
fix(residence): a null second residence is an answer, not a missing f…
innolope-dev Aug 28, 2026
68fb6b1
fix: a bank-request fulfillment is an outflow, and the groups take th…
innolope-dev Aug 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@
# projects, plists, resources) isn't worth AI review and pushes large
# mobile PRs over the 150-file review limit.
reviews:
# dev is the integration branch PRs actually target; without this,
# CodeRabbit refuses to review them even on a manual trigger.
base_branches:
- dev
path_filters:
- '!ios/**'
- '!android/**'
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/code-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,10 @@ jobs:

# ---- BASE analysis (fetch + worktree the PR base ref)
- name: Checkout base ref into a worktree
env:
BASE_REF: ${{ github.base_ref }}
run: |
git fetch origin "${{ github.base_ref }}":base-ref
git fetch origin "$BASE_REF":base-ref
git worktree add ../base-tree base-ref

- name: Analyze base
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/content-publish-automerge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ jobs:

# Key off the `ci-success` check run, NOT `workflow_run.conclusion`.
# `ci-success` is the single check the "Protect Prod" ruleset gates
# on; the run conclusion also folds in advisory jobs (e2e). Gate on
# on; the run conclusion also folds in advisory jobs (ds-shots). Gate on
# exactly what the ruleset gates on.
#
# `Tests` runs on `pull_request` (and `push` for dev/main), so a
Expand Down
38 changes: 38 additions & 0 deletions .github/workflows/pr-assets-cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: PR assets cleanup

# DORMANT since 2026-08-28: ds-shots no longer publishes this branch. The job
# runs PR-authored build code, so it was dropped to contents:read and the PNGs
# now travel as a workflow artifact. This workflow is kept, not deleted,
# because the planned pull_request/workflow_run split restores branch
# publishing from a job that never executes PR code. Until then it finds
# nothing to delete on every run, which is harmless.
#
# The ds-shots comment in tests.yml renders its before/after PNGs from a
# `pr-assets-<number>` branch, because GitHub markdown cannot show a workflow
# artifact. Delete that branch when the PR ends, or the branches pile up — 20+
# hand-made ones were still on the remote in August 2026.

on:
pull_request:
types: [closed]

permissions:
contents: write

jobs:
delete-assets-branch:
name: delete-assets-branch
runs-on: ubuntu-latest
steps:
- name: Delete pr-assets-<number>
env:
GH_TOKEN: ${{ github.token }}
REPO: ${{ github.repository }}
PR: ${{ github.event.pull_request.number }}
run: |
# Most PRs never make this branch — a docs PR skips ds-shots,
# and a fork PR cannot push. A missing branch is normal, so a
# 422 from the delete is not a failure.
gh api -X DELETE "repos/$REPO/git/refs/heads/pr-assets-$PR" \
&& echo "deleted pr-assets-$PR" \
|| echo "no pr-assets-$PR branch to delete"
6 changes: 4 additions & 2 deletions .github/workflows/supply-chain-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,9 +37,11 @@ jobs:
run: pnpm install --frozen-lockfile

- name: Resolve base package.json
env:
BASE_REF: ${{ github.base_ref }}
run: |
git fetch origin "${{ github.base_ref }}"
git show "origin/${{ github.base_ref }}:package.json" > /tmp/base-package.json
git fetch origin "$BASE_REF"
git show "origin/$BASE_REF:package.json" > /tmp/base-package.json

- name: Check min release age
run: node scripts/check-min-release-age.mjs --base /tmp/base-package.json
358 changes: 314 additions & 44 deletions .github/workflows/tests.yml

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ next-env.d.ts

# local files
playground/
# ...except the design-system doc-site Playground route, which is a real tracked route
!src/app/(mobile-ui)/dev/ds/playground/

# yarn and npm lockfiles
package-lock.json
Expand Down Expand Up @@ -93,6 +95,7 @@ e2e/__results__/
e2e/__baseline__/
e2e/__report__/
e2e/__snapshots__/
e2e/__shots__/
e2e/.auth/

# native app signing
Expand Down
4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,9 @@ src/components/TransactionDetails/__tests__/fixtures/render-baseline.json
src/types/api.openapi.json
src/types/api.generated.ts

# generated from globals.css @theme via `pnpm gen:ds-tokens` — stable
# JSON.stringify formatting so a prettier bump can't flip the drift gate.
src/app/(mobile-ui)/dev/ds/foundations/tokens.generated.ts

# static single-file quiz (hand-tuned inline CSS/JS; not prettier-formatted)
public/onboarding-quiz/
14 changes: 10 additions & 4 deletions docs/TESTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,14 @@ Full testing strategy (pyramid, CI/CD, post-release monitoring) lives in the mon
## Quick commands (this repo)

```bash
npm test # Jest unit + component (710+ tests, ~25s)
npx playwright test --project=mobile # E2E smoke (49 tests, ~8 min)
npx tsx e2e/scripts/generate-report.ts --save-baseline # Visual regression baseline
npx tsx e2e/scripts/generate-report.ts # Compare against baseline
npm test # Jest unit + component (~30s)
NEXT_PUBLIC_VERCEL_ENV=preview npm run build # both Playwright configs need this build
npm run test:e2e:regression # behaviour specs in e2e/flows (~1 min)
npm run test:visual:capture # one PNG per fixture per width
npm run test:visual:diff <before> <after> # compare two capture directories
```

Browse the fixtures at `/dev/fixtures`, or open one with `<route>?__fixture=<name>`.

Anything that needs a real backend, provider or chain goes to the Nutcracker
harness in mono (`engineering/qa`), not to Playwright here.
149 changes: 0 additions & 149 deletions e2e/flows/add-money.spec.ts

This file was deleted.

100 changes: 0 additions & 100 deletions e2e/flows/claim-flow.spec.ts

This file was deleted.

Loading
Loading