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

solidjs / solid / 35945534754
74%
main: 89%

Build:
Build:
LAST BUILD BRANCH: feat/frames-live
DEFAULT BRANCH: main
Ran 24 Sep 2026 02:09AM UTC
Jobs 1
Files 8
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

24 Sep 2026 02:02AM UTC coverage: 72.655%. Remained the same
35945534754

push

github

web-flow
fix(server): close serialized iterators on stream abandonment (#3628)

* fix(server): close serialized iterators on stream abandonment (#3626)

A memo or projection whose compute yields an async iterable serializes a
tapped iterator into the stream. Cancelling the readable or a throwing
pipe sink disposes the render, but the tapped iterator kept delegating
next() to the source, so seroval pulled it for as long as the source
lived and the generator's finally never ran. The tapped iterator now
answers done and calls the source's return() once its computation is
disposed. The projection pump already stopped on disposal but left its
source open; it now closes it too.

* fix: address review findings

The tapped iterator replays its first value before it checks for
disposal, so the value the HTML was rendered from always ships. The
source's `return()` runs at most once per tapped iterator, whether the
close comes from a pull after disposal or from the wrapper's own
`return()`. The spec waits for the source's first pull before it cancels
and for the source's `finally` before it asserts, instead of fixed
delays, and it also reads each stream to the end and checks that every
value arrives.

* fix(web): close the serializer when a stream render is abandoned (#3626)

The tapped iterator's disposed check runs on the next pull, so a source
whose pending `next()` never settles was never returned — the gap the PR
body's "Open" section names. `renderToStream`'s `abandon()` now closes the
serializer after marking the render dead: seroval's `close()` runs every
pending write's cleanup, which calls `return()` on each serialized async
iterator immediately, and its `onDone` sees `dead` and skips the shell.
`close()` is contained (a custom serializer's `close` is optional and must
not escape the teardown; a throw routes to the server error hook when one
exists). After the close, the render's remaining writes go to an
abandoned serializer that owns their rejections — a clos... (continued)

594 of 882 branches covered (67.35%)

Branch coverage included in aggregate %.

870 of 1133 relevant lines covered (76.79%)

24.64 hits per line

Jobs
ID Job ID Ran Files Coverage
1 35945534754.1 24 Sep 2026 02:09AM UTC 8
72.66
GitHub Action Run
Source Files on build 35945534754
  • Tree
  • List 8
  • 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 #35945534754
  • 56918c68 on github
  • Prev Build on next (#35943207455)
  • Next Build on next (#35946125379)
  • 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