fix(mobile): show done for unread completions - #4961
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Needs human review 1 blocking correctness issue found. This PR introduces a new user-facing feature (showing 'Done' status for unread completions) with new state management, persistence logic, and cross-component integration. New features that introduce user-visible behavior changes warrant human review. There's also an unresolved comment about potential issues with the visit-marking logic. You can customize Macroscope's approvability policy. Learn more. |
f2dd3fa to
9e212e9
Compare
7036b36 to
6c625c8
Compare
Mobile thread rows show
Workingwhile a turn runs, but fall straight back to a timestamp when it completes. That makes it easy to miss work that finished while the user was in another thread or app.This adds the same unread completion model used on desktop. Mobile keeps a device-local last-visited timestamp per scoped thread and shows
Donewhen a successful turn completed after that visit. Opening the thread advances the marker and clears the label.The status is wired through both mobile thread-list implementations. Approval, input, active, error, and plan-ready states keep priority over
Done. Visit updates are focus-aware and use atomic preference updates so startup and rapid navigation cannot drop markers.Evidence
DoneNative simulator recording
Verification
pnpm exec vp test run apps/mobile/src/features/threads/threadListV2.test.ts apps/mobile/src/features/threads/threadPresentation.test.ts apps/mobile/src/state/thread-visits.test.ts apps/mobile/src/state/preferences.test.ts(35 tests)pnpm exec vp run --filter @t3tools/mobile typecheckWorking→Done→ timestamp after reopeningFixes #4952
Built with
gpt-5.6-solin T3 Code through the Codex harness.Note
Show 'Done' status pill in mobile thread lists for unread completions
useThreadVisitshook backed by mobile preferences to track per-thread last-visited timestamps, withmarkVisitedcalled whenever a thread screen is focused and the app is active.hasUnseenCompletionlogic toresolveThreadStatusandresolveThreadListV2Status: returns a'done'status when the latest turn completed after the last visit timestamp.ThreadListRowandThreadListV2Rownow accept alastVisitedAtprop, andHomeScreenandThreadNavigationSidebarthread rows are wired to pass it per-thread.updatePreferencesAtomis extended to accept functional updates (current state → patch) to safely merge visit timestamps.Macroscope summarized 6c625c8.