Skip to content

Combine plan + credit packs into one onboarding card (APP-5176) - #14718

Merged
jefflloyd merged 3 commits into
masterfrom
factory/app-5176-combine-ai-card
Aug 5, 2026
Merged

Combine plan + credit packs into one onboarding card (APP-5176)#14718
jefflloyd merged 3 commits into
masterfrom
factory/app-5176-combine-ai-card

Conversation

@warp-agent-staging

@warp-agent-staging warp-agent-staging Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

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:

  • Card 1 — "Use Warp with AI" (kept green "Recommended" badge): the body copy, a full-width "Subscribe to Warp plan" button, a divider labelled "Or buy AI credits without a subscription", and the existing row of server-priced credit-pack tiles — all in one card.
  • Card 2 — "Set up AI later": unchanged.
  • The screen also shows the subtitle "To use AI, start with a plan or one-time credit packs." (previously absent).
  • Footer (Back / Get Warping) unchanged.

Selection model

Exactly one option is selected at a time across the whole slide:

  • Clicking anywhere in the "Use Warp with AI" card selects it (the plan is the default in-card choice); the plan button and pack tiles are nested click targets that take their own selection.
  • The "Subscribe to Warp plan" button paints as selected only while the plan is the choice, and a pack tile paints as selected only while that pack is the choice — so the plan and a pack can never look selected at once.
  • Choosing "Set up AI later" clears every highlight in the card above.
  • "Subscribe to Warp plan" and the pack tiles only select. The upgrade flow / purchase is started by "Get Warping" (or Enter), which acts on the current selection. Packs stay hidden until server pricing arrives; rendering is truncated at MAX_CREDIT_PACKS; the use_warp_with_ai telemetry id is unchanged.
  • After "Get Warping" opens a checkout link the footer shows "Waiting for checkout…", but any subsequent selection change (switching to the plan or a different denomination) resets it back to "Get Warping" so another link can be opened — the user is never trapped.

Implementation notes

Confined to crates/onboarding/src/slides/offer_slide.rs (+ its tests) and one small crates/onboarding/src/model.rs helper (reset_pending_checkout). The combined card is one Hoverable using defer_events_to_children so a click the plan button / a pack tile handled wins, while a click on any other part of the card selects it. No warp-server change is needed — credit-pack amounts/prices are server-driven display data.

Deviations from the mock (deliberate — per foreman)

  • Badge: kept the existing green "Recommended" badge; the mock's "50% off Fable and Opus 5" pill is intentionally not implemented (out of scope per the requester).
  • Card-2 copy: kept the correct wording "…or use another CLI agent."; the mock's "use third your own CLI agent" is an apparent typo and was not adopted.

Verification

  • cargo nextest run -p onboarding49 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, and changing_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.
  • Visual proof (video below): drove the running slide with computer use — clicking "Set up AI later" de-highlights the card above; clicking the card body re-highlights it and the plan button; clicking a tile de-highlights the plan button (never both); clicking "Subscribe to Warp plan" opens no page/overlay; "Get Warping" on a pack shows "Waiting for checkout…", and selecting a different tile returns the footer to "Get Warping".

Rework changes

Addressed the requester's Slack feedback on the first pass (no GitHub review threads):

  • Selection states were wrong → rebuilt so exactly one option is highlighted; the plan button no longer looks permanently selected, and the plan + a pack can't both look selected.
  • Clicking the card didn't select it → the whole "Use Warp with AI" card is now a click target.
  • "Subscribe to Warp plan" opened the page → it now only selects; only "Get Warping" starts the upgrade.
  • Checkout could get stuck → any selection change now resets "Waiting for checkout…" back to "Get Warping" (added 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.

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>
@cla-bot cla-bot Bot added the cla-signed label Aug 5, 2026
@warp-agent-staging warp-agent-staging Bot added the warpy-factory Label associated to the "Wob the Wuilder" factory on staging, also known as Warpy Factory. label Aug 5, 2026
@warp-agent-staging
warp-agent-staging Bot marked this pull request as ready for review August 5, 2026 03:10
@warp-agent-staging
warp-agent-staging Bot requested a review from jefflloyd August 5, 2026 03:10
oz-agent and others added 2 commits August 5, 2026 16:53
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
jefflloyd merged commit fae567e into master Aug 5, 2026
32 checks passed
@jefflloyd
jefflloyd deleted the factory/app-5176-combine-ai-card branch August 5, 2026 17:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed warpy-factory Label associated to the "Wob the Wuilder" factory on staging, also known as Warpy Factory.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants