Skip to content

fix(mobile): keep thread scroll bounds current after animations - #249

Merged
rynfar merged 1 commit into
pylonfrom
upstream/2026-09-02-scroll-bounds
Sep 2, 2026
Merged

fix(mobile): keep thread scroll bounds current after animations#249
rynfar merged 1 commit into
pylonfrom
upstream/2026-09-02-scroll-bounds

Conversation

@rynfar

@rynfar rynfar commented Sep 2, 2026

Copy link
Copy Markdown
Collaborator

Adopts #9013. Size-only content changes did not emit a scroll event, so the
list's "is at end" signal went stale after an animation settled — the thread
could think it was pinned to the bottom when it was not, and vice versa. Upstream
adds a getIsAtEnd that derives the edge from current content size rather than
waiting for a scroll event.

Carve-out

#9013 rewrites patches/@legendapp__list@3.3.5.patch, which carries Pylon's own
one-line fix: state.pendingMaintainScrollAtEnd = shouldMaintainScrollAtEnd
instead of = false, so the flag is deferred rather than discarded. Verified it
survives at both the CJS and ESM sites in the rewritten patch (lines 357 and 904),
since a patch-file merge is the one place a lost line produces neither a type
error nor a failing test.

The lockfile conflicted on the patch content hash and was regenerated rather than
hand-merged.

Verification

@t3tools/mobile typecheck clean, lint clean, 175 thread tests passing.
node scripts/release-smoke.ts passes, which is the check that actually exercises
the patch pin.

Model: Claude Opus 5 in Claude Code.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Co-authored-by: Julius Marminge <julius@mac.lan>
@github-actions github-actions Bot added size:L vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. labels Sep 2, 2026
@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 13.6 KiB 13.5 KiB −38 B (−0.3%) 15.1 KiB
Codex Thread snapshot wire 6.9 KiB 6.9 KiB +2 B (+0.0%) 7.3 KiB
Codex Live turn WebSocket wire 6.6 KiB 6.6 KiB −40 B (−0.6%) 7.8 KiB
Codex Live turn WebSocket decoded 57.2 KiB 57.1 KiB −44 B (−0.1%) 66.4 KiB
Codex Live turn messages 10 9 −1 (−10.0%) 21
Claude Total thread wire 13.8 KiB 13.5 KiB −214 B (−1.5%) 15.1 KiB
Claude Thread snapshot wire 6.9 KiB 6.9 KiB −3 B (−0.0%) 7.3 KiB
Claude Live turn WebSocket wire 6.8 KiB 6.6 KiB −211 B (−3.0%) 7.8 KiB
Claude Live turn WebSocket decoded 59.5 KiB 58.0 KiB −1.5 KiB (−2.5%) 66.4 KiB
Claude Live turn messages 11 9 −2 (−18.2%) 21

Baseline: 9378c6e · PR result: 0a67e69 · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 109.5 KiB
  • Claude decoded thread snapshot: 110.2 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

@rynfar
rynfar merged commit 4ebe4b8 into pylon Sep 2, 2026
17 checks passed
@rynfar
rynfar deleted the upstream/2026-09-02-scroll-bounds branch September 2, 2026 20:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:L 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.

2 participants