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

humanspeak / svelte-virtual-list / 29354161321
73%
main: 72%

Build:
Build:
LAST BUILD BRANCH: feat/165-center-align-scroll-to-offset
DEFAULT BRANCH: main
Ran 14 Jul 2026 05:33PM UTC
Jobs 1
Files 17
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

14 Jul 2026 05:31PM UTC coverage: 72.538%. First build
29354161321

push

github

web-flow
feat(virtual-list): public onRangeChange callback for visible-range state (#424)

* feat(virtual-list): add public onRangeChange callback

Promote the already-computed visible range and at-top/at-bottom state to a
first-class, documented onRangeChange prop. Previously this information was
only reachable through debugFunction (gated behind debug=true with console
noise). The new callback delivers a trimmed { start, end, atTop, atBottom }
payload for impression tracking, URL sync, and scroll-position persistence.

- Add SvelteVirtualListRangeInfo type and onRangeChange prop (types.ts)
- Export the new type from index.ts
- Fire the callback from a deduped $effect mirroring the debug effect's
  shape; atTop/atBottom math matches createDebugInfo so the two channels
  cannot disagree
- Unit tests: initial fire, dedupe, payload shape, absent-prop safety
- E2E fixture + spec at /tests/other/range-callback (house stats ritual)
- README props row + usage snippet

debugFunction / SvelteVirtualListDebugInfo are unchanged.

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

* test(virtual-list): make range-callback fixture self-judging (red/green)

Bring the fixture up to the house "loud and diagnostic" standard set by the
issue-416 page — previously a broken callback would read as "pending"
forever and the list backdrop was neutral gray.

- Capture the FIRST delivered payload separately from the latest one
- Add two red/green verdict rows in the house pass/fail style:
  stat-initial (first payload start=0 atTop=1) and stat-final (latest
  payload atBottom=1 end=ITEM_COUNT after the probe)
- Verdicts resolve to pass OR fail once the probe completes — zero
  deliveries (and even a missing viewport) judge as fail, never pending
- Solid warning-red #ffc2c2 list backdrop so unrendered viewport is visible
- stat-range line format kept byte-compatible with the existing spec
- Spec: new test asserting the page's own verdicts (waits require a digit)

Co-Authored-By: ... (continued)

374 of 579 branches covered (64.59%)

Branch coverage included in aggregate %.

12 of 12 new or added lines in 1 file covered. (100.0%)

738 of 954 relevant lines covered (77.36%)

2187.15 hits per line

Jobs
ID Job ID Ran Files Coverage
1 node-22 - 29354161321.1 14 Jul 2026 05:33PM UTC 17
72.54
GitHub Action Run
Source Files on build 29354161321
  • Tree
  • List 17
  • 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 #29354161321
  • 899ba3e6 on github
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