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

solidjs / solid / 38349533474
78%
main: 89%

Build:
Build:
LAST BUILD BRANCH: claude/project-thread-zclbh4
DEFAULT BRANCH: main
Ran 13 Oct 2026 05:10AM 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

13 Oct 2026 05:04AM UTC coverage: 77.429%. Remained the same
38349533474

push

github

web-flow
fix(signals): a derived store row first read under a held adoption is paired with its old row (#3712) (#3986)

* fix(signals): a derived store row first read under a held adoption is paired with its old row (#3712)

The adoption pairs old and new rows by key but can only record the
pairing on a target, so a row nobody had read was never paired: its first
read during the hold compared two raw objects, slot equality had nothing
to go on, and the key was held — the independent write that read
`cards.find(c => c.id === drag())?.id` was held for the action's lifetime.

Pair the row at that read as applyAdopt would have (adoptChild): one
target, the old raw its committed frame, the new raw its staging, held by
the same transaction. Both raws resolve to it, so the slot reads as
unchanged and the row's own leaves decide — id holds no one, version
holds (A29). Arrays pair by the family's key (derived stores now record
it, as optimistic ones do), records by key name; a reorder, a shallow
family, or a reconcile() in a plain setter leaves the hold standing.
sameRow is the one pairing predicate, shared with reconcile's aligned
prefix. The #3707 defects (reorder aliasing, split proxy identity, a
latest() child never cleared) are pinned.

Size-Exception: + createStore 14.71 -> 14.85 KB, compiled CSR 25.465 ->
25.51 KB (+426 B minified each); core, isPending/latest, render and CSR
unchanged. Accepted by the maintainer 2026-10-12.

Fixes #3712

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LVm3wseHt9wRTY8LfPiHmQ

* fix(signals): keep swapped raws distinct when a held adoption pairs a row

A held adoption that moves the same raw objects between slots ([A,B] ->
[B,A], or a record's {x:A,y:B} -> {x:B,y:A}) paired A's target with B as
staging on the first read, so after the commit both slots read B. A raw
present in both frames is its own row: skip the pairing for it. The frame
values are collected once per frame... (continued)

746 of 1036 branches covered (72.01%)

Branch coverage included in aggregate %.

1079 of 1321 relevant lines covered (81.68%)

27.09 hits per line

Jobs
ID Job ID Ran Files Coverage
1 38349533474.1 13 Oct 2026 05:10AM UTC 11
77.43
GitHub Action Run
Source Files on build 38349533474
  • Tree
  • List 11
  • 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 #38349533474
  • 4f8daa2d on github
  • Prev Build on next (#38319907174)
  • Next Build on next (#38351514077)
  • 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