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

solidjs / solid / 36230592683
76%
main: 89%

Build:
Build:
LAST BUILD BRANCH: next
DEFAULT BRANCH: main
Ran 26 Sep 2026 08:49AM 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

26 Sep 2026 08:42AM UTC coverage: 73.772%. Remained the same
36230592683

push

github

web-flow
fix(web): the document live channel crosses as a ReadableStream, not an async iterator (#3667)

The hydration serializer's channel guard (#3468) wrapped every async
iterable to sanitize its thrown step — and Node's ReadableStream is
async-iterable, so the frame sink's `sc:live` channel (the document face's
hole/attr ops) reached the client as a seroval async iterator. The frames
client's pump reads that record with `getReader()` and refuses anything
else, silently: a server component streaming into the initial document
froze at its first value. The chat welcome stopped after its first
paragraph while its meter (slot records, a different path) kept counting.

Predates Stage 8: the recorded welcome artifact shows the shape flipping
between 2026-09-09 (`new ReadableStream`) and Phase A's re-recording, and
a pre-Phase-A build (ce84a272b) serializes the same async iterator. Not
pinned until now — the server specs asserted the ops' text in the HTML,
the hydration specs fed the channel a ReadableStream by hand.

Fix: the guard keeps a ReadableStream's type — a stream over the source's
chunks whose failure crosses sanitized (`verdictNow`), like a rejection.
Seroval's web plugin then encodes it as itself.

Tests: the server spec executes the document's scripts in a vm sandbox and
reads `_$HY.r["sc:live"]` back with `getReader()` (fails at
`getReader` unfixed); a new parity pair records a streaming component's
document (test/server/document-live-channel-artifact.spec.tsx) and
hydrates it in jsdom against the shell, then applies the rest — the
adopted frame's range must read the last yield through the same element
(reads 'w1' unfixed, 'w1 w2 w3' fixed).

Co-authored-by: Claude via Cursor <noreply@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

625 of 914 branches covered (68.38%)

Branch coverage included in aggregate %.

922 of 1183 relevant lines covered (77.94%)

27.2 hits per line

Jobs
ID Job ID Ran Files Coverage
1 36230592683.1 26 Sep 2026 08:49AM UTC 8
73.77
GitHub Action Run
Source Files on build 36230592683
  • 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 #36230592683
  • 663031d7 on github
  • Prev Build on next (#36229998558)
  • Next Build on next (#36232586916)
  • 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