fix(chat): wait for measurable transcripts before restoring position - #5119
Open
reachjalil wants to merge 2 commits into
Open
reachjalil wants to merge 2 commits into
reachjalil wants to merge 2 commits into
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
3 Skipped Deployments
|
Contributor
|
Selected evidence: Incomplete · 12/12 tests · 18/18 assertions · 8 images Commit Coverage gaps: Required verification: incomplete. Selected evidence does not satisfy all required specs. No authenticated current-head required plan is available. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
A conversation can have a normally sized scroll container while its transcript is hidden by Suspense or has not committed yet. Treating that state as usable layout can replace measured group heights with zeros, calculate an invalid list origin, or consume a saved reading anchor against a loading fallback.
Changes
Scope is limited to these two fixes: two implementation files and two existing test files. No virtualization replacement, styling changes, new scrolling timers, or jump-to-latest pagination changes.
Verification
Focused regression tests: Passed. Overall verification: Failed typechecks; runtime evidence: Incomplete.
71db7fa25aadd834dad1388392f6e2ab15459922: 128 tests passed, 0 failed, 809 assertions, using Bun 1.3.14:git diff --checkpassed.pnpm --filter @openwork/app typecheckfailed with two React 18/19 type incompatibilities inworkbench-panel-group.tsxandapp-sidebar.tsxafter the frozen dependency install. An earlier pre-rebase app typecheck passed; it does not override this final failure.pnpm --dir evals typecheckfailed with 12progressbar/TargetRoleerrors inmodels-analytics-upgrade.e2e.test.ts. The earlier incomplete dependency setup reported additional errors that no longer occur after relinking.030be3e313aad4d73a6dbfe54a842284359c75fc: the same 12 eval TS2322 errors reproduced, so those are baseline-matched. The control app typecheck passed, while both feature worktrees still reported the two React-type errors. Compiler resolution confirmed different dependency layouts: panels/framer-motion resolve React types 18.2.79 in the feature worktrees versus 19.2.14 in control; app source resolves 19.2.14 throughout. This is not an equivalent-environment app comparison and does not erase the recorded failures. No claim is made about which preparation step caused the layout difference. Required GitHub build/core checks passed at the current PR head.noReply; after a clean reload, trusted sidebar clicks opened the history, navigated to another task, and returned without transcript scrolling. The latest message was visible with a 0 px scroll-bottom gap and 16 px between its container and the transcript viewport bottom. DOM checks found a healthy 1170×692 transcript viewport, no loading/error/dialog overlay; PNG dimensions were 1440×900 with nonblank pixel variance and manual visual/privacy inspection. Owned browser/server/engine resources were stopped and the synthetic workspace removed. This supersedes the earlier blocked screenshot attempt, not the typecheck results above.UI/UX impact
The intended difference is stable thread opening and restoration once real content is ready. Existing loading UI, composer, controls, styling, and deliberate scrolling remain unchanged. Existing components and motion behavior are preserved (DESIGN P5/V6); P10 now has supplementary real-size screenshot evidence below; targeted browser proof of the hidden/loading states remains incomplete.
Supplementary screenshot
Synthetic 150-message conversation after navigating away and returning, without scrolling the transcript. Captured at
71db7fa25aadd834dad1388392f6e2ab15459922in local app-web / native v1 / HeadlessChrome 153 at 1440×900. No real provider or private conversation was used.This image shows only the settled ordinary thread-return state. It does not specifically exercise delayed loading reservation, restoration to a saved manual reading anchor, or a hidden transcript with a positive viewport; it is not a universal fix claim or a replacement for those regression tests.