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

solidjs / solid / 39021046008
78%
main: 89%

Build:
Build:
LAST BUILD BRANCH: claude/project-thread-x1ore2-4001
DEFAULT BRANCH: main
Ran 17 Oct 2026 09:34AM UTC
Jobs 1
Files 11
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

17 Oct 2026 09:25AM UTC coverage: 77.564%. Remained the same
39021046008

push

github

web-flow
fix(server): the server error hook hears an error once per kind per request, not once per process (#4130)

* fix(server): dedupe server error hook reports per request, not per process

The server error hook's once-per-error ledger (`verdicts`) was one
process-global WeakMap keyed by the error object, so an error object
reused across requests (a module-level constant, a cached rejection) was
heard only by the first request's hook, and later requests were handed
the first request's mapped wire value (#4125).

The ledger is now keyed by scope, then error: the request a render
started under (keyed by `event.request`, which the derived event of a
direct SSR-time server-function call shares), else the render itself (a
per-render object @solidjs/web puts on the render context as the
internal `_errorScope`), else no dedup at all. Every road within one
request still reads the same verdict, so a server-function failure that
escapes into a <Loading> is reported once and carries one mapped value.

Refs #4125

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018LY7F9czoRqdMEvk2QwPr1

* fix(server): keep an error's thrower per request/render scope, not per process

`throwers` was a process-global WeakMap from error object to the owner it
was first thrown under. A reused error object (a module-level constant)
kept the first request's owner, so later requests' hook reports and
findings named the first request's `ownerPath`, and that request's owner
tree stayed reachable for as long as the error lived.

The thrower now lives on the error's verdict in the same scope the hook
ledger uses (the request in scope, else the running render's
`_errorScope`), so it is collected with that scope and a later request
stamps and reads its own.

Refs #4125

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018LY7F9czoRqdMEvk2QwPr1

* fix(server): the er... (continued)

756 of 1050 branches covered (72.0%)

Branch coverage included in aggregate %.

1097 of 1339 relevant lines covered (81.93%)

27.7 hits per line

Jobs
ID Job ID Ran Files Coverage
1 39021046008.1 17 Oct 2026 09:34AM UTC 11
77.56
GitHub Action Run
Source Files on build 39021046008
  • Tree
  • List 11
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #39021046008
  • 9ac14810 on github
  • Prev Build on next (#39019892925)
  • Next Build on next (#39103364089)
  • 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