Skip to content

Group model picker by availability - #9814

Open
malmstein wants to merge 2 commits into
developfrom
feature/david/model_picker_ui
Open

malmstein wants to merge 2 commits into
developfrom
feature/david/model_picker_ui

Conversation

@malmstein

@malmstein malmstein commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Task/Issue URL: https://app.asana.com/1/137249556945/task/1218304469640062
Tech Design URL (if applicable):
API Proposals URL(s) (if applicable): None

Description

Behind updatedPickers, the model picker groups by what the user can actually use rather than
by tier: one section of available models, a divider, then the gated ones. Gated rows get the
follow-up ellipsis because tapping one opens an upsell instead of picking a model, and rows
render the backend label as a subline.

Rows also get a 48dp minimum height, since rows without a subline were coming out around 38dp, shorter than the design and below the touch-target minimum.

The gated header names what unlocks the section: Pro when every gated model needs Pro,
otherwise the free trial when the user can still start one, otherwise a plain subscriber
header. Free trial eligibility is new in ModelState, read from Subscriptions. Copy sits in
donottranslate.xml until sign-off, and the old Plus/Pro header strings stay for the flag-off
path until the flag is retired.

Steps to test this PR

Feature 1

  • With updatedPickers off, open the model picker and confirm it looks exactly as it does
    on develop: no sublines, Plus and Pro section headers
  • Enable updatedPickers in the feature flag menu, force stop and relaunch
  • Open the model picker and confirm available models come first with their sublines, then a
    divider, then the gated models with a trailing ellipsis
  • As a free user who has never trialled, confirm the gated header reads "Try Free for 7 Days"
  • As a Plus subscriber, confirm it reads "Pro Plan Exclusive", since only Pro models are
    gated for you
  • As a free user who already used the trial, confirm it reads "Subscriber Exclusive"
  • Tap a gated row and confirm it still opens the upsell, purchase for free users and upgrade
    for Plus

UI changes

Before After
Screenshot_20260921_132641 Screenshot_20260921_125943

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review for a one-time review, or @claude review always to subscribe this PR to a review on every future push.

Tip: disable this comment in your organization's Code Review settings.

Copy link
Copy Markdown
Contributor Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@malmstein
malmstein marked this pull request as draft September 21, 2026 10:47
@malmstein
malmstein marked this pull request as ready for review September 21, 2026 11:27
malmstein and others added 2 commits September 21, 2026 16:22
Behind updatedPickers, the picker now splits models into what the user
can use and what is gated, separated by a divider, instead of grouping
them into Plus and Pro tiers. Gated rows carry the follow-up ellipsis
since tapping one opens an upsell rather than picking a model, and rows
show the backend label as a subline.

The gated header names what unlocks the section: Pro when every gated
model needs Pro, otherwise the free trial when the user can still start
one, otherwise a plain subscriber header. Free trial eligibility comes
from the subscriptions API and is new in ModelState.

Copy lives in donottranslate until it is signed off, and the old tier
headers stay for the flag-off path until the flag is retired.

https://app.asana.com/1/137249556945/task/1218304469640062

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Rows without a subline came out around 38dp, shorter than the design and
below the 48dp touch target, while rows with one already cleared it. A
minimum height levels the short rows up without stretching the two-line
ones.

https://app.asana.com/1/137249556945/task/1218304469640062

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@malmstein
malmstein force-pushed the feature/david/model_picker_ui branch from 1a10ef8 to 2bfa342 Compare September 21, 2026 14:42
@malmstein
malmstein added this pull request to stack #9820 September 21, 2026 14:53

This branch has not been deployed

No deployments
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.

1 participant