Repository navigation
fix(client-runtime): cache running threads when their view closes - #25213
maria-rcks wants to merge 1 commit into
Conversation
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — Running threads now save their latest committed snapshot when their view closes, allowing cached messages to appear on reopening. Existing streaming-write, expanded-history, and persistence safeguards remain unchanged. You can add or adjust custom eligibility rules. Learn more. |
|
🤖 Generated by an LLM on behalf of Tomasz Tórz. Native iOS data for the "not verified" note. We landed on the identical change independently. Scenario: a thread is running when the reader opens it and leaves; the app is relaunched; the reader reopens it. iOS simulator, T3 server on a copy of a real 6 GB database, 5G profile (120 ms RTT, 10/5 Mbps) through a shaping proxy, server CPU limited to 10 % to match a loaded host. The run was frozen mid-turn (dev replay agent paused), so the thread was confirmed running, Stop button visible, when left. Touch-down → first committed feed after the relaunch:
Happy to share the harness (proxy, CPU throttle, timing marks) if useful. |
Co-authored-by: shivam <91240327+shivamhwp@users.noreply.github.com>
e86f366 to
759f67a
Compare
Dismissing prior approval to re-evaluate 759f67a
Problem
Closing a running thread skips its disk-cache save, so reopening it after a client relaunch can show "Loading messages..." until the server responds.
Change
Save the latest committed snapshot once when the view closes, including active runs. Keep the streaming-write guard, expanded-history guard, queued cache repairs, and persistence deduplication unchanged. The shared client runtime serves web, desktop, and mobile.
Verification
vp run check:changedpasses format, lint, knip, affected-package typechecks, and tests. Lint reports two pre-existing polling warnings outside the added test.sleep 120command. Snapshot HTTP responses are held only in the browser for both reopens. Main shows a blank timeline until release; the fix displays the saved messages and running command without requesting a snapshot. Clips are functional evidence, not latency measurements.Before, main
3ca62a564457:After,
e86f36682a17:Reopen recording, main followed by the fix. Conversation crops match; startup splash frames are trimmed.
Takeover
Replaces #24210, with thanks to @shivamhwp for the original implementation.
Built with GPT-6.1-Sol in the Codex harness on T3 Code.