Skip to content

fix(mobile): throttle streaming thread visit updates - #9931

Open
saphid wants to merge 386 commits into
pingdotgg:t3code/codex-turn-mappingfrom
saphid:fix/v2-mobile-visit-throttle-20260905
Open

fix(mobile): throttle streaming thread visit updates#9931
saphid wants to merge 386 commits into
pingdotgg:t3code/codex-turn-mappingfrom
saphid:fix/v2-mobile-visit-throttle-20260905

Conversation

@saphid

@saphid saphid commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Streaming thread updates sent one visit command per watermark from React Native. Apply the web client's ten-second trailing throttle, retaining the newest watermark. Thread navigation and unseen completion still dispatch immediately; hidden content and selection cleanup cancel scheduled sends.

Rebuilt head 3b17e2142 includes current V2 3aa47e294 and test-only prerequisite #10865 (merge first). Feature remains one file, 27 additions and 6 deletions. Mobile typecheck, targeted lint and formatting pass. No new simulator run was performed; the prior measured UI evidence below is historical and bound to its stated revisions. CI pending. Direct Claude Opus 5 high review remains unavailable due to expired OAuth (exit 1 before inference).

Historical simulator measurements and recordings

Measured at persisted thread.visited events on one isolated iPhone 16 Pro simulator (iOS 26.5), with one burst per revision: 20 real thread.metadata.update commands at approximately 250 ms intervals over five seconds. Both runs used the same visible thread and disposable V2 server.

Revision Updates Persisted visit writes Result
Before (ThreadDetailScreen.tsx from b9fa1399c) 20 20 One visit for each update
After (#9931 9d459a6bb, integrated at fa6a1ab04) 20 2 Visits 10.010 seconds apart; final watermark equals the newest update

This measures write volume and dispatch spacing, not rendering speed. Title updates provide a controlled source of updatedAt changes; this was not a timed provider-token stream. The shared native Debug build exited 0; only the JavaScript bundle changed. The integrated candidate also includes #9929, explaining the visible file chip in the after recording.

Before: clean recording · Before: annotated recording

After: clean recording · After: annotated recording

Recordings preserve original timing (before 29.53 s; after 53.63 s), with no idle trimming or speed changes. Captions report the stored-event measurements; the videos do not display a request counter. These caption-only recordings were visually inspected; the interaction-packet validator requires tap/swipe events and was not applicable.

Before/after stills

Before: 20 visit writes

After: two visits and newest watermark retained

React Native typecheck and targeted lint passed in frozen integration verification. Android was not separately exercised. Targets Julius’s Orchestrator V2 branch in #2829; this changes only React Native.

A direct Claude Opus 5 high review attempt exited 1 because OAuth expired before model execution; no Claude review occurred. Implemented and verified with GPT-6 in Codex/T3.

Targets V2 #2829. Updated with GPT-6 in Codex/T3.

@github-actions github-actions Bot added the vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. label Sep 5, 2026
@macroscopeapp

macroscopeapp Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Macroscope has since reviewed this pull request. An earlier review was skipped by a cost limit; a review has now completed, so that notice no longer applies.

@github-actions github-actions Bot added the size:XXL 1,000+ changed lines (additions + deletions). label Sep 5, 2026
@saphid
saphid force-pushed the fix/v2-mobile-visit-throttle-20260905 branch from 3ffe845 to 9d459a6 Compare September 5, 2026 05:07
@github-actions github-actions Bot added size:S 10-29 changed lines (additions + deletions). and removed size:XXL 1,000+ changed lines (additions + deletions). labels Sep 5, 2026
@saphid
saphid marked this pull request as ready for review September 5, 2026 07:15
@macroscopeapp

macroscopeapp Bot commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 3b17e21

Macroscope's review found this PR approvable — The mobile change is a narrowly scoped fix that throttles redundant streaming visit writes while preserving newest-watermark, navigation, and completion semantics. The accompanying server change is test-only, with no production runtime impact.

You can add or adjust custom eligibility rules. Learn more.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Sep 5, 2026

@t3-code t3-code Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reviewed diff and relevant surrounding code at 5c4609f5eb0948f5c5e6c1d61834e240b958eee3. no blocking findings.

the effect keeps a trailing newest watermark, bypasses the throttle for unseen completion/thread changes, and cancels pending work when content hides. isolated execution of the actual effect callback passed initial dispatch, trailing update, completion, thread switch, hidden cleanup and dedupe checks with mocked clock/command. no code changes needed. this was not a mounted react or native-device test.

ci snapshot: no failing or pending checks; some checks are skipped. this is a comment review, not an approval or merge.

@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch 2 times, most recently from 9242b91 to 3d81172 Compare September 8, 2026 03:31
@cursor

cursor Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@macroscopeapp
macroscopeapp Bot dismissed their stale review September 8, 2026 05:57

Dismissing prior approval to re-evaluate 53e0828

@github-actions github-actions Bot added size:XXL 1,000+ changed lines (additions + deletions). and removed size:S 10-29 changed lines (additions + deletions). labels Sep 8, 2026
juliusmarminge and others added 14 commits September 7, 2026 23:12
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
Co-authored-by: codex <codex@users.noreply.github.com>
- Re-route steering that races completion into idempotent follow-up dispatches
- Preserve scheduled-task attribution and provider ownership history across clients
Port main's pull-request discovery, active thread ordering, async question dismissal, settlement fixes, provider-session import, attachment context, and provider correctness changes into orchestration v2.

Keep the branch's intentional composer and subagent behavior while adopting main's web and mobile fixes. Prevent headless setup terminals from hanging on the color probe, and move the v2 migration block to 050-061 after main claimed 048-049.
Restore the failed-before-start timer guard, align two server fixtures with the reconciled behavior, and remove dead files, exports, and dependencies surfaced by Knip.

Drop the temporary branch push trigger now that the PR is mergeable, so each update runs the pull-request workflow once.
Keep main's batch machine-update banner and update action while preserving the v2 runtime-based environment lock used by draft load balancing.
Adopt TypeScript 7 and Effect rc.112 across orchestration v2, including the TaggedError API migration and updated Effect-aware tests. Restore main's composer-aware scroll-to-end clearance while retaining selected-model settings sync, preview recording transfer, image galleries, desktop context menus, and layout hit targets. Regenerate the lockfile on the upgraded dependency baseline.
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch from efd9994 to 6102d00 Compare September 8, 2026 06:23
juliusmarminge and others added 7 commits September 8, 2026 14:26
Advertise bounded socket snapshots and authoritative dispatch validation, omit raw command output and inline file bodies at the wire boundary, and preserve compact status metadata across web and mobile. Add transport-budget coverage for snapshots, resume, commands, legacy import, and projection maintenance.
Restore pinned-thread shelf classification, server-owned unread state, hidden-subagent-safe project ordering, guarded jump hints, draft upload cleanup, and active-provider archive guards across the current and legacy sidebars.

Bring the surrounding current-main sidebar work forward as well: canonical project favicons, stable row layout, thread file drops, account-aware mobile provider badges, and deferred desktop keyring loading.
@saphid
saphid force-pushed the fix/v2-mobile-visit-throttle-20260905 branch from 53e0828 to 3b17e21 Compare September 9, 2026 00:51
@cursor

cursor Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@github-actions github-actions Bot added size:S 10-29 changed lines (additions + deletions). and removed size:XXL 1,000+ changed lines (additions + deletions). labels Sep 9, 2026
@juliusmarminge
juliusmarminge force-pushed the t3code/codex-turn-mapping branch from 8187b17 to ada72ce Compare September 9, 2026 06:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S 10-29 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants