Merged
Conversation
Use vi.stubEnv/vi.unstubAllEnvs instead of direct process.env assignment which fails both TypeScript typecheck (TS2540) and Vitest runtime. https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
- Add compat-invite type to shareId encoding (name, birthDate, birthTime) - Create InviteLanding component: partner only enters their info - Add invite link button on compatibility form page - Replace simple share with full ShareButtons on compat result page - Enhanced OG image for compat: shows both names, elements, emojis, score - Add tagline support to saju/palm/tarot OG cards - Pass partner info in OG URLs for richer social previews - Add inviteLanding translations for all 8 languages (ko/en/ja/zh/th/vi/id/hi) - Add invite button/toast translations for all 8 compat.json files https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
- ShareLanding: entrance animations, social proof badge, CTA pulse, floating emoji - InviteLanding: fix silent same-date validation (show error), loading spinner, avatar row with empty placeholder, entrance animation - ShareButtons: add native Web Share API as first option on supported devices, toast success/error variants with checkmark, larger icon size (52px) - CSS: safe-area toast positioning, spring animations, invite landing styles, compat invite button classes, button spinner - share.ts: UTM tracking on share URLs, centered popup (620x520) - compatibility/page.tsx: CSS classes for invite button (remove inline styles) - OG route: fix partnerElement passthrough in Kakao share - Share text: emoji-rich hooking text across all 8 languages (ko/en/ja/zh/th/vi/id/hi) https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
…tion - Enhance share text across all 8 locales with social proof (120K+ users), specific CTA, and curiosity hooks for saju/palm/compat products - Fix LINE share to use line.me/R/share (text+URL delivery) instead of social-plugins.line.me (URL only) - Fix mobile share: use location.href for deep-link support instead of window.open popup (blocked on mobile) - Clamp decoded share scores to 0-100 range to prevent tampered payloads - Add tests for score clamping and updated LINE URL format https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
- Add business information (사업자정보) to footer across all 8 locales (상호, 대표자, 사업자등록번호, 주소, 전화번호, 이메일) - Install @tosspayments/tosspayments-sdk for Korean payment widget - Create Toss checkout page with payment widget (/checkout/toss) - Create Toss success/fail redirect pages - Create /api/checkout/toss/confirm endpoint for server-side payment verification - Update usePaywall hook to route Korean users to Toss payment widget - Update /api/checkout/create to return orderName and amount for Toss - Update /api/checkout/confirm to handle Toss-verified orders in production - Rename TOSS_CLIENT_KEY to NEXT_PUBLIC_TOSS_CLIENT_KEY for browser access https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
- Add /api/checkout/toss/webhook endpoint with HMAC-SHA-256 signature verification for production-grade async order confirmation - Create sendReceiptEmail with full i18n (ko/en/ja/zh/th/vi/id/hi) including payment details table and branded HTML template - Wire receipt email into Toss confirm, Toss webhook, and Paddle webhook - Add TOSS_WEBHOOK_SECRET to .env.example https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
- Create sendComingSoonEmail with 8-locale i18n for subscription confirmation (launch notification, early-bird discount, feature update promises) - Wire into /api/email/subscribe for coming_soon source with feature context - Pass feature name from ComingSoon component to subscribe API - Fix checkout test: Toss orders without paymentId return 409 (pending), not 403 https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
- 폰트: Pretendard(본문) + Outfit(디스플레이)으로 통일, 불필요한 Sora/Manrope/Italiana 제거 - 폰트 사이즈: 전체 타이포그래피 스케일 정리 (h1~h3, body, button, input) - 버튼: border-radius 14px로 통일, font-weight/letter-spacing 일관성 확보 - 카드: 글래스모피즘 효과 정리, border-radius/shadow 일관성 - 푸터: 사업자정보 영역 스타일 강화, 폰트 정리 - 이메일: 전체 i18n 파일 contact/help 이메일을 dbswn428@gmail.com으로 변경 - 네비게이션: 폰트/간격 통일 https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
- When PADDLE_API_KEY is not set, paddle/create now falls back to creating a Toss checkout order instead of failing with 500 error - Show detailed server error messages on frontend for debugging - Root cause: English browsers get redirected to /en/ locale which routes to Paddle, but Paddle is not yet configured https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
Korean market must use Toss Payments, not Paddle. This was incorrectly changed to "paddle" causing all Korean checkout attempts to fail. https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
The Toss SDK v2 requires ANONYMOUS constant for non-member payments,
not a custom string like guest_${orderId}.
https://claude.ai/code/session_01AiPFHVzyo37rEunuv8Xyap
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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.
No description provided.