Repository navigation
[Bug]: iOS App 2.0.0 (103) Settled Thread Behavior When Environment Disabled #15098
Description
Activity
- addedbugSomething is broken or behaving incorrectly.Something is broken or behaving incorrectly.needs-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Oct 3, 2026 Just in case it's needed, my screenshots have the titles of the threads redacted, but nothing else has been modified.
Note
Grok responding on behalf of Julius.
Triage
Thanks for the clear report, @coledeb! This reproduces on current
main.Switching an environment off doesn't clear the settled state on that host. The iOS thread list just reclassifies those cached threads as active.
This came in with the orchestrator cutover in #2829 (merged). The iOS home list, tablet sidebar, and thread arrangement sheet moved from
useThreadShells()touseNavigationThreadShells(). The old list only included enabled environments. The new one walks every saved environment, including switched-off ones, as long as their cached thread snapshot is still in memory (packages/client-runtime/src/state/threadShell.ts).A thread stays on the Settled shelf only when its environment is in
settlementEnvironmentIds. That set comes from server configs, which are only collected for enabled environments (createEnvironmentServerConfigsAtominpackages/client-runtime/src/state/shell.ts). So the moment an environment is switched off,buildThreadListV2Itemsinapps/mobile/src/features/threads/threadListV2.tstreatssettledas unsupported and drops the thread into the active section. Snooze goes through the same check, so snoozed threads from that host would show up as active too.A few notes:
- Web still uses the enabled-only list, so this only affects mobile.
- Your settle state isn't lost. Turning the environment back on should put those threads back on the Settled shelf.
- Of the two outcomes you described, the previous behavior (and what web does today) was the first one: threads from a switched-off environment leave the list. Keeping them visible and still settled would be a separate product choice. The current mix, where they stay visible but show as active, matches neither.
A maintainer will decide on the fix direction.
Reacted by Cole- addedvia-triageFiled through npx t3 triageFiled through npx t3 triageand removedneeds-triageIssue needs maintainer review and initial categorization.Issue needs maintainer review and initial categorization.
on Oct 3, 2026 We're running into this too on iOS with a Tailscale host switched off.
I opened #16886 for it. It makes
navigationThreadShellsAtomuseenabledEnvironmentIds(...)like the other thread, project and server-config atoms. Threads from a switched-off environment then leave the iOS list, the way mobile behaved before #2829 and the way web still does, and come back with their settled state when the environment is switched back on. It includes a focused test. It doesn't try to keep the threads visible and settled; that seemed like a separate product choice.
Before submitting
Area
apps/mobile
Steps to reproduce
Expected behavior
Either of:
Actual behavior
All threads from the disabled host forget their "Settled" state and appear in the main list.
Impact
Cosmetic issue
Version or commit
iOS 2.0.0 (103) - MacOS host version 0.0.46-nightly.20261003.2623
Environment
iOS 27.0.1 - macOS 27.0.1
Logs or stack traces
Screenshots, recordings, or supporting files
T3 Code with MacBook Host Enabled.png
T3 Code with MacBook Host Disabled.png
Workaround
N/A