You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit d67febf
Browse filesBrowse the repository at this point in the historyBrowse files
fix(mobile): hold transcript rows until their position is final (#9396)
* fix(mobile): hold transcript rows until their position is final
The agent chat transcript painted its rows before FlashList applied its
bottom-start adjustment and scrolled to the newest row, so every row (and the
time marker above them) moved by the transcript's whole overflow a beat after
the screen had settled.
`useSessionListOpenSettle` reports whether the rows have stopped measuring, and
`SessionTranscriptOpenGate` keeps them mounted but hidden (`opacity: 0`, which
also drops them from the design gate's frame readings) behind the loading
skeleton until then. The tail follow and the resume schedule are unchanged; an
anchored open reveals at once.
New `app:transcript-markers` seed for a transcript whose markers sit above every
row.
* fix(mobile): settle the transcript gate per session and after real measurements
Review follow-ups: the quiet window no longer starts before the list has
reported a content height and a viewport (a slow first measurement could
otherwise run out the window), a mounted list that switches sessions settles
again for the new rows, and the hidden rows are excluded from assistive
technology while they are not yet a position the user can read.
* fix(mobile): keep the measured viewport when the transcript switches sessions
The frame does not change when a mounted list swaps sessions in place, so
React Native has no new layout to report. Clearing the measured viewport there
left the quiet window unarmable and held the new session's rows behind the
skeleton until the cap. Only the content height belongs to a session.
The switch test now drives the new session's content size and asserts the
quiet-window reveal.
* fix(mobile): settle the transcript gate on measurements alone
The first reported content height is a measurement in progress, not a verdict:
a short transcript can report a fitting height before the rest of its rows
arrive, and revealing on that height painted the rows at an offset the list then
left. The quiet window now covers every open, including one that fits.
The seed fixture keeps its original session id.
* test(mobile): record the fixture link in the form the app opens
The seed fixture check on main requires the link a fixture records to use the
group-prefixed route form, so the transcript-markers seed prints that one.
0 commit comments