Skip to content

[Bug]: iOS Thread settings no longer exposes third-party/legacy model selection after update #10902

Description

@darox

Before submitting

  • I searched existing issues and did not find a matching open report.
  • I included enough detail to investigate the problem.

Area

apps/mobile

What happened

After the latest T3 Code iOS update, I can no longer find the selection for third-party/legacy models that was available before. The affected screen is Thread settings, with Codex expanded.

Steps to reproduce

  1. Update the iOS app and connect to an environment where third-party/legacy models were previously selectable.
  2. Open a Codex thread, then open Thread settings.
  3. Try to reveal and select those models rather than the current GPT models.

Expected behavior

Previously available models that remain in the connected provider's catalog should still be selectable, with a reachable Model filters → Show legacy models control where applicable.

Actual behavior / screenshot observations

The supplied screenshot shows only GPT-6 Astra, GPT-5.6-Sol (Default), GPT-5.6-Terra, and GPT-5.6-Luna, followed by Options (Reasoning, Service Tier, Runtime). No model search/filter control or option to reveal legacy models is visible in the captured sheet.

The screenshot observations are transcribed here; the image itself is not attached.

Impact

Cannot select the affected third-party/legacy alternatives from iOS; the displayed current models remain selectable.

Version / environment

  • T3 Code iOS app, latest update installed as of September 9, 2026; exact app/build number not yet recorded.
  • Codex thread. Device model, iOS version, and server version not yet recorded.

Additional context

This is a reported regression, not an independently reproduced diagnosis. The exact missing model IDs and whether they still appear in the provider catalog after the update have not yet been verified. Please investigate missing/unreachable model-filter controls as well as catalog availability.

Related but different open reports: #10082 concerns OpenCode rows appearing only after scrolling after expansion; #9659 concerns Bedrock-qualified model IDs being misclassified as legacy.

Activity

  1. juliusmarminge commented on Sep 9, 2026

    @juliusmarminge
    Member

    Triage

    Plausible iOS Thread settings / catalog issue; not reproduced here. The sheet showing only GPT-6 Astra, GPT-5.6-Sol (Default), GPT-5.6-Terra, GPT-5.6-Luna, then Options, with no Model filters → Show legacy models in the captured content, matches current mobile + server behavior. It is not yet enough to call a confirmed iOS regression.

    What we can confirm from the report + code

    On current main (mobile app version 1.1.1):

    1. Show legacy models is omitted unless the catalog already has legacy rows. hasLegacyModels is providerGroups.some(group => group.models.some(m => m.isLegacy)) in apps/mobile/src/features/threads/ThreadSettingsSheet.tsx. The iOS filter menu only appends that action when this is true. Android still gets an in-sheet Catalog → Legacy models switch; iOS does not (Platform.OS !== "ios").

    2. Legacy rows are hidden by default. useThreadSettingsCatalogItems filters to !model.isLegacy (plus the already applied/staged model) until the toggle is on.

    3. On iOS 26 Liquid Glass, search + Model filters are not in the sheet body. They live on the floating mail-style toolbar as a filter icon (line.3.horizontal.decrease), not a labeled Model filters row above Options. Pre-26 iOS uses a bottom Model filters toolbar. A screenshot of Codex + four models + Options can miss that chrome even when it exists. If that native toolbar fails to mount, both search and filters disappear — there is no in-list fallback.

    4. An existing Codex thread cannot show third-party / OpenCode models. ThreadComposer binds the picker to the thread’s harness (threadProviderGroups). OpenCode upstream sources are a separate provider group (New Task), via subProvider subtitles — there is no mobile “third-party models” filter on Codex.

    5. Those four slugs are the current Codex GPT set in apps/server/src/provider/model-manifest.json (gpt-6-astra, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna). If Codex model/list returns only those, nothing is isLegacy, and the toggle is omitted by design. Daybreak is also current but often absent from a given CLI catalog.

    6. The server never requests Codex hidden models. requestAllCodexModels in apps/server/src/provider/Layers/CodexProvider.ts calls model/list with {} / { cursor } only. The generated schema supports includeHidden; T3 never sends it, and parseCodexModelListResponse ignores hidden. A Codex CLI change that hides older models by default would drop them for every client, not just iOS.

    Web uses the same server snapshot and only renders a Legacy models section when isLegacy entries exist. If web/desktop on this environment also has no legacy section, this is catalog, not iOS chrome.

    Likely causes (ranked)

    1. Catalog has no isLegacy rows (Codex CLI default list / missing includeHidden, or a recent manifest/CLI change). Toggle omitted; list is current-only. Would also show up on web.
    2. iOS filter chrome moved / easy to miss after Liquid Glass. Legacy rows still in the snapshot, but the control is a toolbar icon (or failed to render), and iOS no longer has the in-sheet Catalog switch.
    3. Existing Codex thread vs New Task. Third-party/OpenCode models are not offered on an in-thread Codex picker by design.

    An iOS-app-only update does not rewrite the server catalog. No recent mobile commit removes the toggle; it has been gated since the unified sheet (#5625 / #6224).

    Related, not duplicates

    No open or merged PR fixes this Thread settings / includeHidden path. #9679 is Home thread-list v2. #10205 is draft model-override lifetime.

    Next step

    Need a same-environment check before changing UI:

    If web is also current-only, investigate Codex model/list + includeHidden on the server. If web still has legacy/OpenCode, treat this as iOS toolbar discoverability / existing-thread scoping.

    Helpful follow-up

    • App / TestFlight build (repo is 1.1.1 on main) and iOS version (especially 26 vs earlier).
    • Exact missing model names/IDs, and whether they still appear on web for the same environment.
    • Existing Codex thread vs New Task.
    • Whether a search field or filter icon is visible on the bottom/header toolbar (not only in the model list).
    • Codex CLI / server version if known.

    Labels: bug needs more info via-triage

  2. added
    bugSomething is broken or behaving incorrectly.
    needs more infoInitial triage showed no bug. Awaiting more info
    via-triageFiled through npx t3 triage
    on Sep 9, 2026
  3. darox commented on Sep 10, 2026

    @darox
    Author

    I missed the filter, where show legacy models can be enabled. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething is broken or behaving incorrectly.needs more infoInitial triage showed no bug. Awaiting more infovia-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions