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

solidjs / solid / 39116943184
78%
main: 89%

Build:
Build:
LAST BUILD BRANCH: claude/project-thread-x1ore2
DEFAULT BRANCH: main
Ran 18 Oct 2026 09:59AM 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

18 Oct 2026 09:50AM UTC coverage: 77.564%. Remained the same
39116943184

push

github

web-flow
perf(web): fix #574 by bounding the reconciler's suffix walk, not a per-row liveness check (#4133)

* perf(web): the reconciler's prefix and suffix walks skip the per-node liveness check

The suffix walk is bounded to the open range [aStart, aEnd); inside that
range this pass never detaches a node, so neither walk needs isLive. The
bound alone closes #574, where the unbounded suffix walk reached back past
aStart to a node a map-branch replace had taken out while it was still
pending in b. Every anchor read and destructive branch keeps its ownership
gate.

Measured with the call profiler on the Octane js-framework fixture, swap of
rows 1 and 998 in 1000: 29.5 -> 25.0 µs (Vapor 9.0). reconcileArrays
inclusive 24.4 -> 13.8 µs; isLive (8.4 µs self) gone. uibench through the
board runner, oracle identical to the previous run (96 cases, 32,543 shared
identities): tree/[500] virtual_dom_worst_case -17%, snabbdom_worst_case
-14%, moveFromEndToStart -11%, tree removeAll -7 to -11%, reverse flat.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>

* fix(web): the append branch anchors on a live node when the walks skipped a migrated one

Review on #4133: with the per-node check gone from the prefix and suffix
walks, the node the append branch anchors on can be one user code moved
away. `reconcileArrays(p, [x], [y, x])` with x detached threw NotFoundError
from insertBefore, which halts reactivity; through insert, rendering [z, x],
moving x into a modal and then rendering [y, x] left the slot empty.

The suggested `isLive(b[bEnd]) ? b[bEnd] : after` stops the throw but lands
the insert past the live suffix when the migrated node is not the suffix's
last, and the bStart branch had the same fallback when the node before the
insert is the migrated one. The anchor is now the last live prefix node's
successor, else the first suffix node still ours, else `after`. The walks
stay check-free; the loop runs only in the append branch and stops at its
first live node,... (continued)

756 of 1050 branches covered (72.0%)

Branch coverage included in aggregate %.

1097 of 1339 relevant lines covered (81.93%)

27.71 hits per line

Jobs
ID Job ID Ran Files Coverage
1 39116943184.1 18 Oct 2026 09:59AM UTC 11
77.56
GitHub Action Run
Source Files on build 39116943184
  • 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 #39116943184
  • 8e2446f6 on github
  • Prev Build on next (#39114231223)
  • Next Build on next (#39117084941)
  • 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