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

solidjs / solid / 36381249389
74%
main: 89%

Build:
Build:
LAST BUILD BRANCH: feat/binding-slot-execution
DEFAULT BRANCH: main
Ran 28 Sep 2026 05:23AM 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

28 Sep 2026 05:17AM UTC coverage: 73.772%. Remained the same
36381249389

push

github

web-flow
fix(signals): index-mode mapArray publishes the optimistic frame (F1) (#3682)

* fix(signals): index-mode mapArray publishes the optimistic frame (F1)

A mapArray pass writes the list's per-slot signals — the row accessors of
index mode (`keyed: false`), the index accessors of a keyed `<For>` with a
two-argument mapper — with `setSignal`. Under an action's lane pass those
writes were staged into the action's transaction instead of joining the
lane's frame (setSignal's plain path: queuePendingNode + `_pendingValue`),
and the row render effects were served the committed value by
readerSeesCommitted until the action landed. `<For keyed={false}>` showed
the pre-action list for the whole action while the keyed modes — whose
reorder rides the computed's own result into `_laneOverride` — showed the
optimistic one; a keyed row rendered its old index beside its new
neighbours (`1b,2c,3d,4e,5f,0a`).

The slot writes now go through the engine (`writeSlot` ->
`GlobalQueue._laneSlotWrite`, `laneSlotWrite` in core/optimistic.ts):
under a lane pass each is published as a derived override on the slot and
the slot joins the lane (assignOrMergeLane + laneOverride, lanes stage,
A17); a plain pass over a slot still carrying one — the landing, the
reversion, a mainline re-pass — lands through `landOnOverride` (A18: a
differing landing supersedes, an equal one confirms and the revert
promotes). Without the engine installed mapArray writes the slots plainly
as before. `laneOverride` is widened to any OptimisticNode.

Tests: tests/store/optimistic-maparray-index-frame-f1.test.ts pins the
index-mode frame (insert / delete / move / swap / reverse / rotate, confirm
and differing landings, reorder then a different landing, revert without a
truth, overlapping actions) and the keyed index-accessor twin, on the
derived and chained sources; packages/web/test/optimistic-for-index-frame-
f1.spec.tsx mirrors it through `<For keyed={false}>` and `<For keyed={fn}>`.
Matrix: every F1 row ... (continued)

625 of 914 branches covered (68.38%)

Branch coverage included in aggregate %.

922 of 1183 relevant lines covered (77.94%)

27.2 hits per line

Jobs
ID Job ID Ran Files Coverage
1 36381249389.1 28 Sep 2026 05:23AM UTC 8
73.77
GitHub Action Run
Source Files on build 36381249389
  • 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 #36381249389
  • 58b95829 on github
  • Prev Build on next (#36379141978)
  • Next Build on next (#36414155796)
  • 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