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

solidjs / solid / 37597810973
76%
main: 89%

Build:
Build:
LAST BUILD BRANCH: size/page-router-scenario
DEFAULT BRANCH: main
Ran 07 Oct 2026 09: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

07 Oct 2026 09:02AM UTC coverage: 75.927%. Remained the same
37597810973

push

github

web-flow
fix(web): end cancelled chunk streams cleanly and validate chunk headers (#3846)

* fix(web): end cancelled chunk streams cleanly and validate chunk headers

- `cancel()` now ends a pending `next()` as done even partway through a
  frame. It used to throw "Malformed server function stream." whenever the
  cancel landed mid-frame. Frames reported a superseded response with that
  message instead of the supersession reason.
- A chunk header must be exactly `;0x` plus 8 hex digits plus `;`. The old
  `parseInt` read accepted wrong delimiters and trailing junk such as
  `;0x5zzzzzzz;`.
- Payloads are decoded with a fatal UTF-8 decoder, so invalid bytes fail
  as a malformed stream instead of becoming U+FFFD.
- `drain()` and a failed first frame in `deserializeStream` cancel the body
  instead of leaving it locked and unread.
- The reader drops an oversized store once it holds no unread bytes. One
  large frame used to keep its doubled allocation until the stream ended.
- `createChunk` refuses a payload whose length does not fit the 8-digit
  header. One encoder and one decoder are shared at module level.

The wire format is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(web): release a large chunk's store right away and recheck cancel after each read

- `releaseStore` now shrinks a store over 64 KiB to its unread bytes after
  every frame. The old rule compared the store with four times the frame
  just read. A store that grew to fit one frame is at most about twice that
  frame, so it was never released right after it. A connection that went
  idle after a large frame kept the allocation until the stream ended.
- A steady stream of frames over 64 KiB now regrows its store for each one.
  Frames under 64 KiB never shrink it, so the #3154 steady state for small
  frames is unchanged.
- `next()` checks `cancelled` after every read, not only on entry. A read
  that had already resolved with data when `cancel()` ran used to finish
... (continued)

654 of 932 branches covered (70.17%)

Branch coverage included in aggregate %.

964 of 1199 relevant lines covered (80.4%)

28.17 hits per line

Jobs
ID Job ID Ran Files Coverage
1 37597810973.1 07 Oct 2026 09:09AM UTC 8
75.93
GitHub Action Run
Source Files on build 37597810973
  • 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 #37597810973
  • 2eb6e00c on github
  • Prev Build on next (#37594364904)
  • Next Build on next (#37602202583)
  • 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