fix(ui): stabilize virtual follow autoscroll#406
Conversation
Keep DOM and Virtua timing in VirtualFollowList while moving pure follow and hold transitions into a colocated behavior module with focused tests. The integration restores hidden session scroll snapshots safely, gates streaming magnetization on active streaming and hold state, and preserves explicit latest/submit bottom jumps without reintroducing fast-down heuristics. Use Virtua offsets for scroll snapshots and decide streaming rejoin from the item at the bottom of the viewport so long assistant messages can still magnetize near their tail without using stale top-of-viewport position. Remove the unused generic scroll cache hook now that message scroll restore is handled by the virtual follow integration. Validation: node --test packages/ui/src/components/virtual-follow-behavior.test.ts, npm run typecheck --workspace @codenomad/ui, npm run build --workspace @codenomad/tauri-app, and manual release-exe testing.
|
I want you to perform the gatekeeper checks for latest PR state check for regressions |
|
Understood request: gatekeeper review of the latest PR #406 state, focused on regressions, implementation quality, and whether this should be accepted as-is. Assumption: review only; I did not make code changes. Gatekeeper result: not ready as-is. Findings:
A safer implementation would pass the old session’s last-good snapshot into the cleanup, or store
This needs an integration-level test because the pure controller tests do not cover the
Validation run:
I would request changes before merging, specifically for findings 1 and 2. -- |
Keep last-good scroll snapshots keyed by session so cleanup during session switches cannot write another session's snapshot under the previous session id. Also allow streaming rejoin while the hold preference is enabled when no hold target is actively suspending bottom pinning. Validation: node --test packages/ui/src/components/virtual-follow-behavior.test.ts and npm run typecheck --workspace @codenomad/ui.
|
Addressed in
Validation rerun:
The file-size note is acknowledged; |
|
same review again |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/25557064452 Artifacts expire in 7 days. |
|
Understood request: repeat the same gatekeeper review on the latest PR state after Gatekeeper result: no blocking findings in this pass. Findings: None found that I would block merge on after the Prior findings check:
Residual risks / non-blocking notes:
Validation run:
Recommendation: acceptable to proceed if CI typecheck/build is green in the proper dependency environment and the manual scroll scenarios from the PR description were rerun after -- |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/25557064452 Artifacts expire in 7 days. |
1 similar comment
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/25557064452 Artifacts expire in 7 days. |
|
PR builds are available as GitHub Actions artifacts: https://github.com/NeuralNomadsAI/CodeNomad/actions/runs/25597432431 Artifacts expire in 7 days. |
Summary
VirtualFollowListand moving pure follow/hold behavior into a colocated tested module.Supersedes / fixes
Validation
node --test packages/ui/src/components/virtual-follow-behavior.test.tsnpm run typecheck --workspace @codenomad/uinpm run build --workspace @codenomad/tauri-app