Repository navigation
feat(mobile): show a loading indicator while a cached transcript refreshes - #6223
Conversation
Code Review SummaryStatus: No Issues Found | Recommendation: Merge Executive SummaryThe branch was rebased, so the incremental range was not diffable; the full PR diff (7 files, 271 insertions) was reviewed at HEAD Files Reviewed (7 files)
Previous Review Summaries (2 snapshots, latest commit d0ab8ed)Current summary above is authoritative. Previous snapshots are kept for context only. Previous review (commit d0ab8ed)Status: No Issues Found | Recommendation: Merge Executive SummaryThe branch was rebased, so the incremental range was not diffable and the full PR diff (7 files, 271 insertions) was reviewed against HEAD: the prior WARNING about Files Reviewed (7 files)
Resolved Since Last Review
Previous review (commit 77768b4)Status: 1 Issues Found | Recommendation: Address before merge Overview
Issue Details (click to expand)WARNING
Files Reviewed (7 files)
Reviewed by deepseek-v4.1-flash · Input: 0 · Output: 0 · Cached: 0 Review guidance: REVIEW.md from base branch |
af00d47 to
d0ab8ed
Compare
…eshes Surface: the mobile app (apps/mobile). While a stale session transcript is shown and the new session transcript is being fetched, show a loading indicator. Best in class UX.
d0ab8ed to
354fec1
Compare
|
This description names a scenario the proof did not capture:
A repeated proof run rebuilds the same evidence, so no proof run is dispatched for a named gap. Merging with this gap open is your decision. |
Changelog for users
Changelog for maintainers
isRefreshingCachedTranscriptatom, true only while cached transcript rows are visible and the live transcript has not landed.session.createdon transports that fetch no page, fetch errors, transcript clears, and session resets.E2E proof
[e3] Warm a session's cache, then reopen it while offline and let the fetch fail: the cached rows stay readable, the row turns into the connection-lost warning with Retry (no endless spinner), and tapping… — android emulator-5554: after
fault.sh down nextjsthe reopen of the warmed session kept its cached rows ('fake:echo:e2 warm transcript', 'e2, Assistant message') while the row showed 'Connection lost' + 'Retry connection' and no 'Loading' line (e3-service-warning.log; screenshot e3-service-warning.png); the warning persisted with nextjs back up (e3-service-afterup.log) and tapping 'Retry connection' cleared it within 1s with the transcript still readable (e3-service-recovered.log), the online warm open having passed in e3-warm.log ('SCENE e3warm OK'). Harness gap: the parked e3 step list…[e1] Warm a session's cache, then reopen it offline and let the fetch fail: the cached rows stay readable, the row turns into the connection-lost warning with Retry (no endless spinner), and tapping Retry… — android emulator-5554: after warming 'e2 warm transcript' online (e1-open-online.log) and killing nextjs, reopening the session kept the cached rows and showed the retryable warning — e1-reopen-offline.log: 'android.widget.TextView Connection lost tappable [424,314][621,351]' and 'android.view.ViewGroup fake:echo:e2 warm transcript, User message tappable [0,1913][1080,2051]' (that digest's row line is the warning, not a spinner); the change's refresh row is captured live under a stalled nextjs with the same cached rows — e1-loading.log: 'android.view.ViewGroup Loading… tappable…
[e1] reopen a warmed session with the live transport stalled — android emulator-5554: digest shows the refresh row 'android.view.ViewGroup Loading… tappable [0,305][1080,360]' in the fixed slot under the header while the cached rows 'fake:echo:e2 warm transcript' (User message) and 'e2' (Assistant message) stay readable, with out/fault-ca2.log 'fault.sh: stalled pids [24331] for 55s' holding the live fetch; the transport-up run (out/e1-refresh.log) shows the rows with no Loading… row; screenshot out/z-e2.png for the visual reviewer.
[e1] Warm a session's cache, then reopen it offline and let the fetch fail: the cached rows stay readable, the row turns into the connection-lost warning with Retry (no endless spinner), and tapping Retry…
[e2] Warm a session's cache, then reopen it on a slow/throttled network: the stale transcript shows with the "Loading…" spinner row, and the row disappears (no transcript jump) once the live transcript… — android emulator-5604. Two runs of the rewarded step list. Throttled/blocked backend (fault.sh stall nextjs): e2z-run.log line 8 'android.view.ViewGroup Loading… tappable [0,305][1080,360]' and line 9 'android.widget.TextView Loading… tappable [512,314][633,351]' above the stale rows (line 11 'android.view.ViewGroup fake:echo:refresh warm transcript, User message tappable [0,1913][1080,2051]', line 13 'android.view.ViewGroup refresh, Assistant message tappable [0,2051][1080,2143]'), capture e2z.png. Landing: e2-landing-run.log line 1 'SCENE e2 OK' for the steps saved in e2.replay.json (assert…
[e2] Warm a session's cache, then reopen it on a slow/throttled network: the stale transcript shows with the "Loading…" spinner row, and the row disappears (no transcript jump) once the live transcript…
E2E proof — log excerpts
/home/igor_kilocode_ai/.local/share/kwf/sections/owner-mobile-stale-transcript-loading-7b2d/e2e-mobile-app/e1-reopen-offline.log/home/igor_kilocode_ai/.local/share/kwf/sections/owner-mobile-stale-transcript-loading-7b2d/e2e-mobile-app/e1-open-online.log/home/igor_kilocode_ai/.local/share/kwf/sections/owner-mobile-stale-transcript-loading-7b2d/e2e-mobile-app/e1-loading.log/home/igor_kilocode_ai/.local/share/kwf/sections/owner-mobile-stale-transcript-loading-7b2d/e2e-mobile-app/e1-retry-recovered.logOwner request
Follow-ups (not changed here)
Owner manual verification
Owner verification is pending; these checks did not pass automatically.