• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lsm / neokai / 28604318833 / 5
82%
dev: 82%

Build:
DEFAULT BRANCH: dev
Ran 02 Jul 2026 04:10PM UTC
Files 362
Run time 24s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

02 Jul 2026 04:06PM UTC coverage: 21.757%. Remained the same
28604318833.5

push

github

web-flow
fix(web): reset useAutoScroll latch on context switch via resetKey (#2223)

* fix(web): reset useAutoScroll latch on context switch via resetKey

useAutoScroll only reset its initial bottom-scroll latch on mount, when
isInitialLoad flipped back to true, or when messageCount hit 0. A parent
that swaps the underlying data in place without unmounting (and without
messageCount passing through 0) left hasScrolledOnMountRef latched true
from the previous context, so the hook preserved a stale scroll position
instead of snapping to the latest messages.

Add an optional resetKey (sessionId / taskId). When it changes, reset the
mount-scroll latch and message-count tracker so the next non-empty render
is treated as a fresh visit. Wire resetKey: sessionId in ChatContainer and
resetKey: taskId in SpaceTaskUnifiedThread (which renders without a key, so
it stays mounted across task switches). Add a regression test covering a
direct messageCount swap (40 -> 25) without dropping to 0.

* fix(web): re-run auto-scroll when resetKey changes (same messageCount)

Add resetKey to the auto-scroll layout effect's dependency array. Without
it, switching between two contexts that happen to have the same messageCount
(e.g. two tasks with 25 rows each) left resetKey as the only changed input:
the reset effect cleared the latch, but the auto-scroll effect never re-ran,
so the old scroll position was preserved. Add a test covering the
same-messageCount resetKey change.

* fix(web): refresh height snapshot on resetKey context reset

On a same-message-count context switch, resetKey is the only changed input,
so the scroll-detection effect does not re-run and lastScrollHeightRef keeps
describing the previous (e.g. taller) thread. If the new thread's content
grows asynchronously after the initial scroll, the ResizeObserver compares
against that stale height, grew stays false, and it never re-pins to the
bottom. Reset lastScrollHeightRef alongside the other context refs in the
resetKey... (continued)

24651 of 113303 relevant lines covered (21.76%)

11.76 hits per line

Source Files on job daemon-online-features-2 - 28604318833.5
  • Tree
  • List 362
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 28604318833
  • 773b2f15 on github
  • Prev Job for on dev (#28600083195.13)
  • Next Job for on dev (#28667520162.8)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc