Repository navigation
[Bug]: iOS composer cannot change project, so only the inherited project's environment is offered #25933
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/mobile
Steps to reproduce
- Link two environments to the same account over T3 Connect (e.g.
blackboxat server 0.1.3 andpve2codeat 0.0.43-nightly). Both show Connected under Settings → Environments. - Somewhere in a thread on the second environment, start a thread so it becomes the current project (the project picker on iOS also defaults to the oldest project on whichever environment you're viewing).
- Go to Threads and tap the compose button (bottom right) to start a new thread.
- Tap the Environment row in that sheet.
Expected behavior
Same as the desktop app: tapping compose shows a project picker listing every project across the linked environments, with the most recently used project first. Picking a project selects its environment, so a thread can be started on any linked environment directly from the composer.
Actual behavior
The composer inherits a single project and the Environment row only lists the environment that owns that project. On iPhone there is no way to change the project from inside the composer, so:
- the other linked environment never appears in the Environment list, even while it reports Connected and its threads list fine;
- the only way to start a thread there is to leave the composer, open the project from the project list, and create the thread from that project's screen.
No thread.create command is ever sent to the server while this is happening — the client blocks before it sends anything, so this is composer UI state rather than a connection or scope problem.
A second-order effect: the composer's default project is the oldest project on the environment rather than the most recently used one. If that oldest project's workspace no longer exists, the environment becomes unselectable in the composer entirely (this is how I first hit the problem — the environment was "Connected" everywhere but absent from compose).
Environment
| Mobile | iOS app 2.1.0 (App Store build of 23 Oct, the current release) |
| Desktop | macOS app 0.1.3 — same account, same environments, shows the full project list |
| Server A | T3 0.1.3, Ubuntu 24.04 x64, reached over T3 Connect (tunnel healthy, 4 QUIC connections, loopback and tailnet return 200) |
| Server B | T3 0.0.43-nightly.20260916.1811 |
| Auth | T3 Connect, owner account; session holds orchestration:read/operate and the environment scopes |
Additional context
Server side looks healthy for the affected environment: t3_project_list returns all projects, project workspace normalisation succeeds, and thread reads/writes work fine from the desktop client and the same phone once a thread is open. The only observable difference is the composer UI on iOS, which is what this report is about.
This is reproducible with a single linked environment too — the Environment row lists that environment or nothing depending on the inherited project — so it is not specific to having two environments.
Activity
juliusmarminge commentedon Oct 27, 2026
Checked on current
main(30f4d63) with the mobile dev client against two paired environments, one with four projects and one with one.Closing as fixed on main. If the project name in the composer doesn't open the picker for you after updating, reply with a screen recording and we'll reopen.