Suggested fix: marking the threads as offline would stop them from looking current, but the phone would still show the wrong state. The correct state already exists on the Mac and on every client that saw the change, so the phone can get it without the Mac being online:
- When a thread is settled, snoozed, unsnoozed or archived, the environment sends a small lifecycle row to the relay: environment ID, thread ID,
settledAt,snoozedUntil,archivedAt,lifecycleUpdatedAt. No titles or messages. The relay already keeps more than this per thread inrelay_agent_activity_rows. - When the environment is offline, the client reads those rows and applies only the ones newer than its cached shell. They are read-only, and live data from the environment always wins once it reconnects.
That fixes the stale state on the phone for T3 Connect environments. For LAN/Tailscale setups, the same rows could be served by another online environment (#20279). The full write-up is in Ideas #24529.