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

solidjs / solid / 35956812681
74%
main: 89%

Build:
Build:
LAST BUILD BRANCH: next
DEFAULT BRANCH: main
Ran 24 Sep 2026 04:47AM 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

24 Sep 2026 04:42AM UTC coverage: 72.642%. Remained the same
35956812681

push

github

web-flow
feat(signals): interactions wait for the handler's promise; UNTRACKED_ASYNC_HANDLER (#3604)

* feat(signals): an interaction waits for its handler's promise; UNTRACKED_ASYNC_HANDLER names the dead click no hold could judge

`onClick={async () => setResult(await save())}` returns a promise and
continues past the interaction frame. The record settled `idle` the moment
the handler returned, so the wait the person experienced — the whole
round-trip — was invisible to every verdict: no root write before the
`await` means no hold opened, and SILENT_HOLD judges holds.

`withInteraction` now hands the handler's return value to the engine
(`AttributionHooks.interactionEnd(returned)`); a thenable keeps the
`InteractionEvent` open until it settles either way, capped at 10s so a
promise that never settles cannot pin a record. The record carries
`continuationMs` (handler return → settle) and `settledMs` covers it, so a
consumer's span spans the wait. Writes in the continuation run with no
frame on the stack and stay unattributed; only the duration is claimed.

At settle, `UNTRACKED_ASYNC_HANDLER` fires when the handler took no other
road: no write before the await (a pending flag or optimistic value is the
acknowledgement, and its hold is SILENT_HOLD's to judge) and no `action()`
step under the frame (an action's steps stay attributed across yields).
Hold thresholds, since it is the same wait; off with `holds: false`. The
message carries the two repairs: make the work an action, or write the
pending state first.

Size: the tier +65 B (the return value through the seam), the engine
+384 B (the wait, the cap timer, the check and its text); caps moved with
notes. RFC 08 and the skill guide document the code; the plan records D1
and D2 as decided.

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

* test(signals): judge UNTRACKED_ASYNC_HANDLER's threshold on a test-owned clock

"stays quiet below the hold thres... (continued)

594 of 882 branches covered (67.35%)

Branch coverage included in aggregate %.

869 of 1132 relevant lines covered (76.77%)

24.89 hits per line

Jobs
ID Job ID Ran Files Coverage
1 35956812681.1 24 Sep 2026 04:47AM UTC 8
72.64
GitHub Action Run
Source Files on build 35956812681
  • 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 #35956812681
  • c1b68d9d on github
  • Prev Build on next (#35949297194)
  • Next Build on next (#35961628461)
  • 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