Skip to content

🚀 Deploy 20260210-v1.0.32#32

Merged
Cassiiopeia merged 13 commits intodeployfrom
main
Feb 10, 2026
Merged

🚀 Deploy 20260210-v1.0.32#32
Cassiiopeia merged 13 commits intodeployfrom
main

Conversation

@Cassiiopeia
Copy link
Contributor

@Cassiiopeia Cassiiopeia commented Feb 10, 2026

Summary by CodeRabbit

릴리스 노트

  • New Features

    • 회원 가입 단계에서 서버에서 제공한 닉네임 지원 추가
    • 성별 선택 UI 개선: "기타" 옵션을 "선택 안 함"으로 변경
    • 닉네임 중복 확인 버튼 추가로 명시적 검증 지원
  • Improvements

    • 회원 가입 단계에서 뒤로 가기 네비게이션 제거하여 일관된 진행 경험 제공
    • Google/Apple 로그인 시 더 자세한 오류 메시지 표시
    • 로그아웃 시 더 상세한 기기 정보 전송
  • Documentation

    • API 사양 및 OpenAPI 명세 문서 추가
  • Chores

    • 버전 1.0.32로 업데이트
    • CI/CD 파이프라인 개선으로 빠른 빌드 피드백 제공

actions-user and others added 12 commits February 10, 2026 00:58
@coderabbitai
Copy link

coderabbitai bot commented Feb 10, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • main

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

CI/CD 워크플로우를 멀티 스테이지 파이프라인으로 재구성하고, 인증 인터셉터를 통합하며, 온보딩 플로우를 개선했습니다. API 명세 문서를 추가하고, 버전을 1.0.32로 업데이트했습니다.

Changes

Cohort / File(s) Summary
GitHub Actions CI/CD 워크플로우
.github/workflows/PROJECT-FLUTTER-CI.yaml
단순 체크에서 prepare → analyze → build-android/build-ios → report의 멀티 스테이지, 조건부 빌드 파이프라인으로 전환. 워크플로우 dispatch 입력, PR 진행 상태 댓글, 빌드 결과 요약 기능 추가.
인증 및 네트워크 계층
lib/core/network/api_client.dart, lib/core/network/api_client.g.dart, lib/core/network/auth_interceptor.dart, lib/core/network/token_refresh_interceptor.dart, lib/core/constants/api_endpoints.dart, lib/core/network/error_interceptor.dart
독립 TokenRefreshInterceptor를 제거하고, 통합 AuthInterceptor로 토큰 주입, 401 갱신, Firebase 로그아웃을 처리. Dio 인스턴스를 keepAlive로 변경. wsUrl 제거 및 baseUrl 강제 조건 추가. 에러 인터셉터에서 errorCode 필드 지원 추가.
인증 도메인
lib/features/auth/data/datasources/auth_remote_datasource.dart, lib/features/auth/data/models/auth_request.dart, lib/features/auth/data/models/auth_request.freezed.dart, lib/features/auth/data/models/auth_request.g.dart, lib/features/auth/data/repositories/auth_repository_impl.dart, lib/features/auth/domain/repositories/auth_repository.dart, lib/features/auth/presentation/providers/auth_provider.dart, lib/features/auth/presentation/providers/auth_provider.g.dart
로그아웃 API에 AuthRequest 페이로드 추가 (기기 및 사용자 정보 포함). 로그인 실패 시 백엔드 에러 메시지 추출 로직 추가. Firebase 로그아웃 처리 통합.
온보딩 데이터 모델
lib/features/onboarding/data/models/gender_request.dart, lib/features/onboarding/data/models/gender_request.g.dart, lib/features/onboarding/data/models/profile_request.dart, lib/features/onboarding/data/models/profile_request.freezed.dart, lib/features/onboarding/data/models/profile_request.g.dart, lib/features/onboarding/data/models/terms_request.dart, lib/features/onboarding/data/models/terms_request.freezed.dart, lib/features/onboarding/data/models/terms_request.g.dart
Gender enum에서 other → notSelected로 변경. ProfileRequest에 gender, birthDate 필드 추가. CheckNameResponse의 available → isAvailable, message 제거 및 name 추가. TermsRequest를 serviceAgreement/privacyAgreement → isServiceTermsAndPrivacyAgreed로 통합.
온보딩 비즈니스 로직
lib/features/onboarding/data/datasources/onboarding_remote_datasource.dart, lib/features/onboarding/data/repositories/onboarding_repository_impl.dart, lib/features/onboarding/domain/repositories/onboarding_repository.dart
submitGender가 서버 제공 닉네임(String?)을 반환하도록 변경. submitProfile이 gender, birthDate 선택적 매개변수 수용. 용어 제출 시 필드명 업데이트 적용.
온보딩 UI 페이지
lib/features/onboarding/presentation/pages/birth_date_step_page.dart, lib/features/onboarding/presentation/pages/gender_step_page.dart, lib/features/onboarding/presentation/pages/nickname_step_page.dart
모든 페이지에서 뒤로가기 버튼 제거 (automaticallyImplyLeading: false). 성별 선택에서 "기타" → "선택 안 함" 텍스트 링크로 변경. 닉네임 페이지에서 서버 제공 초기값 사전 로드, 명시적 중복 확인 버튼, 변경 감지 로직 추가.
온보딩 상태 관리
lib/features/onboarding/presentation/providers/onboarding_provider.dart, lib/features/onboarding/presentation/providers/onboarding_provider.g.dart
@Riverpod에서 @Riverpod(keepAlive: true)로 변경하여 상태 유지. submitGender에서 반환된 닉네임 저장. checkNickname 응답 필드명 업데이트. submitProfile에서 gender, birthDate 처리 및 완료 상태 전환.
초기화 및 설정
lib/main.dart, devtools_options.yaml, pubspec.yaml, version.yml, README.md
main.dart에서 flutter_dotenv 환경 변수 로드 추가. DevTools 설정 파일 추가. 패키지 버전 1.0.32로 업데이트, retrofit 의존성 고정.
API 문서
docs/API_SPECIFICATION.md, docs/api-docs.json
OpenAPI 3.1.0 기반 완전한 API 명세 문서 추가 (인증, 회원, 콘텐츠, 장소, AI 서버 엔드포인트 포함).
구현 계획 문서
docs/plans/2026-02-10-fix-nickname-submit-button.md, docs/plans/2026-02-10-gender-not-selected-ui.md, docs/plans/2026-02-10-remove-onboarding-back-navigation.md
닉네임 버튼 활성화, 성별 미선택 UI, 온보딩 뒤로가기 제거 구현 계획 문서 추가.

Sequence Diagram(s)

sequenceDiagram
    participant Client as 클라이언트 앱
    participant Auth as AuthInterceptor
    participant Dio as Dio (메인)
    participant RefreshDio as Dio (갱신)
    participant Backend as 백엔드
    participant Firebase as Firebase Auth

    Client->>Dio: API 요청 (AccessToken 포함)
    Dio->>Auth: 인터셉트
    Auth->>Dio: 토큰 주입 (Authorization 헤더)
    Dio->>Backend: 요청 전송
    
    Backend-->>Dio: 401 응답
    Dio->>Auth: 401 응답 감지
    
    Auth->>RefreshDio: 토큰 갱신 요청
    RefreshDio->>Backend: POST /api/auth/reissue
    Backend-->>RefreshDio: 새 토큰 반환
    
    RefreshDio-->>Auth: 새 토큰 저장
    Auth->>Dio: 원래 요청 재시도
    Dio->>Backend: API 요청 (새 토큰)
    Backend-->>Dio: 200 성공
    
    Dio-->>Client: 성공 응답
    
    alt 토큰 갱신 실패
        Auth->>Firebase: 로그아웃
        Firebase-->>Auth: 로그아웃 완료
        Auth->>Client: onForceLogout 콜백
    end
Loading
sequenceDiagram
    participant Event as 트리거<br/>(PR/Push/Dispatch)
    participant Prepare as prepare<br/>작업
    participant Analyze as analyze<br/>작업
    participant BuildA as build-android<br/>작업
    participant BuildI as build-ios<br/>작업
    participant Report as report<br/>작업

    Event->>Prepare: 시작
    Prepare->>Prepare: 설정 수집 & 해석
    Prepare-->>Prepare: PR 진행 상태 댓글 생성
    
    par 병렬 분석 및 빌드
        Prepare->>Analyze: 조건부 시작
        Analyze->>Analyze: Flutter 분석 실행
        Analyze-->>Analyze: 상태/소요시간 기록
        
        Prepare->>BuildA: ANALYZE_ONLY=false 시 시작
        BuildA->>BuildA: Android APK 빌드
        BuildA-->>BuildA: 상태/소요시간 기록
        
        Prepare->>BuildI: ANALYZE_ONLY=false 시 시작
        BuildI->>BuildI: iOS 빌드 (서명 제외)
        BuildI-->>BuildI: 상태/소요시간 기록
    end
    
    Analyze-->>Report: 완료 신호
    BuildA-->>Report: 완료 신호
    BuildI-->>Report: 완료 신호
    
    Report->>Report: 최종 요약 댓글 작성
    Report-->>Report: 전체 소요시간 계산
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Possibly related PRs

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch main

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.

@Cassiiopeia Cassiiopeia changed the title deploy 🚀 Deploy 20260210-v1.0.32 Feb 10, 2026
@Cassiiopeia
Copy link
Contributor Author

@coderabbitai summary

@coderabbitai
Copy link

coderabbitai bot commented Feb 10, 2026

✅ Actions performed

Summary regeneration triggered.

@github-actions
Copy link
Contributor

✅ 변경사항이 자동으로 deploy 브랜치에 적용되었습니다. PR을 수동으로 닫아주세요.

@Cassiiopeia Cassiiopeia merged commit d46007e into deploy Feb 10, 2026
1 check 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.

3 participants