Skip to content

Make mobile Thread List v2 the default - #4717

Merged
juliusmarminge merged 1 commit into
mainfrom
t3code/make-mobile-sidebar-v2-default
Jul 28, 2026
Merged

Make mobile Thread List v2 the default#4717
juliusmarminge merged 1 commit into
mainfrom
t3code/make-mobile-sidebar-v2-default

Conversation

@juliusmarminge

@juliusmarminge juliusmarminge commented Jul 28, 2026

Copy link
Copy Markdown
Member

What Changed

  • Enabled Thread List v2 by default across all mobile app variants.
  • Changed the device preference to act as an opt-out toggle.
  • Updated loading behavior and tests to preserve the enabled default while preferences load.

Why

Thread List v2 is now the standard mobile experience. This removes variant-specific defaults while preserving an explicit device-level opt-out for users who prefer the previous list.

UI Changes

This changes the default mobile thread-list experience. No screenshots or video were included.

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Medium Risk
Production users get a new default thread-list UI; behavior is mitigated by an explicit device opt-out and stable resolution during async preference load.

Overview
Thread List v2 is now the default mobile thread list on every app variant (including production). The Settings → Beta threadListV2Enabled preference is treated as an opt-out when set to false; when unset it resolves to on.

resolveThreadListV2Default and appVariant are removed from resolveThreadListV2Enabled. While preferences are still loading, resolution stays on v2 (true) instead of temporarily forcing v1, so the list does not remount when stored prefs arrive. useThreadListV2Enabled no longer reads expo-constants for variant. Tests and preference comments are updated to match.

Reviewed by Cursor Bugbot for commit 4fcd08d. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Make mobile Thread List v2 the default for all app variants

  • resolveThreadListV2Enabled in threadListV2.ts now returns true by default regardless of app variant, replacing the previous variant-based logic (development/preview → on, otherwise off).
  • The resolveThreadListV2Default helper function is removed; the hook no longer reads appVariant from expo-constants.
  • While preferences are still loading, the resolver now returns true (hold the default) instead of false.
  • Behavioral Change: Thread List v2 is now opt-out for all users; previously it was only on by default for development and preview builds.

Macroscope summarized 4fcd08d.

- Treat the mobile thread list v2 toggle as a device-local opt-out
- Update resolution logic and tests for the enabled-by-default behavior
@github-actions github-actions Bot added size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Jul 28, 2026
@macroscopeapp

macroscopeapp Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR enables Thread List v2 as the default for all production users. While the code change is simple, this is a feature rollout that changes the default experience for the entire mobile user base, warranting human confirmation before merge.

You can customize Macroscope's approvability policy. Learn more.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 85bd914e-1311-45e8-9262-56370947cd26

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch t3code/make-mobile-sidebar-v2-default

Comment @coderabbitai help to get the list of available commands.

@juliusmarminge
juliusmarminge merged commit b0c4992 into main Jul 28, 2026
16 checks passed
@juliusmarminge
juliusmarminge deleted the t3code/make-mobile-sidebar-v2-default branch July 28, 2026 08:48
juliusmarminge added a commit that referenced this pull request Jul 28, 2026
Include #4717 after the primary conflict resolution.

Co-authored-by: codex <codex@users.noreply.github.com>
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Jul 28, 2026
## What's Changed
* Make mobile Thread List v2 the default by @juliusmarminge in pingdotgg/t3code#4717
* Fix mobile showcase workflow without Clerk by @juliusmarminge in pingdotgg/t3code#4718
* Fix relay credential lookup for unlinked environments by @juliusmarminge in pingdotgg/t3code#4692
* Settle merged PR threads immediately by @t3dotgg in pingdotgg/t3code#4704
* feat(web): add maria's sidebar header artwork toggle by @maxktz in pingdotgg/t3code#4652
* feat(web): add appearance settings category by @maxktz in pingdotgg/t3code#4715
* fix(desktop): allow updater-controlled relaunch by @0x4bs3nt in pingdotgg/t3code#4721


**Full Changelog**: pingdotgg/t3code@v0.0.30-nightly.20260728.930...v0.0.30-nightly.20260728.931

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.30-nightly.20260728.931
vimoppa added a commit to vimoppa/t3code that referenced this pull request Jul 28, 2026
* fix(mobile): threads load snapped to bottom on iOS (pingdotgg#4689)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat: default sidebar v2 on for nightly and dev builds (pingdotgg#4491)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(web): 33 web UI fixes (pingdotgg#4700)

* Make mobile Thread List v2 the default (pingdotgg#4717)

* Fix mobile showcase workflow without Clerk (pingdotgg#4718)

* Fix relay credential lookup for unlinked environments (pingdotgg#4692)

Co-authored-by: codex <codex@users.noreply.github.com>

* Settle merged PR threads immediately (pingdotgg#4704)

* feat(web): add maria's sidebar header artwork toggle (pingdotgg#4652)

* feat(web): add appearance settings category (pingdotgg#4715)

* fix(desktop): allow updater-controlled relaunch (pingdotgg#4721)

* fix(web): prevent diff panel scroll jumping (pingdotgg#4724)

* Link inline code file paths in chat markdown (pingdotgg#4726)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Fix Android showcase capture and rebuild v2 queued rows (pingdotgg#4730)

Co-authored-by: Claude <noreply@anthropic.com>

* fix(nix): refresh pnpm dependency hash

---------

Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Max Katz <me@maxkatz.me>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: jan <hi@4bs3nt.com>
tarik02 added a commit to tarik02/t3code that referenced this pull request Jul 28, 2026
* Add OTA update checks to mobile settings (pingdotgg#4686)

* fix(mobile): threads load snapped to bottom on iOS (pingdotgg#4689)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* feat: default sidebar v2 on for nightly and dev builds (pingdotgg#4491)

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(web): 33 web UI fixes (pingdotgg#4700)

* Make mobile Thread List v2 the default (pingdotgg#4717)

* Fix mobile showcase workflow without Clerk (pingdotgg#4718)

* Fix relay credential lookup for unlinked environments (pingdotgg#4692)

Co-authored-by: codex <codex@users.noreply.github.com>

* Settle merged PR threads immediately (pingdotgg#4704)

* feat(web): add maria's sidebar header artwork toggle (pingdotgg#4652)

* feat(web): add appearance settings category (pingdotgg#4715)

* fix(desktop): allow updater-controlled relaunch (pingdotgg#4721)

* fix(web): prevent diff panel scroll jumping (pingdotgg#4724)

* Link inline code file paths in chat markdown (pingdotgg#4726)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

* Fix Android showcase capture and rebuild v2 queued rows (pingdotgg#4730)

Co-authored-by: Claude <noreply@anthropic.com>

* perf(server): negotiate permessage-deflate on the websocket (pingdotgg#4705)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Theo Browne <me@t3.gg>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Max Katz <me@maxkatz.me>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: jan <hi@4bs3nt.com>
andreasmolnardev pushed a commit to andreasmolnardev/codewise that referenced this pull request Jul 28, 2026
github-actions Bot added a commit to omarcresp/t3code-flake that referenced this pull request Jul 29, 2026
## What's Changed
* Add OTA update checks to mobile settings by @juliusmarminge in pingdotgg/t3code#4686
* fix(mobile): threads load snapped to bottom on iOS by @t3dotgg in pingdotgg/t3code#4689
* feat: default sidebar v2 on for nightly and dev builds by @t3dotgg in pingdotgg/t3code#4491
* fix(web): 33 web UI fixes by @maxktz in pingdotgg/t3code#4700
* Make mobile Thread List v2 the default by @juliusmarminge in pingdotgg/t3code#4717
* Fix mobile showcase workflow without Clerk by @juliusmarminge in pingdotgg/t3code#4718
* Fix relay credential lookup for unlinked environments by @juliusmarminge in pingdotgg/t3code#4692
* Settle merged PR threads immediately by @t3dotgg in pingdotgg/t3code#4704
* feat(web): add maria's sidebar header artwork toggle by @maxktz in pingdotgg/t3code#4652
* feat(web): add appearance settings category by @maxktz in pingdotgg/t3code#4715
* fix(desktop): allow updater-controlled relaunch by @0x4bs3nt in pingdotgg/t3code#4721
* fix(web): prevent diff panel scroll jumping by @0x4bs3nt in pingdotgg/t3code#4724
* Link inline code file paths in chat markdown by @juliusmarminge in pingdotgg/t3code#4726
* Fix Android showcase capture and rebuild v2 queued rows by @juliusmarminge in pingdotgg/t3code#4730
* perf(server): negotiate permessage-deflate on the websocket by @t3dotgg in pingdotgg/t3code#4705
* docs: overhaul agent guidance by @t3dotgg in pingdotgg/t3code#4782
* Prevent sidebar row labels from truncating by @juliusmarminge in pingdotgg/t3code#4789
* perf(server): gzip large thread snapshots by @t3dotgg in pingdotgg/t3code#4788
* fix(web): stashed prompts now survive switching providers by @t3dotgg in pingdotgg/t3code#4787
* Fix Git ref refresh resource storms by @juliusmarminge in pingdotgg/t3code#4727
* perf(server): trim stale context-window rows and drop dead replay RPC by @t3dotgg in pingdotgg/t3code#4791
* fix(web): defer command palette filesystem navigation by @juliusmarminge in pingdotgg/t3code#2109
* fix(release): skip scripts during Vercel installs by @t3dotgg in pingdotgg/t3code#4796
* refactor(client): share filesystem browse navigation by @juliusmarminge in pingdotgg/t3code#4797
* fix(mobile): defer filesystem navigation by @juliusmarminge in pingdotgg/t3code#4799
* refactor(server): use native HTTP compression streams by @juliusmarminge in pingdotgg/t3code#4798
* Remove Connect waitlist and add GA announcement tooling by @juliusmarminge in pingdotgg/t3code#4691


**Full Changelog**: pingdotgg/t3code@v0.0.29...v0.0.30

## What's Changed
* Add OTA update checks to mobile settings by @juliusmarminge in pingdotgg/t3code#4686
* fix(mobile): threads load snapped to bottom on iOS by @t3dotgg in pingdotgg/t3code#4689
* feat: default sidebar v2 on for nightly and dev builds by @t3dotgg in pingdotgg/t3code#4491
* fix(web): 33 web UI fixes by @maxktz in pingdotgg/t3code#4700
* Make mobile Thread List v2 the default by @juliusmarminge in pingdotgg/t3code#4717
* Fix mobile showcase workflow without Clerk by @juliusmarminge in pingdotgg/t3code#4718
* Fix relay credential lookup for unlinked environments by @juliusmarminge in pingdotgg/t3code#4692
* Settle merged PR threads immediately by @t3dotgg in pingdotgg/t3code#4704
* feat(web): add maria's sidebar header artwork toggle by @maxktz in pingdotgg/t3code#4652
* feat(web): add appearance settings category by @maxktz in pingdotgg/t3code#4715
* fix(desktop): allow updater-controlled relaunch by @0x4bs3nt in pingdotgg/t3code#4721
* fix(web): prevent diff panel scroll jumping by @0x4bs3nt in pingdotgg/t3code#4724
* Link inline code file paths in chat markdown by @juliusmarminge in pingdotgg/t3code#4726
* Fix Android showcase capture and rebuild v2 queued rows by @juliusmarminge in pingdotgg/t3code#4730
* perf(server): negotiate permessage-deflate on the websocket by @t3dotgg in pingdotgg/t3code#4705
* docs: overhaul agent guidance by @t3dotgg in pingdotgg/t3code#4782
* Prevent sidebar row labels from truncating by @juliusmarminge in pingdotgg/t3code#4789
* perf(server): gzip large thread snapshots by @t3dotgg in pingdotgg/t3code#4788
* fix(web): stashed prompts now survive switching providers by @t3dotgg in pingdotgg/t3code#4787
* Fix Git ref refresh resource storms by @juliusmarminge in pingdotgg/t3code#4727
* perf(server): trim stale context-window rows and drop dead replay RPC by @t3dotgg in pingdotgg/t3code#4791
* fix(web): defer command palette filesystem navigation by @juliusmarminge in pingdotgg/t3code#2109
* fix(release): skip scripts during Vercel installs by @t3dotgg in pingdotgg/t3code#4796
* refactor(client): share filesystem browse navigation by @juliusmarminge in pingdotgg/t3code#4797
* fix(mobile): defer filesystem navigation by @juliusmarminge in pingdotgg/t3code#4799
* refactor(server): use native HTTP compression streams by @juliusmarminge in pingdotgg/t3code#4798
* Remove Connect waitlist and add GA announcement tooling by @juliusmarminge in pingdotgg/t3code#4691


**Full Changelog**: pingdotgg/t3code@v0.0.29...v0.0.30

Upstream release: https://github.com/pingdotgg/t3code/releases/tag/v0.0.30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant