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

humanspeak / svelte-virtual-chat / 28663891678
92%
main: 92%

Build:
Build:
LAST BUILD BRANCH: perf/drop-observer-attribute-observation
DEFAULT BRANCH: main
Ran 03 Jul 2026 01:33PM UTC
Jobs 1
Files 7
Run time 1min
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

03 Jul 2026 01:32PM UTC coverage: 91.98%. First build
28663891678

push

github

web-flow
fix(chat): single ArrowUp from the bottom no longer snaps back (#51)

* test(chat): add failing spec for ArrowUp bouncing back at the bottom (#50)

A single ArrowUp with the viewport focused at the bottom scrolls up 40px
and is snapped straight back ~150ms later: the line step is smaller than
followBottomThresholdPx (48), so the decision still reads at-bottom,
follow is retained, and onIntentEnd's catch-up snap erases the movement.
To a keyboard user the key looks broken.

The existing control (a sub-threshold programmatic/pointer nudge stays
within the magnet) is unchanged — a keypress is a discrete, unambiguous
command with no noise to absorb, which is the distinction the fix will
need to encode.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(chat): keyboard line steps stick — the at-bottom zone no longer re-captures upward arrivals

A single ArrowUp from the bottom was snapped back ~150ms later: the 40px
line step is smaller than followBottomThresholdPx (48), so the decision
still read at-bottom, follow was retained, and onIntentEnd's catch-up
snap erased the keypress.

Two coordinated changes:

- The keyboard handler disengages follow immediately on upward commands.
  A keypress is a discrete, unambiguous instruction — there is no
  "accidental" ArrowUp to absorb, unlike the pointer jitter the
  displacement threshold exists for.
- The policy's at-bottom branch only re-engages follow on non-upward
  arrivals. You can only genuinely return to the bottom by moving down;
  an upward step that happens to land inside the threshold keeps the
  current state — so the deliberately disengaged keyboard step is not
  re-captured, while a following user's upward jitter keeps the
  noise-absorbing magnet (#40 semantics unchanged, covered by unit
  tests and the existing control spec).

Fixes #50

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>

193 of 221 branches covered (87.33%)

Branch coverage included in aggregate %.

346 of 365 relevant lines covered (94.79%)

48.44 hits per line

Jobs
ID Job ID Ran Files Coverage
1 node-22 - 28663891678.1 03 Jul 2026 01:33PM UTC 7
91.98
GitHub Action Run
Source Files on build 28663891678
  • Tree
  • List 7
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #28663891678
  • a614c721 on github
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc