Skip to content

Conduit 2025 wrapped feature#1

Merged
shreyaspapi merged 1 commit intomainfrom
cursor/conduit-2025-wrapped-feature-e3c0
Dec 31, 2025
Merged

Conduit 2025 wrapped feature#1
shreyaspapi merged 1 commit intomainfrom
cursor/conduit-2025-wrapped-feature-e3c0

Conversation

@shreyaspapi
Copy link
Owner

@shreyaspapi shreyaspapi commented Dec 31, 2025

Add a "2025 Wrapped" feature to provide users with a fun, personalized year-in-review of their AI conversations.


Open in Cursor Open in Web

Summary by CodeRabbit

  • New Features
    • Added "2025 Wrapped"—an interactive, animated multi-slide year-in-review experience showcasing personalized chat statistics including conversation counts, messages exchanged, favorite models, activity patterns, and personality insights
    • Integrated the feature into the profile page with navigation controls and sharing capabilities

✏️ Tip: You can customize this high-level summary in your review settings.

Co-authored-by: spapinwar <spapinwar@gmail.com>
@cursor
Copy link

cursor bot commented Dec 31, 2025

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

@coderabbitai
Copy link

coderabbitai bot commented Dec 31, 2025

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Introduces a new "2025 Wrapped" feature enabling users to review their annual chat activity through an interactive, multi-slide experience. Adds routing configuration, a statistics data model, provider-based computation of aggregated metrics from conversations, and an animated presentation page with six narrative slides.

Changes

Cohort / File(s) Summary
Routing Configuration
lib/core/router/app_router.dart, lib/core/services/navigation_service.dart
Added new route for Wrapped feature with path constant /wrapped and route name wrapped; imported WrappedPage builder.
Data Model
lib/features/wrapped/models/wrapped_stats.dart
Created immutable WrappedStats class aggregating 2025 chat metrics: message counts, model usage, temporal distributions, derived statistics (personality, busiest time), and helper getters for display.
Statistics Computation
lib/features/wrapped/providers/wrapped_providers.dart
Implemented wrappedStats Riverpod provider that computes 2025 metrics from conversations, including per-model/month/day/hour analysis, longest chatting streak, and favorite model detection.
UI Integration & Presentation
lib/features/profile/views/profile_page.dart, lib/features/wrapped/views/wrapped_page.dart
Added "2025 Wrapped" tile to profile account section with NEW badge and gradient icon; created WrappedPage ConsumerStatefulWidget with six animated slides, loading/error states, page navigation, particle background, and share functionality.

Sequence Diagram(s)

sequenceDiagram
    actor User
    participant Profile as Profile Page
    participant Router as Navigation
    participant WrappedPage as Wrapped Page
    participant Provider as WrappedStats Provider
    participant Repo as Conversations Repo
    
    User->>Profile: Tap "2025 Wrapped" tile
    Profile->>Router: Navigate to wrapped route
    Router->>WrappedPage: Instantiate WrappedPage
    WrappedPage->>Provider: Request wrappedStats
    
    rect rgba(100, 200, 150, 0.3)
    Note over Provider: Computing Statistics
    Provider->>Repo: Fetch all conversations
    Repo-->>Provider: Return conversations
    Provider->>Provider: Aggregate 2025 metrics<br/>(messages, models, dates, streaks)
    end
    
    alt Has Data
        Provider-->>WrappedPage: WrappedStats with aggregates
        WrappedPage->>WrappedPage: Render Intro Slide
        User->>WrappedPage: Swipe/Tap next
        WrappedPage->>WrappedPage: Animate to Conversations Slide
        User->>WrappedPage: Continue through<br/>Models → Activity →<br/>Personality → Final Slide
    else No Data
        Provider-->>WrappedPage: WrappedStats.empty
        WrappedPage->>WrappedPage: Show celebratory intro<br/>+ Start Chatting action
    else Loading
        WrappedPage->>WrappedPage: Show progress indicator
    else Error
        WrappedPage->>WrappedPage: Show error UI + Go Back
    end
    
    User->>WrappedPage: Tap Close/Share
    WrappedPage->>Router: Pop or trigger share action
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~65 minutes

Poem

🐰 A year of chats compiled with glee,
Six slides of stats for all to see,
Streaks and models dance on screen,
The busiest hours that ever been,
Wrapped in sparkles, wrapped in light,
A jolly 2025 recap, what a sight!


📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8c38d04 and acbe7ce.

📒 Files selected for processing (6)
  • lib/core/router/app_router.dart
  • lib/core/services/navigation_service.dart
  • lib/features/profile/views/profile_page.dart
  • lib/features/wrapped/models/wrapped_stats.dart
  • lib/features/wrapped/providers/wrapped_providers.dart
  • lib/features/wrapped/views/wrapped_page.dart

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.

@shreyaspapi shreyaspapi marked this pull request as ready for review December 31, 2025 18:06
@shreyaspapi shreyaspapi merged commit 4d33ff7 into main Dec 31, 2025
1 check was pending
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