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

solidjs / solid / 41615811493
78%
main: 89%

Build:
Build:
LAST BUILD BRANCH: claude/fix-4661-latest-stale-hold
DEFAULT BRANCH: main
Ran 03 Nov 2026 10:13AM 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

03 Nov 2026 10:01AM UTC coverage: 78.249%. Remained the same
41615811493

push

github

web-flow
fix(web): settle renderToStream's awaited form and pipeTo when the signal aborts (#4654)

* fix(web): settle renderToStream's awaited form and pipeTo when the signal aborts

A `signal` abort winds the render down as a disconnect, and a disconnect
skipped the consumer completions the failure wind-down runs. So
`await renderToStream(...)` and `pipeTo`'s promise never settled when the
source never landed, or when the signal was already aborted. The wind-down
now runs every consumer's completion with a `gone` flag. A disconnect still
leaves the sink alone, but the promises settle: the awaited form resolves
with the HTML it produced and never rejects.

Fixes #4646.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0117BoWNSSgtemsSYsaX2hXE

* test(web): pass the event argument to createSSRResponse in the #4646 spec

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0117BoWNSSgtemsSYsaX2hXE

* fix(web): reject render thenables on signal cancellation

* fix(web): reject the awaited form from the abort wind-down; pipe forms only settle

Integrates #4649 with #4654's wind-down. On this branch the signal's
disconnect wind-down already completes every registered consumer, so the
awaited form's completion resolved before #4649's `onCancelled` hook could
reject it. Fold the rejection into that completion instead: `onAbort` marks
`cancelled` before the wind-down, and the thenable's `onFailure` completion
rejects with `signal.reason` when it is set (at registration too, for an
abort before `then`). The separate `onCancelled` chain is dropped.

`pipe`/`pipeTo` keep #4654's behaviour: nothing more is written to or ends
the sink, `pipeTo`'s promise resolves, `createSSRResponse` still answers a
pre-shell abort with a bodyless 500.

The #4646 spec now expects the awaited form to reject with signal.reason;
the signal JSDoc (server.ts, server-mock.ts), 12-ssr-http.md a... (continued)

807 of 1108 branches covered (72.83%)

Branch coverage included in aggregate %.

1132 of 1370 relevant lines covered (82.63%)

30.31 hits per line

Jobs
ID Job ID Ran Files Coverage
1 41615811493.1 03 Nov 2026 10:13AM UTC 12
78.25
GitHub Action Run
Source Files on build 41615811493
  • 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 #41615811493
  • ccfc7ea3 on github
  • Prev Build on next (#41615796953)
  • Next Build on next (#41618867424)
  • 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