Skip to content

Conversation

@sxunea
Copy link
Collaborator

@sxunea sxunea commented Sep 24, 2025

작업 내용

  • 요정 리스트가 비어있을 때 selectedFairy = coerceIn(0, -1) 이 됨에 따라 크래시, 따라서 수정 : null 로 fallback 하게
  • selectedFairy가 null인 경우
    • FairySelectionBottomSection에서 요정 선택 실패 시 "다시 대화하기" 옵션만 노출해 재시도 유도하도록 수정

이건 꼭 봐주세요

  • 서버에서 수정해주긴했지만, 혹시나 해서 방어 코드 추가했어요 .

Summary by CodeRabbit

  • 버그 수정

    • 요정 목록이 비어 있을 때 선택값 계산을 안전하게 처리해 잠재적 오류를 예방했습니다.
    • 선택 여부와 관계없이 “다시 대화하기”가 안정적으로 노출되도록 UI 플로우를 보완했습니다.
  • 스타일

    • 확인 버튼 문구를 “내 감정은 ${emotion}인 것 같아”로 다듬어 자연스러움을 개선했습니다.
    • 온보딩 7단계 말풍선 어조를 “있어요”에서 “있어”로 조정해 톤을 통일했습니다.
    • 하단 레이아웃에 여백을 추가해 가독성과 균형을 개선했습니다.

- coerceIn이 (0,-1) 이 되버려서 오류 발생
- null 보내주고, FairySelectionBottomSection 에서 selectedFairy가 null 인 경우 다시 대화하기 만 노출시키도록 개선
@coderabbitai
Copy link

coderabbitai bot commented Sep 24, 2025

Walkthrough

채팅 화면의 요정 선택 섹션에서 선택 계산을 안전화하고 버튼/레이아웃 문구를 수정했습니다. 온보딩 7단계 말풍선의 문구를 간단히 변경했습니다. 외부 공개 시그니처 변경은 없습니다.

Changes

Cohort / File(s) Summary
Chatting — Fairy selection UI/logic
feature/chatting/src/commonMain/kotlin/com/nexters/emotia/feature/chatting/ChattingScreen.kt
빈 목록 시 selectedFairynull로 계산하도록 가드 추가, 확인 버튼 문구 변경, 선택이 존재할 때 항상 “다시 대화하기”가 렌더링되도록 조건/레이아웃 조정 및 간격 추가
Onboarding — Story content text
feature/onboarding/src/commonMain/kotlin/com/nexters/emotia/feature/onboarding/OnBoardingScreen.kt
온보딩 7단계 말풍선 문구의 종결 어미를 “있어요.” → “있어.”로 변경

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant U as User
  participant CS as ChattingScreen
  participant FS as FairySelectionSection
  participant BTN as BottomActions

  U->>CS: 화면 진입
  CS->>FS: 요정 목록 전달
  FS->>FS: selectedFairy = list.getOrNull(index)
  alt 요정 선택됨
    FS-->>BTN: 확인 버튼 활성/문구 업데이트
    FS-->>BTN: "다시 대화하기" 표시
  else 선택 없음 또는 빈 목록
    FS-->>BTN: 확인 버튼 비활성/미표시
    note right of BTN: 선택 없음 상태 유지
  end

  U->>BTN: 확인 탭
  alt selectedFairy != null
    BTN->>CS: 확정 처리
  else
    BTN-->>U: 무응답/비활성
  end

  U->>BTN: 다시 대화하기 탭
  BTN->>CS: 재시작 흐름 트리거
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested reviewers

  • jife-archive
  • haeti-dev

Poem

꼬박꼬박 말풍선 다듬고, 버튼 글도 반짝—✨
빈 바구니엔 요정 null, 튼튼한 가드 착!
다시 대화 팝-업, 토닥토닥 리트라이 🐇
살짝 줄인 끝말, 리듬이 꼭 맞아.
깡총—작은 수선이 오늘의 큰 기쁨!

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
Title Check ❓ Inconclusive 제목 "[fix/#51] QA 이슈 수정"은 관련 이슈 번호와 수정 의도를 나타내어 연관성은 있으나 이번 PR의 주요 변경사항(빈 fairy 리스트에서의 크래시 방지와 재시도 UI 고정 등)을 요약하지 않아 모호하므로 빠른 스캔 시 핵심을 파악하기 어렵습니다. 제목을 "채팅: 빈 fairy 리스트 안전 처리 및 재시도 UI 고정 (#51)"처럼 주요 변경점을 간결히 담도록 수정해 주세요.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues Check ✅ Passed PR 설명과 변경 요약을 보면 연결된 이슈 #51의 UI/UX 수정 목적에 부합하며 빈 fairy 리스트에서 발생하던 크래시를 방지하는 방어 로직 추가와 재시도 옵션 노출 등 코드 수준의 요구사항을 충족하고 있습니다.
Out of Scope Changes Check ✅ Passed 변경은 chatting 및 onboarding 관련 UI 문구와 빈 리스트 방어 로직에 국한되어 있으며 공개 API 변경이나 연결된 이슈와 무관한 파일 수정은 발견되지 않아 범위 외 변경으로 보이지 않습니다.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/qa-issue

Tip

👮 Agentic pre-merge checks are now available in preview!

Pro plan users can now enable pre-merge checks in their settings to enforce checklists before merging PRs.

  • Built-in checks – Quickly apply ready-made checks to enforce title conventions, require pull request descriptions that follow templates, validate linked issues for compliance, and more.
  • Custom agentic checks – Define your own rules using CodeRabbit’s advanced agentic capabilities to enforce organization-specific policies and workflows. For example, you can instruct CodeRabbit’s agent to verify that API documentation is updated whenever API schema files are modified in a PR. Note: Upto 5 custom checks are currently allowed during the preview period. Pricing for this feature will be announced in a few weeks.

Please see the documentation for more information.

Example:

reviews:
  pre_merge_checks:
    custom_checks:
      - name: "Undocumented Breaking Changes"
        mode: "warning"
        instructions: |
          Pass/fail criteria: All breaking changes to public APIs, CLI flags, environment variables, configuration keys, database schemas, or HTTP/GraphQL endpoints must be documented in the "Breaking Change" section of the PR description and in CHANGELOG.md. Exclude purely internal or private changes (e.g., code not exported from package entry points or explicitly marked as internal).

Please share your feedback with us on this Discord post.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Collaborator

@haeti-dev haeti-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생했어~

Comment on lines -537 to +541
text = "내 감정은 ${selectedFairy.emotion}이야",
text = "내 감정은 ${selectedFairy.emotion}인 것 같아",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

자신감이 없어진 요정 ㅋㅋ

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

제미나이는 좀 없어도돼 🥹

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (2)
feature/onboarding/src/commonMain/kotlin/com/nexters/emotia/feature/onboarding/OnBoardingScreen.kt (2)

263-267: 문체 일관성 확인 필요 (‘있어요’ → ‘있어’ 변경).

7단계만 반말로 변경되었고, 0단계/4단계는 여전히 존댓말이 섞여 있어 톤이 혼재됩니다. 온보딩 내 내레이션/캐릭터 보이스 톤 가이드에 맞춰 전 단계의 문체를 통일할지 확인 부탁드립니다. 의도한 전환이라면 OK, 아니라면 7단계를 원문(“…숨겨져 있어요.”)으로 되돌리거나, 다른 스텝도 반말로 정리하는 방안을 권장합니다.


256-268: 하드코딩된 문구의 리소스화 제안.

말풍선 텍스트가 코드에 직접 하드코딩되어 있어 i18n/카피 수정을 반복할 때 변경 범위가 커집니다. 문자열 리소스로 분리하면 번역/카피 수정, A/B 테스트, 접근성(콘텐츠 설명 일관화)에 유리합니다.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fa5a59c and 2bd247b.

📒 Files selected for processing (2)
  • feature/chatting/src/commonMain/kotlin/com/nexters/emotia/feature/chatting/ChattingScreen.kt (2 hunks)
  • feature/onboarding/src/commonMain/kotlin/com/nexters/emotia/feature/onboarding/OnBoardingScreen.kt (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: build
  • GitHub Check: Firebase App Distribution
🔇 Additional comments (3)
feature/chatting/src/commonMain/kotlin/com/nexters/emotia/feature/chatting/ChattingScreen.kt (3)

432-438: 빈 요정 리스트에 대한 안전한 처리가 잘 적용됨

빈 요정 리스트일 때 selectedFairynull로 설정되도록 변경하여, 이전에 발생했던 coerceIn(0, -1) 크래시 문제를 효과적으로 방지했습니다.


541-541: 확정 버튼 문구 개선

"내 감정은 ${selectedFairy.emotion}이야"에서 "내 감정은 ${selectedFairy.emotion}인 것 같아"로 변경하여 더 부드럽고 자연스러운 어조로 개선되었습니다.


547-560: "다시 대화하기" 옵션 항상 표시로 변경

이전에는 조건부로 표시되었던 "다시 대화하기" 옵션이 이제 요정 선택 상태와 관계없이 항상 표시되도록 변경되었고, 적절한 간격(24dp)도 추가되어 UI 일관성이 향상되었습니다.

@sxunea sxunea merged commit e3ae4fe into develop Sep 24, 2025
3 checks passed
@sxunea sxunea deleted the fix/qa-issue branch September 24, 2025 13:27
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.

[fix] QA 이슈 수정

3 participants