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

solidjs / solid / 39860244179
78%
main: 89%

Build:
Build:
LAST BUILD BRANCH: claude/async-memo-element-4242
DEFAULT BRANCH: main
Ran 22 Oct 2026 09:57PM UTC
Jobs 1
Files 12
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

22 Oct 2026 09:48PM UTC coverage: 77.764%. Remained the same
39860244179

push

github

web-flow
fix(web): renderToStream completes when a value fails to serialize synchronously (#4229)

* fix(web): renderToStream completes when a value fails to serialize synchronously

A value the serializer cannot handle, handed over already settled (a
`deferStream` value, a `getHydrationWriter().write`), fails inside the
write. seroval 1.6's `Serializer` never reaches that write's `onDone`,
so `flush()` never completed: the hook heard `render/serialize`, but the
render stayed pending, the piped stream never ended and the final
dispose never ran. `createJSONSerializer` had the same gap in its own
bookkeeping.

Both serializers now share one keyed writer. A write settles on its
`onDone`. A write whose value fails inside the call, so that no initial
chunk goes out, is disposed and settled when the call returns. Other
failures (a promise, a stream chunk, buffered or not) still settle on
`onDone`, as before, and a `close()` from inside a write disposes it
too. The hydration serializer runs on `crossSerializeStream` with the
same output as seroval's `Serializer`; `createSerializer` is unchanged.

* fix(web): settle a write that throws when the serializer has no onError

Without `onError`, seroval throws a synchronous failure out of the write
instead of reporting it. The exception still reaches the caller
(`renderToString` relies on that), but the write stayed counted as
pending, so a later `flush()` never called `onDone`. The keyed writer
now settles the write before rethrowing.

* fix(web): leave serializeErrorStacks out of the hydration serializer's options

`createHydrationSerializer` pins its feature policy and never read
`serializeErrorStacks`, so passing it did nothing: hydration stacks
follow `NODE_ENV`. The options type now leaves it out, like
`globalIdentifier` and `disabledFeatures`. No runtime change.

* test(web): share the settle harness between the renderToStream failure specs

The #4193 spec and the new one copied `watchEscapes`, `settle` and
`pipeSet... (continued)

771 of 1066 branches covered (72.33%)

Branch coverage included in aggregate %.

1114 of 1358 relevant lines covered (82.03%)

27.6 hits per line

Jobs
ID Job ID Ran Files Coverage
1 39860244179.1 22 Oct 2026 09:57PM UTC 12
77.76
GitHub Action Run
Source Files on build 39860244179
  • Tree
  • List 12
  • 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 #39860244179
  • a4e9d10c on github
  • Prev Build on next (#39846501753)
  • Next Build on next (#39866776725)
  • 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