[Bug]: Mobile thread list never shows Done after a turn completes
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 23k
- Forks
- 5.9k
- Avg merge
- 11h 14m
- Merged PRs (30d)
- 357
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
- Open a thread in the mobile app.
- Start a turn and return to the thread list while it is running.
- Confirm the row shows Working.
- Wait for the turn to finish without reopening the thread.
- Compare the row with the same thread in the desktop sidebar.
Expected behavior
The mobile row should transition from Working to Done when the turn completes after the thread was last visited, matching the desktop sidebar. Opening the completed thread should clear the Done state.
Actual behavior
Mobile can show Working, but it has no presentation path for Done. Once the session becomes quiescent, the row falls back to its normal ready or timestamp presentation.
This makes completed background work much easier to miss on mobile.
Impact
Minor bug or occasional failure.
Version or commit
Current upstream main at f0f16e4f.
Environment
iOS mobile app. The missing completion state is shared by the mobile thread list presentation and is not iOS specific.
Source observation
Desktop treats Done as unread completion state rather than a session status. It compares latestTurn.completedAt with a persisted per-thread lastVisitedAt value.
Mobile resolves a completed session to ready, but does not track the equivalent visit timestamp or overlay a Done label. Both Thread List v2 and the older mobile thread presentation omit this state.
Workaround
Open the thread or compare against the desktop sidebar to confirm that the turn completed.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the desktop sidebar's Done logic with the mobile Thread List v2 and older mobile thread presentation. Trace how completed sessions resolve to ready and how thread visits are represented; done means both mobile presentations show Done for completed work after the last visit and clear it when the thread is opened.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100