Combine plan + credit packs into one onboarding card (APP-5176) - #14718
Merged
Conversation
Collapse the two AI-purchase options on the account-first "Choose how to start" onboarding slide into a single "Use Warp with AI" card: a full-width "Subscribe to Warp plan" button, a divider labelled "Or buy AI credits without a subscription", and the existing server-priced credit pack tiles. "Set up AI later" stays as the second card. Adds the slide subtitle and a Subscribe action while preserving the subscribe->upgrade, pack purchase, set-up-later, packs-hidden-until-priced, and truncation behaviors and the use_warp_with_ai telemetry id. Co-Authored-By: Warp Agent <agent@warp.dev>
Address requester feedback on the combined "Use Warp with AI" card: - Exactly one option is highlighted at a time. The plan button paints as selected only while the plan is the choice, so it can never look selected next to a chosen credit pack. - The whole "Use Warp with AI" card is a click target (defers to the plan button and pack tiles), so clicking anywhere in it selects the card instead of requiring a click on an inner control. - "Set up AI later" clears every highlight in the card above. - "Subscribe to Warp plan" only selects the plan; the upgrade flow is started by "Get Warping" (pack tiles likewise only select). - A pending checkout no longer traps the user: any selection change (switching to the plan or a different denomination) resets the footer from "Waiting for checkout..." back to "Get Warping" so another link can be opened. Co-Authored-By: Warp Agent <agent@warp.dev>
jefflloyd
approved these changes
Aug 5, 2026
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
Combines the two AI-purchase options on the account-first "Choose how to start" onboarding slide into a single card, per the APP-5176 design mock. The slide now shows two cards instead of three:
Selection model
Exactly one option is selected at a time across the whole slide:
MAX_CREDIT_PACKS; theuse_warp_with_aitelemetry id is unchanged.Implementation notes
Confined to
crates/onboarding/src/slides/offer_slide.rs(+ its tests) and one smallcrates/onboarding/src/model.rshelper (reset_pending_checkout). The combined card is oneHoverableusingdefer_events_to_childrenso a click the plan button / a pack tile handled wins, while a click on any other part of the card selects it. Nowarp-serverchange is needed — credit-pack amounts/prices are server-driven display data.Deviations from the mock (deliberate — per foreman)
Verification
cargo nextest run -p onboarding— 49 passed, including new regression tests:exactly_one_option_is_selected_at_a_time(mutual exclusion + card-body select + set-up-later clears the card above),subscribe_selects_the_plan_without_launching_upgrade,changing_selection_after_checkout_clears_the_pending_state, andchanging_denomination_after_checkout_allows_a_new_link(the stuck-checkout fix). Existing packs-hidden / pack-purchase / set-up-later-in-flight / arrow-key / truncation coverage retained.cargo clippy -p onboarding --all-targets --tests -- -D warnings— clean;cargo fmt --check— clean.Rework changes
Addressed the requester's Slack feedback on the first pass (no GitHub review threads):
reset_pending_checkout), so a second link can be opened.Computer-use video recordings
View video recording - Onboarding offer_preview click sequence: Launching the offer_preview onboarding window and performing a sequence of clicks on the two cards, credit tiles, Subscribe button, and Get Warping footer button while observing highlight/label changes.
Computer-use screenshots (3)
View screenshot - The offer_preview app's "Choose how to start" onboarding screen, showing the two cards, credit-pack tiles, divider, and footer buttons on the left half and a decorative screenshot on the right half.
View screenshot - Initial "Choose how to start" screen: Card 1 (Use Warp with AI) has a blue accent border, Subscribe button is accented, Card 2 (Set up AI later) has a plain border.
View screenshot - After clicking "Set up AI later": Card 2 now has the blue accent border while Card 1 and the Subscribe button lost their accent.
CHANGELOG-IMPROVEMENT: Combined the plan and one-time credit-pack options into a single card on the "Choose how to start" onboarding screen.
Originating thread: https://warpdev.slack.com/archives/C0BDQDW8V5E/p1785896644972569
Conversation: https://staging.warp.dev/conversation/d4c70f7e-62e5-414d-980e-257d5ac1bd65
Run: https://oz.staging.warp.dev/runs/019fcfc8-cc3c-798f-b6a6-95df0c78a3ce
Plans:
This PR was generated with Oz.