Skip to content

🚀 Deploy 20260223-v1.0.42#40

Merged
Cassiiopeia merged 4 commits intodeployfrom
main
Feb 23, 2026
Merged

🚀 Deploy 20260223-v1.0.42#40
Cassiiopeia merged 4 commits intodeployfrom
main

Conversation

@Cassiiopeia
Copy link
Contributor

@Cassiiopeia Cassiiopeia commented Feb 23, 2026

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • AI 장소 추출 기능 추가: SNS 링크에서 위치 정보를 자동으로 추출하고, 추출된 장소를 선택하여 저장할 수 있습니다.
  • 버전 업데이트

    • 버전 1.0.42로 업데이트되었습니다.

@Cassiiopeia
Copy link
Contributor Author

@coderabbitai summary

@Cassiiopeia Cassiiopeia changed the title deploy 🚀 Deploy 20260223-v1.0.42 Feb 23, 2026
@coderabbitai
Copy link

coderabbitai bot commented Feb 23, 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

개요

AI 장소 추출 기능을 새로 구현하여 URL 입력 → 분석 → 결과 표시 → 저장의 완전한 워크플로우를 추가했습니다. PlaceModel을 공통 모듈로 이동시키고 라우팅을 업데이트하며 버전을 1.0.42로 올렸습니다.

변경사항

동작 집합 / 파일 요약
AI 추출 기능 - 상태 관리 및 프로바이더
lib/features/ai_extraction/presentation/ai_extraction_provider.dart
AiExtractionStep, AiExtractionState, AiExtractionNotifier를 구현하여 URL 검증, 분석 요청, 5초 주기 폴링, 결과 표시, 선택 항목 저장을 관리합니다. 폴링 타임아웃, 부분 실패 처리, 상태 전환 로직 포함.
AI 추출 기능 - UI 페이지 및 위젯
lib/features/ai_extraction/presentation/pages/ai_extraction_page.dart, lib/features/ai_extraction/presentation/widgets/url_input_section.dart, lib/features/ai_extraction/presentation/widgets/analyzing_section.dart, lib/features/ai_extraction/presentation/widgets/place_result_section.dart
URL 입력 필드, 분석 중 표시기, 결과 목록 선택/저장 UI를 포함하는 ConsumerStatefulWidget 페이지와 3개의 전용 위젯을 추가합니다.
AI 추출 기능 - 데이터 계층
lib/features/ai_extraction/data/ai_extraction_remote_datasource.dart, lib/features/ai_extraction/data/ai_extraction_repository.dart, lib/features/ai_extraction/data/ai_extraction_repository_impl.dart, lib/features/ai_extraction/data/models/analyze_request.dart, lib/features/ai_extraction/data/models/analyze_response.dart, lib/features/ai_extraction/data/models/content_detail_response.dart
Dio 기반 HTTP 통신, Riverpod 프로바이더, Freezed 모델(AnalyzeRequest, AnalyzeResponse, ContentDetailResponse)을 포함한 완전한 원격 데이터 소스 및 저장소 계층을 구현합니다.
PlaceModel 통합
lib/common/models/place_model.dart, lib/features/home/data/models/place_model.freezed.dart, lib/features/home/data/models/place_model.g.dart, lib/features/home/data/models/content_response.dart, lib/features/home/presentation/home_provider.dart, lib/features/home/presentation/widgets/place_card.dart
PlaceModel을 lib/common/models/로 이동하고, 홈 피처의 생성된 Freezed 파일 및 JSON 파일을 제거한 후, 관련 임포트를 패키지 경로로 업데이트합니다. PlaceModel의 주석을 "(공통)" 표시로 갱신합니다.
라우팅 및 네비게이션
lib/routing/route_paths.dart, lib/routing/app_router.dart, lib/common/widgets/main_scaffold.dart
AI 추출 페이지에 대한 라우팅 상수(/ai-extraction, ai-extraction)를 추가하고, FAB 동작을 SnackBar에서 라우트 네비게이션으로 변경합니다.
버전 및 메타데이터
.gitignore, README.md, pubspec.yaml, version.yml
.issue 파일 무시 규칙을 추가하고, 버전을 1.0.42로 업그레이드하며, README 배지를 갱신하고, 빌드 템플릿 메타데이터를 추가합니다.

시퀀스 다이어그램

sequenceDiagram
    actor User
    participant UIPage as AiExtractionPage
    participant Notifier as AiExtractionNotifier
    participant Repo as AiExtractionRepository
    participant DataSource as RemoteDataSource
    participant API as Backend API

    User->>UIPage: URL 입력 및 분석 클릭
    UIPage->>Notifier: analyze()
    Notifier->>Notifier: URL 검증
    Notifier->>Repo: analyze(AnalyzeRequest)
    Repo->>DataSource: analyze()
    DataSource->>API: POST /contentAnalyze
    API-->>DataSource: AnalyzeResponse (contentId)
    DataSource-->>Repo: return contentId
    Repo-->>Notifier: return AnalyzeResponse
    Notifier->>Notifier: contentId 저장, 폴링 시작
    
    rect rgba(100, 150, 200, 0.5)
    Note over Notifier,API: 5초 주기 폴링 (최대 시도)
    loop 상태 = PENDING/PROCESSING
        Notifier->>Repo: getContentDetail(contentId)
        Repo->>DataSource: getContentDetail()
        DataSource->>API: GET /contentDetail
        API-->>DataSource: ContentDetailResponse
        DataSource-->>Repo: return response
        Repo-->>Notifier: return response
    end
    end
    
    Notifier->>Notifier: 상태 = COMPLETED, places 업데이트
    Notifier->>UIPage: state 갱신
    UIPage->>User: 결과 목록 표시
    
    User->>UIPage: 항목 선택 및 저장 클릭
    UIPage->>Notifier: saveSelectedPlaces()
    
    rect rgba(150, 100, 200, 0.5)
    Note over Notifier,API: 선택된 각 항목에 대해 반복
    loop placeId in selectedPlaceIds
        Notifier->>Repo: savePlace(placeId)
        Repo->>DataSource: savePlace()
        DataSource->>API: POST /savePlace
        API-->>DataSource: success
        DataSource-->>Repo: return void
        Repo-->>Notifier: completed
        Notifier->>Notifier: saveProgress 업데이트
    end
    end
    
    Notifier->>Notifier: 상태 = saved
    Notifier->>UIPage: state 갱신
    UIPage->>User: 저장 완료 표시
Loading

코드 리뷰 예상 난이도

🎯 4 (복잡함) | ⏱️ ~60분

관련 PR

  • 🚀 Deploy 20260223-v1.0.41 #39: lib/common/widgets/main_scaffold.dart의 FAB 동작이 직접 변경되었으므로 (SnackBar에서 라우트 네비게이션으로), 코드 수준에서 밀접하게 관련됨
  • 최신 인기 장소 목록 UI #30: PlaceModel을 공통 모듈로 이동하는 과정에서 홈 피처의 PlaceModel 생성 파일이 제거되므로, 데이터 모델 통합 관점에서 관련됨
  • 맵시 PRD에 맞는 기능 구현 확인 점검 필요 #16: 라우팅 상수 추가(route_paths.dart, app_router.dart)를 통해 새로운 라우트를 정의하므로, 네비게이션 인프라 변경 관점에서 관련됨
✨ 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.

@coderabbitai
Copy link

coderabbitai bot commented Feb 23, 2026

✅ Actions performed

Summary regeneration triggered.

@github-actions
Copy link
Contributor

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

@Cassiiopeia Cassiiopeia merged commit 6e0659d into deploy Feb 23, 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.

2 participants