Skip to content

fix(mobile): stabilize glass, composer layout, and streaming markdown - #504

Merged
rynfar merged 11 commits into
pylonfrom
upstream/2026-09-12-mobile
Sep 12, 2026
Merged

fix(mobile): stabilize glass, composer layout, and streaming markdown#504
rynfar merged 11 commits into
pylonfrom
upstream/2026-09-12-mobile

Conversation

@rynfar

@rynfar rynfar commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator

Mobile glass surfaces exposed sharp background text, composer bounds could stop between frames, and streaming code repeatedly lost highlighting. This adopts the completed upstream mobile reliability chain: backed blur, synchronized composer geometry and focus restoration, tablet close controls, stable Markdown identity, incremental code highlighting, and Android icon wrapping/copy sanitation.

Pylon’s composer shadow, provider admission, Prime session widgets, follow-up queues, rollback controls, and voice interactions remain intact. The iOS composer still uses 220 ms vertical transitions with system reduced-motion behavior; Android keeps its non-animated row/composer layout path. Reanimated is built from source so its native final-frame patch is included. Native changes require a subsequent compatible mobile binary; this PR publishes or installs none.

Part of #497. Frozen upstream range: 6c583620ff7ad3235b135af7107c0543467eecfa..4a4c6dd2adc350a68ba18bb28b24b5a7e4660dab.

Source Outcome
a29a7cc5853e16d4ca7e07acf364836f71b6101a — fix(mobile): blur glass fallbacks to prevent background text bleed (#10964) adopted
75e4ceb96489a2fe92c710c79dbea59778cccfd1 — fix(mobile): prevent Android chat rows overlapping during sync (#10983) adopted
383cc40f4d5d9f61d47b3caa28fac839a8b9c433 — fix(mobile): prevent text leaking through Android glass (#10998) adopted
444fd8badd265ddde33babf2a21bf3f527334e98 — fix(mobile): keep Android markdown icons aligned with text (#11079) superseded: exact canceling fix/revert pair; final Android alignment/wrapping implemented by 32b6909340 and cd64ad384e
3836890e4484406813997259efc69065b25ce698 — Revert "fix(mobile): keep Android markdown icons aligned with text" (#11098) superseded: exact canceling fix/revert pair; final Android alignment/wrapping implemented by 32b6909340 and cd64ad384e
32b690934039ea31c8bf8079aea8e9c088e97d9f — fix(mobile): keep Android markdown icons aligned (#11118) adopted
47dbb06c3b171c40ebdfbd5b38cd954127949bc0 — fix(mobile): add close controls to tablet files and terminal (#11115) adopted
96f43708a0ec97e9da89ab1e165039f50f09e037 — fix(mobile): preserve the final composer animation frame (#11114) adopted
859304b7808ab9a4be87b1bddcd07c6485bf9c4f — fix(mobile): keep composer transitions aligned (#11127) adopted
1a9336bcda98e75814c1985e9274d919e580dbc5 — refactor(mobile): name shared markdown renderer without iOS suffixes (#11128) adopted
2ebc9fa4ed24e389eef24039f27c73ae6633858f — fix(mobile): prevent Hermes crashes when opening threads (#11233) partial here: presentation.reverse plus Hermes regression adopted; userInput.ts sort hunk owned by #11014 lane because new file absent on base
7bd7f99e6cab940892ff9240549c507bfd066aee — perf(mobile): reuse completed code lines while streaming (#11211) adopted
cd64ad384e40988f57e4caa5a3f74f25ca5ef450 — fix(mobile): keep Android file icons on the line with wrapped filenames (#11234) adopted

The #11079/#11098 fix/revert pair cancels exactly over all nine paths. Only the final native span factory (#11118) and Android non-breaking icon spacer with clipboard sanitation (#11234) are retained. The Hermes userInput.ts sort hunk is tracked with #11014 in the parallel chat lane; that file does not exist on this PR’s base, so this PR does not claim full adoption of #11233 on its own.

Verification:

  • 227 focused tests across 11 files pass, including incremental grammar state, stable keys, completed-line fallback, Hermes without ES2023 array methods, layout/navigation, glass/theme and voice presentation. The first run read a stale local file dependency during reinstall; the refreshed Markdown suite passes all 38 tests.
  • Mobile and client-runtime typechecks pass. Changed-file lint passes with existing React/compiler warnings. Changed-file formatting and whitespace checks pass.
  • Frozen install succeeds with the Reanimated patch. Native static discovery runs, but SwiftLint/ktlint/detekt are unavailable locally. Android Robolectric tests were imported; Java/Android SDK are absent here, so those tests and native runtime behavior were not run locally.
  • No Pylon screenshots or video were captured in this lane; computer-use authorization is absent. Upstream before/after evidence is linked below as source evidence, not a Pylon runtime claim.

Upstream visual evidence: glass and controls, backed Android blur, final native animation frame, composer/sidebar and focus handoff, streaming code, Android icon wrapping.

Model and harness: GPT-6 via Codex.


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

juliusmarminge and others added 11 commits September 12, 2026 00:16
…10964)

(cherry picked from commit a29a7cc5853e16d4ca7e07acf364836f71b6101a)
(cherry picked from commit 75e4ceb96489a2fe92c710c79dbea59778cccfd1)
(cherry picked from commit 383cc40f4d5d9f61d47b3caa28fac839a8b9c433)
(cherry picked from commit 32b690934039ea31c8bf8079aea8e9c088e97d9f)
(cherry picked from commit 47dbb06c3b171c40ebdfbd5b38cd954127949bc0)
(cherry picked from commit 96f43708a0ec97e9da89ab1e165039f50f09e037)
(cherry picked from commit 859304b7808ab9a4be87b1bddcd07c6485bf9c4f)
…(#11128)

(cherry picked from commit 1a9336bcda98e75814c1985e9274d919e580dbc5)
(cherry picked from commit 2ebc9fa4ed24e389eef24039f27c73ae6633858f)
(cherry picked from commit 7bd7f99e6cab940892ff9240549c507bfd066aee)
…es (#11234)

Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
(cherry picked from commit cd64ad384e40988f57e4caa5a3f74f25ca5ef450)
@vercel

vercel Bot commented Sep 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
pylon-marketing Ready Ready Preview Sep 12, 2026 6:22am UTC

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XXL labels Sep 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 14.1 KiB 14.0 KiB −36 B (−0.2%) 15.1 KiB
Codex Thread snapshot wire 7.2 KiB 7.2 KiB −6 B (−0.1%) 7.3 KiB
Codex Live turn WebSocket wire 6.9 KiB 6.8 KiB −30 B (−0.4%) 7.8 KiB
Codex Live turn WebSocket decoded 58.8 KiB 58.8 KiB −44 B (−0.1%) 66.4 KiB
Codex Live turn messages 10 9 −1 (−10.0%) 21
Claude Total thread wire 14.1 KiB 14.0 KiB −57 B (−0.4%) 15.1 KiB
Claude Thread snapshot wire 7.2 KiB 7.2 KiB +8 B (+0.1%) 7.3 KiB
Claude Live turn WebSocket wire 6.9 KiB 6.8 KiB −65 B (−0.9%) 7.8 KiB
Claude Live turn WebSocket decoded 59.7 KiB 59.6 KiB −88 B (−0.1%) 66.4 KiB
Claude Live turn messages 10 8 −2 (−20.0%) 21

Baseline: f3402be · PR result: 65a3a07 · 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: 115.6 KiB
  • Claude decoded thread snapshot: 116.3 KiB

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

@rynfar

rynfar commented Sep 12, 2026

Copy link
Copy Markdown
Collaborator Author

Independent adversarial review completed against 65a3a070076251958087ac1833223f5b1fad8255: no actionable findings. Reviewed glass fallbacks and preserved Pylon composer/Prime props, width/height and focus restoration, stable Markdown identities and incremental highlighting, Android span/copy handling, and the Reanimated final-frame patch. 227 focused tests plus mobile/client-runtime types and scoped checks passed; final-head CI including native static checks is green. Native platform runtime and visual validation were not performed. The one shared Hermes userInput sort hunk is tracked in #507; its target file does not exist before that PR. Landing under standing maintainer approval.

@rynfar
rynfar merged commit 9c0bdac into pylon Sep 12, 2026
20 checks passed
@rynfar
rynfar deleted the upstream/2026-09-12-mobile branch September 12, 2026 06:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XXL 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