fix: dev → main 동기화 (컨플릭트 해결) - #151
Merged
Merged
Conversation
* chore: initialize project folder structure - Add base directory layout for Next.js + domain-driven architecture - Add .gitkeep to track empty directories in git - Exclude MVP out-of-scope domains (shop, points, user-items) - No implementation files included, structure only Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Update README.md --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add project overview and MVP scope definition - Add fixed product rules (categories, AI chat policy, judgement output) - Add architecture, domain scope, and state transition rules - Add auth/security, DB, frontend state, API, logging rules - Add Git workflow, Claude work process, STOP conditions - Add approval-required list and required reference documents Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add package.json with Next.js 15, React 19, TypeScript stack - Add next.config.ts (minimal Next.js 15 config) - Add tsconfig.json (strict mode, @/* path alias) - Add eslint.config.mjs (next/core-web-vitals + next/typescript) - Add .prettierrc and .prettierignore - Add .gitignore (node_modules, .next, .env.local, etc.) - Add .env.example (key names only, no real values) - Add prisma/schema.prisma (generator + datasource only) - Add data/mock/db.json (health check stub for json-server) - Add docs/TECH_STACK.md (package list and selection rationale) - Update README.md with run commands and env guide Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add PROJECT_DECISIONS.md (MVP scope, architecture, security principles) - Add guides/CLAUDE_WORKFLOW.md (work process, STOP conditions, approval rules) - Add guides/GIT_WORKFLOW.md (branch naming, commit convention, workflow) - Add guides/PR_RULES.md (PR target, title rules, review criteria) - Add guides/ENV_GUIDE.md (Vercel env pull, .env.example management) - Add guides/CODING_CONVENTION.md (naming, state management, folder rules) - Add db/STATUS_TRANSITION.md (room_mode, dispute_status transitions) - Add db/PRISMA_MAPPING.md (snake_case/camelCase mapping rules) - Add db/MASTER_DATA.md (categories, result types, DB master principles) - Add domains/README.md (domain list, MVP scope, writing guidelines) - Add domains/_DOMAIN_TEMPLATE.md (template for domain docs) Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add AUTH.md (kakao login, terms, session management) - Add COMMON.md (error handling, logging, common response) - Add ROOM.md (AI chat room, invite link, room_mode transitions) - Add PERSONAL_ANALYSIS.md (AI-based personal conflict analysis) - Add DISPUTE.md (1:1 mediation, roles, statements, dispute_status) - Add JUDGEMENT.md (AI judgement, Gemini API, result card) - Add GIFT.md (gift recommendation after judgement) - Add USER.md (mypage, profile, bottom tab) - Add CALENDAR.md (date-based record marking, monthly summary) - Add DIARY.md (emotion diary, author-only access, content protection) - Add STATISTICS.md (anonymous aggregation, summary components) - Add SHOP_FUTURE.md (v2.0 planned, MVP excluded) - Add POINTS_FUTURE.md (v2.0 planned, MVP excluded) - Add USER_ITEMS_FUTURE.md (v2.0 planned, MVP excluded) All documents are draft templates with TODO markers for assignees. No implementation, no API routes, no schema changes. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add src/app/layout.tsx (root layout with metadata and globals.scss import) - Add src/app/page.tsx (minimal root page for build verification) - Add src/app/globals.scss (imports src/styles/main.scss) - Add src/app/error.tsx (minimal error boundary with reset) - Add src/app/not-found.tsx (minimal 404 page) - Add src/app/loading.tsx (minimal loading page) - Add src/styles/main.scss (ordered SCSS entry point) - Add src/styles/abstracts/_variables.scss (color, typography, spacing tokens) - Add src/styles/abstracts/_mixins.scss (flex-center, respond-to breakpoints) - Add src/styles/base/_reset.scss (box-sizing, margin, button, img reset) - Add src/styles/base/_global.scss (body font, background, color defaults) - Add src/styles/layout/_page.scss (placeholder for page layout) Verified: type-check, lint, build all pass Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* infra: add Next.js App Router entry files and SCSS base structure - Add src/app/layout.tsx (root layout with metadata and globals.scss import) - Add src/app/page.tsx (minimal root page for build verification) - Add src/app/globals.scss (imports src/styles/main.scss) - Add src/app/error.tsx (minimal error boundary with reset) - Add src/app/not-found.tsx (minimal 404 page) - Add src/app/loading.tsx (minimal loading page) - Add src/styles/main.scss (ordered SCSS entry point) - Add src/styles/abstracts/_variables.scss (color, typography, spacing tokens) - Add src/styles/abstracts/_mixins.scss (flex-center, respond-to breakpoints) - Add src/styles/base/_reset.scss (box-sizing, margin, button, img reset) - Add src/styles/base/_global.scss (body font, background, color defaults) - Add src/styles/layout/_page.scss (placeholder for page layout) Verified: type-check, lint, build all pass Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: resolve ESLint and TypeScript config warnings - eslint.config.mjs: ignore next-env.d.ts and .next/** (auto-generated by Next.js, triple-slash reference false positive) - tsconfig.json: remove deprecated baseUrl option (TypeScript 5.x+, paths works without baseUrl) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
달력 UI 라이브러리로 MUI X Date Pickers + Day.js 사용을 확정하고 관련 문서(TECH_STACK, PROJECT_DECISIONS, CODING_CONVENTION, CALENDAR, DIARY, CLAUDE.md)에 반영한다.
달력 UI 구현을 위해 MUI X Date Pickers 및 필수 peer dependency를 설치한다. @mui/material@9.1.1, @emotion/react@11.14.0, @emotion/styled@11.14.1, @mui/x-date-pickers@9.5.0, dayjs@1.11.21
* infra: add Next.js App Router entry files and SCSS base structure - Add src/app/layout.tsx (root layout with metadata and globals.scss import) - Add src/app/page.tsx (minimal root page for build verification) - Add src/app/globals.scss (imports src/styles/main.scss) - Add src/app/error.tsx (minimal error boundary with reset) - Add src/app/not-found.tsx (minimal 404 page) - Add src/app/loading.tsx (minimal loading page) - Add src/styles/main.scss (ordered SCSS entry point) - Add src/styles/abstracts/_variables.scss (color, typography, spacing tokens) - Add src/styles/abstracts/_mixins.scss (flex-center, respond-to breakpoints) - Add src/styles/base/_reset.scss (box-sizing, margin, button, img reset) - Add src/styles/base/_global.scss (body font, background, color defaults) - Add src/styles/layout/_page.scss (placeholder for page layout) Verified: type-check, lint, build all pass Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: resolve ESLint and TypeScript config warnings - eslint.config.mjs: ignore next-env.d.ts and .next/** (auto-generated by Next.js, triple-slash reference false positive) - tsconfig.json: remove deprecated baseUrl option (TypeScript 5.x+, paths works without baseUrl) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- datasource: add directUrl for Supabase connection pooler support - enums: CategoryGroup, RoomMode, DisputeStatus, ParticipantRole, etc. - NextAuth models: User (with TALKY-OWL fields), Account, Session, VerificationToken - core models: DisputeRoom, RoomAiConversation, RoomAiMessage - dispute models: Dispute, DisputeParticipant, DisputeStatement - judgment models: AiJudgment, JudgmentResultCard - gift models: GiftRecommendation, GiftRecommendationItem - feature models: EmotionDiary, CalendarRecord - master data: ConflictTypeGroup, ConflictTypeDetail (DB-based, no enum hardcoding) - log models: AuditLog, ApiErrorLog, ModerationLog, RoomAccessLog, UserDeletionLog - .env.example: add DIRECT_URL for Supabase directUrl - v2.0 TODO: ShopItem, PointTransaction, UserItem, DisputeStatistic excluded Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
folders added:
- src/components/{personal-analysis,room,dispute,judgement,calendar,diary,statistics,gift}
- src/app/api/auth/[...nextauth]
- src/app/api/v1/{users,personal-analyses,rooms,disputes,statements,calendar,diary,statistics,cron}
files added:
- prisma/seed.ts (placeholder for ConflictTypeGroup master data)
docs updated (minimal):
- docs/domains/COMMON.md: add log table list, judgement_logs TODO note
- docs/domains/JUDGEMENT.md: clarify Storage is MVP-excluded scaffolding
- docs/guides/ENV_GUIDE.md: clarify Supabase Storage vars are MVP-excluded
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
…e group (#23) src/app/page/ (괄호 없음)는 /page/* URL segment를 생성하므로, Next.js App Router route group 문법인 src/app/(page)/로 변경한다. URL은 /landing, /home 등으로 노출되어야 하며 /page/... 가 아니다. 관련 문서 내 경로 참조도 모두 업데이트 (CLAUDE.md, docs/domains/*, docs/guides/*). Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(styles): 디자인 토큰 및 전역 스타일 설정 - _variables.scss에 글로벌 컬러 팔레트, 타이포그래피 변수, 시맨틱 CSS 커스텀 프로퍼티(:root) 추가 - _mixins.scss에 타이포그래피 mixin 추가 (text-display ~ text-value-m) - _global.scss body 폰트 Pretendard 적용 - next/font/local로 PretendardVariable 폰트 로드 (layout.tsx) - GIT_WORKFLOW.md 커밋 메시지 예시 한글로 변경 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: 커밋 타입 style 추가 및 scope 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: 컨테이너 max-width 1000px 설정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: 루트 레이아웃 container 적용 및 개발 확인용 임시 border 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: 개발 확인용 임시 border 색상 회색으로 변경 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: container min-height 100vh 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: 커밋 타입 style 추가 및 scope 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(styles): 디자인 토큰 및 전역 스타일 설정 - _variables.scss에 글로벌 컬러 팔레트, 타이포그래피 변수, 시맨틱 CSS 커스텀 프로퍼티(:root) 추가 - _mixins.scss에 타이포그래피 mixin 추가 (text-display ~ text-value-m) - _global.scss body 폰트 Pretendard 적용 - next/font/local로 PretendardVariable 폰트 로드 (layout.tsx) - GIT_WORKFLOW.md 커밋 메시지 예시 한글로 변경 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: 커밋 타입 style 추가 및 scope 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: 컨테이너 max-width 1000px 설정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: 루트 레이아웃 container 적용 및 개발 확인용 임시 border 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: 개발 확인용 임시 border 색상 회색으로 변경 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: container min-height 100vh 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: 커밋 타입 style 추가 및 scope 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: rem 스케일 토큰 추가 및 타이포그래피 변수 rem 참조로 전환 - Rem scale 섹션 추가 (0.25rem ~ 30rem) - 폰트 토큰에서 누락된 0.875rem(14px), 1.125rem(18px) 추가 - font-size, line-height 변수를 rem 스케일 변수 참조로 전환 - rem 스케일을 typography 섹션보다 상단으로 이동 (선언 순서) - 컴포넌트 width/height 대응을 위해 큰 단위(9rem~30rem) 포함 Co-Authored-By: Claude <noreply@anthropic.com> * style: r() 함수 분리 및 타이포그래피 변수 함수 기반으로 전환 - _functions.scss 신규 추가 — px → rem 변환 함수 r() 단독 관리 - _variables.scss에서 rem 스케일 변수 제거, fn.r() 참조로 전환 - _mixins.scss에 functions @use 추가 - 순환 참조 없이 variables → functions → (없음) 단방향 의존성 구성 Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(common): add Button, Toast, Header, BottomNavigation components - Button: primary / outline / disabled variants, design token 기반 - Toast: Zustand store 연동, 상단 고정, 시맨틱 컬러 토큰 적용 - Header: 뒤로가기 + title + subtitle 구조, 조건부 title centering - BottomNavigation: 4탭(홈/사건기록/일기/마이페이지), lucide-react 아이콘 - toastStore: Zustand UI 상태 (show/hide/message) * docs: update collaboration policy - GitHub Ruleset 브랜치 규칙 추가 (브랜치 Pattern 2, PR 제목 Pattern 1 분리) - Issues / Milestones / Project Board 미사용으로 관련 내용 제거 - GIT_WORKFLOW 작업 흐름에서 Issue 생성/자동종료 단계 제거 - PR_RULES PR 본문에서 관련 Issue 항목 제거
* feat(styles): 디자인 토큰 및 전역 스타일 설정 - _variables.scss에 글로벌 컬러 팔레트, 타이포그래피 변수, 시맨틱 CSS 커스텀 프로퍼티(:root) 추가 - _mixins.scss에 타이포그래피 mixin 추가 (text-display ~ text-value-m) - _global.scss body 폰트 Pretendard 적용 - next/font/local로 PretendardVariable 폰트 로드 (layout.tsx) - GIT_WORKFLOW.md 커밋 메시지 예시 한글로 변경 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: 커밋 타입 style 추가 및 scope 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: 컨테이너 max-width 1000px 설정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: 루트 레이아웃 container 적용 및 개발 확인용 임시 border 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: 개발 확인용 임시 border 색상 회색으로 변경 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: container min-height 100vh 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: 커밋 타입 style 추가 및 scope 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * style: rem 스케일 토큰 추가 및 타이포그래피 변수 rem 참조로 전환 - Rem scale 섹션 추가 (0.25rem ~ 30rem) - 폰트 토큰에서 누락된 0.875rem(14px), 1.125rem(18px) 추가 - font-size, line-height 변수를 rem 스케일 변수 참조로 전환 - rem 스케일을 typography 섹션보다 상단으로 이동 (선언 순서) - 컴포넌트 width/height 대응을 위해 큰 단위(9rem~30rem) 포함 Co-Authored-By: Claude <noreply@anthropic.com> * style: r() 함수 분리 및 타이포그래피 변수 함수 기반으로 전환 - _functions.scss 신규 추가 — px → rem 변환 함수 r() 단독 관리 - _variables.scss에서 rem 스케일 변수 제거, fn.r() 참조로 전환 - _mixins.scss에 functions @use 추가 - 순환 참조 없이 variables → functions → (없음) 단방향 의존성 구성 Co-Authored-By: Claude <noreply@anthropic.com> * fix: :root {} 시맨틱 토큰을 _global.scss로 분리 _variables.scss에 :root {}가 있으면 module.scss에서 @use 시 CSS Modules 'not pure' 에러 발생. SCSS 변수는 _variables.scss, CSS 출력은 _global.scss로 분리. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(common): add Button, Toast, Header, BottomNavigation components - Button: primary / outline / disabled variants, design token 기반 - Toast: Zustand store 연동, 상단 고정, 시맨틱 컬러 토큰 적용 - Header: 뒤로가기 + title + subtitle 구조, 조건부 title centering - BottomNavigation: 4탭(홈/사건기록/일기/마이페이지), lucide-react 아이콘 - toastStore: Zustand UI 상태 (show/hide/message) * docs: update collaboration policy - GitHub Ruleset 브랜치 규칙 추가 (브랜치 Pattern 2, PR 제목 Pattern 1 분리) - Issues / Milestones / Project Board 미사용으로 관련 내용 제거 - GIT_WORKFLOW 작업 흐름에서 Issue 생성/자동종료 단계 제거 - PR_RULES PR 본문에서 관련 Issue 항목 제거 * feat(common): add Tabs, CaseCard, ActionPrompt, Input, Select, Textarea components Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): apply MUI icons and Snackbar, update MUI usage policy - Toast: MUI Snackbar (3s auto-dismiss) - BottomNavigation, Header, Select: lucide-react → @mui/icons-material - Install @mui/icons-material - CLAUDE.md, CODING_CONVENTION.md: MUI usage policy updated Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update icon policy — @mui/icons-material except diary feature Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: 사건조회 페이지 판결,유형 tab 공통 컴포넌트 생성 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 사건 관련 페이지의 진행 상태 컴포넌트 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: StatusBadge CSS 변수 하드코딩 제거 및 Tab className trailing space 수정 --------- Co-authored-by: jungmin park <jungxmin21@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat(common): add Button, Toast, Header, BottomNavigation components - Button: primary / outline / disabled variants, design token 기반 - Toast: Zustand store 연동, 상단 고정, 시맨틱 컬러 토큰 적용 - Header: 뒤로가기 + title + subtitle 구조, 조건부 title centering - BottomNavigation: 4탭(홈/사건기록/일기/마이페이지), lucide-react 아이콘 - toastStore: Zustand UI 상태 (show/hide/message) * docs: update collaboration policy - GitHub Ruleset 브랜치 규칙 추가 (브랜치 Pattern 2, PR 제목 Pattern 1 분리) - Issues / Milestones / Project Board 미사용으로 관련 내용 제거 - GIT_WORKFLOW 작업 흐름에서 Issue 생성/자동종료 단계 제거 - PR_RULES PR 본문에서 관련 Issue 항목 제거 * feat(common): add Tabs, CaseCard, ActionPrompt, Input, Select, Textarea components Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat(common): apply MUI icons and Snackbar, update MUI usage policy - Toast: MUI Snackbar (3s auto-dismiss) - BottomNavigation, Header, Select: lucide-react → @mui/icons-material - Install @mui/icons-material - CLAUDE.md, CODING_CONVENTION.md: MUI usage policy updated Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * docs: update icon policy — @mui/icons-material except diary feature Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(common): ActionPrompt message 제거 및 Textarea 글자수 카운터 absolute 배치 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- ApiResponse, ApiError, ApiFieldError, CategoryGroup (common.ts) - DisputeDto, CreateDisputeRequest, DisputeListResponse 등 (dispute.ts) - AiJudgmentDto, CreateAiJudgmentRequest 등 (judgment.ts) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- VALID_CATEGORY_GROUPS, IMMUTABLE_DISPUTE_STATUSES 상수 (constants/dispute.ts) - getSessionUserId NextAuth 세션 헬퍼 (auth/session.ts) - toAiJudgmentDto 공유 mapper (judgement/judgment.mapper.ts) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- GET /api/v1/disputes — 참여 사건 목록, categoryGroup 필터, 페이지네이션 - POST /api/v1/disputes — 사건 생성 + role_a 참여자 트랜잭션 등록 - GET /api/v1/disputes/:id — 사건 상세 조회 - PATCH /api/v1/disputes/:id — 사건 수정 (role_a 전용, 변경 불가 상태 차단) - DELETE /api/v1/disputes/:id — 사건 소프트 삭제 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- POST /api/v1/disputes/:id/judge — AI 판결 요청, JUDGING 상태 잠금으로 멱등성 보장 - GET /api/v1/disputes/:id/result — 판결 결과 조회 (참여자 전용) - AI 모듈 미구현 구간은 TODO 주석으로 마킹, 완료 전까지 503 반환 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: 사건조회 페이지 판결,유형 tab 공통 컴포넌트 생성 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 사건 관련 페이지의 진행 상태 컴포넌트 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: StatusBadge CSS 변수 하드코딩 제거 및 Tab className trailing space 수정 * fix: StatusBadge 크기 조정 및 .playwright-mcp gitignore 추가 - StatusBadge min-width, height, padding, border-radius 수정 - justify-content: center 추가 - .playwright-mcp/ gitignore 등록 - package-lock.json peer dependency 재분류 반영 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: jungmin park <jungxmin21@gmail.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: 판결 결과 컴포넌트 및 도메인 로직 초기 작업 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 판결 결과 페이지 구현 (#판결탭/유형탭/UI) - DisputePage: 판결/유형 서브탭(Tab 공통컴포넌트) 추가 - JudgmentResult: 이미지 기준 UI 재구성, nickname 적용 - JudgmentTypeResult: 유형탭 컴포넌트 신규 생성 (카드이미지, ActionPrompt) - Tab.module.scss: w60 h36 사이즈 조정 - DisputeParticipantDto: nickname 필드 추가 - disputes/[id]/route: nickname 조회 추가 - judgment.mapper: cardImageUrl 추가 - types/judgment: ConflictTypeDetailDto에 cardImageUrl 추가 - auth/index: 카카오 로그인 시 profileImageUrl 저장 - page.module.scss: diaryBox max-width 제거 - NewCaseButton: AbortController timeout 30s Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: next.config에 Supabase Storage 및 카카오 이미지 도메인 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: JudgmentResult Avatar img 태그를 next/image로 교체 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: PR #90 리뷰 반영 - participants nickname → name으로 변경 (DTO, route, 컴포넌트, useActiveCases) - next.config: 카카오 HTTP 패턴 제거 (HTTPS만 허용) - DisputePage: isCompleted null 케이스 처리 (!!dispute) - JudgmentResult.module.scss: declaration-empty-line-before stylelint 수정 - JudgmentTypeResult.module.scss: 동일 stylelint 수정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: PR #90 추가 리뷰 반영 - JudgmentResult/JudgmentTypeResult: props 대신 disputeId 기반 직접 API 호출 (새로고침 시 데이터 유실 방지, TanStack Query 캐시로 중복 요청 없음) - DisputePage: judgment/participants props 제거, isError 기반 에러 처리 - auth/index.ts: 프로필 이미지 백필 try-catch 감싸기 (실패 시 로그인 차단 방지) - judgement.api.ts: 에러 메시지 사용자 친화적으로 개선 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: 불필요한 스크린샷 PNG 파일 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * refactor: CalendarRecord 모델 제거 및 EmotionDiary title 필드 추가 - CalendarRecord 모델 및 CalendarRecordType enum 제거 - User, DisputeRoom, RoomAiConversation, Dispute에서 calendarRecords relation 제거 - EmotionDiary에 title 필드 추가 (VarChar 200) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 사건기록 페이지 API 연동 - GET /api/disputes에 completed=true 쿼리 파라미터 추가 (judged/closed 필터링) - fetchCompletedCases, useCompletedCases 추가 (카테고리 필터 + 최신순) - RecordListSection 더미 데이터 제거, 실제 API 연동 - 사건 박스 클릭 시 /disputes/{id}로 이동 (기존 Link 구조 유지) - 로딩/에러/빈 상태 처리 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 사건기록 빈 상태 UI 개선 - 빈 상태 텍스트 → '등록한 사건이 없어요' - character-case.png 이미지 + 텍스트 중앙 배치 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 사건박스 공통 컴포넌트 CaseRecordCard 분리 - CaseRecordCard 신규 생성 (src/components/ui) - MUI AvatarGroup으로 1인/2인 참여자 프로필 겹침 표시 - RecordListSection에서 CaseRecordCard 사용하도록 교체 - 카드 스타일 RecordListSection.module.scss → CaseRecordCard.module.scss로 이동 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 카카오 CDN http 프로토콜 이미지 허용 (img1.kakaocdn.net) 카카오 기본 프로필 이미지 URL이 http로 오는 경우가 있어 *.kakaocdn.net http 패턴 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 홈 페이지 배경 그라데이션 추가 (primary-200 → white) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 홈 그라데이션 범위 15%로 조정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: dispute.hooks.ts dev 브랜치 import 충돌 사전 해결 - UseQueryOptions, DisputeDto import 추가 (dev 브랜치 기준) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: dispute.hooks.ts dev 브랜치 useDispute refetchInterval 옵션 반영 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 코드레빗 및 juacheon 리뷰 반영 - disputes/route.ts: active/completed 동시 사용 시 if/else 분기로 필터 충돌 방지 - CaseRecordCard: <time> 요소에 dateTime 속성 추가 (접근성) - Header: transparent prop 추가, :global(header) 셀렉터 제거 - RecordListSection: 에러 메시지 구체화 - next.config.ts: 중복 HTTP 항목 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 2인 판결결과 점수 그래프 UI 수정 - isEqual/barEqual 제거, 색상 로직 ratioA >= ratioB 패턴으로 단순화 - scoreGraph margin-bottom 추가 - scoreAvatarImg 크기 명시적 fn.r(48)로 변경 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 2인 판결결과 그래프 디테일 수정 - 바 height 12 → 16, border-radius 6 → 4 - 중앙 실선 추가 (solid, border-strong, h36) - barDark 컬러 → status-disabled-text - scoreTitle 이름 부분만 bold 처리 - AI 고지 문구 컬러 → text-secondary Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 진술 탭 참여자 이름/MBTI 표시, 프로필 이미지 fallback 개선 - 진술 카드 레이블 A/B → 참여자 실명으로 변경 - 진술 카드 하단 프로필 이미지 + MBTI 추가 - DisputeParticipantDto에 mbti 필드 추가 - API participants에 mbti 포함 (disputes/[id] GET/PATCH) - profileImageUrl null 시 image 필드 fallback 적용 (목록/상세 API) - DisputePage.module.scss mixins import 추가 - JudgmentResult 그래프 점선/바 높이 디테일 수정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: JudgmentResult 참여자 이름 변수 통일 및 텍스트 치환 적용 - nameA / nameB 변수로 cardLabel, barLabel 통일 - replaceRoleNames 함수로 aFault/bFault/aSuggestedLine/bSuggestedLine 내 A님→실제이름 치환 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 코드레빗 리뷰 반영 - replaceRoleNames 단일 패스 치환으로 개선 (A님|B님 alternation) - disputes 목록/POST API Prisma 쿼리에 image 필드 선택 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * perf: statistics/categories API 빌드 시 DB 호출 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 카테고리 사건 2개 제한 및 사건기록 무한스크롤 - POST /api/rooms 카테고리당 진행중 사건 2개 초과 시 CATEGORY_LIMIT_EXCEEDED(422) 반환 - DisputeListResponse에 hasNext 필드 추가 - fetchCompletedCases 페이지 기반 API 호출로 전환 (limit 10) - useCompletedCases useInfiniteQuery로 전환 - RecordListSection IntersectionObserver 기반 무한스크롤 구현 - 모든 데이터 로드 시 '모든 데이터를 불러왔습니다' 표시 - NewCaseButton 카테고리 한도 초과 시 에러 모달 표시 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 코드레빗 리뷰 반영 - GET /api/disputes: completed 파라미터 where 조건 반영으로 hasNext 정확도 개선 - POST /api/disputes: 카테고리 한도 체크 추가 (직접 API 호출 우회 방지) - NewCaseButton: limitError 모달 표시 시 body 스크롤 잠금 처리 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 카테고리 한도 초과 에러 모달 UI 개선 - 기존 카테고리 패널 스타일 재사용 → 독립 검은 배경 센터 모달로 변경 - limitOverlay, limitModal, limitMessage, limitCloseButton 스타일 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 카테고리 한도 에러 모달 메시지 줄바꿈 적용 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 홈 통계 staleTime 24시간 → 1시간으로 단축 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 갈등유형 공유 페이지 분리 및 URL 공유 기능 구현 - /disputes/[id]/type 갈등유형 전용 페이지 신규 생성 (비회원 접근 가능) - GET /api/disputes/[id]/conflict-type 공개 API 추가 (유형명·이미지 URL만 반환) - 미들웨어에서 /disputes/[id]/type 인증 예외 처리 - 카카오 공유 → URL 복사(PC) / Web Share API(모바일) 방식으로 변경 - generateMetadata로 OG 메타 태그 생성 (og:image에 cardImageUrl 적용) - root layout에 metadataBase 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 갈등유형 결과 이미지 다운로드 기능 구현 - ConflictTypeClient, JudgmentTypeResult 결과 다운받기 버튼 활성화 - Supabase Storage 이미지 fetch 후 Blob 변환으로 로컬 저장 - fetch 실패(CORS 등) 시 새 탭으로 열어 수동 저장 유도 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: metadataBase에 VERCEL_URL fallback 추가 - 배포 환경에서 NEXT_PUBLIC_BASE_URL 미설정 시 VERCEL_URL을 자동 감지하여 사용 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: ConflictTypeDetail Prisma 필드명 card_image_url로 수정 - cardImageUrl은 @Map 없이 card_image_url로 정의된 필드 - select 및 반환 시 camelCase 변환 처리 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: JudgmentTypeResult에 disputeId prop 전달 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: ConflictTypeClient data null 체크 옵셔널 체이닝 적용 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 코드레빗 리뷰 반영 (res.ok 체크, SCSS 린트, 에러 로그, Kakao SDK 제거) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 갈등 유형 탭 이름 표시를 role_a 고정에서 현재 사용자 기준으로 수정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: session.user.id 타입 오류 수정 및 유형 탭 이름 표시 fallback 처리 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: PR #124 리뷰 반영 - ConflictTypeClient 에러 상태 뒤로가기, 타이틀 개인화, 비로그인 버튼 경로 수정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 새 사건 카테고리 패널 딤 배경 적용, 에러 알림 모달로 변경, 홈 캐릭터 이미지 위치 조정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: closed 상태 판결 결과 미로드, 기본 이미지 확장자 통일, replaceRoleNames 순서 버그 수정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 갈등 유형 카드 이미지 max-width 360px 제한 적용 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
fix(chatbot): Apply Gemini model fallback logic Replace single-model retry with multi-model fallback matching the pattern used in moderation and judgment. On 503/404/429 errors the chatbot now cycles through gemini-2.0-flash-lite, gemini-2.5-flash, and gemini-1.5-flash before giving up. @ Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* @ fix: Replace deprecated gemini-1.5-flash with gemini-2.0-flash gemini-1.5-flash is no longer available in the v1beta API, causing 404 errors when all prior fallback models also fail. Update the last resort model to gemini-2.0-flash across chatbot, moderation, and judgment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> @ * @ fix: Remove deprecated models and add per-model retry for 503/429 gemini-2.0-flash-lite, gemini-2.0-flash, gemini-1.5-flash are all deprecated (404). Replace with gemini-2.5-flash + gemini-2.5-pro fallback. Add per-model retry (up to 2 attempts with backoff) for transient 503/429 errors before switching to next model. Apply to chatbot, moderation, and judgment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> @ * @ fix: Use gemini-2.5-flash only with increased retry count Remove multi-model fallback to avoid gemini-2.5-pro cost overhead. Use gemini-2.5-flash as single model with up to 3 retries on transient 503/429 errors across chatbot, moderation, and judgment. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> @ * @ fix(chatbot): Add plain text only instruction to system prompt Gemini sometimes returns markdown syntax (**, ##) in responses which renders as literal characters in the chat UI. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> @ --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- MBTI 텍스트가 이름 시작점과 동일하게 왼쪽 정렬되도록 수정 - badge 스타일에서 불필요한 padding, background, border-radius 제거 Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
- HomeServiceInfo 공통 컴포넌트에서 고객문의 항목 삭제 - 서비스 소개, 개인정보 처리방침, 이용약관 3개만 표시 Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* refactor(home): 홈 헤더 직접 렌더 구조로 전환
- layout에서 홈('/') 경로일 때 Header 렌더 스킵
- page.tsx에서 SetHeader 제거 후 Header 직접 렌더
- Header 컴포넌트에 className prop 추가 (optional, 하위 호환)
- page.module.scss를 src/app/에서 src/app/(page)/로 이동
- HomeGreeting import 경로 업데이트
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* design: 메인페이지 디자인 스타일 수정
* chore: 버튼 소개링크로 변경
* design: 메인 진행중인사건 텍스트 수정
* design: 패딩 수정
* design: 하단 플로팅버튼 디자인수정
* design: 캘린더 페이지 하단 플로팅 스타일 수정
* style: 플로팅 버튼 고정
* style: 사건기록 탭 스타일 수정
* style: 마이페이지, 캘린더 메뉴 스타일 수정
* style:판결결과 페이지 스타일 수정
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* feat: 404/500/global 에러 페이지 디자인 구현 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 에러 페이지 img -> next/image 교체 및 eslint 경고 수정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 에러 페이지 뒤로가기 히스토리 없을 시 홈 이동 폴백 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* refactor(home): 홈 헤더 직접 렌더 구조로 전환
- layout에서 홈('/') 경로일 때 Header 렌더 스킵
- page.tsx에서 SetHeader 제거 후 Header 직접 렌더
- Header 컴포넌트에 className prop 추가 (optional, 하위 호환)
- page.module.scss를 src/app/에서 src/app/(page)/로 이동
- HomeGreeting import 경로 업데이트
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* design: 메인페이지 디자인 스타일 수정
* chore: 버튼 소개링크로 변경
* design: 메인 진행중인사건 텍스트 수정
* design: 패딩 수정
* design: 하단 플로팅버튼 디자인수정
* design: 캘린더 페이지 하단 플로팅 스타일 수정
* style: 플로팅 버튼 고정
* style: 사건기록 탭 스타일 수정
* style: 마이페이지, 캘린더 메뉴 스타일 수정
* style:판결결과 페이지 스타일 수정
* fix: 코드래빗 리뷰 반영 - 접근성·스타일 수정
- mypage: menu__item--danger 클래스 누락 복구 (회원탈퇴 강조 색상)
- disputes: Space 키 onKeyDown에 e.preventDefault() 추가 (스크롤 방지)
- page.module.scss, StatsCategorySection.module.scss: @include 뒤 빈 줄 추가
- Tab.module.scss: 불필요한 빈 줄 제거
Co-Authored-By: Claude <noreply@anthropic.com>
* style: 랜딩페이지 버튼 컬러추가
* style: 마이페이지 메뉴순서 및 컬러 변경
* style: 컨텐츠 사이즈 수정 및 경계 추가
* style: 감정일기 페이지 스타일 수정
* fix: fixed 푸터에 max-width 및 margin auto 추가
뷰포트가 768px을 초과할 때 fixed 푸터가 전체 너비로 늘어나는 문제 수정.
left: 0; right: 0; 만 있던 푸터에 max-width와 margin: 0 auto를 추가해
컨테이너 너비 기준으로 중앙 정렬되도록 처리.
Co-Authored-By: Claude <noreply@anthropic.com>
* fix(join): 초대 페이지 닉네임 폴백 및 min-height 추가
- inviterNickname 조회 시 nickname이 null이면 name으로 폴백
- Prisma select에 name 필드 추가
- .page에 min-height: 100dvh 추가하여 버튼이 하단에 위치하도록 수정
Co-Authored-By: Claude <noreply@anthropic.com>
* style: 전체페이지 2차 스타일수정
* fix: 코드래빗 리뷰 반영 - MUI 아이콘 size prop 수정 및 탭 오버플로우 개선
- StatsCategorySection: MUI 아이콘 지원하지 않는 size prop → sx={{ fontSize: 18 }} 변경
- Tab.module.scss: width 고정값 → min-width로 변경하여 텍스트 오버플로우 방지
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(login): 카카오 로고 인라인 SVG → logo_kakao.svg 파일로 교체
인라인 SVG path가 실제 카카오 로고와 달라 깨져 보이는 문제 수정.
public/images/common/logo_kakao.svg 파일을 Next.js Image 컴포넌트로 사용.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
chore: 일기 감정별 부엉이 캐릭터 이미지 업로드
* feat: 404/500/global 에러 페이지 디자인 구현 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 에러 페이지 img -> next/image 교체 및 eslint 경고 수정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 에러 페이지 뒤로가기 히스토리 없을 시 홈 이동 폴백 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 갈등 유형 공유 링크 비로그인 접근 시 공유자 이름 표시 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 갈등 유형 공유 페이지 커스텀 헤더 -> 공통 Header 컴포넌트로 교체 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 유형 탭 하단 과도한 여백 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 유형 탭 contentType 조건 누락 수정 및 공유 텍스트 개선 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: kakaoShare window 가드 및 키 유효성 검사 추가, disputeId 인코딩 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * feat: 이미지 저장 방식을 navigator.share(files)로 변경하여 갤러리 직접 저장 지원 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * chore: .gitignore에서 TROUBLESHOOTING.md 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: 이미지 공유 취소(AbortError) 처리 및 res.ok 검사 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
로그인 상태면 홈(/), 비로그인이면 로그인(/login)으로 이동하도록 변경. useSession으로 인증 상태 확인. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* docs: README.md 프로젝트 현황 기반 전면 개편 서비스 로고 및 기술 스택 뱃지, 핵심 흐름과 주요 기능 테이블, Frontend/Backend 기술 스택 분리 정리, 프로젝트 디렉토리 구조, 시작하기 가이드, Git 브랜치 전략 등 프로젝트 전반 내용을 반영. Co-Authored-By: Claude <noreply@anthropic.com> * docs: README에서 라이선스 섹션 삭제 퍼블릭 리포지토리이므로 비공개 프로젝트 문구 제거. Co-Authored-By: Claude <noreply@anthropic.com> * docs: README를 프로젝트 기획 배경·기술 해결·학습 중심으로 재구성 실행 가이드 중심에서 포트폴리오 관점으로 전환: - 프로젝트 탄생 배경 (문제 인식, 해결 방향) - 핵심 기능별 기술적 해결 방법 (AI 판결, 상태 전환, 감정일기, 선물추천) - 프로젝트를 통해 학습한 점 (DDD, 상태 관리 분리, AI 안정성, 보안 설계, 문서 중심 협업) Co-Authored-By: Claude <noreply@anthropic.com> * docs: README에 팀원 프로필 추가 PR 기록 기반으로 5명 팀원의 역할과 담당 영역 정리. 도메인별 풀스택 개발 구조를 반영하여 역할 구분. Co-Authored-By: Claude <noreply@anthropic.com> * fix(docs): 팀원 이름 줄바꿈 방지 및 담당 영역 간결화 nobr 태그로 이름 줄바꿈 방지, 담당 영역 텍스트 축약으로 열 너비 확보. Co-Authored-By: Claude <noreply@anthropic.com> * docs: 이승규 팀원 프로필에 DB 관리 역할 추가 Co-Authored-By: Claude <noreply@anthropic.com> * docs: README에 개발 워크플로우 섹션 추가 브랜치 전략, 개발 흐름(dev 최신화→브랜치→검증→PR→리뷰→Squash Merge), 커밋 컨벤션을 프로젝트 실제 운영 기준으로 정리. Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
style(about): about 페이지 텍스트 수정
* docs: 프로젝트 아키텍처, 디자인 시스템, ERD 문서 추가 시스템 아키텍처(ARCHITECTURE.md), 디자인 시스템 가이드(DESIGN.md), ERD v2.7(ERD.md) 문서를 추가한다. Co-Authored-By: Claude <noreply@anthropic.com> * docs: CLAUDE.md 참조 문서 목록을 실제 존재 파일 기준으로 갱신 존재하지 않는 문서 제거: PRD.md, FUNCTIONAL_REQUIREMENTS.xlsx, NON_FUNCTIONAL_REQUIREMENTS.xlsx, TASK_ASSIGNMENT.xlsx 누락된 문서 추가: DESIGN.md, PAGES.md, GITHUB_COLLABORATION_POLICY.md, VERCEL_DEPLOYMENT_GUIDE.md Co-Authored-By: Claude <noreply@anthropic.com> --------- Co-authored-by: Claude <noreply@anthropic.com>
* feat : 사건 판결 선물추천기능 추가 * feat: 감정일기 상세페이지 카테고리별 배경 및 이미지변경 추가 * fix(calendar): 슬라이드 트랜지션 minHeight 제거로 탭 클릭 차단 문제 수정 MuiDayCalendar-slideTransition에 minHeight: 512 설정으로 인해 달력 콘텐츠 아래 투명 영역이 생겨 사건기록 탭 클릭이 차단되던 문제 수정. 바깥 DateCalendar의 minHeight: 512로 레이아웃 안정성은 유지. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix : 캘린더 사건조회 오류 수정 및 판결결과 선물추천기능 이미지 로딩 스켈레톤처리 * fix : 선물 추천 sql 쿼리 수정( 추천선물상품 제공) --------- Co-authored-by: 배근영 <bgy09270@naver.com> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(loading): 부엉이 캐릭터 스피너로 로딩 페이지 교체 텍스트만 표시하던 로딩 페이지를 character-loading.svg 기반 float 애니메이션 스피너로 교체 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix(loading): 기존 Spinner 컴포넌트로 교체 직접 구현한 float 애니메이션 대신 기존 Spinner 컴포넌트 사용 MUI CircularProgress + 부엉이 캐릭터 조합으로 통일 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
카카오톡 링크 공유 시 OG 이미지가 표시되지 않는 문제 수정 - metadataBase에서 미설정된 NEXT_PUBLIC_BASE_URL 대신 기존 환경변수 NEXT_PUBLIC_APP_URL 사용 - layout.tsx, kakaoShare.ts, disputes/[id]/type/page.tsx 일괄 변경 Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
# Conflicts: # src/app/(page)/disputes/[id]/type/page.tsx # src/app/layout.tsx # src/lib/utils/kakaoShare.ts
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
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.
Summary
NEXT_PUBLIC_APP_URL통일 관련 컨플릭트 해결🤖 Generated with Claude Code